From 2e455eee86e69265712dda4f0e82056765961d41 Mon Sep 17 00:00:00 2001 From: Shauren Date: Wed, 8 Oct 2014 20:24:55 +0200 Subject: Core/Entities: Removed the possibility to teleport non-player objects to different maps --- src/server/game/Entities/Creature/Creature.cpp | 10 ---------- src/server/game/Entities/Creature/Creature.h | 2 -- src/server/game/Entities/Transport/Transport.cpp | 14 +------------- 3 files changed, 1 insertion(+), 25 deletions(-) (limited to 'src') diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index 8b338351ab4..9f28305e3cf 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -2410,16 +2410,6 @@ std::string const & Creature::GetNameForLocaleIdx(LocaleConstant loc_idx) const return GetName(); } -//Do not if this works or not, moving creature to another map is very dangerous -void Creature::FarTeleportTo(Map* map, float X, float Y, float Z, float O) -{ - CleanupBeforeRemoveFromMap(false); - GetMap()->RemoveFromMap(this, false); - Relocate(X, Y, Z, O); - SetMap(map); - GetMap()->AddToMap(this); -} - uint32 Creature::GetPetAutoSpellOnPos(uint8 pos) const { if (pos >= MAX_SPELL_CHARM || m_charmInfo->GetCharmSpell(pos)->GetType() != ACT_ENABLED) diff --git a/src/server/game/Entities/Creature/Creature.h b/src/server/game/Entities/Creature/Creature.h index 4cebe5b03b3..43ae3d81348 100644 --- a/src/server/game/Entities/Creature/Creature.h +++ b/src/server/game/Entities/Creature/Creature.h @@ -671,8 +671,6 @@ class Creature : public Unit, public GridObject, public MapObject float m_SightDistance, m_CombatDistance; - void FarTeleportTo(Map* map, float X, float Y, float Z, float O); - bool m_isTempWorldObject; //true when possessed // Handling caster facing during spellcast diff --git a/src/server/game/Entities/Transport/Transport.cpp b/src/server/game/Entities/Transport/Transport.cpp index 777cd992c71..67d90afda60 100644 --- a/src/server/game/Entities/Transport/Transport.cpp +++ b/src/server/game/Entities/Transport/Transport.cpp @@ -608,19 +608,6 @@ bool Transport::TeleportTransport(uint32 newMapid, float x, float y, float z, fl switch (obj->GetTypeId()) { - case TYPEID_UNIT: - if (!obj->ToUnit()->GetOwnerGUID().IsPlayer()) // pets should be teleported with player - obj->ToCreature()->FarTeleportTo(newMap, destX, destY, destZ, destO); - break; - case TYPEID_GAMEOBJECT: - { - GameObject* go = obj->ToGameObject(); - go->GetMap()->RemoveFromMap(go, false); - go->Relocate(destX, destY, destZ, destO); - go->SetMap(newMap); - newMap->AddToMap(go); - break; - } case TYPEID_PLAYER: if (!obj->ToPlayer()->TeleportTo(newMapid, destX, destY, destZ, destO, TELE_TO_NOT_LEAVE_TRANSPORT)) RemovePassenger(obj); @@ -629,6 +616,7 @@ bool Transport::TeleportTransport(uint32 newMapid, float x, float y, float z, fl obj->AddObjectToRemoveList(); break; default: + RemovePassenger(obj); break; } } -- cgit v1.2.3