Мало написал. Я не знаю в чем заключается твое непонимание данной проблемы...
Просто очищаешь все что есть только в этом уровне (модели, рисунки текстуры, звуки и т.д.)
Припустим есть у тебя пару типов:
Type Enemy
Field Mesh
Field X,Y,Z
End Type
Type Inventar
Field ItemImage
Field ItemId
End Type
Ты в игре наделал кучу типов и теперь нужно вызвать ClearLevel()
Пишем:
Function ClearLevel()
For all.Enemy=Each Enemy
;И так. Мы запустили цикл, который переберет абсолютно все
;ячейки типа Enemy. Обрати внимание, слово "all" - всево лишь
;указатель на этот тип. Можешь использовать любое другое слово.
;Как видишь в списке у нас хранится модель по адресу: all/mesh
;Перед тем как очиистить тип от адресов и переменных нам нужно
;Удалить саму модель, а потом уже удалять к ней адрес.
FreeEntity all/mesh
;А теперь можем смело удалять весю ячейку типа. Переменные
;Удалятся из памяти сами. А делать надо так
Delete all
;Цикл будет повторятся столько раз, сколько у тебя ячеек в списке
;И удалит абсолютно все ячейки списка.
Next
;Остался еще один список Inventar, в котором для каждого Итема
;Хранится рисунок. Делаем почти то же самое:
For LyboeImya.Inventar=Each Inventar
FreeImage LyboeImya/ItemImage ;Вместо модели удаляем рисунки.
Delete LyboeImya
Next
End Function
Короче, все что не является переменными нужно удалить отдельно вызовом специального оператора. Ибо вызвав команду Delete - ты не удалишь все модели, ты удалишь только адреса на них. После чего удаление этих самых моделей станет возможным только вызовом:
ClearWorld [entities][,brushes][,textures]
В этом заключалась проблема?