blob: 01ce49b937f35d1db15566771ec637481be68b1b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
#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" );
}
}
|