diff options
author | XTZGZoReX <none@none> | 2010-01-30 15:32:25 +0100 |
---|---|---|
committer | XTZGZoReX <none@none> | 2010-01-30 15:32:25 +0100 |
commit | 168d315882d91cc2c62c427fbadf43134b10da32 (patch) | |
tree | 14d821c9c57b77d2b69c717ef402dd12d1ac3792 /src/game/QueryHandler.cpp | |
parent | 50f0279bdb031392d636e656d6f6d645170f646c (diff) |
* Revert [7239]. Research/code was wrong - caused wrong corpse position.
--HG--
branch : trunk
Diffstat (limited to 'src/game/QueryHandler.cpp')
-rw-r--r-- | src/game/QueryHandler.cpp | 76 |
1 files changed, 7 insertions, 69 deletions
diff --git a/src/game/QueryHandler.cpp b/src/game/QueryHandler.cpp index 849388575c5..9cb1020cedd 100644 --- a/src/game/QueryHandler.cpp +++ b/src/game/QueryHandler.cpp @@ -320,7 +320,7 @@ void WorldSession::HandleCorpseQueryOpcode(WorldPacket & /*recv_data*/) data << float(y); data << float(z); data << int32(corpsemapid); - data << uint32(corpse->GetGUIDLow()); + data << uint32(0); // unknown SendPacket(&data); } @@ -461,75 +461,13 @@ void WorldSession::HandleCorpseMapPositionQuery( WorldPacket & recv_data ) { sLog.outDebug( "WORLD: Recv CMSG_CORPSE_MAP_POSITION_QUERY" ); - uint32 lowGuid; - recv_data >> lowGuid; // not needed - - Player* player = _player; - Corpse* corpse = player->GetCorpse(); - if (!corpse) - return; + uint32 unk; + recv_data >> unk; WorldPacket data(CMSG_CORPSE_MAP_POSITION_QUERY_RESPONSE, 4+4+4+4); - - float cx, cy, cz; - - int32 mapId = corpse->GetMapId(); - MapEntry const * corpseMapEntry = sMapStore.LookupEntry(mapId); - if (corpseMapEntry->IsDungeon()) - { - float mx, my; - bool entranceFound = corpseMapEntry->GetEntrancePos(mapId, mx, my); - if (!entranceFound) - return; - - Map const * newMap = MapManager::Instance().CreateBaseMap(mapId); - uint32 zoneId = newMap->GetZoneId(mx, my, 0); - - float _mx = mx; - float _my = my; - Map2ZoneCoordinates(mx, my, zoneId); - - float x = corpse->GetPositionX(); - float y = corpse->GetPositionY(); - Map2ZoneCoordinates(x, y, zoneId); - - cx = x - mx; - cy = y - my; - cz = corpse->GetPositionZ() - newMap->GetHeight(_mx, _my, MAX_HEIGHT); - } - else - { - WorldSafeLocsEntry const *ClosestGrave = NULL; - - // Special handle for battleground maps - if (BattleGround *bg = player->GetBattleGround()) - ClosestGrave = bg->GetClosestGraveYard(player); - else - ClosestGrave = objmgr.GetClosestGraveYard(player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(), player->GetMapId(), player->GetTeam()); - - if (!ClosestGrave) - return; - - float x = corpse->GetPositionX(); - float y = corpse->GetPositionY(); - - Map const * newMap = MapManager::Instance().CreateBaseMap(mapId); - uint32 zoneId = newMap->GetZoneId(x, y, 0); - - float gx = ClosestGrave->x; - float gy = ClosestGrave->y; - Map2ZoneCoordinates(gx, gy, zoneId); - Map2ZoneCoordinates(x, y, zoneId); - - cx = x - gx; - cy = y - gy; - cz = corpse->GetPositionZ() - ClosestGrave->z; - } - - data << float(cx); - data << float(cy); - data << float(cz); - data << float(0); // unknown - + data << float(0); + data << float(0); + data << float(0); + data << float(0); SendPacket(&data); } |