From ddda332ca6a228b28ad7464da1d93434648812e4 Mon Sep 17 00:00:00 2001 From: VladimirMangos Date: Fri, 5 Jun 2009 14:54:49 +0400 Subject: [PATCH] [7961] Use more fast code into HandleCorpseQueryOpcode. Also small changes in send data (if corpse exist data send always). --- src/game/QueryHandler.cpp | 28 ++++++++++++++++------------ src/shared/revision_nr.h | 2 +- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/game/QueryHandler.cpp b/src/game/QueryHandler.cpp index 2144bb32d..4422d6a04 100644 --- a/src/game/QueryHandler.cpp +++ b/src/game/QueryHandler.cpp @@ -287,21 +287,25 @@ void WorldSession::HandleCorpseQueryOpcode(WorldPacket & /*recv_data*/) float x = corpse->GetPositionX(); float y = corpse->GetPositionY(); float z = corpse->GetPositionZ(); - int32 corpsemapid = _player->GetMapId(); + int32 corpsemapid = mapid; - if(Map *map = MapManager::Instance().FindMap(corpse->GetMapId(), corpse->GetInstanceId())) + // if corpse at different map + if(mapid != _player->GetMapId()) { - if(map->IsDungeon()) + // search entrance map for proper show entrance + if(MapEntry const* corpseMapEntry = sMapStore.LookupEntry(mapid)) { - if(!map->GetEntrancePos(mapid, x, y)) - return; - - Map *entrance_map = MapManager::Instance().GetMap(mapid, _player); - if(!entrance_map) - return; - - z = entrance_map->GetHeight(x, y, MAX_HEIGHT); - corpsemapid = corpse->GetMapId(); + if(corpseMapEntry->IsDungeon() && corpseMapEntry->entrance_map >= 0) + { + // if corpse map have entrance + if(Map const* entranceMap = MapManager::Instance().GetBaseMap(corpseMapEntry->entrance_map)) + { + mapid = corpseMapEntry->entrance_map; + x = corpseMapEntry->entrance_x; + y = corpseMapEntry->entrance_y; + z = entranceMap->GetHeight(x, y, MAX_HEIGHT); + } + } } } diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 70301aa2d..4cedafe21 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "7960" + #define REVISION_NR "7961" #endif // __REVISION_NR_H__