OregonCore  revision be9e804-git
Your Favourite TBC server
ObjectMgr.h
Go to the documentation of this file.
1 /*
2  * This file is part of the OregonCore Project. See AUTHORS file for Copyright information
3  *
4  * This program is free software; you can redistribute it and/or modify it
5  * under the terms of the GNU General Public License as published by the
6  * Free Software Foundation; either version 2 of the License, or (at your
7  * option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12  * more details.
13  *
14  * You should have received a copy of the GNU General Public License along
15  * with this program. If not, see <https://www.gnu.org/licenses/>.
16  */
17 
18 #ifndef _OBJECTMGR_H
19 #define _OBJECTMGR_H
20 
21 #include "Log.h"
22 #include "Object.h"
23 #include "Bag.h"
24 #include "Creature.h"
25 #include "Player.h"
26 #include "DynamicObject.h"
27 #include "GameObject.h"
28 #include "Corpse.h"
29 #include "QuestDef.h"
30 #include "ItemPrototype.h"
31 #include "NPCHandler.h"
32 #include "Database/DatabaseEnv.h"
33 #include "Mail.h"
34 #include "Map.h"
35 #include "ObjectAccessor.h"
36 #include "ObjectGuid.h"
37 #include "Policies/Singleton.h"
38 #include "Database/SQLStorage.h"
39 #include "Path.h"
40 #include "ConditionMgr.h"
41 
42 #include <string>
43 #include <map>
44 #include <limits>
45 #include <tuple>
46 
53 extern SQLStorage sGOStorage;
57 
58 class Group;
59 class Guild;
60 class ArenaTeam;
61 class Item;
62 
63 struct GameTele
64 {
65  float position_x;
66  float position_y;
67  float position_z;
68  float orientation;
70  std::string name;
71  std::wstring wnameLow;
72 };
73 
74 typedef UNORDERED_MAP<uint32, GameTele > GameTeleMap;
75 
78 {
79  TempSummonGroupKey(uint32 summonerEntry, SummonerType summonerType, uint8 group)
80  : _summonerEntry(summonerEntry), _summonerType(summonerType), _summonGroup(group)
81  {
82  }
83 
84  bool operator<(TempSummonGroupKey const& rhs) const
85  {
86  return std::tie(_summonerEntry, _summonerType, _summonGroup) <
87  std::tie(rhs._summonerEntry, rhs._summonerType, rhs._summonGroup);
88  }
89 
90 private:
94 };
95 
97 {
99 
107 
109 };
110 
112 {
113  // Talk Flags
115 
116  // Emote flags
118 
119  // TeleportTo flags
121 
122  // KillCredit flags
124 
125  // RemoveAura flags
127 
128  // CastSpell flags
135 
136  // PlaySound flags
139 
140  // Orientation flags
142 };
143 
145 {
150 
151  union
152  {
153  struct
154  {
155  uint32 nData[3];
156  float fData[4];
157  } Raw;
158 
159  struct // SCRIPT_COMMAND_TALK (0)
160  {
161  uint32 ChatType; // datalong
162  uint32 Flags; // datalong2
163  int32 TextID; // dataint
164  } Talk;
165 
166  struct // SCRIPT_COMMAND_EMOTE (1)
167  {
168  uint32 EmoteID; // datalong
169  uint32 Flags; // datalong2
170  } Emote;
171 
172  struct // SCRIPT_COMMAND_FIELD_SET (2)
173  {
174  uint32 FieldID; // datalong
175  uint32 FieldValue; // datalong2
176  } FieldSet;
177 
178  struct // SCRIPT_COMMAND_MOVE_TO (3)
179  {
180  uint32 Unused1; // datalong
181  uint32 TravelTime; // datalong2
182  int32 Unused2; // dataint
183 
184  float DestX;
185  float DestY;
186  float DestZ;
187  } MoveTo;
188 
189  struct // SCRIPT_COMMAND_FLAG_SET (4)
190  // SCRIPT_COMMAND_FLAG_REMOVE (5)
191  {
192  uint32 FieldID; // datalong
193  uint32 FieldValue; // datalong2
194  } FlagToggle;
195 
196  struct // SCRIPT_COMMAND_TELEPORT_TO (6)
197  {
198  uint32 MapID; // datalong
199  uint32 Flags; // datalong2
200  int32 Unused1; // dataint
201 
202  float DestX;
203  float DestY;
204  float DestZ;
205  float Orientation;
206  } TeleportTo;
207 
208  struct // SCRIPT_COMMAND_QUEST_EXPLORED (7)
209  {
210  uint32 QuestID; // datalong
211  uint32 Distance; // datalong2
212  } QuestExplored;
213 
214  struct // SCRIPT_COMMAND_KILL_CREDIT (8)
215  {
216  uint32 CreatureEntry; // datalong
217  uint32 Flags; // datalong2
218  } KillCredit;
219 
220  struct // SCRIPT_COMMAND_RESPAWN_GAMEOBJECT (9)
221  {
222  uint32 GOGuid; // datalong
223  uint32 DespawnDelay; // datalong2
224  } RespawnGameobject;
225 
226  struct // SCRIPT_COMMAND_TEMP_SUMMON_CREATURE (10)
227  {
228  uint32 CreatureEntry; // datalong
229  uint32 DespawnDelay; // datalong2
230  int32 Unused1; // dataint
231 
232  float PosX;
233  float PosY;
234  float PosZ;
235  float Orientation;
236  } TempSummonCreature;
237 
238  struct // SCRIPT_COMMAND_CLOSE_DOOR (12)
239  // SCRIPT_COMMAND_OPEN_DOOR (11)
240  {
241  uint32 GOGuid; // datalong
242  uint32 ResetDelay; // datalong2
243  } ToggleDoor;
244 
245  // SCRIPT_COMMAND_ACTIVATE_OBJECT (13)
246 
247  struct // SCRIPT_COMMAND_REMOVE_AURA (14)
248  {
249  uint32 SpellID; // datalong
250  uint32 Flags; // datalong2
251  } RemoveAura;
252 
253  struct // SCRIPT_COMMAND_CAST_SPELL (15)
254  {
255  uint32 SpellID; // datalong
256  uint32 Flags; // datalong2
257  int32 CreatureEntry; // dataint
258 
260  } CastSpell;
261 
262  struct // SCRIPT_COMMAND_PLAY_SOUND (16)
263  {
264  uint32 SoundID; // datalong
265  uint32 Flags; // datalong2
266  } PlaySound;
267 
268  struct // SCRIPT_COMMAND_CREATE_ITEM (17)
269  {
270  uint32 ItemEntry; // datalong
271  uint32 Amount; // datalong2
272  } CreateItem;
273 
274  struct // SCRIPT_COMMAND_DESPAWN_SELF (18)
275  {
276  uint32 DespawnDelay; // datalong
277  } DespawnSelf;
278 
279  struct // SCRIPT_COMMAND_LOAD_PATH (20)
280  {
281  uint32 PathID; // datalong
282  uint32 IsRepeatable; // datalong2
283  } LoadPath;
284 
285  struct // SCRIPT_COMMAND_CALLSCRIPT_TO_UNIT (21)
286  {
287  uint32 CreatureEntry; // datalong
288  uint32 ScriptID; // datalong2
289  uint32 ScriptType; // dataint
290  } CallScript;
291 
292  struct // SCRIPT_COMMAND_KILL (22)
293  {
294  uint32 Unused1; // datalong
295  uint32 Unused2; // datalong2
296  int32 RemoveCorpse; // dataint
297  } Kill;
298 
299  struct // SCRIPT_COMMAND_ORIENTATION (30)
300  {
301  uint32 Flags; // datalong
302  uint32 Unused1; // datalong2
303  int32 Unused2; // dataint
304 
305  float Unused3;
306  float Unused4;
307  float Unused5;
308  float Orientation;
309  } Orientation;
310 
311  struct // SCRIPT_COMMAND_EQUIP (31)
312  {
313  uint32 EquipmentID; // datalong
314  } Equip;
315 
316  struct // SCRIPT_COMMAND_MODEL (32)
317  {
318  uint32 ModelID; // datalong
319  } Model;
320 
321  // SCRIPT_COMMAND_CLOSE_GOSSIP (33)
322  };
323 
324  std::string GetDebugInfo() const;
325 };
326 
327 typedef std::multimap<uint32, ScriptInfo> ScriptMap;
328 typedef std::map<uint32, ScriptMap > ScriptMapMap;
336 
337 std::string GetScriptsTableNameByType(ScriptsType type);
339 std::string GetScriptCommandName(ScriptCommands command);
340 
342 {
345  float target_X;
346  float target_Y;
347  float target_Z;
349 };
350 
351 typedef std::set<uint32> CellGuidSet;
352 typedef std::map<uint32/*player guid*/, uint32/*instance*/> CellCorpseSet;
354 {
358 };
360 typedef UNORDERED_MAP<uint32/*(mapid,spawnMode) pair*/, CellObjectGuidsMap> MapObjectGuids;
361 
362 typedef UNORDERED_MAP<uint64/*(instance,guid) pair*/, time_t> RespawnTimes;
363 
364 
365 // Oregon string ranges
366 #define MIN_OREGON_STRING_ID 1 // 'mangos_string'
367 #define MAX_OREGON_STRING_ID 2000000000
368 #define MIN_DB_SCRIPT_STRING_ID MAX_OREGON_STRING_ID // 'db_script_string'
369 #define MAX_DB_SCRIPT_STRING_ID 2000010000
370 #define MIN_CREATURE_AI_TEXT_STRING_ID (-1) // 'creature_ai_texts'
371 #define MAX_CREATURE_AI_TEXT_STRING_ID (-1000000)
372 
374 {
375  std::vector<std::string> Content; // 0 -> default, i -> i-1 locale index
376 };
377 
378 typedef std::map<uint32, uint32> CreatureLinkedRespawnMap;
379 typedef UNORDERED_MAP<uint32, CreatureData> CreatureDataMap;
380 typedef UNORDERED_MAP<uint32, GameObjectData> GameObjectDataMap;
381 typedef UNORDERED_MAP<uint32, CreatureLocale> CreatureLocaleMap;
382 typedef UNORDERED_MAP<uint32, GameObjectLocale> GameObjectLocaleMap;
383 typedef UNORDERED_MAP<uint32, ItemLocale> ItemLocaleMap;
384 typedef UNORDERED_MAP<uint32, QuestLocale> QuestLocaleMap;
385 typedef UNORDERED_MAP<uint32, NpcTextLocale> NpcTextLocaleMap;
386 typedef UNORDERED_MAP<uint32, PageTextLocale> PageTextLocaleMap;
387 typedef UNORDERED_MAP<uint32, OregonStringLocale> OregonStringLocaleMap;
388 typedef UNORDERED_MAP<uint32, GossipMenuItemsLocale> GossipMenuItemsLocaleMap;
389 typedef UNORDERED_MAP<uint32, PointOfInterestLocale> PointOfInterestLocaleMap;
390 
391 typedef std::multimap<uint32, uint32> QuestRelations;
392 
394 {
395  PetLevelInfo() : health(0), mana(0), armor(0) { for (uint8 i = 0; i < MAX_STATS; ++i) stats[i] = 0; }
396 
401 };
402 
404 {
414 };
415 
417 {
419  float faction_rate[MAX_SPILLOVER_FACTIONS];
421 };
422 
424 {
426  float x;
427  float y;
431  std::string icon_name;
432 };
433 
435 {
439  std::string OptionText;
445  bool BoxCoded;
447  std::string BoxText;
449 };
450 
452 {
456 };
457 
458 typedef std::multimap<uint32, GossipMenus> GossipMenusMap;
459 typedef std::pair<GossipMenusMap::const_iterator, GossipMenusMap::const_iterator> GossipMenusMapBounds;
460 typedef std::pair<GossipMenusMap::iterator, GossipMenusMap::iterator> GossipMenusMapBoundsNonConst;
461 typedef std::multimap<uint32, GossipMenuItems> GossipMenuItemsMap;
462 typedef std::pair<GossipMenuItemsMap::const_iterator, GossipMenuItemsMap::const_iterator> GossipMenuItemsMapBounds;
463 typedef std::pair<GossipMenuItemsMap::iterator, GossipMenuItemsMap::iterator> GossipMenuItemsMapBoundsNonConst;
464 
465 typedef std::map<TempSummonGroupKey, std::vector<TempSummonData> > TempSummonDataContainer;
466 
468 {
469  uint32 spellid[4];
470 };
471 
472 #define WEATHER_SEASONS 4
474 {
478 };
479 
481 {
483 };
484 
486 {
489 };
490 typedef std::multimap<uint32, GraveYardData> GraveYardMap;
491 
492 // NPC gossip text id
493 typedef UNORDERED_MAP<uint32, uint32> CacheNpcTextIdMap;
494 
495 typedef UNORDERED_MAP<uint32, VendorItemData> CacheVendorItemMap;
496 typedef UNORDERED_MAP<uint32, TrainerSpellData> CacheTrainerSpellMap;
497 
499 {
500  SKILL_RANGE_LANGUAGE, // 300..300
501  SKILL_RANGE_LEVEL, // 1..max skill for level
502  SKILL_RANGE_MONO, // 1..1, grey monolite bar
503  SKILL_RANGE_RANK, // 1..skill for known rank
504  SKILL_RANGE_NONE, // 0..0 always
505 };
506 
507 SkillRangeType GetSkillRangeType(SkillLineEntry const* pSkill, bool racial);
508 
509 #define MAX_PLAYER_NAME 12 // max allowed by client name length
510 #define MAX_INTERNAL_PLAYER_NAME 15 // max server internal player name length (> MAX_PLAYER_NAME for support declined names)
511 
512 bool normalizePlayerName(std::string& name);
513 
515 {
519 };
520 
523 
524 class PlayerDumpReader;
525 
527 {
528  friend class PlayerDumpReader;
529 
530  public:
531  ObjectMgr();
532  ~ObjectMgr();
533 
534  typedef UNORDERED_MAP<uint32, Item*> ItemMap;
535 
536  typedef std::set< Group* > GroupSet;
537 
538  typedef UNORDERED_MAP<uint32, Guild* > GuildMap;
539 
540  typedef UNORDERED_MAP<uint32, ArenaTeam*> ArenaTeamMap;
541 
542  typedef UNORDERED_MAP<uint32, Quest*> QuestMap;
543 
544  typedef UNORDERED_MAP<uint32, AreaTrigger> AreaTriggerMap;
545 
546  typedef UNORDERED_MAP<uint32, uint32> AreaTriggerScriptMap;
547 
548  typedef UNORDERED_MAP<uint32, AccessRequirement> AccessRequirementMap;
549 
550  // Reputation Related
551  typedef UNORDERED_MAP<uint32, ReputationOnKillEntry> RepOnKillMap;
552  typedef UNORDERED_MAP<uint32, RepSpilloverTemplate> RepSpilloverTemplateMap;
553 
554  typedef UNORDERED_MAP<uint32, PointOfInterest> PointOfInterestMap;
555 
556  typedef UNORDERED_MAP<uint32, WeatherZoneChances> WeatherZoneMap;
557 
558  typedef UNORDERED_MAP<uint32, PetCreateSpellEntry> PetCreateSpellMap;
559 
560  typedef std::vector<std::string> ScriptNameMap;
561 
562  typedef UNORDERED_MAP<uint64, uint64> ReferFriendMap;
563 
564  UNORDERED_MAP<uint32, uint32> TransportEventMap;
565 
566  Player* GetPlayer(const char* name, bool force = false) const
567  {
568  return ObjectAccessor::Instance().FindPlayerByName(name, force);
569  }
570  Player* GetPlayer(uint64 guid, bool force = false) const
571  {
572  return ObjectAccessor::FindPlayer(guid, force);
573  }
574 
575  // Refer-a-Friend
576 
577  // Gets RAFLinkStatus and puts the friend's acc into 'linked'
578  RAFLinkStatus GetRAFLinkStatus (uint64 account, uint64* linked = NULL) const;
580  {
581  return GetRAFLinkStatus(plr->GetSession()->GetAccountId());
582  }
583  RAFLinkStatus GetRAFLinkStatus (uint64 AccOne, uint64 AccTwo) const;
584  RAFLinkStatus GetRAFLinkStatus (const Player* plr1, const Player* plr2) const
585  {
586  return GetRAFLinkStatus(plr1->GetSession()->GetAccountId(), plr2->GetSession()->GetAccountId());
587  }
588  void LinkIntoRAF (uint64 AccReferrer, uint64 AccReferred);
589  void UnlinkFromRAF (uint64 account);
590  Player* GetRAFLinkedBuddyForPlayer(const Player* plr1) const;
591 
593  {
594  return sGOStorage.LookupEntry<GameObjectInfo>(id);
595  }
596 
597  void LoadGameobjectInfo();
598  void AddGameobjectInfo(GameObjectInfo* goinfo);
599 
600  Group* GetGroupByLeader(const uint64& guid) const;
601  void AddGroup(Group* group)
602  {
603  mGroupSet.insert(group);
604  }
605  void RemoveGroup(Group* group)
606  {
607  mGroupSet.erase(group);
608  }
609 
610  Guild* GetGuildByLeader(uint64 const& guid) const;
611  Guild* GetGuildById(const uint32 GuildId) const;
612  Guild* GetGuildByName(const std::string& guildname) const;
613  std::string GetGuildNameById(const uint32 GuildId) const;
614  void AddGuild(Guild* guild);
615  void RemoveGuild(uint32 Id);
616 
617  ArenaTeam* GetArenaTeamById(const uint32 arenateamid) const;
618  ArenaTeam* GetArenaTeamByName(const std::string& arenateamname) const;
619  ArenaTeam* GetArenaTeamByCaptain(uint64 const& guid) const;
620  void AddArenaTeam(ArenaTeam* arenaTeam);
621  void RemoveArenaTeam(uint32 Id);
622  ArenaTeamMap::iterator GetArenaTeamMapBegin()
623  {
624  return mArenaTeamMap.begin();
625  }
626  ArenaTeamMap::iterator GetArenaTeamMapEnd()
627  {
628  return mArenaTeamMap.end();
629  }
630 
631  static CreatureInfo const* GetCreatureTemplate(uint32 id);
632  CreatureModelInfo const* GetCreatureModelInfo(uint32 modelid);
633  CreatureModelInfo const* GetCreatureModelRandomGender(uint32 display_id);
634  uint32 ChooseDisplayId(uint32 team, const CreatureInfo* cinfo, const CreatureData* data = NULL);
635  static void ChooseCreatureFlags(const CreatureInfo *cinfo, uint32& npcflag, uint32& unit_flags, uint32& dynamicflags, const CreatureData *data = NULL);
636  EquipmentInfo const* GetEquipmentInfo(uint32 entry);
637  EquipmentInfoRaw const* GetEquipmentInfoRaw( uint32 entry );
639  {
640  return sCreatureDataAddonStorage.LookupEntry<CreatureDataAddon>(lowguid);
641  }
642 
644  {
645  return sCreatureInfoAddonStorage.LookupEntry<CreatureDataAddon>(entry);
646  }
647 
649  {
650  return sItemStorage.LookupEntry<ItemTemplate>(id);
651  }
652 
654  {
655  return sInstanceTemplate.LookupEntry<InstanceTemplate>(map);
656  }
657 
658  PetLevelInfo const* GetPetLevelInfo(uint32 creature_id, uint32 level) const;
659 
661  {
662  if (class_ >= MAX_CLASSES) return NULL;
663  return &playerClassInfo[class_];
664  }
665  void GetPlayerClassLevelInfo(uint32 class_, uint32 level, PlayerClassLevelInfo* info) const;
666 
667  PlayerInfo const* GetPlayerInfo(uint32 race, uint32 class_) const
668  {
669  if (race >= MAX_RACES) return NULL;
670  if (class_ >= MAX_CLASSES) return NULL;
671  PlayerInfo const* info = &playerInfo[race][class_];
672  if (info->displayId_m == 0 || info->displayId_f == 0) return NULL;
673  return info;
674  }
675  void GetPlayerLevelInfo(uint32 race, uint32 class_, uint32 level, PlayerLevelInfo* info) const;
676 
677  uint64 GetPlayerGUIDByName(std::string name) const;
678  bool GetPlayerNameByGUID(const uint64& guid, std::string& name) const;
679  uint32 GetPlayerTeamByGUID(const uint64& guid) const;
680  uint32 GetPlayerAccountIdByGUID(const uint64& guid) const;
681  uint32 GetPlayerAccountIdByPlayerName(const std::string& name) const;
682 
683  uint32 GetNearestTaxiNode(float x, float y, float z, uint32 mapid);
684  void GetTaxiPath(uint32 source, uint32 destination, uint32& path, uint32& cost);
685  uint16 GetTaxiMount(uint32 id, uint32 team);
686 
687  Quest const* GetQuestTemplate(uint32 quest_id) const
688  {
689  QuestMap::const_iterator itr = mQuestTemplates.find(quest_id);
690  return itr != mQuestTemplates.end() ? itr->second : NULL;
691  }
692  QuestMap const& GetQuestTemplates() const
693  {
694  return mQuestTemplates;
695  }
696 
698  {
699  QuestAreaTriggerMap::const_iterator itr = mQuestAreaTriggerMap.find(Trigger_ID);
700  if (itr != mQuestAreaTriggerMap.end())
701  return itr->second;
702  return 0;
703  }
704  bool IsTavernAreaTrigger(uint32 Trigger_ID) const
705  {
706  return mTavernAreaTriggerSet.count(Trigger_ID) != 0;
707  }
708  bool IsGameObjectForQuests(uint32 entry) const
709  {
710  return mGameObjectForQuestSet.count(entry) != 0;
711  }
712 
714  {
715  BattleMastersMap::const_iterator itr = mBattleMastersMap.find(entry);
716  if (itr != mBattleMastersMap.end())
717  return itr->second;
718  return 2; //BATTLEGROUND_WS - i will not add include only for constant usage!
719  }
720 
721  void AddGossipText(GossipText* pGText);
722  GossipText* GetGossipText(uint32 Text_ID);
723 
724  WorldSafeLocsEntry const* GetDefaultGraveYard(uint32 team);
725  WorldSafeLocsEntry const* GetClosestGraveYard(float x, float y, float z, uint32 MapId, uint32 team);
726  bool AddGraveYardLink(uint32 id, uint32 zone, uint32 team, bool inDB = true);
727  void RemoveGraveYardLink(uint32 id, uint32 zone, uint32 team, bool inDB = false);
728  void LoadGraveyardZones();
729  GraveYardData const* FindGraveYardData(uint32 id, uint32 zone);
730 
731  AreaTrigger const* GetAreaTrigger(uint32 trigger) const
732  {
733  AreaTriggerMap::const_iterator itr = mAreaTriggers.find(trigger);
734  if (itr != mAreaTriggers.end())
735  return &itr->second;
736  return NULL;
737  }
738 
740  {
741  AccessRequirementMap::const_iterator itr = mAccessRequirements.find(requirement);
742  if (itr != mAccessRequirements.end())
743  return &itr->second;
744  return NULL;
745  }
746 
747  AreaTrigger const* GetGoBackTrigger(uint32 Map) const;
748  AreaTrigger const* GetMapEntranceTrigger(uint32 Map) const;
749 
751 
753  {
754  RepOnKillMap::const_iterator itr = mRepOnKill.find(id);
755  if (itr != mRepOnKill.end())
756  return &itr->second;
757  return NULL;
758  }
759 
761  {
762  RepSpilloverTemplateMap::const_iterator itr = m_RepSpilloverTemplateMap.find(factionId);
763  if (itr != m_RepSpilloverTemplateMap.end())
764  return &itr->second;
765 
766  return NULL;
767  }
768 
770  {
771  PetCreateSpellMap::const_iterator itr = mPetCreateSpell.find(id);
772  if (itr != mPetCreateSpell.end())
773  return &itr->second;
774  return NULL;
775  }
776 
778  {
779  PointOfInterestMap::const_iterator itr = mPointsOfInterest.find(id);
780  if (itr != mPointsOfInterest.end())
781  return &itr->second;
782  return NULL;
783  }
784 
785  void LoadGuilds();
786  void LoadArenaTeams();
787  void LoadGroups();
788  void LoadQuests();
790  {
791  LoadGameobjectQuestStarters();
792  LoadGameobjectQuestEnders();
793  LoadCreatureQuestStarters();
794  LoadCreatureQuestEnders();
795  }
796  void LoadGameobjectQuestStarters();
797  void LoadGameobjectQuestEnders();
798  void LoadCreatureQuestStarters();
799  void LoadCreatureQuestEnders();
800 
802  {
803  return &mGOQuestRelations;
804  }
805 
807  {
808  return &mCreatureQuestRelations;
809  }
810 
811  CreatureBaseStats const* GetCreatureClassLvlStats(uint32 level, uint32 unitClass, int32 expansion) const;
812 
817 
818  void LoadGameObjectScripts();
819  void LoadQuestEndScripts();
820  void LoadQuestStartScripts();
821  void LoadEventScripts();
822  void LoadSpellScripts();
823  void LoadGossipScripts();
824  void LoadWaypointScripts();
825  void LoadReferredFriends();
826 
827  void LoadTransportEvents();
828 
829  bool LoadOregonStrings(DatabaseType& db, char const* table, int32 min_value, int32 max_value);
831  {
833  }
834  void LoadDbScriptStrings();
835  void LoadPetCreateSpells();
836  void LoadCreatureLocales();
837  void LoadCreatureTemplates();
838  void LoadTempSummons();
839  void LoadCreatures();
840  void LoadCreatureLinkedRespawn();
841  bool CheckCreatureLinkedRespawn(uint32 guid, uint32 linkedGuid) const;
842  bool SetCreatureLinkedRespawn(uint32 guid, uint32 linkedGuid);
843  void LoadCreatureRespawnTimes();
844  void LoadCreatureAddons();
845  void LoadCreatureClassLevelStats();
846  void LoadCreatureModelInfo();
847  void LoadEquipmentTemplates();
848  void LoadGameObjectLocales();
849  void LoadGameobjects();
850  void LoadGameobjectRespawnTimes();
851  void LoadItemTemplates();
852  void LoadItemLocales();
853  void LoadQuestLocales();
854  void LoadNpcTextLocales();
855  void LoadPageTextLocales();
856  void LoadGossipMenuItemsLocales();
857  void LoadPointOfInterestLocales();
858  void LoadInstanceTemplate();
859 
860  void LoadGossipText();
861 
862  void LoadAreaTriggerTeleports();
863  void LoadAccessRequirements();
864  void LoadQuestAreaTriggers();
865  void LoadAreaTriggerScripts();
866  void LoadTavernAreaTriggers();
867  void LoadBattleMastersEntry();
868  void LoadGameObjectForQuests();
869 
870  void LoadItemTexts();
871  void LoadPageTexts();
872 
873  void LoadPlayerInfo();
874  void LoadPetLevelInfo();
875  void LoadExplorationBaseXP();
876  void LoadPetNames();
877  void LoadPetNumber();
878  void LoadCorpses();
879  void LoadFishingBaseSkillLevel();
880 
881  void LoadReputationOnKill();
882  void LoadReputationSpilloverTemplate();
883  void LoadPointsOfInterest();
884 
885  void LoadWeatherZoneChances();
886  void LoadGameTele();
887 
888  void LoadNpcTextId();
889 
890  void LoadGossipMenu();
891  void LoadGossipMenuItems();
892 
893  void LoadVendors();
894  void LoadTrainerSpell();
895 
896  std::string GeneratePetName(uint32 entry);
897  uint32 GetBaseXP(uint32 level);
898 
900  {
901  FishingBaseSkillMap::const_iterator itr = mFishingBaseForArea.find(entry);
902  return itr != mFishingBaseForArea.end() ? itr->second : 0;
903  }
904 
905  void ReturnOrDeleteOldMails(bool serverUp);
906 
907  void SetHighestGuids();
908  uint32 GenerateLowGuid(HighGuid guidhigh);
909  uint32 GenerateAuctionID();
910  uint32 GenerateMailID();
911  uint32 GenerateItemTextID();
912  uint32 GeneratePetNumber();
913  uint32 GenerateArenaTeamId();
914  uint32 GenerateGuildId();
915 
916  uint32 CreateItemText(std::string text);
917  std::string GetItemText(uint32 id)
918  {
919  ItemTextMap::const_iterator itr = mItemTexts.find(id);
920  if (itr != mItemTexts.end())
921  return itr->second;
922  else
923  return "There is no info for this item";
924  }
925 
926  typedef std::multimap<int32, uint32> ExclusiveQuestGroups;
927  ExclusiveQuestGroups mExclusiveQuestGroups;
928 
929 
939  std::vector<TempSummonData> const* GetSummonGroup(uint32 summonerId, SummonerType summonerType, uint8 group) const
940  {
941  TempSummonDataContainer::const_iterator itr = _tempSummonDataStore.find(TempSummonGroupKey(summonerId, summonerType, group));
942  if (itr != _tempSummonDataStore.end())
943  return &itr->second;
944 
945  return NULL;
946  }
947 
949  {
950  WeatherZoneMap::const_iterator itr = mWeatherZoneMap.find(zone_id);
951  if (itr != mWeatherZoneMap.end())
952  return &itr->second;
953  else
954  return NULL;
955  }
956 
957  CellObjectGuids const& GetCellObjectGuids(uint16 mapid, uint8 spawnMode, uint32 cell_id)
958  {
959  return mMapObjectGuids[MAKE_PAIR32(mapid, spawnMode)][cell_id];
960  }
961 
963  {
964  CreatureDataMap::const_iterator itr = mCreatureDataMap.find(guid);
965  if (itr == mCreatureDataMap.end()) return NULL;
966  return &itr->second;
967  }
969  {
970  return mCreatureDataMap[guid];
971  }
972  void DeleteCreatureData(uint32 guid);
974  {
975  CreatureLinkedRespawnMap::const_iterator itr = mCreatureLinkedRespawnMap.find(guid);
976  if (itr == mCreatureLinkedRespawnMap.end()) return 0;
977  return itr->second;
978  }
980  {
981  CreatureLocaleMap::const_iterator itr = mCreatureLocaleMap.find(entry);
982  if (itr == mCreatureLocaleMap.end()) return NULL;
983  return &itr->second;
984  }
986  {
987  GameObjectLocaleMap::const_iterator itr = mGameObjectLocaleMap.find(entry);
988  if (itr == mGameObjectLocaleMap.end()) return NULL;
989  return &itr->second;
990  }
991  ItemLocale const* GetItemLocale(uint32 entry) const
992  {
993  ItemLocaleMap::const_iterator itr = mItemLocaleMap.find(entry);
994  if (itr == mItemLocaleMap.end()) return NULL;
995  return &itr->second;
996  }
997  QuestLocale const* GetQuestLocale(uint32 entry) const
998  {
999  QuestLocaleMap::const_iterator itr = mQuestLocaleMap.find(entry);
1000  if (itr == mQuestLocaleMap.end()) return NULL;
1001  return &itr->second;
1002  }
1004  {
1005  NpcTextLocaleMap::const_iterator itr = mNpcTextLocaleMap.find(entry);
1006  if (itr == mNpcTextLocaleMap.end()) return NULL;
1007  return &itr->second;
1008  }
1010  {
1011  PageTextLocaleMap::const_iterator itr = mPageTextLocaleMap.find(entry);
1012  if (itr == mPageTextLocaleMap.end()) return NULL;
1013  return &itr->second;
1014  }
1016  {
1017  GossipMenuItemsLocaleMap::const_iterator itr = mGossipMenuItemsLocaleMap.find(entry);
1018  if (itr == mGossipMenuItemsLocaleMap.end()) return NULL;
1019  return &itr->second;
1020  }
1022  {
1023  PointOfInterestLocaleMap::const_iterator itr = mPointOfInterestLocaleMap.find(poi_id);
1024  if (itr == mPointOfInterestLocaleMap.end()) return NULL;
1025  return &itr->second;
1026  }
1027 
1028  GameObjectData const* GetGOData(uint32 guid) const
1029  {
1030  GameObjectDataMap::const_iterator itr = mGameObjectDataMap.find(guid);
1031  if (itr == mGameObjectDataMap.end()) return NULL;
1032  return &itr->second;
1033  }
1035  {
1036  return mGameObjectDataMap[guid];
1037  }
1038  void DeleteGOData(uint32 guid);
1039 
1041  {
1042  OregonStringLocaleMap::const_iterator itr = mOregonStringLocaleMap.find(entry);
1043  if (itr == mOregonStringLocaleMap.end()) return NULL;
1044  return &itr->second;
1045  }
1046  const char* GetOregonString(int32 entry, int locale_idx) const;
1047  const char* GetOregonStringForDBCLocale(int32 entry) const
1048  {
1049  return GetOregonString(entry, DBCLocaleIndex);
1050  }
1052  {
1053  return DBCLocaleIndex;
1054  }
1056  {
1057  DBCLocaleIndex = GetIndexForLocale(LocaleConstant(lang));
1058  }
1059 
1060  void AddCorpseCellData(uint32 mapid, uint32 cellid, uint32 player_guid, uint32 instance);
1061  void DeleteCorpseCellData(uint32 mapid, uint32 cellid, uint32 player_guid);
1062 
1063  time_t GetCreatureRespawnTime(uint32 loguid, uint32 instance)
1064  {
1065  return mCreatureRespawnTimes[MAKE_PAIR64(loguid, instance)];
1066  }
1067  void SaveCreatureRespawnTime(uint32 loguid, uint32 instance, time_t t);
1068  time_t GetGORespawnTime(uint32 loguid, uint32 instance)
1069  {
1070  return mGORespawnTimes[MAKE_PAIR64(loguid, instance)];
1071  }
1072  void SaveGORespawnTime(uint32 loguid, uint32 instance, time_t t);
1073  void DeleteRespawnTimeForInstance(uint32 instance);
1074 
1075  // grid objects
1076  void AddCreatureToGrid(uint32 guid, CreatureData const* data);
1077  void RemoveCreatureFromGrid(uint32 guid, CreatureData const* data);
1078  void AddGameobjectToGrid(uint32 guid, GameObjectData const* data);
1079  void RemoveGameobjectFromGrid(uint32 guid, GameObjectData const* data);
1080  uint32 AddGOData(uint32 entry, uint32 artKit, uint32 map, float x, float y, float z, float o, uint32 spawntimedelay = 0, float rotation0 = 0, float rotation1 = 0, float rotation2 = 0, float rotation3 = 0);
1081  uint32 AddCreData(uint32 entry, uint32 team, uint32 map, float x, float y, float z, float o, uint32 spawntimedelay = 0);
1082 
1083  // reserved names
1084  void LoadReservedPlayersNames();
1085  bool IsReservedName(const std::string& name) const
1086  {
1087  return m_ReservedNames.find(name) != m_ReservedNames.end();
1088  }
1089 
1090  // name with valid structure and symbols
1091  static bool IsValidName(const std::string& name, bool create = false);
1092  static bool IsValidCharterName(const std::string& name);
1093  static bool IsValidPetName(const std::string& name);
1094 
1095  static bool CheckDeclinedNames(std::wstring mainpart, DeclinedName const& names);
1096 
1097  int GetIndexForLocale(LocaleConstant loc);
1098  LocaleConstant GetLocaleForIndex(int i);
1099  // guild bank tabs
1101  {
1102  return Index < GUILD_BANK_MAX_TABS ? mGuildBankTabPrice[Index] : 0;
1103  }
1104 
1105  GameTele const* GetGameTele(uint32 id) const
1106  {
1107  GameTeleMap::const_iterator itr = m_GameTeleMap.find(id);
1108  if (itr == m_GameTeleMap.end()) return NULL;
1109  return &itr->second;
1110  }
1111  GameTele const* GetGameTele(const std::string& name) const;
1113  {
1114  return m_GameTeleMap;
1115  }
1116  bool AddGameTele(GameTele& data);
1117  bool DeleteGameTele(const std::string& name);
1118 
1120  {
1121  CacheNpcTextIdMap::const_iterator iter = m_mCacheNpcTextIdMap.find(entry);
1122  if (iter == m_mCacheNpcTextIdMap.end())
1123  return 0;
1124 
1125  return iter->second;
1126  }
1127 
1129  {
1130  CacheTrainerSpellMap::const_iterator iter = m_mCacheTrainerSpellMap.find(entry);
1131  if (iter == m_mCacheTrainerSpellMap.end())
1132  return NULL;
1133 
1134  return &iter->second;
1135  }
1136 
1138  {
1139  CacheVendorItemMap::const_iterator iter = m_mCacheVendorItemMap.find(entry);
1140  if (iter == m_mCacheVendorItemMap.end())
1141  return NULL;
1142 
1143  return &iter->second;
1144  }
1145  void AddVendorItem(uint32 entry, uint32 item, uint32 maxcount, uint32 incrtime, uint32 ExtendedCost, bool savetodb = true); // for event
1146  bool RemoveVendorItem(uint32 entry, uint32 item, bool savetodb = true); // for event
1147  bool IsVendorItemValid(uint32 vendor_entry, uint32 item, uint32 maxcount, uint32 ptime, uint32 ExtendedCost, Player* pl = NULL, std::set<uint32>* skip_vendors = NULL, uint32 ORnpcflag = 0) const;
1148 
1149  void LoadScriptNames();
1150  ScriptNameMap& GetScriptNames()
1151  {
1152  return m_scriptNames;
1153  }
1154  const char* GetScriptName(uint32 id)
1155  {
1156  return id < m_scriptNames.size() ? m_scriptNames[id].c_str() : "";
1157  }
1158  uint32 GetScriptId(const char* name);
1159 
1161  {
1162  return GossipMenusMapBounds(m_mGossipMenusMap.lower_bound(uiMenuId), m_mGossipMenusMap.upper_bound(uiMenuId));
1163  }
1164 
1166  {
1167  return GossipMenusMapBoundsNonConst(m_mGossipMenusMap.lower_bound(uiMenuId),m_mGossipMenusMap.upper_bound(uiMenuId));
1168  }
1169 
1171  {
1172  return GossipMenuItemsMapBounds(m_mGossipMenuItemsMap.lower_bound(uiMenuId), m_mGossipMenuItemsMap.upper_bound(uiMenuId));
1173  }
1174 
1176  {
1177  return GossipMenuItemsMapBoundsNonConst(m_mGossipMenuItemsMap.lower_bound(uiMenuId),m_mGossipMenuItemsMap.upper_bound(uiMenuId));
1178  }
1179 
1180  static void AddLocaleString(std::string const& s, LocaleConstant locale, StringVector& data);
1181  static inline void GetLocaleString(const StringVector& data, int loc_idx, std::string& value)
1182  {
1183  if (data.size() > size_t(loc_idx) && !data[loc_idx].empty())
1184  value = data[loc_idx];
1185  }
1186 
1187  protected:
1188 
1189  // first free id for selected id type
1196 
1197  // first free low guid for seelcted guid type
1205 
1207 
1208  typedef UNORDERED_MAP<uint32, GossipText*> GossipTextMap;
1209  typedef UNORDERED_MAP<uint32, uint32> QuestAreaTriggerMap;
1210  typedef UNORDERED_MAP<uint32, uint32> BattleMastersMap;
1211  typedef UNORDERED_MAP<uint32, std::string> ItemTextMap;
1212  typedef std::set<uint32> TavernAreaTriggerSet;
1213  typedef std::set<uint32> GameObjectForQuestSet;
1214 
1215  GroupSet mGroupSet;
1216  GuildMap mGuildMap;
1217  ArenaTeamMap mArenaTeamMap;
1218 
1219  ItemMap mItems;
1220 
1221  ItemTextMap mItemTexts;
1222 
1223  QuestAreaTriggerMap mQuestAreaTriggerMap;
1224  BattleMastersMap mBattleMastersMap;
1225  TavernAreaTriggerSet mTavernAreaTriggerSet;
1226  GameObjectForQuestSet mGameObjectForQuestSet;
1227  GossipTextMap mGossipText;
1228  AreaTriggerMap mAreaTriggers;
1229  AreaTriggerScriptMap mAreaTriggerScripts;
1230  AccessRequirementMap mAccessRequirements;
1231 
1232  RepOnKillMap mRepOnKill;
1233  RepSpilloverTemplateMap m_RepSpilloverTemplateMap;
1234 
1237  PointOfInterestMap mPointsOfInterest;
1238 
1239  WeatherZoneMap mWeatherZoneMap;
1240 
1241  PetCreateSpellMap mPetCreateSpell;
1242 
1243  //character reserved names
1244  typedef std::set<std::string> ReservedNamesMap;
1245  ReservedNamesMap m_ReservedNames;
1246 
1248 
1250 
1251  ScriptNameMap m_scriptNames;
1252 
1253  ReferFriendMap m_referrerFriends;
1254  ReferFriendMap m_referredFriends;
1255 
1256  typedef std::vector<LocaleConstant> LocalForIndex;
1257  LocalForIndex m_LocalForIndex;
1258  int GetOrNewIndexForLocale(LocaleConstant loc);
1259 
1261 
1262  private:
1263  void LoadScripts(ScriptsType type);
1264  void CheckScripts(ScriptsType type, std::set<int32>& ids);
1265  void ConvertCreatureAddonAuras(CreatureDataAddon* addon, char const* table, char const* guidEntryStr);
1266  void LoadQuestRelationsHelper(QuestRelations& map, std::string table, bool starter, bool go);
1267 
1268  typedef std::map<uint32, PetLevelInfo*> PetLevelInfoMap;
1269  // PetLevelInfoMap[creature_id][level]
1270  PetLevelInfoMap petInfo; // [creature_id][level]
1271 
1272  PlayerClassInfo playerClassInfo[MAX_CLASSES];
1273 
1274  void BuildPlayerLevelInfo(uint8 race, uint8 class_, uint8 level, PlayerLevelInfo* plinfo) const;
1276 
1277  typedef std::map<uint32, uint32> BaseXPMap; // [area level][base xp]
1278  BaseXPMap mBaseXPTable;
1279 
1280  typedef std::map<uint32, int32> FishingBaseSkillMap; // [areaId][base skill level]
1281  FishingBaseSkillMap mFishingBaseForArea;
1282 
1283  typedef std::map<uint32, std::vector<std::string> > HalfNameMap;
1284  HalfNameMap PetHalfName0;
1285  HalfNameMap PetHalfName1;
1286 
1287  // Array to store creature stats, Max creature level + 1 (for data alignement with in game level)
1289 
1305 
1306  typedef std::vector<uint32> GuildBankTabPriceMap;
1307  GuildBankTabPriceMap mGuildBankTabPrice;
1308 
1312 
1315 };
1316 
1317 #define sObjectMgr Oregon::Singleton<ObjectMgr>::Instance()
1318 
1319 // scripting access functions
1320 bool LoadOregonStrings(DatabaseType& db, char const* table, int32 start_value = MAX_CREATURE_AI_TEXT_STRING_ID, int32 end_value = std::numeric_limits<int32>::min());
1322 uint32 GetScriptId(const char* name);
1327 Quest const* GetQuestTemplateStore(uint32 entry);
1328 
1329 #endif
1330 
std::string OptionText
Definition: ObjectMgr.h:439
GameObjectInfo const * GetGameObjectInfo(uint32 id)
Definition: ObjectMgr.cpp:7740
uint32 GOGuid
Definition: ObjectMgr.h:222
UNORDERED_MAP< uint32, PageTextLocale > PageTextLocaleMap
Definition: ObjectMgr.h:386
uint16 mana
Definition: ObjectMgr.h:399
CreatureDataMap mCreatureDataMap
Definition: ObjectMgr.h:1291
#define MAKE_PAIR64(l, h)
Definition: Common.h:167
std::wstring wnameLow
Definition: ObjectMgr.h:71
float Unused4
Definition: ObjectMgr.h:306
uint32 SoundID
Definition: ObjectMgr.h:264
ItemLocaleMap mItemLocaleMap
Definition: ObjectMgr.h:1296
SQLStorage sCreatureStorage
float DestX
Definition: ObjectMgr.h:184
GossipMenuItemsMapBoundsNonConst GetGossipMenuItemsMapBoundsNonConst(uint32 uiMenuId)
Definition: ObjectMgr.h:1175
uint32 m_auctionid
Definition: ObjectMgr.h:1190
uint32 GetLinkedRespawnGuid(uint32 guid) const
Definition: ObjectMgr.h:973
UNORDERED_MAP< uint32, OregonStringLocale > OregonStringLocaleMap
Definition: ObjectMgr.h:387
std::multimap< uint32, ScriptInfo > ScriptMap
Definition: ObjectMgr.h:327
UNORDERED_MAP< uint32, uint32 > TransportEventMap
Definition: ObjectMgr.h:564
ReferFriendMap m_referredFriends
Definition: ObjectMgr.h:1254
uint32 TravelTime
Definition: ObjectMgr.h:181
std::string name
Definition: ObjectMgr.h:70
eScriptFlags
Definition: ObjectMgr.h:111
QuestRelations * GetCreatureQuestRelationMap()
Definition: ObjectMgr.h:806
uint32 GetNpcGossip(uint32 entry) const
Definition: ObjectMgr.h:1119
uint32 OptionNpcflag
Definition: ObjectMgr.h:441
ArenaTeamMap::iterator GetArenaTeamMapBegin()
Definition: ObjectMgr.h:622
std::set< uint32 > TavernAreaTriggerSet
Definition: ObjectMgr.h:1212
GossipMenuItemsLocale const * GetGossipMenuItemsLocale(uint32 entry) const
Definition: ObjectMgr.h:1015
OregonStringLocaleMap mOregonStringLocaleMap
Definition: ObjectMgr.h:1300
ScriptMapMap sGameObjectScripts
Definition: ObjectMgr.cpp:51
SQLStorage sCreatureModelStorage
GuildBankTabPriceMap mGuildBankTabPrice
Definition: ObjectMgr.h:1307
GossipMenusMapBounds GetGossipMenusMapBounds(uint32 uiMenuId) const
Definition: ObjectMgr.h:1160
uint32 team
Definition: ObjectMgr.h:488
UNORDERED_MAP< uint32, TrainerSpellData > CacheTrainerSpellMap
Definition: ObjectMgr.h:496
int DBCLocaleIndex
Definition: ObjectMgr.h:1260
DatabaseType WorldDatabase
Accessor to the world database.
Definition: Main.cpp:53
CreatureData const * GetCreatureData(uint32 guid) const
Definition: ObjectMgr.h:962
float DestY
Definition: ObjectMgr.h:185
int32 CreatureEntry
Definition: ObjectMgr.h:257
Quest const * GetQuestTemplate(uint32 quest_id) const
Definition: ObjectMgr.h:687
ConditionList Conditions
Definition: ObjectMgr.h:448
float Orientation
Definition: ObjectMgr.h:205
SkillRangeType
Definition: ObjectMgr.h:498
uint32 GetQuestForAreaTrigger(uint32 Trigger_ID) const
Definition: ObjectMgr.h:697
std::set< uint32 > CellGuidSet
Definition: ObjectMgr.h:351
UNORDERED_MAP< uint32, std::string > ItemTextMap
Definition: ObjectMgr.h:1211
Emote
float Unused3
Definition: ObjectMgr.h:305
UNORDERED_MAP< uint32, PointOfInterest > PointOfInterestMap
Definition: ObjectMgr.h:554
RAFLinkStatus
Definition: Player.h:803
uint32 FieldID
Definition: ObjectMgr.h:174
uint32 OptionType
Definition: ObjectMgr.h:440
SQLStorage sPageTextStore
ScriptCommands command
Definition: ObjectMgr.h:149
QuestRelations mCreatureQuestRelations
Definition: ObjectMgr.h:815
BattleMastersMap mBattleMastersMap
Definition: ObjectMgr.h:1224
PageTextLocale const * GetPageTextLocale(uint32 entry) const
Definition: ObjectMgr.h:1009
GameObjectDataMap mGameObjectDataMap
Definition: ObjectMgr.h:1294
FishingBaseSkillMap mFishingBaseForArea
Definition: ObjectMgr.h:1281
uint32 FieldValue
Definition: ObjectMgr.h:175
NpcTextLocaleMap mNpcTextLocaleMap
Definition: ObjectMgr.h:1298
std::multimap< uint32, GossipMenuItems > GossipMenuItemsMap
Definition: ObjectMgr.h:461
ScriptsType
Definition: ObjectMgr.h:96
std::list< Condition * > ConditionList
Definition: ConditionMgr.h:223
ScriptMapMap sEventScripts
Definition: ObjectMgr.cpp:52
uint16 armor
Definition: ObjectMgr.h:400
uint32 ActionPoiId
Definition: ObjectMgr.h:443
time_t GetCreatureRespawnTime(uint32 loguid, uint32 instance)
Definition: ObjectMgr.h:1063
UNORDERED_MAP< uint32, CreatureLocale > CreatureLocaleMap
Definition: ObjectMgr.h:381
bool LoadOregonStrings(DatabaseType &db, char const *table, int32 start_value=MAX_CREATURE_AI_TEXT_STRING_ID, int32 end_value=std::numeric_limits< int32 >::min())
Definition: ObjectMgr.cpp:7717
AccessRequirementMap mAccessRequirements
Definition: ObjectMgr.h:1230
SummonerType _summonerType
Summoner&#39;s type, see SummonerType for available types.
Definition: ObjectMgr.h:92
UNORDERED_MAP< uint32, WeatherZoneChances > WeatherZoneMap
Definition: ObjectMgr.h:556
float PosX
Definition: ObjectMgr.h:232
UNORDERED_MAP< uint32, GameObjectData > GameObjectDataMap
Definition: ObjectMgr.h:380
AreaTriggerMap mAreaTriggers
Definition: ObjectMgr.h:1228
std::map< uint32, ScriptMap > ScriptMapMap
Definition: ObjectMgr.h:328
#define MAX_SPILLOVER_FACTIONS
UNORDERED_MAP< uint32, PointOfInterestLocale > PointOfInterestLocaleMap
Definition: ObjectMgr.h:389
uint8 _summonGroup
Summon&#39;s group id.
Definition: ObjectMgr.h:93
GossipMenusMapBoundsNonConst GetGossipMenusMapBoundsNonConst(uint32 uiMenuId)
Definition: ObjectMgr.h:1165
#define MAKE_PAIR32(l, h)
Definition: Common.h:171
UNORDERED_MAP< uint32, PetCreateSpellEntry > PetCreateSpellMap
Definition: ObjectMgr.h:558
GroupSet mGroupSet
Definition: ObjectMgr.h:1215
float orientation
Definition: ObjectMgr.h:68
uint32 id
Definition: ObjectMgr.h:147
QuestRelations mGOQuestRelations
Definition: ObjectMgr.h:813
std::map< uint32, uint32 > CellCorpseSet
Definition: ObjectMgr.h:352
float position_x
Definition: ObjectMgr.h:65
uint32 SpellID
Definition: ObjectMgr.h:249
uint32 ScriptType
Definition: ObjectMgr.h:289
ReputationOnKillEntry const * GetReputationOnKilEntry(uint32 id) const
Definition: ObjectMgr.h:752
uint32 GetBattleMasterBG(uint32 entry) const
Definition: ObjectMgr.h:713
WeatherZoneMap mWeatherZoneMap
Definition: ObjectMgr.h:1239
UNORDERED_MAP< uint32, ItemLocale > ItemLocaleMap
Definition: ObjectMgr.h:383
PetCreateSpellEntry const * GetPetCreateSpellEntry(uint32 id) const
Definition: ObjectMgr.h:769
ACE_INT32 int32
Definition: Define.h:67
uint32 reputation_max_cap2
Definition: ObjectMgr.h:411
std::string BoxText
Definition: ObjectMgr.h:447
int32 GetFishingBaseSkillLevel(uint32 entry) const
Definition: ObjectMgr.h:899
ReservedNamesMap m_ReservedNames
Definition: ObjectMgr.h:1245
UNORDERED_MAP< uint64, time_t > RespawnTimes
Definition: ObjectMgr.h:362
QuestMap mQuestTemplates
Definition: ObjectMgr.h:1206
static CreatureDataAddon const * GetCreatureAddon(uint32 lowguid)
Definition: ObjectMgr.h:638
CreatureInfo const * GetCreatureTemplateStore(uint32 entry)
Definition: ObjectMgr.cpp:7750
uint32 EquipmentID
Definition: ObjectMgr.h:313
uint32 safeLocId
Definition: ObjectMgr.h:487
uint32 text_id
Definition: ObjectMgr.h:454
uint32 m_hiPetGuid
Definition: ObjectMgr.h:1200
ItemLocale const * GetItemLocale(uint32 entry) const
Definition: ObjectMgr.h:991
PointOfInterestMap mPointsOfInterest
Definition: ObjectMgr.h:1237
UNORDERED_MAP< uint32, uint32 > AreaTriggerScriptMap
Definition: ObjectMgr.h:546
float PosZ
Definition: ObjectMgr.h:234
uint32 GetGuildBankTabPrice(uint8 Index) const
Definition: ObjectMgr.h:1100
uint32 GetAccountId() const
Definition: WorldSession.h:100
GossipTextMap mGossipText
Definition: ObjectMgr.h:1227
ItemMap mItems
Definition: ObjectMgr.h:1219
uint32 DespawnDelay
Definition: ObjectMgr.h:223
#define MAX_EXPANSION
CacheNpcTextIdMap m_mCacheNpcTextIdMap
Definition: ObjectMgr.h:1309
SummonerType
CellObjectGuids const & GetCellObjectGuids(uint16 mapid, uint8 spawnMode, uint32 cell_id)
Definition: ObjectMgr.h:957
Language lang_id
Definition: ObjectMgr.h:516
bool operator<(TempSummonGroupKey const &rhs) const
Definition: ObjectMgr.h:84
UNORDERED_MAP< uint32, VendorItemData > CacheVendorItemMap
Definition: ObjectMgr.h:495
RespawnTimes mGORespawnTimes
Definition: ObjectMgr.h:1304
AreaTrigger const * GetAreaTrigger(uint32 trigger) const
Definition: ObjectMgr.h:731
#define MIN_OREGON_STRING_ID
Definition: ObjectMgr.h:366
ScriptMapMap sGossipScripts
Definition: ObjectMgr.cpp:53
#define DEFAULT_MAX_CREATURE_LEVEL
bool IsGameObjectForQuests(uint32 entry) const
Definition: ObjectMgr.h:708
static ItemTemplate const * GetItemTemplate(uint32 id)
Definition: ObjectMgr.h:648
std::string GetScriptsTableNameByType(ScriptsType type)
Definition: ObjectMgr.cpp:56
ScriptsType type
Definition: ObjectMgr.h:146
GraveYardMap mGraveYardMap
Definition: ObjectMgr.h:1247
uint32 m_hiGoGuid
Definition: ObjectMgr.h:1202
bool IsTavernAreaTrigger(uint32 Trigger_ID) const
Definition: ObjectMgr.h:704
std::map< uint32, uint32 > BaseXPMap
Definition: ObjectMgr.h:1277
CacheTrainerSpellMap m_mCacheTrainerSpellMap
Definition: ObjectMgr.h:1311
uint32 m_hiItemGuid
Definition: ObjectMgr.h:1201
GameObjectData & NewGOData(uint32 guid)
Definition: ObjectMgr.h:1034
ArenaTeamMap::iterator GetArenaTeamMapEnd()
Definition: ObjectMgr.h:626
ObjectMgr::ScriptNameMap & GetScriptNames()
Definition: ObjectMgr.cpp:7735
UNORDERED_MAP< uint32, RepSpilloverTemplate > RepSpilloverTemplateMap
Definition: ObjectMgr.h:552
uint32 reputation_max_cap1
Definition: ObjectMgr.h:408
uint32 GetScriptId(const char *name)
Definition: ObjectMgr.cpp:7730
UNORDERED_MAP< uint32, Guild * > GuildMap
Definition: ObjectMgr.h:538
static InstanceTemplate const * GetInstanceTemplate(uint32 map)
Definition: ObjectMgr.h:653
QuestLocale const * GetQuestLocale(uint32 entry) const
Definition: ObjectMgr.h:997
#define MAX_STATS
SQLStorage sInstanceTemplate
float Unused5
Definition: ObjectMgr.h:307
GameTeleMap const & GetGameTeleMap() const
Definition: ObjectMgr.h:1112
uint32 target_mapId
Definition: ObjectMgr.h:344
CellCorpseSet corpses
Definition: ObjectMgr.h:357
float position_z
Definition: ObjectMgr.h:67
ScriptCommands
Definition: World.h:380
static GameObjectInfo const * GetGameObjectInfo(uint32 id)
Definition: ObjectMgr.h:592
SQLStorage sEquipmentStorageRaw
std::vector< std::string > ScriptNameMap
Definition: ObjectMgr.h:560
uint32 BoxMoney
Definition: ObjectMgr.h:446
#define MAX_CREATURE_AI_TEXT_STRING_ID
Definition: ObjectMgr.h:371
WeatherZoneChances const * GetWeatherChances(uint32 zone_id) const
Definition: ObjectMgr.h:948
GameTeleMap m_GameTeleMap
Definition: ObjectMgr.h:1249
QuestRelations mCreatureQuestInvolvedRelations
Definition: ObjectMgr.h:816
uint32 PathID
Definition: ObjectMgr.h:281
uint32 Amount
Definition: ObjectMgr.h:271
bool IsReservedName(const std::string &name) const
Definition: ObjectMgr.h:1085
UNORDERED_MAP< uint32, NpcTextLocale > NpcTextLocaleMap
Definition: ObjectMgr.h:385
RAFLinkStatus GetRAFLinkStatus(const Player *plr1, const Player *plr2) const
Definition: ObjectMgr.h:584
uint32 m_arenaTeamId
Definition: ObjectMgr.h:1193
ACE_UINT8 uint8
Definition: Define.h:73
float SearchRadius
Definition: ObjectMgr.h:259
std::vector< std::string > Content
Definition: ObjectMgr.h:375
static CreatureDataAddon const * GetCreatureTemplateAddon(uint32 entry)
Definition: ObjectMgr.h:643
MapObjectGuids mMapObjectGuids
Definition: ObjectMgr.h:1290
uint32 Unused1
Definition: ObjectMgr.h:180
Language
PageTextLocaleMap mPageTextLocaleMap
Definition: ObjectMgr.h:1299
std::multimap< int32, uint32 > ExclusiveQuestGroups
Definition: ObjectMgr.h:926
std::multimap< uint32, uint32 > QuestRelations
Definition: ObjectMgr.h:391
uint32 QuestID
Definition: ObjectMgr.h:210
HighGuid
Definition: ObjectGuid.h:51
void RemoveGroup(Group *group)
Definition: ObjectMgr.h:605
uint32 ScriptID
Definition: ObjectMgr.h:288
uint32 delay
Definition: ObjectMgr.h:148
QuestLocaleMap mQuestLocaleMap
Definition: ObjectMgr.h:1297
bool LoadOregonStrings()
Definition: ObjectMgr.h:830
QuestMap const & GetQuestTemplates() const
Definition: ObjectMgr.h:692
uint32 skill_id
Definition: ObjectMgr.h:518
HalfNameMap PetHalfName0
Definition: ObjectMgr.h:1284
std::string GetScriptCommandName(ScriptCommands command)
Definition: ObjectMgr.cpp:120
PlayerInfo const * GetPlayerInfo(uint32 race, uint32 class_) const
Definition: ObjectMgr.h:667
GameObjectLocale const * GetGameObjectLocale(uint32 entry) const
Definition: ObjectMgr.h:985
TempSummonDataContainer _tempSummonDataStore
Stores temp summon data grouped by summoner&#39;s entry, summoner&#39;s type and group id.
Definition: ObjectMgr.h:1314
uint32 CreatureEntry
Definition: ObjectMgr.h:216
GossipMenuItemsMapBounds GetGossipMenuItemsMapBounds(uint32 uiMenuId) const
Definition: ObjectMgr.h:1170
const AuthHandler table[]
Definition: AuthSocket.cpp:149
ScriptMapMap * GetScriptsMapByType(ScriptsType type)
Definition: ObjectMgr.cpp:88
int32 Unused2
Definition: ObjectMgr.h:182
QuestRelations mGOQuestInvolvedRelations
Definition: ObjectMgr.h:814
std::set< uint32 > GameObjectForQuestSet
Definition: ObjectMgr.h:1213
uint32 m_hiCharGuid
Definition: ObjectMgr.h:1198
UNORDERED_MAP< uint32, ReputationOnKillEntry > RepOnKillMap
Definition: ObjectMgr.h:551
uint32 m_hiPetNumber
Definition: ObjectMgr.h:1195
TempSummonGroupKey(uint32 summonerEntry, SummonerType summonerType, uint8 group)
Definition: ObjectMgr.h:79
SQLStorage sCreatureDataAddonStorage
PointOfInterest const * GetPointOfInterest(uint32 id) const
Definition: ObjectMgr.h:777
GossipMenuItemsMap m_mGossipMenuItemsMap
Definition: ObjectMgr.h:1236
uint32 OptionIndex
Definition: ObjectMgr.h:437
Definition: Item.h:196
#define MAX_OREGON_STRING_ID
Definition: ObjectMgr.h:367
GameTele const * GetGameTele(uint32 id) const
Definition: ObjectMgr.h:1105
int32 GetDBCLocaleIndex() const
Definition: ObjectMgr.h:1051
QuestAreaTriggerMap mQuestAreaTriggerMap
Definition: ObjectMgr.h:1223
uint32 Flags
Definition: ObjectMgr.h:162
static Player * FindPlayer(uint64, bool force=false)
TrainerSpellData const * GetNpcTrainerSpells(uint32 entry) const
Definition: ObjectMgr.h:1128
BaseXPMap mBaseXPTable
Definition: ObjectMgr.h:1278
std::map< TempSummonGroupKey, std::vector< TempSummonData > > TempSummonDataContainer
Definition: ObjectMgr.h:465
etc mysql my cnf *Then change max_allowed_packet to a bigger value
UNORDERED_MAP< uint32, ArenaTeam * > ArenaTeamMap
Definition: ObjectMgr.h:540
PlayerClassInfo const * GetPlayerClassInfo(uint32 class_) const
Definition: ObjectMgr.h:660
std::vector< std::string > StringVector
Definition: Common.h:232
UNORDERED_MAP< uint32, AreaTrigger > AreaTriggerMap
Definition: ObjectMgr.h:544
CreatureLocaleMap mCreatureLocaleMap
Definition: ObjectMgr.h:1293
uint32 EmoteID
Definition: ObjectMgr.h:168
Definition: model.h:33
std::pair< GossipMenuItemsMap::const_iterator, GossipMenuItemsMap::const_iterator > GossipMenuItemsMapBounds
Definition: ObjectMgr.h:462
#define UNORDERED_MAP
Definition: UnorderedMap.h:47
UNORDERED_MAP< uint32, uint32 > QuestAreaTriggerMap
Definition: ObjectMgr.h:1209
VendorItemData const * GetNpcVendorItemList(uint32 entry) const
Definition: ObjectMgr.h:1137
PetCreateSpellMap mPetCreateSpell
Definition: ObjectMgr.h:1241
std::map< uint32, PetLevelInfo * > PetLevelInfoMap
Definition: ObjectMgr.h:1268
uint32 ItemEntry
Definition: ObjectMgr.h:270
std::set< std::string > ReservedNamesMap
Definition: ObjectMgr.h:1244
PetLevelInfoMap petInfo
Definition: ObjectMgr.h:1270
uint16 displayId_m
Definition: Player.h:209
RespawnTimes mCreatureRespawnTimes
Definition: ObjectMgr.h:1303
Player * GetPlayer(uint64 guid, bool force=false) const
Definition: ObjectMgr.h:570
UNORDERED_MAP< uint32, Item * > ItemMap
Definition: ObjectMgr.h:534
int32 RemoveCorpse
Definition: ObjectMgr.h:296
std::vector< LocaleConstant > LocalForIndex
Definition: ObjectMgr.h:1256
Definition: Map.h:266
std::multimap< uint32, GraveYardData > GraveYardMap
Definition: ObjectMgr.h:490
ScriptMapMap sSpellScripts
Definition: ObjectMgr.cpp:50
GossipMenuItemsLocaleMap mGossipMenuItemsLocaleMap
Definition: ObjectMgr.h:1301
#define MAX_CREATURE_CLASS
SQLStorage sItemStorage
UNORDERED_MAP< uint64, uint64 > ReferFriendMap
Definition: ObjectMgr.h:562
CreatureLinkedRespawnMap mCreatureLinkedRespawnMap
Definition: ObjectMgr.h:1292
UNORDERED_MAP< uint32, CellObjectGuids > CellObjectGuidsMap
Definition: ObjectMgr.h:359
std::set< Group * > GroupSet
Definition: ObjectMgr.h:536
Key for storing temp summon data in TempSummonDataContainer.
Definition: ObjectMgr.h:77
Player * GetPlayer(const char *name, bool force=false) const
Definition: ObjectMgr.h:566
#define MAX_CLASSES
Definition: SharedDefines.h:91
UNORDERED_MAP< uint32, Quest * > QuestMap
Definition: ObjectMgr.h:542
float position_y
Definition: ObjectMgr.h:66
ArenaTeamMap mArenaTeamMap
Definition: ObjectMgr.h:1217
OregonStringLocale const * GetOregonStringLocale(int32 entry) const
Definition: ObjectMgr.h:1040
UNORDERED_MAP< uint32, QuestLocale > QuestLocaleMap
Definition: ObjectMgr.h:384
std::map< uint32, std::vector< std::string > > HalfNameMap
Definition: ObjectMgr.h:1283
UNORDERED_MAP< uint32, CellObjectGuidsMap > MapObjectGuids
Definition: ObjectMgr.h:360
QuestRelations * GetGOQuestRelationMap()
Definition: ObjectMgr.h:801
ACE_UINT64 uint64
Definition: Define.h:70
T const * LookupEntry(uint32 id) const
Definition: SQLStorage.h:52
float DestZ
Definition: ObjectMgr.h:186
CacheVendorItemMap m_mCacheVendorItemMap
Definition: ObjectMgr.h:1310
#define LANGUAGES_COUNT
uint32 ActionMenuId
Definition: ObjectMgr.h:442
TavernAreaTriggerSet mTavernAreaTriggerSet
Definition: ObjectMgr.h:1225
std::multimap< uint32, GossipMenus > GossipMenusMap
Definition: ObjectMgr.h:458
#define MAX_RACES
Definition: SharedDefines.h:66
uint32 ActionScriptId
Definition: ObjectMgr.h:444
static void GetLocaleString(const StringVector &data, int loc_idx, std::string &value)
Definition: ObjectMgr.h:1181
float target_Orientation
Definition: ObjectMgr.h:348
float PosY
Definition: ObjectMgr.h:233
time_t GetGORespawnTime(uint32 loguid, uint32 instance)
Definition: ObjectMgr.h:1068
CellGuidSet creatures
Definition: ObjectMgr.h:355
uint32 m_hiCreatureGuid
Definition: ObjectMgr.h:1199
AccessRequirement const * GetAccessRequirement(uint32 requirement) const
Definition: ObjectMgr.h:739
SQLStorage sEquipmentStorage
std::pair< GossipMenusMap::iterator, GossipMenusMap::iterator > GossipMenusMapBoundsNonConst
Definition: ObjectMgr.h:460
ScriptNameMap & GetScriptNames()
Definition: ObjectMgr.h:1150
RepSpilloverTemplateMap m_RepSpilloverTemplateMap
Definition: ObjectMgr.h:1233
RepOnKillMap mRepOnKill
Definition: ObjectMgr.h:1232
uint32 GetAreaTriggerScriptId(uint32 trigger_id)
Definition: ObjectMgr.cpp:7712
LanguageDesc lang_description[LANGUAGES_COUNT]
Definition: ObjectMgr.cpp:246
float target_X
Definition: ObjectMgr.h:345
std::map< uint32, int32 > FishingBaseSkillMap
Definition: ObjectMgr.h:1280
LanguageDesc const * GetLanguageDescByID(uint32 lang)
Definition: ObjectMgr.cpp:269
PointOfInterestLocale const * GetPointOfInterestLocale(uint32 poi_id) const
Definition: ObjectMgr.h:1021
uint32 mapId
Definition: ObjectMgr.h:69
UNORDERED_MAP< uint32, GameObjectLocale > GameObjectLocaleMap
Definition: ObjectMgr.h:382
uint32 entry
Definition: ObjectMgr.h:453
UNORDERED_MAP< uint32, GameTele > GameTeleMap
Definition: ObjectMgr.h:74
#define WEATHER_SEASONS
Definition: ObjectMgr.h:472
uint32 IsRepeatable
Definition: ObjectMgr.h:282
UNORDERED_MAP< uint32, uint32 > BattleMastersMap
Definition: ObjectMgr.h:1210
uint32 m_mailid
Definition: ObjectMgr.h:1191
ConditionList conditions
Definition: ObjectMgr.h:455
std::map< uint32, uint32 > CreatureLinkedRespawnMap
Definition: ObjectMgr.h:378
uint32 ResetDelay
Definition: ObjectMgr.h:242
ExclusiveQuestGroups mExclusiveQuestGroups
Definition: ObjectMgr.h:927
const char * GetOregonStringForDBCLocale(int32 entry) const
Definition: ObjectMgr.h:1047
SQLStorage sCreatureInfoAddonStorage
GameObjectData const * GetGOData(uint32 guid) const
Definition: ObjectMgr.h:1028
uint8 OptionIcon
Definition: ObjectMgr.h:438
uint32 access_id
Definition: ObjectMgr.h:343
void SetDBCLocaleIndex(uint32 lang)
Definition: ObjectMgr.h:1055
uint32 ModelID
Definition: ObjectMgr.h:318
float target_Y
Definition: ObjectMgr.h:346
uint32 MapID
Definition: ObjectMgr.h:198
GameObjectLocaleMap mGameObjectLocaleMap
Definition: ObjectMgr.h:1295
CellGuidSet gameobjects
Definition: ObjectMgr.h:356
uint32 m_hiDoGuid
Definition: ObjectMgr.h:1203
uint32 spell_id
Definition: ObjectMgr.h:517
int32 Unused1
Definition: ObjectMgr.h:200
UNORDERED_MAP< uint32, GossipText * > GossipTextMap
Definition: ObjectMgr.h:1208
WorldSession * GetSession() const
Definition: Player.h:1947
LocaleConstant
Definition: Common.h:211
uint32 Unused2
Definition: ObjectMgr.h:295
NpcTextLocale const * GetNpcTextLocale(uint32 entry) const
Definition: ObjectMgr.h:1003
std::pair< GossipMenusMap::const_iterator, GossipMenusMap::const_iterator > GossipMenusMapBounds
Definition: ObjectMgr.h:459
SkillRangeType GetSkillRangeType(SkillLineEntry const *pSkill, bool racial)
Definition: ObjectMgr.cpp:7059
RAFLinkStatus GetRAFLinkStatus(const Player *plr) const
Definition: ObjectMgr.h:579
ItemTextMap mItemTexts
Definition: ObjectMgr.h:1221
AreaTriggerScriptMap mAreaTriggerScripts
Definition: ObjectMgr.h:1229
ACE_UINT16 uint16
Definition: Define.h:72
SQLStorage sGOStorage
void LoadQuestStartersAndEnders()
Definition: ObjectMgr.h:789
Player * FindPlayerByName(const char *name, bool force=false)
CreatureLocale const * GetCreatureLocale(uint32 entry) const
Definition: ObjectMgr.h:979
ACE_UINT32 uint32
Definition: Define.h:71
GossipMenusMap m_mGossipMenusMap
Definition: ObjectMgr.h:1235
uint16 health
Definition: ObjectMgr.h:398
RepSpilloverTemplate const * GetRepSpilloverTemplate(uint32 factionId) const
Definition: ObjectMgr.h:760
std::vector< TempSummonData > const * GetSummonGroup(uint32 summonerId, SummonerType summonerType, uint8 group) const
Definition: ObjectMgr.h:939
std::vector< uint32 > GuildBankTabPriceMap
Definition: ObjectMgr.h:1306
HalfNameMap PetHalfName1
Definition: ObjectMgr.h:1285
ScriptNameMap m_scriptNames
Definition: ObjectMgr.h:1251
Quest const * GetQuestTemplateStore(uint32 entry)
Definition: ObjectMgr.cpp:7755
uint32 Distance
Definition: ObjectMgr.h:211
Definition: Guild.h:265
UNORDERED_MAP< uint32, AccessRequirement > AccessRequirementMap
Definition: ObjectMgr.h:548
GuildMap mGuildMap
Definition: ObjectMgr.h:1216
int32 TextID
Definition: ObjectMgr.h:163
GameObjectForQuestSet mGameObjectForQuestSet
Definition: ObjectMgr.h:1226
std::string icon_name
Definition: ObjectMgr.h:431
CreatureData & NewOrExistCreatureData(uint32 guid)
Definition: ObjectMgr.h:968
uint32 m_guildId
Definition: ObjectMgr.h:1194
Definition: Player.h:923
ScriptMapMap sQuestStartScripts
Definition: ObjectMgr.cpp:49
void AddGroup(Group *group)
Definition: ObjectMgr.h:601
ReferFriendMap m_referrerFriends
Definition: ObjectMgr.h:1253
uint16 displayId_f
Definition: Player.h:210
UNORDERED_MAP< uint32, CreatureData > CreatureDataMap
Definition: ObjectMgr.h:379
LocalForIndex m_LocalForIndex
Definition: ObjectMgr.h:1257
uint32 _summonerEntry
Summoner&#39;s entry.
Definition: ObjectMgr.h:91
float target_Z
Definition: ObjectMgr.h:347
ScriptMapMap sWaypointScripts
Definition: ObjectMgr.cpp:54
uint32 ChatType
Definition: ObjectMgr.h:161
std::string GetItemText(uint32 id)
Definition: ObjectMgr.h:917
const char * GetScriptName(uint32 id)
Definition: ObjectMgr.h:1154
UNORDERED_MAP< uint32, GossipMenuItemsLocale > GossipMenuItemsLocaleMap
Definition: ObjectMgr.h:388
bool normalizePlayerName(std::string &name)
Definition: ObjectMgr.cpp:225
#define GUILD_BANK_MAX_TABS
Definition: Group.h:154
PointOfInterestLocaleMap mPointOfInterestLocaleMap
Definition: ObjectMgr.h:1302
uint32 m_ItemTextId
Definition: ObjectMgr.h:1192
CreatureInfo const * GetCreatureTemplate(uint32 id)
Definition: ObjectMgr.cpp:7745
std::pair< GossipMenuItemsMap::iterator, GossipMenuItemsMap::iterator > GossipMenuItemsMapBoundsNonConst
Definition: ObjectMgr.h:463
uint32 m_hiCorpseGuid
Definition: ObjectMgr.h:1204
UNORDERED_MAP< uint32, uint32 > CacheNpcTextIdMap
Definition: ObjectMgr.h:493
ScriptMapMap sQuestEndScripts
Definition: ObjectMgr.cpp:48