From 28ba97bdd8fb6ca352dc49dba01a66bd155ad523 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sat, 15 Nov 2008 19:24:55 +0000 Subject: entity extensions --- src/core/entity.cc | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'src/core/entity.cc') diff --git a/src/core/entity.cc b/src/core/entity.cc index e2aac1c..47086ee 100644 --- a/src/core/entity.cc +++ b/src/core/entity.cc @@ -6,6 +6,7 @@ #include #include +#include #include "auxiliary/functions.h" #include "sys/sys.h" @@ -105,14 +106,14 @@ Entity::Entity(unsigned int flags) : entity_label.clear(); entity_name.clear(); - entity_clientstate = 0; - entity_zone = 0; entity_oldzone = 0; entity_visible = true; entity_serverside = false; + memset(entity_extension, 0, sizeof(entity_extension)); + add(this); } @@ -125,25 +126,28 @@ Entity::Entity(std::istream & is) entity_visible = true; entity_model = 0; - entity_clientstate = 0; entity_created = true; - entity_destroyed = false; + entity_destroyed = false; + + memset(entity_extension, 0, sizeof(entity_extension)); } Entity::~Entity() { + // delete extensions + for (size_t i =0; i < 4; i++) { + if (entity_extension[i]) + delete entity_extension[i]; + entity_extension[i] = 0; + } + // delete entity menus for (Menus::iterator it = menus().begin(); it != menus().end(); it++) { delete (*it); } menus().clear(); - if (entity_clientstate) { - delete entity_clientstate; - entity_clientstate = 0; - } - if (entity_zone) entity_zone->remove(this); } -- cgit v1.2.3