diff options
| author | Shauren <shauren.trinity@gmail.com> | 2025-05-07 15:41:41 +0200 |
|---|---|---|
| committer | Ovahlord <dreadkiller@gmx.de> | 2025-05-11 11:46:06 +0200 |
| commit | 412c5416f9406548c5b59569fbbcf47438f72f07 (patch) | |
| tree | e36a9e9b50f689fa0627f9bc390d86bcb6445cd1 /src/server/game/Entities | |
| parent | 18436298f43372edef32587ed1bf6e6f625c200c (diff) | |
Core/Misc: Minor compile time improving changes
(cherry picked from commit b5c99939a82ed956cd185cd7a2ede838e2fdf23e)
# Conflicts:
# src/server/game/Entities/Item/Item.cpp
# src/server/game/Entities/Item/Item.h
# src/server/game/Entities/Player/Player.cpp
# src/server/game/Entities/Player/Player.h
Diffstat (limited to 'src/server/game/Entities')
| -rw-r--r-- | src/server/game/Entities/Conversation/Conversation.cpp | 10 | ||||
| -rw-r--r-- | src/server/game/Entities/Conversation/Conversation.h | 3 |
2 files changed, 8 insertions, 5 deletions
diff --git a/src/server/game/Entities/Conversation/Conversation.cpp b/src/server/game/Entities/Conversation/Conversation.cpp index 41abd36fc54..b7b70ec0689 100644 --- a/src/server/game/Entities/Conversation/Conversation.cpp +++ b/src/server/game/Entities/Conversation/Conversation.cpp @@ -200,12 +200,13 @@ void Conversation::Create(ObjectGuid::LowType lowGuid, uint32 conversationEntry, lineField.ActorIndex = line->ActorIdx; lineField.Flags = line->Flags; + std::array<Milliseconds, TOTAL_LOCALES>& startTimes = _lineStartTimes[line->Id]; for (LocaleConstant locale = LOCALE_enUS; locale < TOTAL_LOCALES; locale = LocaleConstant(locale + 1)) { if (locale == LOCALE_none) continue; - _lineStartTimes[{ locale, line->Id }] = _lastLineEndTimes[locale]; + startTimes[locale] = _lastLineEndTimes[locale]; if (locale == DEFAULT_LOCALE) lineField.StartTime = _lastLineEndTimes[locale].count(); @@ -216,7 +217,7 @@ void Conversation::Create(ObjectGuid::LowType lowGuid, uint32 conversationEntry, } } - _duration = Milliseconds(*std::max_element(_lastLineEndTimes.begin(), _lastLineEndTimes.end())); + _duration = *std::ranges::max_element(_lastLineEndTimes); SetUpdateFieldValue(m_values.ModifyValue(&Conversation::m_conversationData).ModifyValue(&UF::ConversationData::LastLineEndTime), _duration.count()); SetUpdateFieldValue(m_values.ModifyValue(&Conversation::m_conversationData).ModifyValue(&UF::ConversationData::Lines), std::move(lines)); @@ -277,7 +278,10 @@ void Conversation::AddActor(int32 actorId, uint32 actorIdx, ConversationActorTyp Milliseconds const* Conversation::GetLineStartTime(LocaleConstant locale, int32 lineId) const { - return Trinity::Containers::MapGetValuePtr(_lineStartTimes, { locale, lineId }); + if (std::array<Milliseconds, TOTAL_LOCALES> const* durations = Trinity::Containers::MapGetValuePtr(_lineStartTimes, lineId)) + return &(*durations)[locale]; + + return nullptr; } Milliseconds Conversation::GetLastLineEndTime(LocaleConstant locale) const diff --git a/src/server/game/Entities/Conversation/Conversation.h b/src/server/game/Entities/Conversation/Conversation.h index 4f85809b5ba..96cfd6dda77 100644 --- a/src/server/game/Entities/Conversation/Conversation.h +++ b/src/server/game/Entities/Conversation/Conversation.h @@ -20,7 +20,6 @@ #include "Object.h" #include "GridObject.h" -#include "Hash.h" class ConversationAI; class Unit; @@ -100,7 +99,7 @@ class TC_GAME_API Conversation final : public WorldObject, public GridObject<Con Milliseconds _duration; uint32 _textureKitId; - std::unordered_map<std::pair<LocaleConstant /*locale*/, int32 /*lineId*/>, Milliseconds /*startTime*/> _lineStartTimes; + std::unordered_map<int32 /*lineId*/, std::array<Milliseconds, TOTAL_LOCALES> /*startTime*/> _lineStartTimes; std::array<Milliseconds /*endTime*/, TOTAL_LOCALES> _lastLineEndTimes; std::unique_ptr<ConversationAI> _ai; |
