#include "objlist.h" #include "world/world.h" #include "world/map.h" OBJECT_LIST* objl; OBJECT_LIST* objl_init() { OBJECT_LIST* ret = new OBJECT_LIST; ret->world = 0; ret->pl = 0; return ret; } void objl_clear( U8 delete_player ) { objl->objects.each( fn( OBJECT** ptr ) { OBJECT* obj = *ptr; if( !delete_player && obj == objl->pl ) return; if( obj->deinit_fn ) obj->deinit_fn( obj ); delete obj; } ); objl->objects.clear(); objl->world = 0; if( delete_player ) objl->pl = 0; } void objl_load_world( GAME_DATA* game, WORLD_MAP* map ) { objl_clear(); objl->world = world_create( map ); if( !objl->pl ) objl->pl = player_create( map->startpos, map->startang ); if( !OK( world_populate_entities( objl->world ) ) ) { objl_clear(); dlog( "objl_load_world() : error populating entities\n" ); } }