diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 35 | ||||
| -rw-r--r-- | src/server/game/Globals/ObjectMgr.h | 7 | ||||
| -rw-r--r-- | src/server/game/Phasing/PhasingHandler.cpp | 5 | ||||
| -rw-r--r-- | src/server/game/World/World.cpp | 3 |
4 files changed, 48 insertions, 2 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 2b15f3874f3..029dd7eb455 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -11140,3 +11140,38 @@ void ObjectMgr::LoadJumpChargeParams() TC_LOG_INFO("server.loading", ">> Loaded " SZFMTD " Player Choice locale strings in %u ms", _jumpChargeParams.size(), GetMSTimeDiffToNow(oldMSTime)); } + +void ObjectMgr::LoadPhaseNames() +{ + uint32 oldMSTime = getMSTime(); + _phaseNameStore.clear(); + + // 0 1 + QueryResult result = WorldDatabase.Query("SELECT `ID`, `Name` FROM `phase_name`"); + + if (!result) + { + TC_LOG_INFO("server.loading", ">> Loaded 0 phase names. DB table `phase_name` is empty."); + return; + } + + uint32 count = 0; + do + { + Field* fields = result->Fetch(); + + uint32 phaseId = fields[0].GetUInt32(); + std::string name = fields[1].GetString(); + + _phaseNameStore[phaseId] = name; + + ++count; + } while (result->NextRow()); + TC_LOG_INFO("server.loading", ">> Loaded %u phase names in %u ms.", count, GetMSTimeDiffToNow(oldMSTime)); +} + +std::string ObjectMgr::GetPhaseName(uint32 phaseId) const +{ + PhaseNameContainer::const_iterator iter = _phaseNameStore.find(phaseId); + return iter != _phaseNameStore.end() ? iter->second : "Unknown Name"; +} diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h index 24858f18b3b..b5f5b7496a0 100644 --- a/src/server/game/Globals/ObjectMgr.h +++ b/src/server/game/Globals/ObjectMgr.h @@ -802,6 +802,8 @@ struct SceneTemplate typedef std::unordered_map<uint32, SceneTemplate> SceneTemplateContainer; +typedef std::unordered_map<uint32, std::string> PhaseNameContainer; + struct PlayerChoiceResponseRewardItem { PlayerChoiceResponseRewardItem() : Id(0), Quantity(0) { } @@ -1367,6 +1369,7 @@ class TC_GAME_API ObjectMgr void LoadPlayerChoicesLocale(); void LoadJumpChargeParams(); + void LoadPhaseNames(); void InitializeQueriesData(QueryDataGroup mask); @@ -1676,6 +1679,8 @@ class TC_GAME_API ObjectMgr std::string GetNormalizedRealmName(uint32 realm) const; bool GetRealmName(uint32 realmId, std::string& name, std::string& normalizedName) const; + std::string GetPhaseName(uint32 phaseId) const; + std::unordered_map<uint8, RaceUnlockRequirement> const& GetRaceUnlockRequirements() const { return _raceUnlockRequirementStore; } RaceUnlockRequirement const* GetRaceUnlockRequirement(uint8 race) const { @@ -1879,6 +1884,8 @@ class TC_GAME_API ObjectMgr std::unordered_map<int32, JumpChargeParams> _jumpChargeParams; + PhaseNameContainer _phaseNameStore; + std::set<uint32> _transportMaps; // Helper container storing map ids that are for transports only, loaded from gameobject_template }; diff --git a/src/server/game/Phasing/PhasingHandler.cpp b/src/server/game/Phasing/PhasingHandler.cpp index 7ac874c16c6..9fdb411395d 100644 --- a/src/server/game/Phasing/PhasingHandler.cpp +++ b/src/server/game/Phasing/PhasingHandler.cpp @@ -553,12 +553,13 @@ void PhasingHandler::PrintToChat(ChatHandler* chat, PhaseShift const& phaseShift std::string personal = sObjectMgr->GetTrinityString(LANG_PHASE_FLAG_PERSONAL, chat->GetSessionDbLocaleIndex()); for (PhaseShift::PhaseRef const& phase : phaseShift.Phases) { - phases << phase.Id; + phases << "\r\n"; + phases << ' ' << ' ' << ' '; + phases << phase.Id << ' ' << '(' << sObjectMgr->GetPhaseName(phase.Id) << ')'; if (phase.Flags.HasFlag(PhaseFlags::Cosmetic)) phases << ' ' << '(' << cosmetic << ')'; if (phase.Flags.HasFlag(PhaseFlags::Personal)) phases << ' ' << '(' << personal << ')'; - phases << ", "; } chat->PSendSysMessage(LANG_PHASESHIFT_PHASES, phases.str().c_str()); diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index b4912ecf8d7..0d2ac5b4cf0 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -2397,6 +2397,9 @@ void World::SetInitialWorldSettings() TC_LOG_INFO("server.loading", "Loading scenario poi data"); sScenarioMgr->LoadScenarioPOI(); + TC_LOG_INFO("server.loading", "Loading phase names..."); + sObjectMgr->LoadPhaseNames(); + // Preload all cells, if required for the base maps if (sWorld->getBoolConfig(CONFIG_BASEMAP_LOAD_GRIDS)) { |
