aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <none@none>2010-12-19 00:01:22 +0100
committerShauren <none@none>2010-12-19 00:01:22 +0100
commit43377b4daf8aac7f603bf293171a7a914dbcc5fa (patch)
tree96885b35275dc23eedc55045fddb21b935c6bb71 /src
parenta8214a682a09312a547fd84fd710826803b38efb (diff)
Core/Players: Remove player from transport before teleporting to graveyard, will fix infinite recursion when trying to access unavailable map
Core/Auras: Removed unneeded typecasting Closes issue #4862. --HG-- branch : trunk
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Entities/Player/Player.cpp7
-rwxr-xr-xsrc/server/game/Spells/Auras/SpellAuraEffects.cpp2
2 files changed, 8 insertions, 1 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index b1e4435c55a..13b8f2229f3 100755
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -1845,7 +1845,14 @@ bool Player::TeleportTo(uint32 mapid, float x, float y, float z, float orientati
sLog.outDebug("Player %s using client without required expansion tried teleport to non accessible map %u", GetName(), mapid);
if (GetTransport())
+ {
+ m_transport->RemovePassenger(this);
+ m_transport = NULL;
+ m_movementInfo.t_pos.Relocate(0.0f, 0.0f, 0.0f, 0.0f);
+ m_movementInfo.t_time = 0;
+ m_movementInfo.t_seat = -1;
RepopAtGraveyard(); // teleport to near graveyard if on transport, looks blizz like :)
+ }
SendTransferAborted(mapid, TRANSFER_ABORT_INSUF_EXPAN_LVL, mEntry->Expansion());
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
index b0edaf904b8..a7d279a77ee 100755
--- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp
+++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
@@ -1241,7 +1241,7 @@ void AuraEffect::SendTickImmune(Unit * target, Unit *caster) const
void AuraEffect::PeriodicTick(AuraApplication * aurApp, Unit * caster) const
{
- bool prevented = GetBase()->CallScriptEffectPeriodicHandlers(const_cast<AuraEffect const *>(this), aurApp);
+ bool prevented = GetBase()->CallScriptEffectPeriodicHandlers(this, aurApp);
if (prevented)
return;