304{
307
310
313
318
321
324
327
329 {
340 {
341 LOG_ERROR(
"server.loading",
"Failed to find map files for starting areas");
342 exit(1);
343 }
344 }
345
348
351
354 LOG_INFO(
"server.loading",
"Loading Acore Strings...");
356 exit(1);
357
358 LOG_INFO(
"server.loading",
"Loading Module Strings...");
360 LOG_INFO(
"server.loading",
"Loading Module Strings Locale...");
362
364
365
366
370 else
372
374
375 LoginDatabase.Execute(
"UPDATE realmlist SET icon = {}, timezone = {} WHERE id = '{}'", server_type, realm_zone,
realm.
Id.
Realm);
376
379
381 LOG_INFO(
"server.loading",
"Initialize Data Stores...");
384
385
387
388
390
391 std::vector<uint32> mapIds;
393 {
394 mapIds.emplace_back(map->MapID);
395 }
396
398
401
402 LOG_INFO(
"server.loading",
"Loading Game Graveyard...");
404
405 LOG_INFO(
"server.loading",
"Initializing PlayerDump Tables...");
407
410
411 LOG_INFO(
"server.loading",
"Loading SpellInfo Store...");
413
414 LOG_INFO(
"server.loading",
"Loading Spell Cooldown Overrides...");
416
417 LOG_INFO(
"server.loading",
"Loading SpellInfo Data Corrections...");
419
420 LOG_INFO(
"server.loading",
"Loading Spell Rank Data...");
422
423 LOG_INFO(
"server.loading",
"Loading Spell Specific And Aura State...");
424 sSpellMgr->LoadSpellSpecificAndAuraState();
425
426 LOG_INFO(
"server.loading",
"Loading SkillLineAbilityMultiMap Data...");
428
429 LOG_INFO(
"server.loading",
"Loading SpellInfo Custom Attributes...");
430 sSpellMgr->LoadSpellInfoCustomAttributes();
431
432 LOG_INFO(
"server.loading",
"Loading Player Totem models...");
434
435 LOG_INFO(
"server.loading",
"Loading Player Shapeshift models...");
437
438 LOG_INFO(
"server.loading",
"Loading GameObject Models...");
440
441 LOG_INFO(
"server.loading",
"Loading Script Names...");
443
444 LOG_INFO(
"server.loading",
"Loading Instance Template...");
446
447 LOG_INFO(
"server.loading",
"Loading Character Cache...");
449
450
451 LOG_INFO(
"server.loading",
"Loading Instances...");
453
454 LOG_INFO(
"server.loading",
"Loading Broadcast Texts...");
457
458 LOG_INFO(
"server.loading",
"Loading Localization Strings...");
472
476
477 LOG_INFO(
"server.loading",
"Loading Page Texts...");
479
480 LOG_INFO(
"server.loading",
"Loading Game Object Templates...");
482
483 LOG_INFO(
"server.loading",
"Loading Game Object Template Addons...");
485
486 LOG_INFO(
"server.loading",
"Loading Transport Templates...");
488
489 LOG_INFO(
"server.loading",
"Loading Spell Required Data...");
491
492 LOG_INFO(
"server.loading",
"Loading Spell Group Types...");
494
495 LOG_INFO(
"server.loading",
"Loading Spell Learn Skills...");
497
498 LOG_INFO(
"server.loading",
"Loading Spell Proc Event Conditions...");
500
501 LOG_INFO(
"server.loading",
"Loading Spell Proc Conditions and Data...");
503
504 LOG_INFO(
"server.loading",
"Loading Spell Bonus Data...");
506
507 LOG_INFO(
"server.loading",
"Loading Aggro Spells Definitions...");
509
510 LOG_INFO(
"server.loading",
"Loading Mixology Bonuses...");
512
513 LOG_INFO(
"server.loading",
"Loading Spell Group Stack Rules...");
515
516 LOG_INFO(
"server.loading",
"Loading NPC Texts...");
518
519 LOG_INFO(
"server.loading",
"Loading Enchant Spells Proc Datas...");
521
522 LOG_INFO(
"server.loading",
"Loading Item Random Enchantments Table...");
524
525 LOG_INFO(
"server.loading",
"Loading Disables");
527
528 LOG_INFO(
"server.loading",
"Loading Items...");
530
531 LOG_INFO(
"server.loading",
"Loading Item Set Names...");
533
534 LOG_INFO(
"server.loading",
"Loading Creature Model Based Info Data...");
536
537 LOG_INFO(
"server.loading",
"Loading Creature Custom IDs Config...");
539
540 LOG_INFO(
"server.loading",
"Loading Creature Templates...");
542
543 LOG_INFO(
"server.loading",
"Loading Equipment Templates...");
545
546 LOG_INFO(
"server.loading",
"Loading Creature Template Addons...");
548
549 LOG_INFO(
"server.loading",
"Loading Reputation Reward Rates...");
551
552 LOG_INFO(
"server.loading",
"Loading Creature Reputation OnKill Data...");
554
555 LOG_INFO(
"server.loading",
"Loading Reputation Spillover Data..." );
556 sObjectMgr->LoadReputationSpilloverTemplate();
557
558 LOG_INFO(
"server.loading",
"Loading Points Of Interest Data...");
560
561 LOG_INFO(
"server.loading",
"Loading Creature Base Stats...");
563
564 LOG_INFO(
"server.loading",
"Loading Creature Data...");
566
567 LOG_INFO(
"server.loading",
"Loading Creature sparring...");
569
570 LOG_INFO(
"server.loading",
"Loading Temporary Summon Data...");
572
573 LOG_INFO(
"server.loading",
"Loading Pet Levelup Spells...");
575
576 LOG_INFO(
"server.loading",
"Loading Pet default Spells additional to Levelup Spells...");
578
579 LOG_INFO(
"server.loading",
"Loading Creature Addon Data...");
581
582 LOG_INFO(
"server.loading",
"Loading Creature Movement Overrides...");
584
585 LOG_INFO(
"server.loading",
"Loading Gameobject Data...");
587
588 LOG_INFO(
"server.loading",
"Loading GameObject Addon Data...");
590
591 LOG_INFO(
"server.loading",
"Loading GameObject Quest Items...");
593
594 LOG_INFO(
"server.loading",
"Loading Creature Quest Items...");
596
597 LOG_INFO(
"server.loading",
"Loading Creature Linked Respawn...");
599
600 LOG_INFO(
"server.loading",
"Loading Weather Data...");
602
603 LOG_INFO(
"server.loading",
"Loading Quests...");
605
606 LOG_INFO(
"server.loading",
"Checking Quest Disables");
608
609 LOG_INFO(
"server.loading",
"Loading Quest POI");
611
612 LOG_INFO(
"server.loading",
"Loading Quests Starters and Enders...");
614
615 LOG_INFO(
"server.loading",
"Loading Quest Greetings...");
617 LOG_INFO(
"server.loading",
"Loading Quest Greeting Locales...");
619
620 LOG_INFO(
"server.loading",
"Loading Quest Money Rewards...");
622
623 LOG_INFO(
"server.loading",
"Loading Objects Pooling Data...");
625
626 LOG_INFO(
"server.loading",
"Loading Game Event Data...");
629
630 LOG_INFO(
"server.loading",
"Loading UNIT_NPC_FLAG_SPELLCLICK Data...");
632
633 LOG_INFO(
"server.loading",
"Loading Vehicle Template Accessories...");
635
636 LOG_INFO(
"server.loading",
"Loading Vehicle Accessories...");
638
639 LOG_INFO(
"server.loading",
"Loading Vehicle Seat Addon Data...");
641
642 LOG_INFO(
"server.loading",
"Loading SpellArea Data...");
644
645 LOG_INFO(
"server.loading",
"Loading Area Trigger Definitions");
647
648 LOG_INFO(
"server.loading",
"Loading Area Trigger Teleport Definitions...");
650
651 LOG_INFO(
"server.loading",
"Loading Access Requirements...");
653
654 LOG_INFO(
"server.loading",
"Loading Quest Area Triggers...");
656
657 LOG_INFO(
"server.loading",
"Loading Tavern Area Triggers...");
659
660 LOG_INFO(
"server.loading",
"Loading AreaTrigger Script Names...");
662
663 LOG_INFO(
"server.loading",
"Loading LFG Entrance Positions...");
665
666 LOG_INFO(
"server.loading",
"Loading Dungeon Boss Data...");
668
669 LOG_INFO(
"server.loading",
"Loading LFG Rewards...");
671
672 LOG_INFO(
"server.loading",
"Loading Graveyard-Zone Links...");
674
675 LOG_INFO(
"server.loading",
"Loading Spell Pet Auras...");
677
678 LOG_INFO(
"server.loading",
"Loading Spell Target Coordinates...");
680
681 LOG_INFO(
"server.loading",
"Loading Enchant Custom Attributes...");
683
684 LOG_INFO(
"server.loading",
"Loading linked Spells...");
686
687 LOG_INFO(
"server.loading",
"Loading Player Create Data...");
689
690 LOG_INFO(
"server.loading",
"Loading Exploration BaseXP Data...");
692
693 LOG_INFO(
"server.loading",
"Loading Pet Name Parts...");
695
697
698 LOG_INFO(
"server.loading",
"Loading The Max Pet Number...");
700
701 LOG_INFO(
"server.loading",
"Loading Pet Level Stats...");
703
704 LOG_INFO(
"server.loading",
"Loading Player Level Dependent Mail Rewards...");
706
707 LOG_INFO(
"server.loading",
"Load Mail Server definitions...");
709
710
712
713 LOG_INFO(
"server.loading",
"Loading Skill Discovery Table...");
715
716 LOG_INFO(
"server.loading",
"Loading Skill Extra Item Table...");
718
719 LOG_INFO(
"server.loading",
"Loading Skill Perfection Data Table...");
721
722 LOG_INFO(
"server.loading",
"Loading Skill Fishing Base Level Requirements...");
724
725 LOG_INFO(
"server.loading",
"Loading Achievements...");
727 LOG_INFO(
"server.loading",
"Loading Achievement Criteria Lists...");
729 LOG_INFO(
"server.loading",
"Loading Achievement Criteria Data...");
731 LOG_INFO(
"server.loading",
"Loading Achievement Rewards...");
733 LOG_INFO(
"server.loading",
"Loading Achievement Reward Locales...");
735 LOG_INFO(
"server.loading",
"Loading Completed Achievements...");
737
739 LOG_INFO(
"server.loading",
"Loading Item Auctions...");
741 LOG_INFO(
"server.loading",
"Loading Auctions...");
743
745
746 LOG_INFO(
"server.loading",
"Loading ArenaTeams...");
748
749 LOG_INFO(
"server.loading",
"Loading Groups...");
751
752 LOG_INFO(
"server.loading",
"Loading Reserved Names...");
755
756 LOG_INFO(
"server.loading",
"Loading Profanity Names...");
759
760 LOG_INFO(
"server.loading",
"Loading GameObjects for Quests...");
762
763 LOG_INFO(
"server.loading",
"Loading BattleMasters...");
765
766 LOG_INFO(
"server.loading",
"Loading GameTeleports...");
768
769 LOG_INFO(
"server.loading",
"Loading Gossip Menu...");
771
772 LOG_INFO(
"server.loading",
"Loading Gossip Menu Options...");
774
775 LOG_INFO(
"server.loading",
"Loading Vendors...");
777
778 LOG_INFO(
"server.loading",
"Loading Trainers...");
780
781 LOG_INFO(
"server.loading",
"Loading Waypoints...");
783
784 LOG_INFO(
"server.loading",
"Loading SmartAI Waypoints...");
786
787 LOG_INFO(
"server.loading",
"Loading Creature Formations...");
789
790 LOG_INFO(
"server.loading",
"Loading WorldStates...");
792
793 LOG_INFO(
"server.loading",
"Loading Conditions...");
795
796 LOG_INFO(
"server.loading",
"Loading Faction Change Achievement Pairs...");
798
799 LOG_INFO(
"server.loading",
"Loading Faction Change Spell Pairs...");
801
802 LOG_INFO(
"server.loading",
"Loading Faction Change Item Pairs...");
804
805 LOG_INFO(
"server.loading",
"Loading Faction Change Reputation Pairs...");
807
808 LOG_INFO(
"server.loading",
"Loading Faction Change Title Pairs...");
810
811 LOG_INFO(
"server.loading",
"Loading Faction Change Quest Pairs...");
813
814 LOG_INFO(
"server.loading",
"Loading GM Tickets...");
816
817 LOG_INFO(
"server.loading",
"Loading GM Surveys...");
819
820 LOG_INFO(
"server.loading",
"Loading Client Addons...");
822
823
824 LOG_INFO(
"server.loading",
"Deleting Invalid Mail Items...");
826 CharacterDatabase.Execute(
"DELETE mi FROM mail_items mi LEFT JOIN item_instance ii ON mi.item_guid = ii.guid WHERE ii.guid IS NULL");
827 CharacterDatabase.Execute(
"DELETE mi FROM mail_items mi LEFT JOIN mail m ON mi.mail_id = m.id WHERE m.id IS NULL");
828 CharacterDatabase.Execute(
"UPDATE mail m LEFT JOIN mail_items mi ON m.id = mi.mail_id SET m.has_items=0 WHERE m.has_items<>0 AND mi.mail_id IS NULL");
829
831 LOG_INFO(
"server.loading",
"Returning Old Mails...");
834
836 LOG_INFO(
"server.loading",
"Loading Autobroadcasts...");
839
841 LOG_INFO(
"server.loading",
"Loading Motd...");
843
848
849 LOG_INFO(
"server.loading",
"Loading Spell Script Names...");
851
852 LOG_INFO(
"server.loading",
"Loading Creature Texts...");
854
855 LOG_INFO(
"server.loading",
"Loading Creature Text Locales...");
857
858 LOG_INFO(
"server.loading",
"Loading Scripts...");
860
861 LOG_INFO(
"server.loading",
"Validating Spell Scripts...");
863
864 LOG_INFO(
"server.loading",
"Loading SmartAI Scripts...");
866
867 LOG_INFO(
"server.loading",
"Loading Calendar Data...");
869
870 LOG_INFO(
"server.loading",
"Initializing SpellInfo Precomputed Data...");
872 sObjectMgr->InitializeSpellInfoPrecomputedData();
873
874 LOG_INFO(
"server.loading",
"Initialize Commands...");
876
878 LOG_INFO(
"server.loading",
"Initialize Game Time and Timers");
880
886
889
890
892
894
896
898
899
901
903
905
907 LOG_INFO(
"server.loading",
"Starting Map System");
910
911 LOG_INFO(
"server.loading",
"Starting Game Event system...");
915
916 LOG_INFO(
"server.loading",
"Loading WorldState...");
918
919
921
922
924
925
927
928 LOG_INFO(
"server.loading",
"Initializing Opcodes...");
930
931 LOG_INFO(
"server.loading",
"Loading Arena Season Rewards...");
933 LOG_INFO(
"server.loading",
"Loading Active Arena Season...");
935
937
939 LOG_INFO(
"server.loading",
"Starting Battleground System");
942
944 LOG_INFO(
"server.loading",
"Starting Outdoor PvP System");
946
948 LOG_INFO(
"server.loading",
"Starting Battlefield System");
950
951 LOG_INFO(
"server.loading",
"Loading Transports...");
953
955 LOG_INFO(
"server.loading",
"Loading Warden Checks..." );
957
958 LOG_INFO(
"server.loading",
"Loading Warden Action Overrides..." );
960
961 LOG_INFO(
"server.loading",
"Deleting Expired Bans...");
962 LoginDatabase.Execute(
"DELETE FROM ip_banned WHERE unbandate <= UNIX_TIMESTAMP() AND unbandate<>bandate");
963
964 LOG_INFO(
"server.loading",
"Calculate Next Daily Quest Reset Time...");
966
967 LOG_INFO(
"server.loading",
"Calculate Next Weekly Quest Reset Time..." );
969
970 LOG_INFO(
"server.loading",
"Calculate Next Monthly Quest Reset Time...");
972
973 LOG_INFO(
"server.loading",
"Calculate Random Battleground Reset Time..." );
975
976 LOG_INFO(
"server.loading",
"Calculate Deletion Of Old Calendar Events Time...");
978
979 LOG_INFO(
"server.loading",
"Calculate Guild Cap Reset Time...");
982
983 LOG_INFO(
"server.loading",
"Load Petitions...");
985
986 LOG_INFO(
"server.loading",
"Load Petition Signs...");
988
989 LOG_INFO(
"server.loading",
"Load Stored Loot Items...");
991
992 LOG_INFO(
"server.loading",
"Load Channel Rights...");
994
995 LOG_INFO(
"server.loading",
"Load Channels...");
997
998 LOG_INFO(
"server.loading",
"Loading AntiDos opcode policies");
1000
1002
1004 {
1005 LOG_INFO(
"server.loading",
"Loading All Grids For All Non-Instanced Maps...");
1006
1008 {
1010
1012 {
1013 if (
sMapMgr->GetMapUpdater()->activated())
1014 sMapMgr->GetMapUpdater()->schedule_map_preload(mapEntry->
MapID);
1015 else
1016 {
1018
1019 if (map)
1020 {
1021 LOG_INFO(
"server.loading",
">> Loading All Grids For Map {}", map->
GetId());
1023 }
1024 }
1025 }
1026 }
1027
1028 if (
sMapMgr->GetMapUpdater()->activated())
1029 sMapMgr->GetMapUpdater()->wait();
1030 }
1031
1033
1035 LOG_INFO(
"server.loading",
"WORLD: World Initialized In {} Minutes {} Seconds", (startupDuration / 60000), ((startupDuration % 60000) / 1000));
1037
1038 METRIC_EVENT(
"events",
"World initialized",
"World Initialized In " + std::to_string(startupDuration / 60000) +
" Minutes " + std::to_string((startupDuration % 60000) / 1000) +
" Seconds");
1039
1041 {
1043 LOG_INFO(
"server.loading",
"AzerothCore Dry Run Completed, Terminating.");
1044 exit(0);
1045 }
1046}
#define sAchievementMgr
Definition AchievementMgr.h:451
@ MAP_OUTLAND
Definition AreaDefines.h:216
@ MAP_KALIMDOR
Definition AreaDefines.h:186
@ MAP_EASTERN_KINGDOMS
Definition AreaDefines.h:185
#define sArenaSeasonMgr
Definition ArenaSeasonMgr.h:124
#define sArenaTeamMgr
Definition ArenaTeamMgr.h:69
#define sAuctionMgr
Definition AuctionHouseMgr.h:224
#define sAutobroadcastMgr
Definition AutobroadcastMgr.h:54
#define sBattlefieldMgr
Definition BattlefieldMgr.h:77
#define sBattlegroundMgr
Definition BattlegroundMgr.h:187
#define sCharacterCache
Definition CharacterCache.h:83
#define sConditionMgr
Definition ConditionMgr.h:290
#define sFormationMgr
Definition CreatureGroups.h:127
#define sCreatureTextMgr
Definition CreatureTextMgr.h:119
uint32 GetLiquidFlags(uint32 liquidType)
Definition DBCStores.cpp:834
DBCStorage< MapEntry > sMapStore(MapEntryfmt)
void LoadDBCStores(const std::string &dataPath)
Definition DBCStores.cpp:261
#define sDisableMgr
Definition DisableMgr.h:88
#define sGraveyard
Definition GameGraveyard.h:74
void LoadGameObjectModelList(std::string const &dataPath)
Definition GameObjectModel.cpp:45
#define sGroupMgr
Definition GroupMgr.h:51
#define sIPLocation
Definition IPLocation.h:49
#define sInstanceSaveMgr
Definition InstanceSaveMgr.h:202
void LoadRandomEnchantmentsTable()
Definition ItemEnchantmentMgr.cpp:47
#define sLFGMgr
Definition LFGMgr.h:641
@ LOGIN_INS_UPTIME
Definition LoginDatabase.h:127
#define sLootItemStorage
Definition LootItemStorage.h:73
void LoadLootTables()
Definition LootMgr.h:443
void LoadM2Cameras(std::string const &dataPath)
Definition M2Stores.cpp:173
void dtCustomFree(void *ptr)
Definition MMapMgr.h:34
void * dtCustomAlloc(std::size_t size, dtAllocHint)
Definition MMapMgr.h:29
#define METRIC_EVENT(category, title, description)
Definition Metric.h:189
#define sMotdMgr
Definition MotdMgr.h:52
#define sObjectMgr
Definition ObjectMgr.h:1650
#define sOutdoorPvPMgr
Definition OutdoorPvPMgr.h:102
#define sPetitionMgr
Definition PetitionMgr.h:87
#define sServerMailMgr
Definition ServerMailMgr.h:231
void LoadSkillDiscoveryTable()
Definition SkillDiscovery.cpp:46
#define sSmartWaypointMgr
Definition SmartScriptMgr.h:2240
#define sSmartScriptMgr
Definition SmartScriptMgr.h:2239
#define sSpellMgr
Definition SpellMgr.h:825
#define sTicketMgr
Definition TicketMgr.h:260
uint32 GetMSTimeDiffToNow(uint32 oldMSTime)
Definition Timer.h:131
uint32 getMSTime()
Definition Timer.h:103
#define sTransportMgr
Definition TransportMgr.h:163
#define sWardenCheckMgr
Definition WardenCheckMgr.h:89
#define sWaypointMgr
Definition WaypointMgr.h:78
@ CONFIG_PRELOAD_ALL_NON_INSTANCED_MAP_GRIDS
Definition WorldConfig.h:116
@ CONFIG_REALM_ZONE
Definition WorldConfig.h:169
@ CONFIG_EXPANSION
Definition WorldConfig.h:225
@ CONFIG_DB_PING_INTERVAL
Definition WorldConfig.h:315
#define sWorldGlobals
Definition WorldGlobals.h:42
static void LoadChannelRights()
Definition ChannelMgr.cpp:166
static void LoadChannels()
Definition ChannelMgr.cpp:50
static void CleanOldChannelsInDB()
Definition Channel.cpp:140
static bool IsVMAPDisabledFor(uint32 entry, uint8 flags)
Definition DisableMgr.cpp:432
static MMapMgr * createOrGetMMapMgr()
Definition MMapFactory.cpp:27
void InitializeThreadUnsafe(const std::vector< uint32 > &mapIds)
Definition MMapMgr.cpp:41
static bool ExistMapAndVMap(uint32 mapid, float x, float y)
Definition MapMgr.cpp:305
void LoadAllGrids()
Definition Map.cpp:232
uint32 GetId() const
Definition Map.h:224
static void InitializeTables()
Definition PlayerDump.cpp:253
static void DeleteOldCharacters()
Definition Player.cpp:4347
static void DeleteOldRecoveryItems()
Definition Player.cpp:4382
IsVMAPDisabledForFn IsVMAPDisabledForPtr
Definition VMapMgr2.h:137
void InitializeThreadUnsafe(const std::vector< uint32 > &mapIds)
Definition VMapMgr2.cpp:54
GetLiquidFlagsFn GetLiquidFlagsPtr
Definition VMapMgr2.h:134
bool IsFFAPvPRealm() const override
Definition World.cpp:1837
void LoadConfigSettings(bool reload=false) override
Initialize config values.
Definition World.cpp:164
void InitCalendarOldEventsDeletionTime()
Definition World.cpp:1656
void InitDailyQuestResetTime()
Definition World.cpp:1623
void LoadDBAllowedSecurityLevel() override
Definition World.cpp:1695
void DetectDBCLang()
Definition World.cpp:1048
void InitGuildResetTime()
Definition World.cpp:1667
void InitRandomBGResetTime()
Definition World.cpp:1645
void InitWeeklyQuestResetTime()
Definition World.cpp:1612
void InitMonthlyQuestResetTime()
Definition World.cpp:1634
OpcodeTable opcodeTable
Definition Opcodes.cpp:51
void Initialize()
Correspondence between opcodes and their names.
Definition Opcodes.cpp:123
void LoadWeatherData()
Definition WeatherMgr.cpp:82
@ WUPDATE_PINGDB
Definition World.h:68
@ WUPDATE_WHO_LIST
Definition World.h:70
@ WUPDATE_WEATHERS
Definition World.h:61
void Initialize()
Definition CreatureAIRegistry.cpp:34
AC_GAME_API void LoadCommandMap()
Definition ChatCommand.cpp:530
void LoadFromDB()
Definition AddonMgr.cpp:39
void CleanDatabase()
Definition CharacterDatabaseCleaner.cpp:27
Seconds GetStartTime()
Definition GameTime.cpp:33
AC_COMMON_API char const * GetFullVersion()
Definition GitRevision.cpp:82
Definition DBCStructure.h:1326
uint32 MapID
Definition DBCStructure.h:1327
bool Instanceable() const
Definition DBCStructure.h:1354