diff options
| author | linencloth <none@none> | 2010-10-25 02:30:50 +0200 |
|---|---|---|
| committer | linencloth <none@none> | 2010-10-25 02:30:50 +0200 |
| commit | 3742e8ddec39e82ee5ce2d596433077beae7902d (patch) | |
| tree | 111b10f39ae9a666e896f13b0b3c9311dc00b73e /src/server/game/Entities | |
| parent | 910264070c9105519a2057fff0b8c72f6c1b01c7 (diff) | |
Core/Transport: Prevent creature passengers from teleporting to an invalid grid.
--HG--
branch : trunk
Diffstat (limited to 'src/server/game/Entities')
| -rwxr-xr-x | src/server/game/Entities/Transport/Transport.cpp | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/src/server/game/Entities/Transport/Transport.cpp b/src/server/game/Entities/Transport/Transport.cpp index fdeba5ef755..a00fd51d4de 100755 --- a/src/server/game/Entities/Transport/Transport.cpp +++ b/src/server/game/Entities/Transport/Transport.cpp @@ -236,8 +236,6 @@ bool Transport::Create(uint32 guidlow, uint32 entry, uint32 mapid, float x, floa if (dynflags) SetUInt32Value(GAMEOBJECT_DYNAMIC, MAKE_PAIR32(0, dynflags)); - setActive(true); - SetName(goinfo->name); SetZoneScript(); @@ -516,8 +514,6 @@ void Transport::TeleportTransport(uint32 newMapid, float x, float y, float z) ASSERT (GetMap()); AddToWorld(); - setActive(true); - if (oldMap != newMap) { UpdateForMap(oldMap); @@ -526,8 +522,6 @@ void Transport::TeleportTransport(uint32 newMapid, float x, float y, float z) for (CreatureSet::iterator itr = m_NPCPassengerSet.begin(); itr != m_NPCPassengerSet.end(); ++itr) (*itr)->FarTeleportTo(newMap, x, y, z, (*itr)->GetOrientation()); - - UpdateNPCPositions(); } bool Transport::AddPassenger(Player* passenger) @@ -708,10 +702,9 @@ void Transport::UpdatePosition(MovementInfo* mi) void Transport::UpdateNPCPositions() { - // We update the positions of all NPCs - for(CreatureSet::iterator itr = m_NPCPassengerSet.begin(); itr != m_NPCPassengerSet.end();) + for (CreatureSet::iterator itr = m_NPCPassengerSet.begin(); itr != m_NPCPassengerSet.end(); ++itr) { - Creature* npc = *(itr++); + Creature* npc = *itr; float x, y, z, o; o = GetOrientation() + npc->m_movementInfo.t_pos.m_orientation; @@ -719,6 +712,6 @@ void Transport::UpdateNPCPositions() y = GetPositionY() + (npc->m_movementInfo.t_pos.m_positionY * cos(GetOrientation()) + npc->m_movementInfo.t_pos.m_positionX * sin(GetOrientation())); z = GetPositionZ() + npc->m_movementInfo.t_pos.m_positionZ; npc->SetHomePosition(x, y, z, o); - GetMap()->CreatureRelocation(npc, x, y, z, o); + GetMap()->CreatureRelocation(npc, x, y, z, o, false); } } |
