Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2008-11-15 19:24:55 +0000
committerStijn Buys <ingar@osirion.org>2008-11-15 19:24:55 +0000
commit28ba97bdd8fb6ca352dc49dba01a66bd155ad523 (patch)
treeeb4abd0505eb842e15201783529814bda1ae6e76 /src/core/entity.cc
parent1f0dbeeabdffff096908473168898c5fa63bcff0 (diff)
entity extensions
Diffstat (limited to 'src/core/entity.cc')
-rw-r--r--src/core/entity.cc22
1 files changed, 13 insertions, 9 deletions
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 <vector>
#include <iomanip>
+#include <cstring>
#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);
}