aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorOvahlord <dreadkiller@gmx.de>2023-12-04 20:48:37 +0100
committerOvahlord <dreadkiller@gmx.de>2023-12-04 20:48:37 +0100
commit281d946c40c2263394b91abdaea76f94ff31dd97 (patch)
tree435a73a3e5ff064bd771eab483f604e939680a43 /src
parentda36e589652f32ae735be4fa300280bf9a2dc613 (diff)
Revert "Core/Players: Repop players at instance entrance when they release spirit (#29014)"
This reverts commit 9e9f67d6bd6dcaabbf52f5c6809ca69440736f47.
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Player/Player.cpp28
1 files changed, 15 insertions, 13 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index e558c19af21..691aa758912 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -4829,30 +4829,32 @@ void Player::RepopAtGraveyard()
SpawnCorpseBones();
}
- WorldSafeLocsEntry const* closestGrave = nullptr;
- if (Battleground* bg = GetBattleground())
- closestGrave = bg->GetClosestGraveyard(this);
- else if (Battlefield* bf = sBattlefieldMgr->GetBattlefieldToZoneId(GetMap(), GetZoneId()))
- closestGrave = bf->GetClosestGraveyard(this);
- else if (InstanceScript* instance = GetInstanceScript())
- closestGrave = sObjectMgr->GetWorldSafeLoc(instance->GetEntranceLocation());
+ WorldSafeLocsEntry const* ClosestGrave;
- if (!closestGrave)
- closestGrave = sObjectMgr->GetClosestGraveyard(*this, GetTeam(), this);
+ // Special handle for battleground maps
+ if (Battleground* bg = GetBattleground())
+ ClosestGrave = bg->GetClosestGraveyard(this);
+ else
+ {
+ if (Battlefield* bf = sBattlefieldMgr->GetBattlefieldToZoneId(GetMap(), GetZoneId()))
+ ClosestGrave = bf->GetClosestGraveyard(this);
+ else
+ ClosestGrave = sObjectMgr->GetClosestGraveyard(*this, GetTeam(), this);
+ }
// stop countdown until repop
m_deathTimer = 0;
// if no grave found, stay at the current location
// and don't show spirit healer location
- if (closestGrave)
+ if (ClosestGrave)
{
- TeleportTo(closestGrave->Loc, shouldResurrect ? TELE_REVIVE_AT_TELEPORT : TELE_TO_NONE);
+ TeleportTo(ClosestGrave->Loc, shouldResurrect ? TELE_REVIVE_AT_TELEPORT : TELE_TO_NONE);
if (isDead()) // not send if alive, because it used in TeleportTo()
{
WorldPackets::Misc::DeathReleaseLoc packet;
- packet.MapID = closestGrave->Loc.GetMapId();
- packet.Loc = closestGrave->Loc;
+ packet.MapID = ClosestGrave->Loc.GetMapId();
+ packet.Loc = ClosestGrave->Loc;
SendDirectMessage(packet.Write());
}
}