diff --git a/zone/embparser.cpp b/zone/embparser.cpp index 8a02c4a7d..2668932bc 100644 --- a/zone/embparser.cpp +++ b/zone/embparser.cpp @@ -223,6 +223,11 @@ PerlembParser::~PerlembParser() safe_delete(perl); } +void PerlembParser::Init() +{ + ReloadQuests(); +} + void PerlembParser::ReloadQuests() { try { diff --git a/zone/embparser.h b/zone/embparser.h index 208b60ca7..9fc0f921f 100644 --- a/zone/embparser.h +++ b/zone/embparser.h @@ -138,6 +138,7 @@ public: virtual void AddVar(std::string name, std::string val); virtual std::string GetVar(std::string name); + virtual void Init() override; virtual void ReloadQuests(); virtual uint32 GetIdentifier() { return 0xf8b05c11; } diff --git a/zone/zone.cpp b/zone/zone.cpp index cc2a55a70..a4717f173 100644 --- a/zone/zone.cpp +++ b/zone/zone.cpp @@ -108,6 +108,9 @@ bool Zone::Bootup(uint32 iZoneID, uint32 iInstanceID, bool is_static) { numclients = 0; zone = new Zone(iZoneID, iInstanceID, zonename); + parse->Init(); + parse->ReloadQuests(true); + //init the zone, loads all the data, etc if (!zone->Init(is_static)) { safe_delete(zone); @@ -158,7 +161,6 @@ bool Zone::Bootup(uint32 iZoneID, uint32 iInstanceID, bool is_static) { LogInfo("Zone server [{}] listening on port [{}]", zonename, ZoneConfig::get()->ZonePort); LogInfo("Zone bootup type [{}] short_name [{}] zone_id [{}] instance_id [{}]", (is_static) ? "Static" : "Dynamic", zonename, iZoneID, iInstanceID); - parse->Init(); UpdateWindowTitle(nullptr); // Dynamic zones need to Sync here.