From 7122ac33b2b176beb8adf344bba46a0898d4168d Mon Sep 17 00:00:00 2001 From: Chris Miles Date: Sun, 20 Aug 2023 20:56:40 -0500 Subject: [PATCH] [Quest API] Reload content flags globally when a content flag is set (#3564) --- zone/embparser_api.cpp | 1 + zone/lua_general.cpp | 1 + zone/zone.cpp | 10 ++++++++++ zone/zone.h | 2 ++ 4 files changed, 14 insertions(+) diff --git a/zone/embparser_api.cpp b/zone/embparser_api.cpp index 69c9a1441..5c9c6ec2f 100644 --- a/zone/embparser_api.cpp +++ b/zone/embparser_api.cpp @@ -2746,6 +2746,7 @@ bool Perl__IsContentFlagEnabled(std::string flag_name) void Perl__SetContentFlag(std::string flag_name, bool enabled) { content_service.SetContentFlag(flag_name, enabled); + zone->ReloadContentFlags(); } Expedition* Perl__get_expedition() diff --git a/zone/lua_general.cpp b/zone/lua_general.cpp index 3eea28dbd..d0b2d64a6 100644 --- a/zone/lua_general.cpp +++ b/zone/lua_general.cpp @@ -1812,6 +1812,7 @@ bool lua_is_content_flag_enabled(std::string content_flag){ void lua_set_content_flag(std::string flag_name, bool enabled){ content_service.SetContentFlag(flag_name, enabled); + zone->ReloadContentFlags(); } Lua_Expedition lua_get_expedition() { diff --git a/zone/zone.cpp b/zone/zone.cpp index 78e618dfd..88bdb05bd 100644 --- a/zone/zone.cpp +++ b/zone/zone.cpp @@ -3136,3 +3136,13 @@ bool Zone::CompareDataBucket(uint8 bucket_comparison, const std::string& bucket_ return passes; } + +void Zone::ReloadContentFlags() +{ + auto pack = new ServerPacket(ServerOP_ReloadContentFlags, 0); + if (pack) { + worldserver.SendPacket(pack); + } + + safe_delete(pack); +} diff --git a/zone/zone.h b/zone/zone.h index 53084c07d..ade1bf5e1 100755 --- a/zone/zone.h +++ b/zone/zone.h @@ -395,6 +395,8 @@ public: void SetIsHotzone(bool is_hotzone); + void ReloadContentFlags(); + private: bool allow_mercs; bool can_bind;