aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-05-07 15:41:41 +0200
committerOvahlord <dreadkiller@gmx.de>2025-05-11 11:46:06 +0200
commit412c5416f9406548c5b59569fbbcf47438f72f07 (patch)
treee36a9e9b50f689fa0627f9bc390d86bcb6445cd1 /src/server/game/Entities
parent18436298f43372edef32587ed1bf6e6f625c200c (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.cpp10
-rw-r--r--src/server/game/Entities/Conversation/Conversation.h3
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;