From 8e7cf15dd1a5aea0b4b77fc7853f0fdc21f7a8d9 Mon Sep 17 00:00:00 2001 From: MitchesD Date: Mon, 28 Apr 2014 22:26:43 +0200 Subject: Scripts/HallsOfReflection: Major changes * corrections to Intro Event (Falric, Marwyn etc.) * fixed issues with Frostsworn General * improved the whole Wrath of the Lich King event * implemented outro gunship * optimalization code and cleanup and fixed some typos * Big thanks to @joschiwald, he is author too ;-) --- src/server/game/Maps/Map.cpp | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) (limited to 'src/server/game/Maps/Map.cpp') diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index cd391299785..ba271235330 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -1544,11 +1544,8 @@ void Map::UnloadAll() Transport* transport = *itr; ++itr; - transport->RemoveFromWorld(); - delete transport; + RemoveFromMap(transport, true); } - - _transports.clear(); } // ***************************** @@ -2648,24 +2645,27 @@ void Map::RemoveAllObjectsInRemoveList() RemoveFromMap(corpse, true); break; } - case TYPEID_DYNAMICOBJECT: - RemoveFromMap((DynamicObject*)obj, true); - break; - case TYPEID_GAMEOBJECT: - if (Transport* transport = obj->ToGameObject()->ToTransport()) - RemoveFromMap(transport, true); - else - RemoveFromMap(obj->ToGameObject(), true); - break; - case TYPEID_UNIT: - // in case triggered sequence some spell can continue casting after prev CleanupsBeforeDelete call - // make sure that like sources auras/etc removed before destructor start - obj->ToCreature()->CleanupsBeforeDelete(); - RemoveFromMap(obj->ToCreature(), true); - break; - default: - TC_LOG_ERROR("maps", "Non-grid object (TypeId: %u) is in grid object remove list, ignored.", obj->GetTypeId()); - break; + case TYPEID_DYNAMICOBJECT: + RemoveFromMap(obj->ToDynObject(), true); + break; + case TYPEID_GAMEOBJECT: + { + GameObject* go = obj->ToGameObject(); + if (Transport* transport = go->ToTransport()) + RemoveFromMap(transport, true); + else + RemoveFromMap(go, true); + break; + } + case TYPEID_UNIT: + // in case triggered sequence some spell can continue casting after prev CleanupsBeforeDelete call + // make sure that like sources auras/etc removed before destructor start + obj->ToCreature()->CleanupsBeforeDelete(); + RemoveFromMap(obj->ToCreature(), true); + break; + default: + TC_LOG_ERROR("maps", "Non-grid object (TypeId: %u) is in grid object remove list, ignored.", obj->GetTypeId()); + break; } i_objectsToRemove.erase(itr); -- cgit v1.2.3