diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2008-03-24 15:33:12 +0000 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2008-03-24 15:33:12 +0000 |
| commit | 8ff7c94ac268bde9fc928a7541b573312d142663 (patch) | |
| tree | 2505bfd75979e3c3bcaec0ae32f2276d074516a8 /src/game/server | |
| parent | 30e78ec74a34b86b395247effee1bbbd8670bd50 (diff) | |
| download | zcatch-8ff7c94ac268bde9fc928a7541b573312d142663.tar.gz zcatch-8ff7c94ac268bde9fc928a7541b573312d142663.zip | |
fixed some memory leaks
Diffstat (limited to 'src/game/server')
| -rw-r--r-- | src/game/server/gs_common.h | 1 | ||||
| -rw-r--r-- | src/game/server/gs_server.cpp | 8 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/game/server/gs_common.h b/src/game/server/gs_common.h index 8913dd8a..1dd60e81 100644 --- a/src/game/server/gs_common.h +++ b/src/game/server/gs_common.h @@ -98,6 +98,7 @@ public: world_core core; game_world(); + ~game_world(); int find_entities(vec2 pos, float radius, entity **ents, int max); int find_entities(vec2 pos, float radius, entity **ents, int max, const int* types, int maxtypes); diff --git a/src/game/server/gs_server.cpp b/src/game/server/gs_server.cpp index c42872b1..fcb03f02 100644 --- a/src/game/server/gs_server.cpp +++ b/src/game/server/gs_server.cpp @@ -181,6 +181,7 @@ entity::entity(int objtype) entity::~entity() { + world->remove_entity(this); snap_free_id(id); } @@ -196,6 +197,13 @@ game_world::game_world() first_entity_types[i] = 0; } +game_world::~game_world() +{ + // delete all entities + while(first_entity) + delete first_entity; +} + int game_world::find_entities(vec2 pos, float radius, entity **ents, int max) { int num = 0; |