[Code] WorldEventScheduler and ZoneEventScheduler Global to Singleton Cleanup (#4932)

This commit is contained in:
Alex King 2025-06-25 15:47:37 -04:00 committed by GitHub
parent f304f9cc61
commit 967a13e692
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 17 additions and 10 deletions

View File

@ -95,7 +95,6 @@ ClientList client_list;
GroupLFPList LFPGroupList;
ZSList zoneserver_list;
LauncherList launcher_list;
WorldEventScheduler event_scheduler;
volatile bool RunLoops = true;
uint32 numclients = 0;
uint32 numzones = 0;
@ -418,7 +417,7 @@ int main(int argc, char **argv)
}
}
event_scheduler.Process(&zoneserver_list);
WorldEventScheduler::Instance()->Process(&zoneserver_list);
client_list.Process();
guild_mgr.Process();

View File

@ -224,8 +224,6 @@ void WorldBoot::RegisterLoginservers()
}
}
extern WorldEventScheduler event_scheduler;
bool WorldBoot::DatabaseLoadRoutines(int argc, char **argv)
{
// logging system init
@ -389,7 +387,7 @@ bool WorldBoot::DatabaseLoadRoutines(int argc, char **argv)
content_db.LoadCharacterCreateCombos();
LogInfo("Initializing [EventScheduler]");
event_scheduler.SetDatabase(&database)->LoadScheduledEvents();
WorldEventScheduler::Instance()->SetDatabase(&database)->LoadScheduledEvents();
LogInfo("Initializing [WorldContentService]");
content_service.SetDatabase(&database)

View File

@ -7,6 +7,12 @@
class WorldEventScheduler : public ServerEventScheduler {
public:
void Process(ZSList *zs_list);
static WorldEventScheduler* Instance()
{
static WorldEventScheduler instance;
return &instance;
}
};
#endif //EQEMU_EVENT_SCHEDULER_H

View File

@ -88,7 +88,6 @@ extern volatile bool is_zone_loaded;
#include "../common/path_manager.h"
#include "../common/database/database_update.h"
#include "../common/skill_caps.h"
#include "zone_event_scheduler.h"
#include "zone_cli.h"
EntityList entity_list;
@ -102,7 +101,6 @@ TitleManager title_manager;
QueryServ *QServ = 0;
NpcScaleManager *npc_scale_manager;
QuestParserCollection *parse = 0;
ZoneEventScheduler event_scheduler;
WorldContentService content_service;
PlayerEventLogs player_event_logs;
@ -416,7 +414,7 @@ int main(int argc, char **argv)
->SetExpansionContext()
->ReloadContentFlags();
event_scheduler.SetDatabase(&database)->LoadScheduledEvents();
ZoneEventScheduler::Instance()->SetDatabase(&database)->LoadScheduledEvents();
EQ::SayLinkEngine::LoadCachedSaylinks();
@ -482,7 +480,7 @@ int main(int argc, char **argv)
QServ->CheckForConnectState();
worldserver.Connect();
worldserver.SetScheduler(&event_scheduler);
worldserver.SetScheduler(ZoneEventScheduler::Instance());
// sidecar command handler
if (ZoneCLI::RanConsoleCommand(argc, argv)
@ -626,7 +624,7 @@ int main(int argc, char **argv)
entity_list.MobProcess();
entity_list.BeaconProcess();
entity_list.EncounterProcess();
event_scheduler.Process(zone, &content_service);
ZoneEventScheduler::Instance()->Process(zone, &content_service);
if (zone) {
if (!zone->Process()) {

View File

@ -9,6 +9,12 @@ class ZoneEventScheduler : public ServerEventScheduler {
public:
void Process(Zone *zone, WorldContentService *content_service);
void SyncEventDataWithActiveEvents();
static ZoneEventScheduler* Instance()
{
static ZoneEventScheduler instance;
return &instance;
}
};
#endif //EQEMU_ZONE_EVENT_SCHEDULER_H