mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-21 09:44:45 +01:00
Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Conflicts: src/server/game/Globals/ObjectMgr.cpp src/server/game/Maps/Map.cpp src/server/game/Quests/QuestDef.cpp
This commit is contained in:
@@ -1544,11 +1544,8 @@ void Map::UnloadAll()
|
||||
Transport* transport = *itr;
|
||||
++itr;
|
||||
|
||||
transport->RemoveFromWorld();
|
||||
delete transport;
|
||||
RemoveFromMap<Transport>(transport, true);
|
||||
}
|
||||
|
||||
_transports.clear();
|
||||
}
|
||||
|
||||
// *****************************
|
||||
@@ -2648,27 +2645,30 @@ void Map::RemoveAllObjectsInRemoveList()
|
||||
RemoveFromMap(corpse, true);
|
||||
break;
|
||||
}
|
||||
case TYPEID_DYNAMICOBJECT:
|
||||
RemoveFromMap((DynamicObject*)obj, true);
|
||||
break;
|
||||
case TYPEID_AREATRIGGER:
|
||||
RemoveFromMap((AreaTrigger*)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_AREATRIGGER:
|
||||
RemoveFromMap((AreaTrigger*)obj, 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);
|
||||
|
||||
Reference in New Issue
Block a user