diff options
| -rw-r--r-- | src/server/game/World/World.cpp | 23 | ||||
| -rw-r--r-- | src/server/game/World/World.h | 4 |
2 files changed, 15 insertions, 12 deletions
diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 0185aabd792..65a631c71e3 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -1212,6 +1212,10 @@ void World::LoadConfigSettings(bool reload) // Dungeon finder m_bool_configs[CONFIG_DUNGEON_FINDER_ENABLE] = sConfig.GetBoolDefault("DungeonFinder.Enable", false); + // AutoBroadcast + m_bool_configs[CONFIG_AUTOBROADCAST] = sConfig.GetBoolDefault("AutoBroadcast.On", false); + m_int_configs[CONFIG_AUTOBROADCAST_CENTER] = sConfig.GetIntDefault("AutoBroadcast.Center", 0); + sScriptMgr.OnConfigLoad(reload); } @@ -1930,15 +1934,13 @@ void World::Update(uint32 diff) ///- Update objects when the timer has passed (maps, transport, creatures,...) sMapMgr.Update(diff); // As interval = 0 - static uint32 autobroadcaston = 0; - autobroadcaston = sConfig.GetIntDefault("AutoBroadcast.On", 0); - if (autobroadcaston == 1) + if (sWorld.getBoolConfig(CONFIG_AUTOBROADCAST)) { - if (m_timers[WUPDATE_AUTOBROADCAST].Passed()) - { - m_timers[WUPDATE_AUTOBROADCAST].Reset(); - SendRNDBroadcast(); - } + if (m_timers[WUPDATE_AUTOBROADCAST].Passed()) + { + m_timers[WUPDATE_AUTOBROADCAST].Reset(); + SendAutoBroadcast(); + } } sBattlegroundMgr.Update(diff); @@ -2440,7 +2442,7 @@ void World::ProcessCliCommands() } } -void World::SendRNDBroadcast() +void World::SendAutoBroadcast() { if (m_Autobroadcasts.empty()) return; @@ -2451,8 +2453,7 @@ void World::SendRNDBroadcast() std::advance(itr, rand() % m_Autobroadcasts.size()); msg = *itr; - static uint32 abcenter = 0; - abcenter = sConfig.GetIntDefault("AutoBroadcast.Center", 0); + uint32 abcenter = sWorld.getIntConfig(CONFIG_AUTOBROADCAST_CENTER); if (abcenter == 0) { sWorld.SendWorldText(LANG_AUTO_BROADCAST, msg.c_str()); diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h index b7bb6affdd4..4c98438d4d9 100644 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -162,6 +162,7 @@ enum WorldBoolConfigs CONFIG_CHATLOG_ADDON, CONFIG_CHATLOG_BGROUND, CONFIG_DUNGEON_FINDER_ENABLE, + CONFIG_AUTOBROADCAST, BOOL_CONFIG_VALUE_COUNT }; @@ -300,6 +301,7 @@ enum WorldIntConfigs CONFIG_CHARDELETE_KEEP_DAYS, CONFIG_CHARDELETE_METHOD, CONFIG_CHARDELETE_MIN_LEVEL, + CONFIG_AUTOBROADCAST_CENTER, INT_CONFIG_VALUE_COUNT }; @@ -513,7 +515,7 @@ class World WorldSession* FindSession(uint32 id) const; void AddSession(WorldSession *s); - void SendRNDBroadcast(); + void SendAutoBroadcast(); bool RemoveSession(uint32 id); /// Get the number of current active sessions void UpdateMaxSessionCounters(); |
