Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/gameinterface.cc')
-rw-r--r--src/core/gameinterface.cc43
1 files changed, 16 insertions, 27 deletions
diff --git a/src/core/gameinterface.cc b/src/core/gameinterface.cc
index b37f11a..5caa270 100644
--- a/src/core/gameinterface.cc
+++ b/src/core/gameinterface.cc
@@ -102,21 +102,26 @@ GameInterface::~GameInterface()
// clear all game related objects
void GameInterface::clear()
{
- //con_debug << "Clearing game data\n";
-
// remove all entities
- for (Entity::Registry::iterator it = Entity::registry().begin(); it != Entity::registry().end(); it++) {
- delete(*it).second;
- }
- Entity::registry().clear();
+ Entity::clear();
// remove all zones
- for (Zone::Registry::iterator it = Zone::registry().begin(); it != Zone::registry().end(); it++) {
- Zone *zone = (*it).second;
- con_debug " removing zone " << zone->label() << std::endl;
- delete zone;
+ Zone::clear();
+
+ // remove info records
+ Info::clear();
+
+ // remove all models
+ model::Model::clear();
+
+ // clear player list
+ for (Players::iterator it = game_players.begin(); it != game_players.end(); it++) {
+ Player *player = (*it);
+ if (player != localplayer()) {
+ delete player;
+ }
}
- Zone::registry().clear();
+ game_players.clear();
// remove all game functions
for (Func::Registry::iterator it = Func::registry().begin(); it != Func::registry().end();) {
@@ -137,22 +142,6 @@ void GameInterface::clear()
++it;
}
}
-
- // remove all models
- model::Model::clear();
-
- // remove infos
- Info::clear();
-
- // clear player list
- for (Players::iterator it = game_players.begin(); it != game_players.end(); it++) {
- Player *player = (*it);
- if (player != localplayer()) {
- delete player;
- }
- }
-
- game_players.clear();
}