From eb21e9d6bb772c6fba533bfe4b421dc7efe181b1 Mon Sep 17 00:00:00 2001 From: Magnus Auvinen Date: Wed, 24 Sep 2008 09:03:49 +0000 Subject: cleaned up the code a bit more. pooling of character and player objects with reusable macros. fixed crashing when changing maps and a couple of other bugs --- src/game/server/entities/character.cpp | 3 +++ src/game/server/entities/character.hpp | 13 +------------ 2 files changed, 4 insertions(+), 12 deletions(-) (limited to 'src/game/server/entities') diff --git a/src/game/server/entities/character.cpp b/src/game/server/entities/character.cpp index 60acdca8..e79962c2 100644 --- a/src/game/server/entities/character.cpp +++ b/src/game/server/entities/character.cpp @@ -32,6 +32,9 @@ static INPUT_COUNT count_input(int prev, int cur) return c; } + +MACRO_ALLOC_POOL_ID_IMPL(CHARACTER, MAX_CLIENTS) + // player CHARACTER::CHARACTER() : ENTITY(NETOBJTYPE_CHARACTER) diff --git a/src/game/server/entities/character.hpp b/src/game/server/entities/character.hpp index 9bd441ba..c25b4b5f 100644 --- a/src/game/server/entities/character.hpp +++ b/src/game/server/entities/character.hpp @@ -11,19 +11,8 @@ class CHARACTER : public ENTITY { - /*static CHARACTER pool_data[MAX_CLIENTS]; - static int pool_used[MAX_CLIENTS];*/ + MACRO_ALLOC_POOL_ID() public: -/* - void operator delete(void *character) - { - (CHARACTER *)character - int id = (CHARACTER *)character - (CHARACTER *)pool_data; - dbg_assert(pool_used[id], ""); - pool_used[id] = 0; - mem_zero(&pool_data[id], sizeof(CHARACTER)); - }*/ - // player controlling this character class PLAYER *player; -- cgit 1.4.1