aboutsummaryrefslogtreecommitdiff
path: root/src/server/game
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game')
-rw-r--r--src/server/game/Achievements/AchievementMgr.cpp2
-rw-r--r--src/server/game/Achievements/CriteriaHandler.cpp2
-rw-r--r--src/server/game/Battlefield/BattlefieldMgr.cpp2
-rw-r--r--src/server/game/Battlegrounds/BattlegroundMgr.cpp4
-rw-r--r--src/server/game/Conditions/ConditionMgr.cpp2
-rw-r--r--src/server/game/Globals/AreaTriggerDataStore.cpp4
-rw-r--r--src/server/game/Globals/ConversationDataStore.cpp2
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp37
-rw-r--r--src/server/game/Globals/ObjectMgr.h8
-rw-r--r--src/server/game/OutdoorPvP/OutdoorPvPMgr.cpp2
-rw-r--r--src/server/game/Quests/QuestDef.cpp2
-rw-r--r--src/server/game/Weather/WeatherMgr.cpp2
-rw-r--r--src/server/game/World/WorldStates/WorldStateMgr.cpp2
13 files changed, 36 insertions, 35 deletions
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp
index 8cdc4bc2f46..b7adb40ddde 100644
--- a/src/server/game/Achievements/AchievementMgr.cpp
+++ b/src/server/game/Achievements/AchievementMgr.cpp
@@ -1158,7 +1158,7 @@ void AchievementGlobalMgr::LoadAchievementScripts()
Field* fields = result->Fetch();
uint32 achievementId = fields[0].GetUInt32();
- std::string scriptName = fields[1].GetString();
+ std::string_view scriptName = fields[1].GetStringView();
AchievementEntry const* achievement = sAchievementStore.LookupEntry(achievementId);
if (!achievement)
diff --git a/src/server/game/Achievements/CriteriaHandler.cpp b/src/server/game/Achievements/CriteriaHandler.cpp
index 3e1b4887956..3d444c2948c 100644
--- a/src/server/game/Achievements/CriteriaHandler.cpp
+++ b/src/server/game/Achievements/CriteriaHandler.cpp
@@ -4945,7 +4945,7 @@ void CriteriaMgr::LoadCriteriaData()
}
uint32 dataType = fields[1].GetUInt8();
- std::string scriptName = fields[4].GetString();
+ std::string_view scriptName = fields[4].GetStringView();
uint32 scriptId = 0;
if (!scriptName.empty())
{
diff --git a/src/server/game/Battlefield/BattlefieldMgr.cpp b/src/server/game/Battlefield/BattlefieldMgr.cpp
index 62df11e2b50..4847bd56ca5 100644
--- a/src/server/game/Battlefield/BattlefieldMgr.cpp
+++ b/src/server/game/Battlefield/BattlefieldMgr.cpp
@@ -64,7 +64,7 @@ void BattlefieldMgr::InitBattlefield()
continue;
}
- BattlefieldIdToScriptId[typeId] = sObjectMgr->GetScriptId(fields[1].GetString());
+ BattlefieldIdToScriptId[typeId] = sObjectMgr->GetScriptId(fields[1].GetStringView());
++count;
} while (result->NextRow());
diff --git a/src/server/game/Battlegrounds/BattlegroundMgr.cpp b/src/server/game/Battlegrounds/BattlegroundMgr.cpp
index 8aed0d9d500..2739854926b 100644
--- a/src/server/game/Battlegrounds/BattlegroundMgr.cpp
+++ b/src/server/game/Battlegrounds/BattlegroundMgr.cpp
@@ -283,7 +283,7 @@ void BattlegroundMgr::LoadBattlegroundScriptTemplate()
BattlegroundScriptTemplate& scriptTemplate = _battlegroundScriptTemplates[{ mapID, bgTypeId }];
scriptTemplate.MapId = mapID;
scriptTemplate.Id = bgTypeId;
- scriptTemplate.ScriptId = sObjectMgr->GetScriptId(fields[2].GetString());
+ scriptTemplate.ScriptId = sObjectMgr->GetScriptId(fields[2].GetStringView());
++count;
} while (result->NextRow());
@@ -406,7 +406,7 @@ void BattlegroundMgr::LoadBattlegroundTemplates()
float dist = fields[3].GetFloat();
bgTemplate.MaxStartDistSq = dist * dist;
bgTemplate.Weight = fields[4].GetUInt8();
- bgTemplate.ScriptId = sObjectMgr->GetScriptId(fields[5].GetString());
+ bgTemplate.ScriptId = sObjectMgr->GetScriptId(fields[5].GetStringView());
bgTemplate.BattlemasterEntry = bl;
bgTemplate.MapIDs = std::move(mapsByBattleground[bgTypeId]);
diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp
index 3838f6a63a9..fcf78441463 100644
--- a/src/server/game/Conditions/ConditionMgr.cpp
+++ b/src/server/game/Conditions/ConditionMgr.cpp
@@ -1336,7 +1336,7 @@ void ConditionMgr::LoadConditions(bool isReload)
cond.NegativeCondition = fields[11].GetBool();
cond.ErrorType = fields[12].GetUInt32();
cond.ErrorTextId = fields[13].GetUInt32();
- cond.ScriptId = sObjectMgr->GetScriptId(fields[14].GetString());
+ cond.ScriptId = sObjectMgr->GetScriptId(fields[14].GetStringView());
if (iConditionTypeOrReference >= 0)
cond.ConditionType = ConditionTypes(iConditionTypeOrReference);
diff --git a/src/server/game/Globals/AreaTriggerDataStore.cpp b/src/server/game/Globals/AreaTriggerDataStore.cpp
index 705dfff7084..55a64148916 100644
--- a/src/server/game/Globals/AreaTriggerDataStore.cpp
+++ b/src/server/game/Globals/AreaTriggerDataStore.cpp
@@ -288,7 +288,7 @@ void AreaTriggerDataStore::LoadAreaTriggerTemplates()
break;
}
- createProperties.ScriptId = sObjectMgr->GetScriptId(fields.ScriptName().GetString());
+ createProperties.ScriptId = sObjectMgr->GetScriptId(fields.ScriptName().GetStringView());
if (std::vector<Position>* spline = Trinity::Containers::MapGetValuePtr(splinesByCreateProperties, createProperties.Id))
createProperties.Movement = std::move(*spline);
@@ -439,7 +439,7 @@ void AreaTriggerDataStore::LoadAreaTriggerSpawns()
spawn.phaseId = fields[10].GetUInt32();
spawn.phaseGroup = fields[11].GetUInt32();
- spawn.scriptId = sObjectMgr->GetScriptId(fields[12].GetString());
+ spawn.scriptId = sObjectMgr->GetScriptId(fields[12].GetStringView());
spawn.spawnGroupData = sObjectMgr->GetLegacySpawnGroup();
// Add the trigger to a map::cell map, which is later used by GridLoader to query
diff --git a/src/server/game/Globals/ConversationDataStore.cpp b/src/server/game/Globals/ConversationDataStore.cpp
index fe2b5695293..eeba90a2032 100644
--- a/src/server/game/Globals/ConversationDataStore.cpp
+++ b/src/server/game/Globals/ConversationDataStore.cpp
@@ -241,7 +241,7 @@ void ConversationDataStore::LoadConversationTemplates()
conversationTemplate.FirstLineId = fields[1].GetUInt32();
conversationTemplate.TextureKitId = fields[2].GetUInt32();
conversationTemplate.Flags = (ConversationFlags)fields[3].GetUInt8();
- conversationTemplate.ScriptId = sObjectMgr->GetScriptId(fields[4].GetString());
+ conversationTemplate.ScriptId = sObjectMgr->GetScriptId(fields[4].GetStringView());
conversationTemplate.Actors = std::move(actorsByConversation[conversationTemplate.Id]);
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index dfb0beeb00e..f715dd6d6ac 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -465,7 +465,7 @@ void ObjectMgr::LoadCreatureTemplate(Field* fields)
creatureTemplate.RegenHealth = fields[40].GetBool();
creatureTemplate.CreatureImmunitiesId = fields[41].GetInt32();
creatureTemplate.flags_extra = fields[42].GetUInt32();
- creatureTemplate.ScriptID = GetScriptId(fields[43].GetString());
+ creatureTemplate.ScriptID = GetScriptId(fields[43].GetStringView());
creatureTemplate.StringId = fields[44].GetString();
}
@@ -2184,7 +2184,7 @@ void ObjectMgr::LoadCreatures()
data.phaseId = fields[22].GetUInt32();
data.phaseGroup = fields[23].GetUInt32();
data.terrainSwapMap = fields[24].GetInt32();
- data.scriptId = GetScriptId(fields[25].GetString());
+ data.scriptId = GetScriptId(fields[25].GetStringView());
data.StringId = fields[26].GetString();
data.spawnGroupData = IsTransportMap(data.mapId) ? GetLegacySpawnGroup() : GetDefaultSpawnGroup(); // transport spawns default to compatibility group
@@ -2654,7 +2654,7 @@ void ObjectMgr::LoadGameObjects()
}
}
- data.scriptId = GetScriptId(fields[21].GetString());
+ data.scriptId = GetScriptId(fields[21].GetStringView());
data.StringId = fields[22].GetString();
if (data.rotation.x < -1.0f || data.rotation.x > 1.0f)
@@ -3431,7 +3431,7 @@ void ObjectMgr::LoadItemScriptNames()
continue;
}
- itemTemplate->ScriptId = GetScriptId(fields[1].GetString());
+ itemTemplate->ScriptId = GetScriptId(fields[1].GetStringView());
++count;
} while (result->NextRow());
}
@@ -6027,7 +6027,7 @@ void ObjectMgr::LoadEventScripts()
Field* fields = result->Fetch();
uint32 eventId = fields[0].GetUInt32();
- std::string const scriptName = fields[1].GetString();
+ std::string_view scriptName = fields[1].GetStringView();
if (!IsValidEvent(eventId))
{
@@ -6063,7 +6063,7 @@ void ObjectMgr::LoadSpellScriptNames()
Field* fields = result->Fetch();
int32 spellId = fields[0].GetInt32();
- std::string const scriptName = fields[1].GetString();
+ std::string_view scriptName = fields[1].GetStringView();
bool allRanks = false;
if (spellId < 0)
@@ -6279,7 +6279,7 @@ void ObjectMgr::LoadInstanceTemplate()
InstanceTemplate instanceTemplate;
instanceTemplate.Parent = uint32(fields[1].GetUInt16());
- instanceTemplate.ScriptId = GetScriptId(fields[2].GetString());
+ instanceTemplate.ScriptId = GetScriptId(fields[2].GetStringView());
_instanceTemplateStore[mapID] = instanceTemplate;
@@ -6699,7 +6699,7 @@ void ObjectMgr::LoadAreaTriggerScripts()
Field* fields = result->Fetch();
uint32 triggerId = fields[0].GetUInt32();
- std::string const scriptName = fields[1].GetString();
+ std::string_view scriptName = fields[1].GetStringView();
AreaTriggerEntry const* atEntry = sAreaTriggerStore.LookupEntry(triggerId);
if (!atEntry)
@@ -7705,7 +7705,7 @@ void ObjectMgr::LoadGameObjectTemplate()
got.ContentTuningId = fields[43].GetInt32();
got.AIName = fields[44].GetString();
- got.ScriptId = GetScriptId(fields[45].GetString());
+ got.ScriptId = GetScriptId(fields[45].GetStringView());
got.StringId = fields[46].GetString();
// Checks
@@ -10032,16 +10032,17 @@ void ObjectMgr::ScriptNameContainer::reserve(size_t capacity)
IndexToName.reserve(capacity);
}
-uint32 ObjectMgr::ScriptNameContainer::insert(std::string const& scriptName, bool isScriptNameBound)
+uint32 ObjectMgr::ScriptNameContainer::insert(std::string_view scriptName, bool isScriptNameBound)
{
- auto result = NameToIndex.try_emplace(scriptName, static_cast<uint32>(NameToIndex.size()), isScriptNameBound);
- if (result.second)
+ auto result = NameToIndex.lower_bound(scriptName);
+ if (result == NameToIndex.end() || NameToIndex.key_comp()(scriptName, result->first))
{
ASSERT(NameToIndex.size() <= std::numeric_limits<uint32>::max());
- IndexToName.emplace_back(result.first);
+ result = NameToIndex.emplace_hint(result, scriptName, Entry(static_cast<uint32>(NameToIndex.size()), isScriptNameBound));
+ IndexToName.emplace_back(result);
}
- return result.first->second.Id;
+ return result->second.Id;
}
size_t ObjectMgr::ScriptNameContainer::size() const
@@ -10054,7 +10055,7 @@ ObjectMgr::ScriptNameContainer::NameMap::const_iterator ObjectMgr::ScriptNameCon
return index < IndexToName.size() ? IndexToName[index] : end();
}
-ObjectMgr::ScriptNameContainer::NameMap::const_iterator ObjectMgr::ScriptNameContainer::find(std::string const& name) const
+ObjectMgr::ScriptNameContainer::NameMap::const_iterator ObjectMgr::ScriptNameContainer::find(std::string_view name) const
{
// assume "" is the first element
if (name.empty())
@@ -10115,7 +10116,7 @@ bool ObjectMgr::IsScriptDatabaseBound(uint32 id) const
}
}
-uint32 ObjectMgr::GetScriptId(std::string const& name, bool isDatabaseBound)
+uint32 ObjectMgr::GetScriptId(std::string_view name, bool isDatabaseBound)
{
return _scriptNamesStore.insert(name, isDatabaseBound);
}
@@ -11105,7 +11106,7 @@ void ObjectMgr::LoadSceneTemplates()
sceneTemplate.PlaybackFlags = static_cast<SceneFlag>(fields[1].GetUInt32());
sceneTemplate.ScenePackageId = fields[2].GetUInt32();
sceneTemplate.Encrypted = fields[3].GetUInt8() != 0;
- sceneTemplate.ScriptId = GetScriptId(fields[4].GetCString());
+ sceneTemplate.ScriptId = GetScriptId(fields[4].GetStringView());
} while (templates->NextRow());
@@ -11156,7 +11157,7 @@ void ObjectMgr::LoadPlayerChoices()
choice.ShowChoicesAsList = fields.ShowChoicesAsList().GetBool();
choice.ForceDontShowChoicesAsList = fields.ForceDontShowChoicesAsList().GetBool();
choice.MaxResponses = fields.MaxResponses().GetUInt32OrNull();
- choice.ScriptId = GetScriptId(fields.ScriptName().GetString());
+ choice.ScriptId = GetScriptId(fields.ScriptName().GetStringView());
} while (choices->NextRow());
}
diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h
index b8c4cc292ff..16cb17696cc 100644
--- a/src/server/game/Globals/ObjectMgr.h
+++ b/src/server/game/Globals/ObjectMgr.h
@@ -1014,7 +1014,7 @@ class TC_GAME_API ObjectMgr
};
private:
- using NameMap = std::map<std::string, Entry>;
+ using NameMap = std::map<std::string, Entry, std::less<>>;
NameMap NameToIndex;
std::vector<NameMap::const_iterator> IndexToName;
@@ -1023,10 +1023,10 @@ class TC_GAME_API ObjectMgr
ScriptNameContainer();
void reserve(size_t capacity);
- uint32 insert(std::string const& scriptName, bool isScriptNameBound = true);
+ uint32 insert(std::string_view scriptName, bool isScriptNameBound = true);
size_t size() const;
NameMap::const_iterator find(size_t index) const;
- NameMap::const_iterator find(std::string const& name) const;
+ NameMap::const_iterator find(std::string_view name) const;
NameMap::const_iterator end() const;
std::unordered_set<std::string> GetAllDBScriptNames() const;
@@ -1578,7 +1578,7 @@ class TC_GAME_API ObjectMgr
std::unordered_set<std::string> GetAllDBScriptNames() const;
std::string const& GetScriptName(uint32 id) const;
bool IsScriptDatabaseBound(uint32 id) const;
- uint32 GetScriptId(std::string const& name, bool isDatabaseBound = true);
+ uint32 GetScriptId(std::string_view name, bool isDatabaseBound = true);
Trinity::IteratorPair<SpellClickInfoContainer::const_iterator> GetSpellClickInfoMapBounds(uint32 creature_id) const
{
diff --git a/src/server/game/OutdoorPvP/OutdoorPvPMgr.cpp b/src/server/game/OutdoorPvP/OutdoorPvPMgr.cpp
index d98f805342e..3632a1ca6ec 100644
--- a/src/server/game/OutdoorPvP/OutdoorPvPMgr.cpp
+++ b/src/server/game/OutdoorPvP/OutdoorPvPMgr.cpp
@@ -78,7 +78,7 @@ void OutdoorPvPMgr::InitOutdoorPvP()
continue;
}
- m_OutdoorPvPDatas[typeId] = sObjectMgr->GetScriptId(fields[1].GetString());
+ m_OutdoorPvPDatas[typeId] = sObjectMgr->GetScriptId(fields[1].GetStringView());
++count;
}
diff --git a/src/server/game/Quests/QuestDef.cpp b/src/server/game/Quests/QuestDef.cpp
index 610212d40a6..2903c93823f 100644
--- a/src/server/game/Quests/QuestDef.cpp
+++ b/src/server/game/Quests/QuestDef.cpp
@@ -257,7 +257,7 @@ void Quest::LoadQuestTemplateAddon(Field* fields)
_requiredMaxRepValue = fields[15].GetInt32();
_sourceItemIdCount = fields[16].GetUInt8();
_specialFlags = fields[17].GetUInt8();
- _scriptId = sObjectMgr->GetScriptId(fields[18].GetString());
+ _scriptId = sObjectMgr->GetScriptId(fields[18].GetStringView());
if (_specialFlags & QUEST_SPECIAL_FLAGS_AUTO_ACCEPT)
_flags |= QUEST_FLAGS_AUTO_ACCEPT;
diff --git a/src/server/game/Weather/WeatherMgr.cpp b/src/server/game/Weather/WeatherMgr.cpp
index 833b26a81ff..75d19440b07 100644
--- a/src/server/game/Weather/WeatherMgr.cpp
+++ b/src/server/game/Weather/WeatherMgr.cpp
@@ -92,7 +92,7 @@ void LoadWeatherData()
}
}
- wzc.ScriptId = sObjectMgr->GetScriptId(fields[13].GetString());
+ wzc.ScriptId = sObjectMgr->GetScriptId(fields[13].GetStringView());
++count;
}
diff --git a/src/server/game/World/WorldStates/WorldStateMgr.cpp b/src/server/game/World/WorldStates/WorldStateMgr.cpp
index 9877bde5b85..df34905ba0c 100644
--- a/src/server/game/World/WorldStates/WorldStateMgr.cpp
+++ b/src/server/game/World/WorldStates/WorldStateMgr.cpp
@@ -126,7 +126,7 @@ void WorldStateMgr::LoadFromDB()
id, areaIds);
}
- worldState.ScriptId = sObjectMgr->GetScriptId(fields[4].GetString());
+ worldState.ScriptId = sObjectMgr->GetScriptId(fields[4].GetStringView());
if (!worldState.MapIds.empty())
{