fix: update homeBindZoneId on SMSG_PLAYERBOUND so hearthstone tooltip stays accurate

SMSG_PLAYERBOUND fires when the player sets a new hearthstone location.
Previously homeBindMapId_ and homeBindZoneId_ were only set by
SMSG_BINDPOINTUPDATE (login), so the tooltip would show the old zone
until next login. Now both are updated on SMSG_PLAYERBOUND as well.
This commit is contained in:
Kelsi 2026-03-13 10:33:44 -07:00
parent 605d046838
commit fa9017c6dc

View file

@ -2202,8 +2202,11 @@ void GameHandler::handlePacket(network::Packet& packet) {
// uint64 binderGuid + uint32 mapId + uint32 zoneId
if (packet.getSize() - packet.getReadPos() < 16) break;
/*uint64_t binderGuid =*/ packet.readUInt64();
/*uint32_t mapId =*/ packet.readUInt32();
uint32_t mapId = packet.readUInt32();
uint32_t zoneId = packet.readUInt32();
// Update home bind location so hearthstone tooltip reflects the new zone
homeBindMapId_ = mapId;
homeBindZoneId_ = zoneId;
std::string pbMsg = "Your home location has been set";
std::string zoneName = getAreaName(zoneId);
if (!zoneName.empty())