40#include <unordered_map>
413typedef std::pair<SpellScriptsContainer::iterator, SpellScriptsContainer::iterator>
SpellScriptsBounds;
425 FLAG_ACTIVATE_SPAWN = 0x01,
426 FLAG_BLOCK_SPAWN = 0x02,
427 FLAG_ALLIANCE_ONLY = 0x04,
428 FLAG_HORDE_ONLY = 0x08,
430 FLAG_ALL = (FLAG_ACTIVATE_SPAWN | FLAG_BLOCK_SPAWN | FLAG_ALLIANCE_ONLY | FLAG_HORDE_ONLY)
445 bool IsFitToRequirements(
Unit const* clicker,
Unit const* clickee)
const;
500 if (
Text1.size() >
size_t(locale) && !
Text1[locale].empty())
501 return Text1[locale];
506 if (
Text.size() >
size_t(locale) && !
Text[locale].empty())
598 Iterator(QuestRelations::const_iterator it, QuestRelations::const_iterator
end,
bool onlyActive)
620 QuestRelationResult(std::pair<QuestRelations::const_iterator, QuestRelations::const_iterator> range,
bool onlyActive)
797typedef std::pair<GossipMenusContainer::const_iterator, GossipMenusContainer::const_iterator>
GossipMenusMapBounds;
860typedef std::pair<GraveyardContainer::const_iterator, GraveyardContainer::const_iterator>
GraveyardMapBounds;
876#define MAX_PLAYER_NAME 12
877#define MAX_INTERNAL_PLAYER_NAME 15
878#define MAX_PET_NAME 12
879#define MAX_CHARTER_NAME 24
882#define SPAWNGROUP_MAP_UNSET 0xFFFFFFFF
932 friend class UnitTestDataLoader;
947 typedef std::unordered_map<uint32, Trinity::unique_trackable_ptr<Quest>>
QuestContainer;
967 uint32 LoadReferenceVendor(
int32 vendor,
int32 item, std::set<uint32>* skip_vendors);
969 void LoadGameObjectTemplate();
970 void LoadGameObjectTemplateAddons();
971 void LoadGameObjectOverrides();
993 ItemSetNameContainer::const_iterator itr = _itemSetNameStore.find(itemId);
994 if (itr != _itemSetNameStore.end())
1014 GameObjectQuestItemMap::const_iterator itr = _gameObjectQuestItemStore.find(
id);
1015 if (itr != _gameObjectQuestItemStore.end())
1016 return &itr->second;
1023 CreatureQuestItemMap::const_iterator itr = _creatureQuestItemStore.find(
id);
1024 if (itr != _creatureQuestItemStore.end())
1025 return &itr->second;
1034 Quest const* GetQuestTemplate(
uint32 quest_id)
const;
1040 QuestAreaTriggerContainer::const_iterator itr = _questAreaTriggerStore.find(Trigger_ID);
1041 if (itr != _questAreaTriggerStore.end())
1048 return _tavernAreaTriggerStore.find(Trigger_ID) != _tavernAreaTriggerStore.end();
1053 return _gameObjectForQuestStore.find(entry) != _gameObjectForQuestStore.end();
1062 void RemoveGraveyardLink(
uint32 id,
uint32 zoneId,
uint32 team,
bool persist =
false);
1063 void LoadGraveyardZones();
1071 uint32 GetAreaTriggerScriptId(
uint32 trigger_id)
const;
1076 RepRewardRateContainer::const_iterator itr = _repRewardRateStore.find(factionId);
1077 if (itr != _repRewardRateStore.end())
1078 return &itr->second;
1085 RepOnKillContainer::const_iterator itr = _repOnKillStore.find(
id);
1086 if (itr != _repOnKillStore.end())
1087 return &itr->second;
1095 RepSpilloverTemplateContainer::const_iterator itr = _repSpilloverTemplateStore.find(factionId);
1096 if (itr != _repSpilloverTemplateStore.end())
1097 return &itr->second;
1104 PointOfInterestContainer::const_iterator itr = _pointsOfInterestStore.find(
id);
1105 if (itr != _pointsOfInterestStore.end())
1106 return &itr->second;
1118 void LoadQuestStartersAndEnders();
1119 void LoadGameobjectQuestStarters();
1120 void LoadGameobjectQuestEnders();
1121 void LoadCreatureQuestStarters();
1122 void LoadCreatureQuestEnders();
1133 return _exclusiveQuestGroups.equal_range(exclusiveGroupId);
1136 bool LoadTrinityStrings();
1138 void LoadEventScripts();
1139 void LoadWaypointScripts();
1141 void LoadSpellScriptNames();
1142 void ValidateSpellScripts();
1144 void LoadBroadcastTexts();
1145 void LoadBroadcastTextLocales();
1146 void LoadCreatureClassLevelStats();
1147 void LoadCreatureLocales();
1148 void LoadCreatureTemplates();
1149 void LoadCreatureTemplateAddons();
1150 void LoadCreatureTemplate(
Field* fields);
1151 void LoadCreatureTemplateResistances();
1152 void LoadCreatureTemplateSpells();
1155 void LoadGameObjectQuestItems();
1156 void LoadCreatureQuestItems();
1157 void LoadTempSummons();
1158 void LoadCreatures();
1159 void LoadLinkedRespawn();
1161 void LoadCreatureAddons();
1162 void LoadGameObjectAddons();
1163 void LoadCreatureModelInfo();
1164 void LoadPlayerTotemModels();
1165 void LoadEquipmentTemplates();
1166 void LoadCreatureMovementOverrides();
1167 void LoadGameObjectLocales();
1168 void LoadGameObjects();
1169 void LoadSpawnGroupTemplates();
1170 void LoadSpawnGroups();
1171 void LoadInstanceSpawnGroups();
1172 void LoadItemTemplates();
1173 void LoadItemLocales();
1174 void LoadItemSetNames();
1175 void LoadItemSetNameLocales();
1176 void LoadQuestLocales();
1177 void LoadNpcTextLocales();
1178 void LoadQuestOfferRewardLocale();
1179 void LoadQuestRequestItemsLocale();
1180 void LoadPageTextLocales();
1181 void LoadGossipMenuItemsLocales();
1182 void LoadPointOfInterestLocales();
1183 void LoadQuestGreetingLocales();
1184 void LoadInstanceTemplate();
1185 void LoadInstanceEncounters();
1186 void LoadMailLevelRewards();
1187 void LoadVehicleTemplateAccessories();
1188 void LoadVehicleTemplate();
1189 void LoadVehicleAccessories();
1190 void LoadVehicleSeatAddon();
1192 void LoadGossipText();
1194 void LoadAreaTriggerTeleports();
1195 void LoadAccessRequirements();
1196 void LoadQuestAreaTriggers();
1197 void LoadQuestGreetings();
1198 void LoadAreaTriggerScripts();
1199 void LoadTavernAreaTriggers();
1200 void LoadGameObjectForQuests();
1202 void LoadPageTexts();
1205 void LoadPlayerInfo();
1206 void LoadPetLevelInfo();
1207 void LoadExplorationBaseXP();
1208 void LoadPetNames();
1209 void LoadPetNumber();
1210 void LoadFishingBaseSkillLevel();
1212 void LoadReputationRewardRate();
1213 void LoadReputationOnKill();
1214 void LoadReputationSpilloverTemplate();
1216 void LoadPointsOfInterest();
1217 void LoadQuestPOI();
1219 void LoadNPCSpellClickSpells();
1221 void LoadGameTele();
1223 void LoadGossipMenu();
1224 void LoadGossipMenuItems();
1227 void LoadTrainers();
1228 void LoadCreatureDefaultTrainers();
1232 std::string GeneratePetName(
uint32 entry);
1238 FishingBaseSkillContainer::const_iterator itr = _fishingBaseForAreaStore.find(entry);
1239 return itr != _fishingBaseForAreaStore.end() ? itr->second : 0;
1242 void ReturnOrDeleteOldMails(
bool serverUp);
1246 void SetHighestGuids();
1248 template<HighGu
id type>
1252 "Only global guid can be generated in ObjectMgr context");
1253 return GetGuidSequenceGenerator(type);
1256 uint32 GenerateAuctionID();
1257 uint64 GenerateEquipmentSetGuid();
1259 uint32 GeneratePetNumber();
1268 std::vector<InstanceSpawnGroupInfo>
const*
GetSpawnGroupsForInstance(
uint32 instanceId)
const {
auto it = _instanceSpawnGroupStore.find(instanceId);
return it != _instanceSpawnGroupStore.end() ? &it->second :
nullptr; }
1272 MailLevelRewardContainer::const_iterator map_itr = _mailLevelRewardStore.find(level);
1273 if (map_itr == _mailLevelRewardStore.end())
1276 for (MailLevelRewardList::const_iterator set_itr = map_itr->second.begin(); set_itr != map_itr->second.end(); ++set_itr)
1277 if (set_itr->raceMask & raceMask)
1298 TempSummonDataContainer::const_iterator itr = _tempSummonDataStore.find(
TempSummonGroupKey(summonerId, summonerType, group));
1299 if (itr != _tempSummonDataStore.end())
1300 return &itr->second;
1307 BroadcastTextContainer::const_iterator itr = _broadcastTextStore.find(
id);
1308 if (itr != _broadcastTextStore.end())
1309 return &itr->second;
1316 return GetSpawnData(type, spawnId);
1328 return GetCreatureData(spawnId);
1330 return GetGameObjectData(spawnId);
1336 void OnDeleteSpawnData(
SpawnData const* data);
1340 CreatureDataContainer::const_iterator itr = _creatureDataStore.find(spawnId);
1341 if (itr == _creatureDataStore.end())
return nullptr;
1342 return &itr->second;
1348 LinkedRespawnContainer::const_iterator itr = _linkedRespawnStore.find(spawnId);
1354 CreatureLocaleContainer::const_iterator itr = _creatureLocaleStore.find(entry);
1355 if (itr == _creatureLocaleStore.end())
return nullptr;
1356 return &itr->second;
1361 GameObjectDataContainer::const_iterator itr = _gameObjectDataStore.find(spawnId);
1362 if (itr == _gameObjectDataStore.end())
return nullptr;
1363 return &itr->second;
1369 GameObjectLocaleContainer::const_iterator itr = _gameObjectLocaleStore.find(entry);
1370 if (itr == _gameObjectLocaleStore.end())
return nullptr;
1371 return &itr->second;
1375 ItemLocaleContainer::const_iterator itr = _itemLocaleStore.find(entry);
1376 if (itr == _itemLocaleStore.end())
return nullptr;
1377 return &itr->second;
1381 ItemSetNameLocaleContainer::const_iterator itr = _itemSetNameLocaleStore.find(entry);
1382 if (itr == _itemSetNameLocaleStore.end())
return nullptr;
1383 return &itr->second;
1387 QuestLocaleContainer::const_iterator itr = _questLocaleStore.find(entry);
1388 if (itr == _questLocaleStore.end())
return nullptr;
1389 return &itr->second;
1393 auto itr = _questOfferRewardLocaleStore.find(entry);
1394 if (itr == _questOfferRewardLocaleStore.end())
return nullptr;
1395 return &itr->second;
1399 auto itr = _questRequestItemsLocaleStore.find(entry);
1400 if (itr == _questRequestItemsLocaleStore.end())
return nullptr;
1401 return &itr->second;
1405 NpcTextLocaleContainer::const_iterator itr = _npcTextLocaleStore.find(entry);
1406 if (itr == _npcTextLocaleStore.end())
return nullptr;
1407 return &itr->second;
1411 PageTextLocaleContainer::const_iterator itr = _pageTextLocaleStore.find(entry);
1412 if (itr == _pageTextLocaleStore.end())
return nullptr;
1413 return &itr->second;
1417 auto itr = _gossipMenuItemsLocaleStore.find(std::make_pair(menuId, optionId));
1418 if (itr == _gossipMenuItemsLocaleStore.end())
return nullptr;
1419 return &itr->second;
1423 PointOfInterestLocaleContainer::const_iterator itr = _pointOfInterestLocaleStore.find(
id);
1424 if (itr == _pointOfInterestLocaleStore.end())
return nullptr;
1425 return &itr->second;
1429 QuestGreetingLocaleContainer::const_iterator itr = _questGreetingLocaleStore.find(
id);
1430 if (itr == _questGreetingLocaleStore.end())
return nullptr;
1431 return &itr->second;
1436 TrinityStringContainer::const_iterator itr = _trinityStringStore.find(entry);
1437 if (itr == _trinityStringStore.end())
1439 return &itr->second;
1455 void LoadReservedPlayersNames();
1456 bool IsReservedName(std::string_view name)
const;
1461 static bool IsValidCharterName(std::string_view name);
1463 static bool CheckDeclinedNames(
const std::wstring& w_ownname,
DeclinedName const& names);
1467 GameTeleContainer::const_iterator itr = _gameTeleStore.find(
id);
1468 if (itr == _gameTeleStore.end())
return nullptr;
1469 return &itr->second;
1471 GameTele const* GetGameTele(std::string_view name)
const;
1472 GameTele const* GetGameTeleExactName(std::string_view name)
const;
1475 bool DeleteGameTele(std::string_view name);
1478 std::vector<Trainer::Trainer const*>
const&
GetClassTrainers(
uint8 classId)
const {
return _classTrainers.at(classId); }
1482 CacheVendorItemContainer::const_iterator iter = _cacheVendorItemStore.find(entry);
1483 if (iter == _cacheVendorItemStore.end())
1486 return &iter->second;
1489 bool RemoveVendorItem(
uint32 entry,
uint32 item,
bool persist =
true);
1490 bool IsVendorItemValid(
uint32 vendor_entry,
uint32 id,
int32 maxcount,
uint32 ptime,
uint32 ExtendedCost,
Player* player =
nullptr, std::set<uint32>* skip_vendors =
nullptr,
uint32 ORnpcflag = 0)
const;
1492 void LoadScriptNames();
1493 ScriptNameContainer
const& GetAllScriptNames()
const;
1494 std::string
const& GetScriptName(
uint32 id)
const;
1495 uint32 GetScriptId(std::string
const& name);
1504 return _gossipMenusStore.equal_range(uiMenuId);
1509 return _gossipMenusStore.equal_range(uiMenuId);
1514 return _gossipMenuItemsStore.equal_range(uiMenuId);
1518 return _gossipMenuItemsStore.equal_range(uiMenuId);
1524 static void AddLocaleString(std::string&& value,
LocaleConstant localeConstant, std::vector<std::string>& data);
1525 static std::string_view
GetLocaleString(std::vector<std::string>
const& data,
size_t locale)
1527 if (locale < data.size())
1528 return data[locale];
1534 if (std::string_view str = GetLocaleString(data,
static_cast<size_t>(localeConstant)); !str.empty())
1545 void LoadFactionChangeAchievements();
1546 void LoadFactionChangeItems();
1547 void LoadFactionChangeQuests();
1548 void LoadFactionChangeReputations();
1549 void LoadFactionChangeSpells();
1550 void LoadFactionChangeTitles();
1556 VehicleSeatAddonContainer::const_iterator itr = _vehicleSeatAddonStore.find(seatId);
1557 if (itr == _vehicleSeatAddonStore.end())
1560 return &itr->second;
1634 void LoadQuestRelationsHelper(
QuestRelations& map, std::string
const& table);
1721#define sObjectMgr ObjectMgr::instance()
std::vector< Condition * > ConditionContainer
std::unordered_map< uint32, VendorItemData > CacheVendorItemContainer
std::unordered_map< uint8, EquipmentInfo > EquipmentInfoContainerInternal
std::pair< GraveyardContainer::iterator, GraveyardContainer::iterator > GraveyardMapBoundsNonConst
@ SF_CASTSPELL_SOURCE_TO_SOURCE
@ SF_CASTSPELL_SOURCE_TO_TARGET
@ SF_CASTSPELL_TARGET_TO_SOURCE
@ SF_PLAYSOUND_DISTANCE_SOUND
@ SF_TELEPORT_USE_CREATURE
@ SF_KILLCREDIT_REWARD_GROUP
@ SF_PLAYSOUND_TARGET_PLAYER
@ SF_CASTSPELL_TARGET_TO_TARGET
@ SF_CASTSPELL_SEARCH_CREATURE
@ SF_ORIENTATION_FACE_TARGET
std::unordered_map< uint32, CreatureAddon > CreatureTemplateAddonContainer
std::unordered_map< uint32, CreatureModelInfo > CreatureModelContainer
std::vector< PlayerCreateInfoItem > PlayerCreateInfoItems
std::unordered_map< uint32, std::vector< uint32 > > CreatureQuestItemMap
std::set< ObjectGuid::LowType > CellGuidSet
std::multimap< uint32, SpawnMetadata const * > SpawnGroupLinkContainer
std::pair< GraveyardContainer::const_iterator, GraveyardContainer::const_iterator > GraveyardMapBounds
std::multimap< uint32, ScriptInfo > ScriptMap
std::unordered_map< uint32, QuestLocale > QuestLocaleContainer
std::unordered_map< uint32, QuestGreetingLocale > QuestGreetingLocaleContainer
SkillRangeType GetSkillRangeType(SkillRaceClassInfoEntry const *rcEntry)
std::pair< SpellScriptsContainer::iterator, SpellScriptsContainer::iterator > SpellScriptsBounds
std::unordered_map< uint32, ItemTemplate > ItemTemplateContainer
std::unordered_map< ObjectGuid::LowType, CreatureData > CreatureDataContainer
ScriptMapMap * GetScriptsMapByType(ScriptsType type)
std::unordered_map< uint32, CreatureLocale > CreatureLocaleContainer
std::map< std::pair< SummonSlot, Races >, uint32 > PlayerTotemModelMap
@ SCRIPT_COMMAND_CREATE_ITEM
@ SCRIPT_COMMAND_DESPAWN_SELF
@ SCRIPT_COMMAND_CLOSE_DOOR
@ SCRIPT_COMMAND_CAST_SPELL
@ SCRIPT_COMMAND_RESPAWN_GAMEOBJECT
@ SCRIPT_COMMAND_QUEST_EXPLORED
@ SCRIPT_COMMAND_ACTIVATE_OBJECT
@ SCRIPT_COMMAND_OPEN_DOOR
@ SCRIPT_COMMAND_FIELD_SET
@ SCRIPT_COMMAND_PLAYMOVIE
@ SCRIPT_COMMAND_CALLSCRIPT_TO_UNIT
@ SCRIPT_COMMAND_PLAY_ANIMKIT
@ SCRIPT_COMMAND_TELEPORT_TO
@ SCRIPT_COMMAND_FLAG_SET
@ SCRIPT_COMMAND_TEMP_SUMMON_CREATURE
@ SCRIPT_COMMAND_MOVEMENT
@ SCRIPT_COMMAND_KILL_CREDIT
@ SCRIPT_COMMAND_LOAD_PATH
@ SCRIPT_COMMAND_ORIENTATION
@ SCRIPT_COMMAND_PLAY_SOUND
@ SCRIPT_COMMAND_CLOSE_GOSSIP
@ SCRIPT_COMMAND_REMOVE_AURA
@ SCRIPT_COMMAND_FLAG_REMOVE
TC_GAME_API LanguageDesc lang_description[LANGUAGES_COUNT]
std::vector< PlayerCreateInfoSkill > PlayerCreateInfoSkills
std::unordered_map< uint32, GameObjectTemplateAddon > GameObjectTemplateAddonContainer
std::string GetScriptCommandName(ScriptCommands command)
std::list< MailLevelReward > MailLevelRewardList
std::multimap< uint32, GraveyardData > GraveyardContainer
std::multimap< uint32, GossipMenus > GossipMenusContainer
std::unordered_map< uint32, GameObjectTemplate > GameObjectTemplateContainer
std::unordered_map< uint32, std::vector< uint32 > > GameObjectQuestItemMap
LanguageDesc const * GetLanguageDescByID(uint32 lang)
std::unordered_map< uint32, GameTele > GameTeleContainer
std::unordered_map< ObjectGuid::LowType, GameObjectData > GameObjectDataContainer
std::vector< uint32 > PlayerCreateInfoSpells
std::unordered_map< uint32, PageTextLocale > PageTextLocaleContainer
std::unordered_map< uint32, NpcTextLocale > NpcTextLocaleContainer
std::map< ObjectGuid, ObjectGuid > LinkedRespawnContainer
std::unordered_map< uint32, CellObjectGuids > CellObjectGuidsMap
TC_GAME_API ScriptMapMap sEventScripts
std::multimap< int32, uint32 > ExclusiveQuestGroups
std::unordered_map< uint32, GameObjectLocale > GameObjectLocaleContainer
std::unordered_map< uint32, EquipmentInfoContainerInternal > EquipmentInfoContainer
std::multimap< uint32, SpellClickInfo > SpellClickInfoContainer
std::unordered_map< uint8, std::unordered_map< uint32, QuestGreeting > > QuestGreetingContainer
std::pair< GossipMenuItemsContainer::iterator, GossipMenuItemsContainer::iterator > GossipMenuItemsMapBoundsNonConst
std::unordered_map< uint32, DungeonEncounterList > DungeonEncounterContainer
std::pair< GossipMenusContainer::const_iterator, GossipMenusContainer::const_iterator > GossipMenusMapBounds
std::unordered_map< uint32, TrinityString > TrinityStringContainer
std::unordered_map< ObjectGuid::LowType, CreatureAddon > CreatureAddonContainer
std::pair< GossipMenuItemsContainer::const_iterator, GossipMenuItemsContainer::const_iterator > GossipMenuItemsMapBounds
std::multimap< uint32, std::pair< uint32, bool > > SpellScriptsContainer
std::unordered_map< uint32, PointOfInterestLocale > PointOfInterestLocaleContainer
std::unordered_map< ObjectGuid::LowType, GameObjectAddon > GameObjectAddonContainer
TC_GAME_API ScriptMapMap sWaypointScripts
std::unordered_map< uint32, CreatureTemplate > CreatureTemplateContainer
std::map< uint32, PageText > PageTextContainer
std::unordered_map< uint32, QuestOfferRewardLocale > QuestOfferRewardLocaleContainer
std::unordered_map< uint32, ItemLocale > ItemLocaleContainer
std::multimap< uint32, GossipMenuItems > GossipMenuItemsContainer
std::map< uint32, ScriptMap > ScriptMapMap
std::unordered_map< uint16, std::vector< InstanceSpawnGroupInfo > > InstanceSpawnGroupContainer
@ SUMMONER_TYPE_GAMEOBJECT
std::string GetScriptsTableNameByType(ScriptsType type)
@ ENCOUNTER_CREDIT_KILL_CREATURE
@ ENCOUNTER_CREDIT_CAST_SPELL
std::unordered_map< uint32, SpawnGroupTemplateData > SpawnGroupDataContainer
std::unordered_map< uint32, VehicleSeatAddon > VehicleSeatAddonContainer
std::pair< ExclusiveQuestGroups::const_iterator, ExclusiveQuestGroups::const_iterator > ExclusiveQuestGroupsBounds
std::map< TempSummonGroupKey, std::vector< TempSummonData > > TempSummonDataContainer
std::unordered_map< ObjectGuid::LowType, GameObjectOverride > GameObjectOverrideContainer
std::unordered_map< uint32, QuestPOIWrapper > QuestPOIContainer
std::unordered_map< uint32, QuestRequestItemsLocale > QuestRequestItemsLocaleContainer
std::unordered_map< uint16, CreatureBaseStats > CreatureBaseStatsContainer
TC_GAME_API bool normalizePlayerName(std::string &name)
std::multimap< uint32, uint32 > QuestRelations
std::vector< std::unique_ptr< DungeonEncounter const > > DungeonEncounterList
std::unordered_map< uint32, BroadcastText > BroadcastTextContainer
std::unordered_map< uint16, InstanceTemplate > InstanceTemplateContainer
std::unordered_map< std::pair< uint32, uint32 >, GossipMenuItemsLocale > GossipMenuItemsLocaleContainer
std::unordered_map< uint8, MailLevelRewardList > MailLevelRewardContainer
std::pair< GossipMenusContainer::iterator, GossipMenusContainer::iterator > GossipMenusMapBoundsNonConst
std::unordered_map< uint32, CellObjectGuidsMap > MapObjectGuids
std::vector< PlayerCreateInfoAction > PlayerCreateInfoActions
std::unordered_map< uint32, ItemSetNameLocale > ItemSetNameLocaleContainer
#define MAX_SPILLOVER_FACTIONS
std::map< ObjectGuid::LowType, VehicleAccessoryList > VehicleAccessoryContainer
std::vector< VehicleAccessory > VehicleAccessoryList
std::map< uint32, VehicleAccessoryList > VehicleAccessoryTemplateContainer
Class used to access individual fields of database query result.
static ObjectGuid const Empty
GameObjectLocale const * GetGameObjectLocale(uint32 entry) const
SpawnGroupTemplateData const * GetSpawnGroupData(SpawnObjectType type, ObjectGuid::LowType spawnId) const
QuestOfferRewardLocaleContainer _questOfferRewardLocaleStore
std::unordered_map< uint32, RepRewardRate > RepRewardRateContainer
std::vector< Trainer::Trainer const * > const & GetClassTrainers(uint8 classId) const
CharacterConversionMap FactionChangeAchievements
int32 GetFishingBaseSkillLevel(uint32 entry) const
TempSummonDataContainer _tempSummonDataStore
Stores temp summon data grouped by summoner's entry, summoner's type and group id.
QuestRelations _creatureQuestInvolvedRelations
ItemSetNameLocale const * GetItemSetNameLocale(uint32 entry) const
VehicleAccessoryContainer _vehicleAccessoryStore
GameObjectTemplateAddonContainer _gameObjectTemplateAddonStore
TrinityString const * GetTrinityString(uint32 entry) const
VehicleSeatAddon const * GetVehicleSeatAddon(uint32 seatId) const
PointOfInterest const * GetPointOfInterest(uint32 id) const
QuestRelations * GetGOQuestRelationMapHACK()
QuestLocale const * GetQuestLocale(uint32 entry) const
NpcTextLocale const * GetNpcTextLocale(uint32 entry) const
GameTeleContainer _gameTeleStore
CreatureQuestItemMap const * GetCreatureQuestItemMap() const
std::unordered_map< uint32, AreaTriggerTeleport > AreaTriggerContainer
HalfNameContainer _petHalfName1
GossipTextContainer _gossipTextStore
std::set< std::wstring > ReservedNamesContainer
BroadcastText const * GetBroadcastText(uint32 id) const
ReputationOnKillEntry const * GetReputationOnKilEntry(uint32 id) const
MailLevelReward const * GetMailLevelReward(uint32 level, uint32 raceMask) const
InstanceTemplateContainer const & GetInstanceTemplates() const
QuestContainer const & GetQuestTemplates() const
SpellScriptsContainer _spellScriptsStore
SpawnGroupDataContainer _spawnGroupDataStore
CreatureDataContainer _creatureDataStore
QuestRelations _goQuestRelations
CreatureBaseStatsContainer _creatureBaseStatsStore
CreatureLocale const * GetCreatureLocale(uint32 entry) const
ScriptNameContainer _scriptNamesStore
GossipMenuItemsMapBounds GetGossipMenuItemsMapBounds(uint32 uiMenuId) const
std::map< uint32, int32 > FishingBaseSkillContainer
TavernAreaTriggerContainer _tavernAreaTriggerStore
QuestRelationResult GetCreatureQuestInvolvedRelations(uint32 entry) const
PageTextLocaleContainer _pageTextLocaleStore
EquipmentInfoContainer _equipmentInfoStore
GossipMenuItemsMapBoundsNonConst GetGossipMenuItemsMapBoundsNonConst(uint32 uiMenuId)
std::set< uint32 > GameObjectForQuestContainer
ObjectGuid::LowType _gameObjectSpawnId
AccessRequirementContainer _accessRequirementStore
QuestGreetingLocaleContainer _questGreetingLocaleStore
SpawnData const * GetSpawnData(SpawnObjectType type, ObjectGuid::LowType spawnId) const
CreatureTemplateContainer _creatureTemplateStore
std::vector< std::string > ScriptNameContainer
CreatureDataContainer const & GetAllCreatureData() const
CharacterConversionMap FactionChangeReputation
QuestRequestItemsLocaleContainer _questRequestItemsLocaleStore
std::unordered_map< uint32, Trainer::Trainer > _trainers
ObjectMgr(ObjectMgr &&)=delete
ObjectGuid GetLinkedRespawnGuid(ObjectGuid spawnId) const
QuestRelationResult GetQuestRelationsFrom(QuestRelations const &map, uint32 key, bool onlyActive) const
ItemSetNameContainer _itemSetNameStore
QuestGreetingContainer _questGreetingStore
SpawnGroupTemplateData const * GetLegacySpawnGroup() const
std::set< uint32 > _transportMaps
PlayerClassInfo const * GetPlayerClassInfo(uint32 class_) const
std::unordered_map< ObjectGuid::LowType, CreatureMovementData > _creatureMovementOverrides
GraveyardContainer GraveyardStore
std::unordered_map< uint32, RepSpilloverTemplate > RepSpilloverTemplateContainer
GameObjectDataContainer const & GetAllGameObjectData() const
GameObjectTemplateContainer _gameObjectTemplateStore
std::vector< TempSummonData > const * GetSummonGroup(uint32 summonerId, SummonerType summonerType, uint8 group) const
InstanceSpawnGroupContainer _instanceSpawnGroupStore
PlayerTotemModelMap _playerTotemModel
std::unordered_map< uint32, PointOfInterest > PointOfInterestContainer
ObjectGuidGenerator & GetGenerator()
bool IsGameObjectForQuests(uint32 entry) const
GameObjectData const * GetGameObjectData(ObjectGuid::LowType spawnId) const
ItemTemplateContainer _itemTemplateStore
GameObjectDataContainer _gameObjectDataStore
GossipMenusContainer _gossipMenusStore
GossipMenuItemsLocale const * GetGossipMenuItemsLocale(uint32 menuId, uint32 optionId) const
CreatureLocaleContainer _creatureLocaleStore
std::map< uint32, uint32 > CharacterConversionMap
LocaleConstant GetDBCLocaleIndex() const
std::atomic< uint32 > _hiPetNumber
std::vector< InstanceSpawnGroupInfo > const * GetSpawnGroupsForInstance(uint32 instanceId) const
PointOfInterestLocaleContainer _pointOfInterestLocaleStore
std::unordered_map< uint32, GossipText > GossipTextContainer
InstanceTemplateContainer _instanceTemplateStore
std::unordered_map< uint32, ItemSetNameEntry > ItemSetNameContainer
QuestRelations _goQuestInvolvedRelations
std::vector< uint32 > const * GetCreatureQuestItemList(uint32 id) const
QuestAreaTriggerContainer _questAreaTriggerStore
FishingBaseSkillContainer _fishingBaseForAreaStore
bool IsTransportMap(uint32 mapId) const
Trinity::IteratorPair< SpawnGroupLinkContainer::const_iterator > GetSpawnMetadataForGroup(uint32 groupId) const
std::atomic< uint32 > _mailId
QuestOfferRewardLocale const * GetQuestOfferRewardLocale(uint32 entry) const
RepRewardRate const * GetRepRewardRate(uint32 factionId) const
ObjectGuid::LowType _creatureSpawnId
AreaTriggerContainer _areaTriggerStore
CreatureTemplateContainer const & GetCreatureTemplates() const
GameObjectQuestItemMap const * GetGameObjectQuestItemMap() const
MapObjectGuids _mapObjectGuidsStore
CreatureAddonContainer _creatureAddonStore
ItemSetNameEntry const * GetItemSetNameEntry(uint32 itemId) const
PageTextLocale const * GetPageTextLocale(uint32 entry) const
BroadcastTextContainer _broadcastTextStore
char const * GetTrinityStringForDBCLocale(uint32 entry) const
QuestRequestItemsLocale const * GetQuestRequestItemsLocale(uint32 entry) const
PetLevelInfoContainer _petInfoStore
GameObjectForQuestContainer _gameObjectForQuestStore
MailLevelRewardContainer _mailLevelRewardStore
VehicleAccessoryTemplateContainer _vehicleTemplateAccessoryStore
LocaleConstant DBCLocaleIndex
GameObjectTemplateContainer const & GetGameObjectTemplates() const
std::map< uint32, uint32 > BaseXPContainer
ExclusiveQuestGroupsBounds GetExclusiveQuestGroupBounds(int32 exclusiveGroupId) const
NpcTextLocaleContainer _npcTextLocaleStore
VendorItemData const * GetNpcVendorItemList(uint32 entry) const
HalfNameContainer _petHalfName0
std::unordered_map< uint8, std::vector< Trainer::Trainer const * > > _classTrainers
static std::string_view GetLocaleString(std::vector< std::string > const &data, size_t locale)
QuestContainer _questTemplates
std::map< HighGuid, std::unique_ptr< ObjectGuidGenerator > > _guidGenerators
ItemSetNameLocaleContainer _itemSetNameLocaleStore
CharacterConversionMap FactionChangeSpells
CreatureTemplateAddonContainer _creatureTemplateAddonStore
std::unordered_map< uint32, VehicleTemplate > _vehicleTemplateStore
PointOfInterestLocale const * GetPointOfInterestLocale(uint32 id) const
CharacterConversionMap FactionChangeItems
GossipMenuItemsLocaleContainer _gossipMenuItemsLocaleStore
BaseXPContainer _baseXPTable
GossipMenusMapBoundsNonConst GetGossipMenusMapBoundsNonConst(uint32 uiMenuId)
std::unordered_map< uint32, std::unique_ptr< PetLevelInfo[] > > PetLevelInfoContainer
static void GetLocaleString(std::vector< std::string > const &data, LocaleConstant localeConstant, std::string &value)
AreaTriggerScriptContainer _areaTriggerScriptStore
QuestRelations _creatureQuestRelations
QuestLocaleContainer _questLocaleStore
std::vector< uint32 > const * GetGameObjectQuestItemList(uint32 id) const
std::map< uint32, uint32 > AreaTriggerScriptContainer
DungeonEncounterContainer _dungeonEncounterStore
ObjectMgr(ObjectMgr const &)=delete
RepOnKillContainer _repOnKillStore
std::unordered_map< uint32, std::unique_ptr< AccessRequirement > > AccessRequirementContainer
ItemLocale const * GetItemLocale(uint32 entry) const
SpawnGroupLinkContainer _spawnGroupMapStore
RepSpilloverTemplateContainer _repSpilloverTemplateStore
SpawnMetadata const * GetSpawnMetadata(SpawnObjectType type, ObjectGuid::LowType spawnId) const
QuestRelationResult GetGOQuestRelations(uint32 entry) const
SpawnGroupTemplateData const * GetDefaultSpawnGroup() const
GameObjectData & NewOrExistGameObjectData(ObjectGuid::LowType spawnId)
CreatureModelContainer _creatureModelStore
LinkedRespawnContainer _linkedRespawnStore
std::vector< uint32 > PlayerXPperLevel
uint32 GetQuestForAreaTrigger(uint32 Trigger_ID) const
std::map< uint32, std::vector< std::string > > HalfNameContainer
GossipMenusMapBounds GetGossipMenusMapBounds(uint32 uiMenuId) const
GameObjectLocaleContainer _gameObjectLocaleStore
GameObjectAddonContainer _gameObjectAddonStore
GameTele const * GetGameTele(uint32 id) const
PlayerXPperLevel _playerXPperLevel
CacheVendorItemContainer _cacheVendorItemStore
QuestGreetingLocale const * GetQuestGreetingLocale(uint32 id) const
QuestRelationResult GetCreatureQuestRelations(uint32 entry) const
CreatureData const * GetCreatureData(ObjectGuid::LowType spawnId) const
std::set< uint32 > TavernAreaTriggerContainer
PointOfInterestContainer _pointsOfInterestStore
RepRewardRateContainer _repRewardRateStore
CharacterConversionMap FactionChangeTitles
std::unordered_map< uint32, ReputationOnKillEntry > RepOnKillContainer
VehicleSeatAddonContainer _vehicleSeatAddonStore
CreatureData & NewOrExistCreatureData(ObjectGuid::LowType spawnId)
std::unordered_map< uint32, Trainer::Trainer const * > _creatureDefaultTrainers
PageTextContainer _pageTextStore
bool IsTavernAreaTrigger(uint32 Trigger_ID) const
SpawnGroupTemplateData const * GetSpawnGroupData(uint32 groupId) const
ItemTemplateContainer const & GetItemTemplateStore() const
QuestRelationResult GetGOQuestInvolvedRelations(uint32 entry) const
ItemLocaleContainer _itemLocaleStore
GameObjectQuestItemMap _gameObjectQuestItemStore
ExclusiveQuestGroups _exclusiveQuestGroups
std::map< uint32, uint32 > QuestAreaTriggerContainer
GameTeleContainer const & GetGameTeleMap() const
CharacterConversionMap FactionChangeQuests
Trinity::IteratorPair< SpellClickInfoContainer::const_iterator > GetSpellClickInfoMapBounds(uint32 creature_id) const
CreatureQuestItemMap _creatureQuestItemStore
TrinityStringContainer _trinityStringStore
QuestPOIContainer _questPOIStore
RepSpilloverTemplate const * GetRepSpilloverTemplate(uint32 factionId) const
SpellClickInfoContainer _spellClickInfoStore
ReservedNamesContainer _reservedNamesStore
QuestRelations * GetCreatureQuestRelationMapHACK()
GossipMenuItemsContainer _gossipMenuItemsStore
GameObjectOverrideContainer _gameObjectOverrideStore
void SetDBCLocaleIndex(LocaleConstant locale)
std::unordered_map< uint32, Trinity::unique_trackable_ptr< Quest > > QuestContainer
Utility class to enable range for loop syntax for multimap.equal_range uses.
auto MapEqualRange(M &map, typename M::key_type const &key)
std::string questFailedText
std::vector< std::string > Text1
std::vector< std::string > Text
std::string const & GetText(LocaleConstant locale=DEFAULT_LOCALE, uint8 gender=GENDER_MALE, bool forceGender=false) const
DungeonEncounterEntry const * dbcEntry
DungeonEncounter(DungeonEncounterEntry const *_dbcEntry, EncounterCreditType _creditType, uint32 _creditEntry, uint32 _lastEncounterDungeon)
EncounterCreditType creditType
uint32 lastEncounterDungeon
MailLevelReward(uint32 _raceMask, uint32 _mailTemplateId, uint32 _senderEntry)
std::unique_ptr< PlayerClassLevelInfo[]> levelInfo
PlayerCreateInfoAction(uint8 _button, uint32 _action, uint8 _type)
PlayerCreateInfoItem(uint32 id, uint32 amount)
PlayerCreateInfoActions action
std::unique_ptr< PlayerLevelInfo[]> levelInfo
PlayerCreateInfoSpells castSpells
PlayerCreateInfoSkills skills
PlayerCreateInfoSpells customSpells
PlayerCreateInfoItems item
std::vector< std::string > Name
std::vector< std::string > greeting
QuestGreeting(uint16 _greetEmoteType, uint32 _greetEmoteDelay, std::string _greeting)
std::vector< QuestPOIBlobPoint > QuestPOIBlobPointStats
std::vector< QuestPOIBlobData > QuestPOIBlobDataStats
ByteBuffer QueryDataBuffer
ByteBuffer BuildQueryData() const
void InitializeQueryData()
QuestRelations::const_iterator _it
value_type const & reference
value_type const * pointer
bool operator==(Iterator const &other) const
Iterator(QuestRelations::const_iterator it, QuestRelations::const_iterator end, bool onlyActive)
value_type operator*() const
QuestRelations::const_iterator _end
std::forward_iterator_tag iterator_category
QuestRelations::mapped_type value_type
bool HasQuest(uint32 questId) const
QuestRelationResult(std::pair< QuestRelations::const_iterator, QuestRelations::const_iterator > range, bool onlyActive)
QuestRelations::const_iterator _end
QuestRelations::const_iterator _begin
float questRepeatableRate
uint32 faction_rank[MAX_SPILLOVER_FACTIONS]
uint32 faction[MAX_SPILLOVER_FACTIONS]
float faction_rate[MAX_SPILLOVER_FACTIONS]
struct ScriptInfo::@228::@234 MoveTo
struct ScriptInfo::@228::@242 RemoveAura
struct ScriptInfo::@228::@241 ToggleDoor
struct ScriptInfo::@228::@252 Model
struct ScriptInfo::@228::@231 Talk
struct ScriptInfo::@228::@235 FlagToggle
struct ScriptInfo::@228::@244 PlaySound
struct ScriptInfo::@228::@247 LoadPath
struct ScriptInfo::@228::@237 QuestExplored
struct ScriptInfo::@228::@253 PlayMovie
struct ScriptInfo::@228::@232 Emote
struct ScriptInfo::@228::@233 FieldSet
struct ScriptInfo::@228::@236 TeleportTo
ObjectGuid::LowType GOGuid
struct ScriptInfo::@228::@239 RespawnGameobject
struct ScriptInfo::@228::@243 CastSpell
struct ScriptInfo::@228::@254 Movement
struct ScriptInfo::@228::@248 CallScript
struct ScriptInfo::@228::@230 Raw
struct ScriptInfo::@228::@246 DespawnSelf
std::string GetDebugInfo() const
struct ScriptInfo::@228::@238 KillCredit
struct ScriptInfo::@228::@249 Kill
struct ScriptInfo::@228::@251 Equip
struct ScriptInfo::@228::@245 CreateItem
struct ScriptInfo::@228::@240 TempSummonCreature
SpellClickUserTypes userType
Stores data for temp summons.
TempSummonType type
Summon type, see TempSummonType for available types.
uint32 time
Despawn time, usable only with certain temp summon types.
uint32 entry
Entry of summoned creature.
Position pos
Position, where should be creature spawned.
Key for storing temp summon data in TempSummonDataContainer.
uint32 SummonerEntry
Summoner's entry.
::SummonerType SummonerType
Summoner's type, see SummonerType for available types.
std::strong_ordering operator<=>(TempSummonGroupKey const &right) const =default
uint8 SummonGroup
Summon's group id.
TempSummonGroupKey(uint32 summonerEntry, SummonerType summonerType, uint8 group)
std::vector< std::string > Content