diff options
author | Shauren <shauren.trinity@gmail.com> | 2022-07-20 18:55:40 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-07-20 18:55:40 +0200 |
commit | 8466894d816f484f30cdbe47b980a142870c955e (patch) | |
tree | bbb66264042eb8db2d490f37bf8b412f514d68eb /src | |
parent | 51d7ff6f0bb4a512ff3dc912f2574e3087014553 (diff) |
Core/Maps: Replace some Instanceable() checks with IsDungeon()
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/DataStores/DB2Stores.cpp | 8 | ||||
-rw-r--r-- | src/server/game/DataStores/DB2Stores.h | 2 | ||||
-rw-r--r-- | src/server/game/Instances/InstanceSaveMgr.cpp | 7 | ||||
-rw-r--r-- | src/server/game/Maps/MapInstanced.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Maps/MapManager.cpp | 10 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_go.cpp | 11 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_misc.cpp | 2 |
7 files changed, 19 insertions, 25 deletions
diff --git a/src/server/game/DataStores/DB2Stores.cpp b/src/server/game/DataStores/DB2Stores.cpp index aa7b2ab74ab..4bff5ce4d23 100644 --- a/src/server/game/DataStores/DB2Stores.cpp +++ b/src/server/game/DataStores/DB2Stores.cpp @@ -3332,11 +3332,11 @@ bool DB2Manager::GetUiMapPosition(float x, float y, float z, int32 mapId, int32 return true; } -void DB2Manager::Zone2MapCoordinates(uint32 areaId, float& x, float& y) const +bool DB2Manager::Zone2MapCoordinates(uint32 areaId, float& x, float& y) const { AreaTableEntry const* areaEntry = sAreaTableStore.LookupEntry(areaId); if (!areaEntry) - return; + return false; for (auto assignment : Trinity::Containers::MapEqualRange(_uiMapAssignmentByArea[UI_MAP_SYSTEM_WORLD], areaId)) { @@ -3348,8 +3348,10 @@ void DB2Manager::Zone2MapCoordinates(uint32 areaId, float& x, float& y) const x = assignment.second->Region[0].X + tmpY * (assignment.second->Region[1].X - assignment.second->Region[0].X); y = assignment.second->Region[0].Y + tmpX * (assignment.second->Region[1].Y - assignment.second->Region[0].Y); - break; + return true; } + + return false; } void DB2Manager::Map2ZoneCoordinates(uint32 areaId, float& x, float& y) const diff --git a/src/server/game/DataStores/DB2Stores.h b/src/server/game/DataStores/DB2Stores.h index 5283c66d5db..3fba87f73b6 100644 --- a/src/server/game/DataStores/DB2Stores.h +++ b/src/server/game/DataStores/DB2Stores.h @@ -465,7 +465,7 @@ public: std::vector<TransmogSetItemEntry const*> const* GetTransmogSetItems(uint32 transmogSetId) const; static bool GetUiMapPosition(float x, float y, float z, int32 mapId, int32 areaId, int32 wmoDoodadPlacementId, int32 wmoGroupId, UiMapSystem system, bool local, int32* uiMapId = nullptr, DBCPosition2D* newPos = nullptr); - void Zone2MapCoordinates(uint32 areaId, float& x, float& y) const; + bool Zone2MapCoordinates(uint32 areaId, float& x, float& y) const; void Map2ZoneCoordinates(uint32 areaId, float& x, float& y) const; bool IsUiMapPhase(uint32 phaseId) const; WMOAreaTableEntry const* GetWMOAreaTable(int32 rootId, int32 adtId, int32 groupId) const; diff --git a/src/server/game/Instances/InstanceSaveMgr.cpp b/src/server/game/Instances/InstanceSaveMgr.cpp index 134223adc04..6e40a6fc026 100644 --- a/src/server/game/Instances/InstanceSaveMgr.cpp +++ b/src/server/game/Instances/InstanceSaveMgr.cpp @@ -608,7 +608,7 @@ void InstanceSaveManager::_ResetInstance(uint32 mapid, uint32 instanceId) { TC_LOG_DEBUG("maps", "InstanceSaveMgr::_ResetInstance %u, %u", mapid, instanceId); Map const* map = sMapMgr->CreateBaseMap(mapid); - if (!map->Instanceable()) + if (!map->IsDungeon()) return; InstanceSaveHashMap::iterator itr = m_instanceSaveById.find(instanceId); @@ -618,12 +618,9 @@ void InstanceSaveManager::_ResetInstance(uint32 mapid, uint32 instanceId) DeleteInstanceFromDB(instanceId); // even if save not loaded Map* iMap = ((MapInstanced*)map)->FindInstanceMap(instanceId); - - if (iMap && iMap->IsDungeon()) - ((InstanceMap*)iMap)->Reset(INSTANCE_RESET_RESPAWN_DELAY); - if (iMap) { + ((InstanceMap*)iMap)->Reset(INSTANCE_RESET_RESPAWN_DELAY); iMap->DeleteRespawnTimes(); iMap->DeleteCorpseData(); } diff --git a/src/server/game/Maps/MapInstanced.cpp b/src/server/game/Maps/MapInstanced.cpp index 934a807394f..7bb6c9a8460 100644 --- a/src/server/game/Maps/MapInstanced.cpp +++ b/src/server/game/Maps/MapInstanced.cpp @@ -141,7 +141,7 @@ Map* MapInstanced::CreateInstanceForPlayer(uint32 mapId, Player* player, uint32 } } } - else if (!IsGarrison()) + else if (IsDungeon()) { InstancePlayerBind* pBind = player->GetBoundInstance(GetId(), player->GetDifficultyID(GetEntry())); InstanceSave* pSave = pBind ? pBind->save : nullptr; @@ -198,7 +198,7 @@ Map* MapInstanced::CreateInstanceForPlayer(uint32 mapId, Player* player, uint32 map = CreateInstance(newInstanceId, nullptr, diff, player->GetTeamId()); } } - else + else if (IsGarrison()) { newInstanceId = player->GetGUID().GetCounter(); map = FindInstanceMap(newInstanceId); diff --git a/src/server/game/Maps/MapManager.cpp b/src/server/game/Maps/MapManager.cpp index e59e0cea265..ae040530b3c 100644 --- a/src/server/game/Maps/MapManager.cpp +++ b/src/server/game/Maps/MapManager.cpp @@ -293,11 +293,10 @@ uint32 MapManager::GetNumInstances() for (MapMapType::iterator itr = i_maps.begin(); itr != i_maps.end(); ++itr) { Map* map = itr->second; - if (!map->Instanceable()) + if (!map->IsDungeon()) continue; MapInstanced::InstancedMaps &maps = ((MapInstanced*)map)->GetInstancedMaps(); - for (MapInstanced::InstancedMaps::iterator mitr = maps.begin(); mitr != maps.end(); ++mitr) - if (mitr->second->IsDungeon()) ret++; + ret += maps.size(); } return ret; } @@ -310,12 +309,11 @@ uint32 MapManager::GetNumPlayersInInstances() for (MapMapType::iterator itr = i_maps.begin(); itr != i_maps.end(); ++itr) { Map* map = itr->second; - if (!map->Instanceable()) + if (!map->IsDungeon()) continue; MapInstanced::InstancedMaps &maps = ((MapInstanced*)map)->GetInstancedMaps(); for (MapInstanced::InstancedMaps::iterator mitr = maps.begin(); mitr != maps.end(); ++mitr) - if (mitr->second->IsDungeon()) - ret += ((InstanceMap*)mitr->second)->GetPlayers().getSize(); + ret += mitr->second->GetPlayers().getSize(); } return ret; } diff --git a/src/server/scripts/Commands/cs_go.cpp b/src/server/scripts/Commands/cs_go.cpp index 9aeffbad0b1..8977ec55f77 100644 --- a/src/server/scripts/Commands/cs_go.cpp +++ b/src/server/scripts/Commands/cs_go.cpp @@ -340,20 +340,17 @@ public: AreaTableEntry const* zoneEntry = areaEntry->ParentAreaID ? sAreaTableStore.LookupEntry(areaEntry->ParentAreaID) : areaEntry; ASSERT(zoneEntry); - Map* map = sMapMgr->CreateBaseMap(zoneEntry->ContinentID); + x /= 100.0f; + y /= 100.0f; - if (map->Instanceable()) + Map* map = sMapMgr->CreateBaseMap(zoneEntry->ContinentID); + if (!sDB2Manager.Zone2MapCoordinates(areaEntry->ParentAreaID ? uint32(areaEntry->ParentAreaID) : areaId, x, y)) { handler->PSendSysMessage(LANG_INVALID_ZONE_MAP, areaId, areaEntry->AreaName[handler->GetSessionDbcLocale()], map->GetId(), map->GetMapName()); handler->SetSentErrorMessage(true); return false; } - x /= 100.0f; - y /= 100.0f; - - sDB2Manager.Zone2MapCoordinates(areaEntry->ParentAreaID ? uint32(areaEntry->ParentAreaID) : areaId, x, y); - if (!MapManager::IsValidMapCoord(zoneEntry->ContinentID, x, y)) { handler->PSendSysMessage(LANG_INVALID_TARGET_COORD, x, y, uint32(zoneEntry->ContinentID)); diff --git a/src/server/scripts/Commands/cs_misc.cpp b/src/server/scripts/Commands/cs_misc.cpp index ceec104b317..9ef49a442ce 100644 --- a/src/server/scripts/Commands/cs_misc.cpp +++ b/src/server/scripts/Commands/cs_misc.cpp @@ -540,7 +540,7 @@ public: if (!target->GetMap()->IsBattlegroundOrArena()) target->SetBattlegroundEntryPoint(); } - else if (map->Instanceable()) + else if (map->IsDungeon()) { Map* targetMap = target->GetMap(); Player* targetGroupLeader = nullptr; |