[Code] WorldContentServer Global to Singleton Cleanup (#4939)

This commit is contained in:
Alex King 2025-06-25 15:55:39 -04:00 committed by GitHub
parent c99bda3f47
commit c0bb32ed12
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
20 changed files with 156 additions and 156 deletions

View File

@ -38,7 +38,6 @@
#include "../../common/skill_caps.h" #include "../../common/skill_caps.h"
#include "../../common/evolving_items.h" #include "../../common/evolving_items.h"
WorldContentService content_service;
PlayerEventLogs player_event_logs; PlayerEventLogs player_event_logs;
void ExportSpells(SharedDatabase *db); void ExportSpells(SharedDatabase *db);

View File

@ -32,7 +32,6 @@
#include "../../common/events/player_event_logs.h" #include "../../common/events/player_event_logs.h"
#include "../../common/evolving_items.h" #include "../../common/evolving_items.h"
WorldContentService content_service;
PlayerEventLogs player_event_logs; PlayerEventLogs player_event_logs;
void ImportSpells(SharedDatabase *db); void ImportSpells(SharedDatabase *db);

View File

@ -27,7 +27,7 @@ WorldContentService *WorldContentService::SetExpansionContext()
// pull expansion from rules // pull expansion from rules
int expansion = RuleI(Expansion, CurrentExpansion); int expansion = RuleI(Expansion, CurrentExpansion);
if (expansion >= Expansion::Classic && expansion <= Expansion::MaxId) { if (expansion >= Expansion::Classic && expansion <= Expansion::MaxId) {
content_service.SetCurrentExpansion(expansion); WorldContentService::Instance()->SetCurrentExpansion(expansion);
} }
LogInfo( LogInfo(
@ -41,12 +41,12 @@ WorldContentService *WorldContentService::SetExpansionContext()
std::string WorldContentService::GetCurrentExpansionName() std::string WorldContentService::GetCurrentExpansionName()
{ {
if (content_service.GetCurrentExpansion() == Expansion::EXPANSION_ALL) { if (WorldContentService::Instance()->GetCurrentExpansion() == Expansion::EXPANSION_ALL) {
return "All Expansions"; return "All Expansions";
} }
if (current_expansion >= Expansion::Classic && current_expansion <= Expansion::MaxId) { if (current_expansion >= Expansion::Classic && current_expansion <= Expansion::MaxId) {
return Expansion::ExpansionName[content_service.GetCurrentExpansion()]; return Expansion::ExpansionName[WorldContentService::Instance()->GetCurrentExpansion()];
} }
return "Unknown Expansion"; return "Unknown Expansion";

View File

@ -181,6 +181,12 @@ public:
FindZoneResult FindZone(uint32 zone_id, uint32 instance_id); FindZoneResult FindZone(uint32 zone_id, uint32 instance_id);
bool IsInPublicStaticInstance(uint32 instance_id); bool IsInPublicStaticInstance(uint32 instance_id);
static WorldContentService* Instance()
{
static WorldContentService instance;
return &instance;
}
private: private:
int current_expansion{}; int current_expansion{};
std::vector<ContentFlagsRepository::ContentFlags> content_flags; std::vector<ContentFlagsRepository::ContentFlags> content_flags;
@ -194,6 +200,4 @@ private:
std::vector<InstanceListRepository::InstanceList> m_zone_static_instances; std::vector<InstanceListRepository::InstanceList> m_zone_static_instances;
}; };
extern WorldContentService content_service;
#endif //EQEMU_WORLD_CONTENT_SERVICE_H #endif //EQEMU_WORLD_CONTENT_SERVICE_H

View File

@ -14,7 +14,7 @@ namespace ContentFilterCriteria {
table_prefix = table_prefix + "."; table_prefix = table_prefix + ".";
} }
int current_expansion_filter_criteria = content_service.GetCurrentExpansion(); int current_expansion_filter_criteria = WorldContentService::Instance()->GetCurrentExpansion();
if (current_expansion_filter_criteria == Expansion::EXPANSION_ALL) { if (current_expansion_filter_criteria == Expansion::EXPANSION_ALL) {
current_expansion_filter_criteria = Expansion::EXPANSION_FILTER_MAX; current_expansion_filter_criteria = Expansion::EXPANSION_FILTER_MAX;
} }
@ -33,8 +33,8 @@ namespace ContentFilterCriteria {
table_prefix table_prefix
); );
std::vector<std::string> flags_disabled = content_service.GetContentFlagsDisabled(); std::vector<std::string> flags_disabled = WorldContentService::Instance()->GetContentFlagsDisabled();
std::vector<std::string> flags_enabled = content_service.GetContentFlagsEnabled(); std::vector<std::string> flags_enabled = WorldContentService::Instance()->GetContentFlagsEnabled();
std::string flags_in_filter_enabled; std::string flags_in_filter_enabled;
std::string flags_in_filter_disabled; std::string flags_in_filter_disabled;
if (!flags_enabled.empty()) { if (!flags_enabled.empty()) {

View File

@ -35,7 +35,6 @@
#include "../common/events/player_event_logs.h" #include "../common/events/player_event_logs.h"
#include "../common/evolving_items.h" #include "../common/evolving_items.h"
WorldContentService content_service;
PlayerEventLogs player_event_logs; PlayerEventLogs player_event_logs;
#ifdef _WINDOWS #ifdef _WINDOWS
@ -165,16 +164,16 @@ int main(int argc, char **argv)
} }
content_service.SetCurrentExpansion(RuleI(Expansion, CurrentExpansion)); WorldContentService::Instance()->SetCurrentExpansion(RuleI(Expansion, CurrentExpansion));
content_service.SetDatabase(&database) WorldContentService::Instance()->SetDatabase(&database)
->SetContentDatabase(&content_db) ->SetContentDatabase(&content_db)
->SetExpansionContext() ->SetExpansionContext()
->ReloadContentFlags(); ->ReloadContentFlags();
LogInfo( LogInfo(
"Current expansion is [{}] ({})", "Current expansion is [{}] ({})",
content_service.GetCurrentExpansion(), WorldContentService::Instance()->GetCurrentExpansion(),
content_service.GetCurrentExpansionName() WorldContentService::Instance()->GetCurrentExpansionName()
); );
std::string hotfix_name = ""; std::string hotfix_name = "";

View File

@ -16,7 +16,7 @@ void WorldserverCLI::ExpansionTestCommand(int argc, char **argv, argh::parser &c
LogInfo("No rule set configured, using default rules"); LogInfo("No rule set configured, using default rules");
} }
content_service.SetCurrentExpansion(RuleI(Expansion, CurrentExpansion)); WorldContentService::Instance()->SetCurrentExpansion(RuleI(Expansion, CurrentExpansion));
std::vector<ContentFlagsRepository::ContentFlags> flags = {}; std::vector<ContentFlagsRepository::ContentFlags> flags = {};
auto f = ContentFlagsRepository::NewEntity(); auto f = ContentFlagsRepository::NewEntity();
@ -32,13 +32,13 @@ void WorldserverCLI::ExpansionTestCommand(int argc, char **argv, argh::parser &c
flags.push_back(f); flags.push_back(f);
} }
content_service.SetContentFlags(flags); WorldContentService::Instance()->SetContentFlags(flags);
LogInfo( LogInfo(
"Current expansion is [{}] ({}) is Velious Enabled [{}] Criteria [{}]", "Current expansion is [{}] ({}) is Velious Enabled [{}] Criteria [{}]",
content_service.GetCurrentExpansion(), WorldContentService::Instance()->GetCurrentExpansion(),
content_service.GetCurrentExpansionName(), WorldContentService::Instance()->GetCurrentExpansionName(),
content_service.IsTheScarsOfVeliousEnabled() ? "true" : "false", WorldContentService::Instance()->IsTheScarsOfVeliousEnabled() ? "true" : "false",
ContentFilterCriteria::apply() ContentFilterCriteria::apply()
); );
} }

View File

@ -820,7 +820,7 @@ bool Client::HandleEnterWorldPacket(const EQApplicationPacket *app) {
return true; return true;
} }
auto r = content_service.FindZone(zone_id, instance_id); auto r = WorldContentService::Instance()->FindZone(zone_id, instance_id);
if (r.zone_id && r.instance.id != instance_id) { if (r.zone_id && r.instance.id != instance_id) {
LogInfo( LogInfo(
"Zone [{}] has been remapped to instance_id [{}] from instance_id [{}] for client [{}]", "Zone [{}] has been remapped to instance_id [{}] from instance_id [{}] for client [{}]",

View File

@ -99,7 +99,6 @@ volatile bool RunLoops = true;
uint32 numclients = 0; uint32 numclients = 0;
uint32 numzones = 0; uint32 numzones = 0;
const WorldConfig *Config; const WorldConfig *Config;
WorldContentService content_service;
PlayerEventLogs player_event_logs; PlayerEventLogs player_event_logs;
void CatchSignal(int sig_num); void CatchSignal(int sig_num);
@ -189,7 +188,7 @@ int main(int argc, char **argv)
RegisterConsoleFunctions(console); RegisterConsoleFunctions(console);
} }
content_service.SetDatabase(&database) WorldContentService::Instance()->SetDatabase(&database)
->SetContentDatabase(&content_db) ->SetContentDatabase(&content_db)
->SetExpansionContext() ->SetExpansionContext()
->ReloadContentFlags(); ->ReloadContentFlags();

View File

@ -390,7 +390,7 @@ bool WorldBoot::DatabaseLoadRoutines(int argc, char **argv)
WorldEventScheduler::Instance()->SetDatabase(&database)->LoadScheduledEvents(); WorldEventScheduler::Instance()->SetDatabase(&database)->LoadScheduledEvents();
LogInfo("Initializing [WorldContentService]"); LogInfo("Initializing [WorldContentService]");
content_service.SetDatabase(&database) WorldContentService::Instance()->SetDatabase(&database)
->SetContentDatabase(&content_db) ->SetContentDatabase(&content_db)
->SetExpansionContext() ->SetExpansionContext()
->ReloadContentFlags(); ->ReloadContentFlags();

View File

@ -978,7 +978,7 @@ void ZSList::SendServerReload(ServerReload::Type type, uchar *packet)
} else if (type == ServerReload::Type::SkillCaps) { } else if (type == ServerReload::Type::SkillCaps) {
SkillCaps::Instance()->ReloadSkillCaps(); SkillCaps::Instance()->ReloadSkillCaps();
} else if (type == ServerReload::Type::ContentFlags) { } else if (type == ServerReload::Type::ContentFlags) {
content_service.SetExpansionContext()->ReloadContentFlags(); WorldContentService::Instance()->SetExpansionContext()->ReloadContentFlags();
} else if (type == ServerReload::Type::Logs) { } else if (type == ServerReload::Type::Logs) {
EQEmuLogSys::Instance()->LoadLogDatabaseSettings(); EQEmuLogSys::Instance()->LoadLogDatabaseSettings();
player_event_logs.ReloadSettings(); player_event_logs.ReloadSettings();

View File

@ -10005,8 +10005,8 @@ void Client::ShowDevToolsMenu()
Chat::White, Chat::White,
fmt::format( fmt::format(
"Current Expansion | {} ({})", "Current Expansion | {} ({})",
content_service.GetCurrentExpansionName(), WorldContentService::Instance()->GetCurrentExpansionName(),
content_service.GetCurrentExpansion() WorldContentService::Instance()->GetCurrentExpansion()
).c_str() ).c_str()
); );

View File

@ -2510,282 +2510,282 @@ bool Perl__delete_data(std::string bucket_key)
bool Perl__IsClassicEnabled() bool Perl__IsClassicEnabled()
{ {
return content_service.IsClassicEnabled(); return WorldContentService::Instance()->IsClassicEnabled();
} }
bool Perl__IsTheRuinsOfKunarkEnabled() bool Perl__IsTheRuinsOfKunarkEnabled()
{ {
return content_service.IsTheRuinsOfKunarkEnabled(); return WorldContentService::Instance()->IsTheRuinsOfKunarkEnabled();
} }
bool Perl__IsTheScarsOfVeliousEnabled() bool Perl__IsTheScarsOfVeliousEnabled()
{ {
return content_service.IsTheScarsOfVeliousEnabled(); return WorldContentService::Instance()->IsTheScarsOfVeliousEnabled();
} }
bool Perl__IsTheShadowsOfLuclinEnabled() bool Perl__IsTheShadowsOfLuclinEnabled()
{ {
return content_service.IsTheShadowsOfLuclinEnabled(); return WorldContentService::Instance()->IsTheShadowsOfLuclinEnabled();
} }
bool Perl__IsThePlanesOfPowerEnabled() bool Perl__IsThePlanesOfPowerEnabled()
{ {
return content_service.IsThePlanesOfPowerEnabled(); return WorldContentService::Instance()->IsThePlanesOfPowerEnabled();
} }
bool Perl__IsTheLegacyOfYkeshaEnabled() bool Perl__IsTheLegacyOfYkeshaEnabled()
{ {
return content_service.IsTheLegacyOfYkeshaEnabled(); return WorldContentService::Instance()->IsTheLegacyOfYkeshaEnabled();
} }
bool Perl__IsLostDungeonsOfNorrathEnabled() bool Perl__IsLostDungeonsOfNorrathEnabled()
{ {
return content_service.IsLostDungeonsOfNorrathEnabled(); return WorldContentService::Instance()->IsLostDungeonsOfNorrathEnabled();
} }
bool Perl__IsGatesOfDiscordEnabled() bool Perl__IsGatesOfDiscordEnabled()
{ {
return content_service.IsGatesOfDiscordEnabled(); return WorldContentService::Instance()->IsGatesOfDiscordEnabled();
} }
bool Perl__IsOmensOfWarEnabled() bool Perl__IsOmensOfWarEnabled()
{ {
return content_service.IsOmensOfWarEnabled(); return WorldContentService::Instance()->IsOmensOfWarEnabled();
} }
bool Perl__IsDragonsOfNorrathEnabled() bool Perl__IsDragonsOfNorrathEnabled()
{ {
return content_service.IsDragonsOfNorrathEnabled(); return WorldContentService::Instance()->IsDragonsOfNorrathEnabled();
} }
bool Perl__IsDepthsOfDarkhollowEnabled() bool Perl__IsDepthsOfDarkhollowEnabled()
{ {
return content_service.IsDepthsOfDarkhollowEnabled(); return WorldContentService::Instance()->IsDepthsOfDarkhollowEnabled();
} }
bool Perl__IsProphecyOfRoEnabled() bool Perl__IsProphecyOfRoEnabled()
{ {
return content_service.IsProphecyOfRoEnabled(); return WorldContentService::Instance()->IsProphecyOfRoEnabled();
} }
bool Perl__IsTheSerpentsSpineEnabled() bool Perl__IsTheSerpentsSpineEnabled()
{ {
return content_service.IsTheSerpentsSpineEnabled(); return WorldContentService::Instance()->IsTheSerpentsSpineEnabled();
} }
bool Perl__IsTheBuriedSeaEnabled() bool Perl__IsTheBuriedSeaEnabled()
{ {
return content_service.IsTheBuriedSeaEnabled(); return WorldContentService::Instance()->IsTheBuriedSeaEnabled();
} }
bool Perl__IsSecretsOfFaydwerEnabled() bool Perl__IsSecretsOfFaydwerEnabled()
{ {
return content_service.IsSecretsOfFaydwerEnabled(); return WorldContentService::Instance()->IsSecretsOfFaydwerEnabled();
} }
bool Perl__IsSeedsOfDestructionEnabled() bool Perl__IsSeedsOfDestructionEnabled()
{ {
return content_service.IsSeedsOfDestructionEnabled(); return WorldContentService::Instance()->IsSeedsOfDestructionEnabled();
} }
bool Perl__IsUnderfootEnabled() bool Perl__IsUnderfootEnabled()
{ {
return content_service.IsUnderfootEnabled(); return WorldContentService::Instance()->IsUnderfootEnabled();
} }
bool Perl__IsHouseOfThuleEnabled() bool Perl__IsHouseOfThuleEnabled()
{ {
return content_service.IsHouseOfThuleEnabled(); return WorldContentService::Instance()->IsHouseOfThuleEnabled();
} }
bool Perl__IsVeilOfAlarisEnabled() bool Perl__IsVeilOfAlarisEnabled()
{ {
return content_service.IsVeilOfAlarisEnabled(); return WorldContentService::Instance()->IsVeilOfAlarisEnabled();
} }
bool Perl__IsRainOfFearEnabled() bool Perl__IsRainOfFearEnabled()
{ {
return content_service.IsRainOfFearEnabled(); return WorldContentService::Instance()->IsRainOfFearEnabled();
} }
bool Perl__IsCallOfTheForsakenEnabled() bool Perl__IsCallOfTheForsakenEnabled()
{ {
return content_service.IsCallOfTheForsakenEnabled(); return WorldContentService::Instance()->IsCallOfTheForsakenEnabled();
} }
bool Perl__IsTheDarkenedSeaEnabled() bool Perl__IsTheDarkenedSeaEnabled()
{ {
return content_service.IsTheDarkenedSeaEnabled(); return WorldContentService::Instance()->IsTheDarkenedSeaEnabled();
} }
bool Perl__IsTheBrokenMirrorEnabled() bool Perl__IsTheBrokenMirrorEnabled()
{ {
return content_service.IsTheBrokenMirrorEnabled(); return WorldContentService::Instance()->IsTheBrokenMirrorEnabled();
} }
bool Perl__IsEmpiresOfKunarkEnabled() bool Perl__IsEmpiresOfKunarkEnabled()
{ {
return content_service.IsEmpiresOfKunarkEnabled(); return WorldContentService::Instance()->IsEmpiresOfKunarkEnabled();
} }
bool Perl__IsRingOfScaleEnabled() bool Perl__IsRingOfScaleEnabled()
{ {
return content_service.IsRingOfScaleEnabled(); return WorldContentService::Instance()->IsRingOfScaleEnabled();
} }
bool Perl__IsTheBurningLandsEnabled() bool Perl__IsTheBurningLandsEnabled()
{ {
return content_service.IsTheBurningLandsEnabled(); return WorldContentService::Instance()->IsTheBurningLandsEnabled();
} }
bool Perl__IsTormentOfVeliousEnabled() bool Perl__IsTormentOfVeliousEnabled()
{ {
return content_service.IsTormentOfVeliousEnabled(); return WorldContentService::Instance()->IsTormentOfVeliousEnabled();
} }
bool Perl__IsCurrentExpansionClassic() bool Perl__IsCurrentExpansionClassic()
{ {
return content_service.IsCurrentExpansionClassic(); return WorldContentService::Instance()->IsCurrentExpansionClassic();
} }
bool Perl__IsCurrentExpansionTheRuinsOfKunark() bool Perl__IsCurrentExpansionTheRuinsOfKunark()
{ {
return content_service.IsCurrentExpansionTheRuinsOfKunark(); return WorldContentService::Instance()->IsCurrentExpansionTheRuinsOfKunark();
} }
bool Perl__IsCurrentExpansionTheScarsOfVelious() bool Perl__IsCurrentExpansionTheScarsOfVelious()
{ {
return content_service.IsCurrentExpansionTheScarsOfVelious(); return WorldContentService::Instance()->IsCurrentExpansionTheScarsOfVelious();
} }
bool Perl__IsCurrentExpansionTheShadowsOfLuclin() bool Perl__IsCurrentExpansionTheShadowsOfLuclin()
{ {
return content_service.IsCurrentExpansionTheShadowsOfLuclin(); return WorldContentService::Instance()->IsCurrentExpansionTheShadowsOfLuclin();
} }
bool Perl__IsCurrentExpansionThePlanesOfPower() bool Perl__IsCurrentExpansionThePlanesOfPower()
{ {
return content_service.IsCurrentExpansionThePlanesOfPower(); return WorldContentService::Instance()->IsCurrentExpansionThePlanesOfPower();
} }
bool Perl__IsCurrentExpansionTheLegacyOfYkesha() bool Perl__IsCurrentExpansionTheLegacyOfYkesha()
{ {
return content_service.IsCurrentExpansionTheLegacyOfYkesha(); return WorldContentService::Instance()->IsCurrentExpansionTheLegacyOfYkesha();
} }
bool Perl__IsCurrentExpansionLostDungeonsOfNorrath() bool Perl__IsCurrentExpansionLostDungeonsOfNorrath()
{ {
return content_service.IsCurrentExpansionLostDungeonsOfNorrath(); return WorldContentService::Instance()->IsCurrentExpansionLostDungeonsOfNorrath();
} }
bool Perl__IsCurrentExpansionGatesOfDiscord() bool Perl__IsCurrentExpansionGatesOfDiscord()
{ {
return content_service.IsCurrentExpansionGatesOfDiscord(); return WorldContentService::Instance()->IsCurrentExpansionGatesOfDiscord();
} }
bool Perl__IsCurrentExpansionOmensOfWar() bool Perl__IsCurrentExpansionOmensOfWar()
{ {
return content_service.IsCurrentExpansionOmensOfWar(); return WorldContentService::Instance()->IsCurrentExpansionOmensOfWar();
} }
bool Perl__IsCurrentExpansionDragonsOfNorrath() bool Perl__IsCurrentExpansionDragonsOfNorrath()
{ {
return content_service.IsCurrentExpansionDragonsOfNorrath(); return WorldContentService::Instance()->IsCurrentExpansionDragonsOfNorrath();
} }
bool Perl__IsCurrentExpansionDepthsOfDarkhollow() bool Perl__IsCurrentExpansionDepthsOfDarkhollow()
{ {
return content_service.IsCurrentExpansionDepthsOfDarkhollow(); return WorldContentService::Instance()->IsCurrentExpansionDepthsOfDarkhollow();
} }
bool Perl__IsCurrentExpansionProphecyOfRo() bool Perl__IsCurrentExpansionProphecyOfRo()
{ {
return content_service.IsCurrentExpansionProphecyOfRo(); return WorldContentService::Instance()->IsCurrentExpansionProphecyOfRo();
} }
bool Perl__IsCurrentExpansionTheSerpentsSpine() bool Perl__IsCurrentExpansionTheSerpentsSpine()
{ {
return content_service.IsCurrentExpansionTheSerpentsSpine(); return WorldContentService::Instance()->IsCurrentExpansionTheSerpentsSpine();
} }
bool Perl__IsCurrentExpansionTheBuriedSea() bool Perl__IsCurrentExpansionTheBuriedSea()
{ {
return content_service.IsCurrentExpansionTheBuriedSea(); return WorldContentService::Instance()->IsCurrentExpansionTheBuriedSea();
} }
bool Perl__IsCurrentExpansionSecretsOfFaydwer() bool Perl__IsCurrentExpansionSecretsOfFaydwer()
{ {
return content_service.IsCurrentExpansionSecretsOfFaydwer(); return WorldContentService::Instance()->IsCurrentExpansionSecretsOfFaydwer();
} }
bool Perl__IsCurrentExpansionSeedsOfDestruction() bool Perl__IsCurrentExpansionSeedsOfDestruction()
{ {
return content_service.IsCurrentExpansionSeedsOfDestruction(); return WorldContentService::Instance()->IsCurrentExpansionSeedsOfDestruction();
} }
bool Perl__IsCurrentExpansionUnderfoot() bool Perl__IsCurrentExpansionUnderfoot()
{ {
return content_service.IsCurrentExpansionUnderfoot(); return WorldContentService::Instance()->IsCurrentExpansionUnderfoot();
} }
bool Perl__IsCurrentExpansionHouseOfThule() bool Perl__IsCurrentExpansionHouseOfThule()
{ {
return content_service.IsCurrentExpansionHouseOfThule(); return WorldContentService::Instance()->IsCurrentExpansionHouseOfThule();
} }
bool Perl__IsCurrentExpansionVeilOfAlaris() bool Perl__IsCurrentExpansionVeilOfAlaris()
{ {
return content_service.IsCurrentExpansionVeilOfAlaris(); return WorldContentService::Instance()->IsCurrentExpansionVeilOfAlaris();
} }
bool Perl__IsCurrentExpansionRainOfFear() bool Perl__IsCurrentExpansionRainOfFear()
{ {
return content_service.IsCurrentExpansionRainOfFear(); return WorldContentService::Instance()->IsCurrentExpansionRainOfFear();
} }
bool Perl__IsCurrentExpansionCallOfTheForsaken() bool Perl__IsCurrentExpansionCallOfTheForsaken()
{ {
return content_service.IsCurrentExpansionCallOfTheForsaken(); return WorldContentService::Instance()->IsCurrentExpansionCallOfTheForsaken();
} }
bool Perl__IsCurrentExpansionTheDarkenedSea() bool Perl__IsCurrentExpansionTheDarkenedSea()
{ {
return content_service.IsCurrentExpansionTheDarkenedSea(); return WorldContentService::Instance()->IsCurrentExpansionTheDarkenedSea();
} }
bool Perl__IsCurrentExpansionTheBrokenMirror() bool Perl__IsCurrentExpansionTheBrokenMirror()
{ {
return content_service.IsCurrentExpansionTheBrokenMirror(); return WorldContentService::Instance()->IsCurrentExpansionTheBrokenMirror();
} }
bool Perl__IsCurrentExpansionEmpiresOfKunark() bool Perl__IsCurrentExpansionEmpiresOfKunark()
{ {
return content_service.IsCurrentExpansionEmpiresOfKunark(); return WorldContentService::Instance()->IsCurrentExpansionEmpiresOfKunark();
} }
bool Perl__IsCurrentExpansionRingOfScale() bool Perl__IsCurrentExpansionRingOfScale()
{ {
return content_service.IsCurrentExpansionRingOfScale(); return WorldContentService::Instance()->IsCurrentExpansionRingOfScale();
} }
bool Perl__IsCurrentExpansionTheBurningLands() bool Perl__IsCurrentExpansionTheBurningLands()
{ {
return content_service.IsCurrentExpansionTheBurningLands(); return WorldContentService::Instance()->IsCurrentExpansionTheBurningLands();
} }
bool Perl__IsCurrentExpansionTormentOfVelious() bool Perl__IsCurrentExpansionTormentOfVelious()
{ {
return content_service.IsCurrentExpansionTormentOfVelious(); return WorldContentService::Instance()->IsCurrentExpansionTormentOfVelious();
} }
bool Perl__IsContentFlagEnabled(std::string flag_name) bool Perl__IsContentFlagEnabled(std::string flag_name)
{ {
return content_service.IsContentFlagEnabled(flag_name); return WorldContentService::Instance()->IsContentFlagEnabled(flag_name);
} }
void Perl__SetContentFlag(std::string flag_name, bool enabled) void Perl__SetContentFlag(std::string flag_name, bool enabled)
{ {
content_service.SetContentFlag(flag_name, enabled); WorldContentService::Instance()->SetContentFlag(flag_name, enabled);
zone->ReloadContentFlags(); zone->ReloadContentFlags();
} }

View File

@ -57,7 +57,7 @@ void NPC::AddLootTable(uint32 loottable_id, bool is_global)
.content_flags_disabled = l->content_flags_disabled .content_flags_disabled = l->content_flags_disabled
}; };
if (!content_service.DoesPassContentFiltering(content_flags)) { if (!WorldContentService::Instance()->DoesPassContentFiltering(content_flags)) {
return; return;
} }

View File

@ -1609,227 +1609,227 @@ void lua_update_zone_header(std::string type, std::string value) {
*/ */
bool lua_is_classic_enabled() { bool lua_is_classic_enabled() {
return content_service.IsClassicEnabled(); return WorldContentService::Instance()->IsClassicEnabled();
} }
bool lua_is_the_ruins_of_kunark_enabled() { bool lua_is_the_ruins_of_kunark_enabled() {
return content_service.IsTheRuinsOfKunarkEnabled(); return WorldContentService::Instance()->IsTheRuinsOfKunarkEnabled();
} }
bool lua_is_the_scars_of_velious_enabled() { bool lua_is_the_scars_of_velious_enabled() {
return content_service.IsTheScarsOfVeliousEnabled(); return WorldContentService::Instance()->IsTheScarsOfVeliousEnabled();
} }
bool lua_is_the_shadows_of_luclin_enabled() { bool lua_is_the_shadows_of_luclin_enabled() {
return content_service.IsTheShadowsOfLuclinEnabled(); return WorldContentService::Instance()->IsTheShadowsOfLuclinEnabled();
} }
bool lua_is_the_planes_of_power_enabled() { bool lua_is_the_planes_of_power_enabled() {
return content_service.IsThePlanesOfPowerEnabled(); return WorldContentService::Instance()->IsThePlanesOfPowerEnabled();
} }
bool lua_is_the_legacy_of_ykesha_enabled() { bool lua_is_the_legacy_of_ykesha_enabled() {
return content_service.IsTheLegacyOfYkeshaEnabled(); return WorldContentService::Instance()->IsTheLegacyOfYkeshaEnabled();
} }
bool lua_is_lost_dungeons_of_norrath_enabled() { bool lua_is_lost_dungeons_of_norrath_enabled() {
return content_service.IsLostDungeonsOfNorrathEnabled(); return WorldContentService::Instance()->IsLostDungeonsOfNorrathEnabled();
} }
bool lua_is_gates_of_discord_enabled() { bool lua_is_gates_of_discord_enabled() {
return content_service.IsGatesOfDiscordEnabled(); return WorldContentService::Instance()->IsGatesOfDiscordEnabled();
} }
bool lua_is_omens_of_war_enabled() { bool lua_is_omens_of_war_enabled() {
return content_service.IsOmensOfWarEnabled(); return WorldContentService::Instance()->IsOmensOfWarEnabled();
} }
bool lua_is_dragons_of_norrath_enabled() { bool lua_is_dragons_of_norrath_enabled() {
return content_service.IsDragonsOfNorrathEnabled(); return WorldContentService::Instance()->IsDragonsOfNorrathEnabled();
} }
bool lua_is_depths_of_darkhollow_enabled() { bool lua_is_depths_of_darkhollow_enabled() {
return content_service.IsDepthsOfDarkhollowEnabled(); return WorldContentService::Instance()->IsDepthsOfDarkhollowEnabled();
} }
bool lua_is_prophecy_of_ro_enabled() { bool lua_is_prophecy_of_ro_enabled() {
return content_service.IsProphecyOfRoEnabled(); return WorldContentService::Instance()->IsProphecyOfRoEnabled();
} }
bool lua_is_the_serpents_spine_enabled() { bool lua_is_the_serpents_spine_enabled() {
return content_service.IsTheSerpentsSpineEnabled(); return WorldContentService::Instance()->IsTheSerpentsSpineEnabled();
} }
bool lua_is_the_buried_sea_enabled() { bool lua_is_the_buried_sea_enabled() {
return content_service.IsTheBuriedSeaEnabled(); return WorldContentService::Instance()->IsTheBuriedSeaEnabled();
} }
bool lua_is_secrets_of_faydwer_enabled() { bool lua_is_secrets_of_faydwer_enabled() {
return content_service.IsSecretsOfFaydwerEnabled(); return WorldContentService::Instance()->IsSecretsOfFaydwerEnabled();
} }
bool lua_is_seeds_of_destruction_enabled() { bool lua_is_seeds_of_destruction_enabled() {
return content_service.IsSeedsOfDestructionEnabled(); return WorldContentService::Instance()->IsSeedsOfDestructionEnabled();
} }
bool lua_is_underfoot_enabled() { bool lua_is_underfoot_enabled() {
return content_service.IsUnderfootEnabled(); return WorldContentService::Instance()->IsUnderfootEnabled();
} }
bool lua_is_house_of_thule_enabled() { bool lua_is_house_of_thule_enabled() {
return content_service.IsHouseOfThuleEnabled(); return WorldContentService::Instance()->IsHouseOfThuleEnabled();
} }
bool lua_is_veil_of_alaris_enabled() { bool lua_is_veil_of_alaris_enabled() {
return content_service.IsVeilOfAlarisEnabled(); return WorldContentService::Instance()->IsVeilOfAlarisEnabled();
} }
bool lua_is_rain_of_fear_enabled() { bool lua_is_rain_of_fear_enabled() {
return content_service.IsRainOfFearEnabled(); return WorldContentService::Instance()->IsRainOfFearEnabled();
} }
bool lua_is_call_of_the_forsaken_enabled() { bool lua_is_call_of_the_forsaken_enabled() {
return content_service.IsCallOfTheForsakenEnabled(); return WorldContentService::Instance()->IsCallOfTheForsakenEnabled();
} }
bool lua_is_the_darkened_sea_enabled() { bool lua_is_the_darkened_sea_enabled() {
return content_service.IsTheDarkenedSeaEnabled(); return WorldContentService::Instance()->IsTheDarkenedSeaEnabled();
} }
bool lua_is_the_broken_mirror_enabled() { bool lua_is_the_broken_mirror_enabled() {
return content_service.IsTheBrokenMirrorEnabled(); return WorldContentService::Instance()->IsTheBrokenMirrorEnabled();
} }
bool lua_is_empires_of_kunark_enabled() { bool lua_is_empires_of_kunark_enabled() {
return content_service.IsEmpiresOfKunarkEnabled(); return WorldContentService::Instance()->IsEmpiresOfKunarkEnabled();
} }
bool lua_is_ring_of_scale_enabled() { bool lua_is_ring_of_scale_enabled() {
return content_service.IsRingOfScaleEnabled(); return WorldContentService::Instance()->IsRingOfScaleEnabled();
} }
bool lua_is_the_burning_lands_enabled() { bool lua_is_the_burning_lands_enabled() {
return content_service.IsTheBurningLandsEnabled(); return WorldContentService::Instance()->IsTheBurningLandsEnabled();
} }
bool lua_is_torment_of_velious_enabled() { bool lua_is_torment_of_velious_enabled() {
return content_service.IsTormentOfVeliousEnabled(); return WorldContentService::Instance()->IsTormentOfVeliousEnabled();
} }
bool lua_is_current_expansion_classic() { bool lua_is_current_expansion_classic() {
return content_service.IsCurrentExpansionClassic(); return WorldContentService::Instance()->IsCurrentExpansionClassic();
} }
bool lua_is_current_expansion_the_ruins_of_kunark() { bool lua_is_current_expansion_the_ruins_of_kunark() {
return content_service.IsCurrentExpansionTheRuinsOfKunark(); return WorldContentService::Instance()->IsCurrentExpansionTheRuinsOfKunark();
} }
bool lua_is_current_expansion_the_scars_of_velious() { bool lua_is_current_expansion_the_scars_of_velious() {
return content_service.IsCurrentExpansionTheScarsOfVelious(); return WorldContentService::Instance()->IsCurrentExpansionTheScarsOfVelious();
} }
bool lua_is_current_expansion_the_shadows_of_luclin() { bool lua_is_current_expansion_the_shadows_of_luclin() {
return content_service.IsCurrentExpansionTheShadowsOfLuclin(); return WorldContentService::Instance()->IsCurrentExpansionTheShadowsOfLuclin();
} }
bool lua_is_current_expansion_the_planes_of_power() { bool lua_is_current_expansion_the_planes_of_power() {
return content_service.IsCurrentExpansionThePlanesOfPower(); return WorldContentService::Instance()->IsCurrentExpansionThePlanesOfPower();
} }
bool lua_is_current_expansion_the_legacy_of_ykesha() { bool lua_is_current_expansion_the_legacy_of_ykesha() {
return content_service.IsCurrentExpansionTheLegacyOfYkesha(); return WorldContentService::Instance()->IsCurrentExpansionTheLegacyOfYkesha();
} }
bool lua_is_current_expansion_lost_dungeons_of_norrath() { bool lua_is_current_expansion_lost_dungeons_of_norrath() {
return content_service.IsCurrentExpansionLostDungeonsOfNorrath(); return WorldContentService::Instance()->IsCurrentExpansionLostDungeonsOfNorrath();
} }
bool lua_is_current_expansion_gates_of_discord() { bool lua_is_current_expansion_gates_of_discord() {
return content_service.IsCurrentExpansionGatesOfDiscord(); return WorldContentService::Instance()->IsCurrentExpansionGatesOfDiscord();
} }
bool lua_is_current_expansion_omens_of_war() { bool lua_is_current_expansion_omens_of_war() {
return content_service.IsCurrentExpansionOmensOfWar(); return WorldContentService::Instance()->IsCurrentExpansionOmensOfWar();
} }
bool lua_is_current_expansion_dragons_of_norrath() { bool lua_is_current_expansion_dragons_of_norrath() {
return content_service.IsCurrentExpansionDragonsOfNorrath(); return WorldContentService::Instance()->IsCurrentExpansionDragonsOfNorrath();
} }
bool lua_is_current_expansion_depths_of_darkhollow() { bool lua_is_current_expansion_depths_of_darkhollow() {
return content_service.IsCurrentExpansionDepthsOfDarkhollow(); return WorldContentService::Instance()->IsCurrentExpansionDepthsOfDarkhollow();
} }
bool lua_is_current_expansion_prophecy_of_ro() { bool lua_is_current_expansion_prophecy_of_ro() {
return content_service.IsCurrentExpansionProphecyOfRo(); return WorldContentService::Instance()->IsCurrentExpansionProphecyOfRo();
} }
bool lua_is_current_expansion_the_serpents_spine() { bool lua_is_current_expansion_the_serpents_spine() {
return content_service.IsCurrentExpansionTheSerpentsSpine(); return WorldContentService::Instance()->IsCurrentExpansionTheSerpentsSpine();
} }
bool lua_is_current_expansion_the_buried_sea() { bool lua_is_current_expansion_the_buried_sea() {
return content_service.IsCurrentExpansionTheBuriedSea(); return WorldContentService::Instance()->IsCurrentExpansionTheBuriedSea();
} }
bool lua_is_current_expansion_secrets_of_faydwer() { bool lua_is_current_expansion_secrets_of_faydwer() {
return content_service.IsCurrentExpansionSecretsOfFaydwer(); return WorldContentService::Instance()->IsCurrentExpansionSecretsOfFaydwer();
} }
bool lua_is_current_expansion_seeds_of_destruction() { bool lua_is_current_expansion_seeds_of_destruction() {
return content_service.IsCurrentExpansionSeedsOfDestruction(); return WorldContentService::Instance()->IsCurrentExpansionSeedsOfDestruction();
} }
bool lua_is_current_expansion_underfoot() { bool lua_is_current_expansion_underfoot() {
return content_service.IsCurrentExpansionUnderfoot(); return WorldContentService::Instance()->IsCurrentExpansionUnderfoot();
} }
bool lua_is_current_expansion_house_of_thule() { bool lua_is_current_expansion_house_of_thule() {
return content_service.IsCurrentExpansionHouseOfThule(); return WorldContentService::Instance()->IsCurrentExpansionHouseOfThule();
} }
bool lua_is_current_expansion_veil_of_alaris() { bool lua_is_current_expansion_veil_of_alaris() {
return content_service.IsCurrentExpansionVeilOfAlaris(); return WorldContentService::Instance()->IsCurrentExpansionVeilOfAlaris();
} }
bool lua_is_current_expansion_rain_of_fear() { bool lua_is_current_expansion_rain_of_fear() {
return content_service.IsCurrentExpansionRainOfFear(); return WorldContentService::Instance()->IsCurrentExpansionRainOfFear();
} }
bool lua_is_current_expansion_call_of_the_forsaken() { bool lua_is_current_expansion_call_of_the_forsaken() {
return content_service.IsCurrentExpansionCallOfTheForsaken(); return WorldContentService::Instance()->IsCurrentExpansionCallOfTheForsaken();
} }
bool lua_is_current_expansion_the_darkened_sea() { bool lua_is_current_expansion_the_darkened_sea() {
return content_service.IsCurrentExpansionTheDarkenedSea(); return WorldContentService::Instance()->IsCurrentExpansionTheDarkenedSea();
} }
bool lua_is_current_expansion_the_broken_mirror() { bool lua_is_current_expansion_the_broken_mirror() {
return content_service.IsCurrentExpansionTheBrokenMirror(); return WorldContentService::Instance()->IsCurrentExpansionTheBrokenMirror();
} }
bool lua_is_current_expansion_empires_of_kunark() { bool lua_is_current_expansion_empires_of_kunark() {
return content_service.IsCurrentExpansionEmpiresOfKunark(); return WorldContentService::Instance()->IsCurrentExpansionEmpiresOfKunark();
} }
bool lua_is_current_expansion_ring_of_scale() { bool lua_is_current_expansion_ring_of_scale() {
return content_service.IsCurrentExpansionRingOfScale(); return WorldContentService::Instance()->IsCurrentExpansionRingOfScale();
} }
bool lua_is_current_expansion_the_burning_lands() { bool lua_is_current_expansion_the_burning_lands() {
return content_service.IsCurrentExpansionTheBurningLands(); return WorldContentService::Instance()->IsCurrentExpansionTheBurningLands();
} }
bool lua_is_current_expansion_torment_of_velious() { bool lua_is_current_expansion_torment_of_velious() {
return content_service.IsCurrentExpansionTormentOfVelious(); return WorldContentService::Instance()->IsCurrentExpansionTormentOfVelious();
} }
bool lua_is_content_flag_enabled(std::string content_flag){ bool lua_is_content_flag_enabled(std::string content_flag){
return content_service.IsContentFlagEnabled(content_flag); return WorldContentService::Instance()->IsContentFlagEnabled(content_flag);
} }
void lua_set_content_flag(std::string flag_name, bool enabled){ void lua_set_content_flag(std::string flag_name, bool enabled){
content_service.SetContentFlag(flag_name, enabled); WorldContentService::Instance()->SetContentFlag(flag_name, enabled);
zone->ReloadContentFlags(); zone->ReloadContentFlags();
} }

View File

@ -101,7 +101,6 @@ TitleManager title_manager;
QueryServ *QServ = 0; QueryServ *QServ = 0;
NpcScaleManager *npc_scale_manager; NpcScaleManager *npc_scale_manager;
QuestParserCollection *parse = 0; QuestParserCollection *parse = 0;
WorldContentService content_service;
PlayerEventLogs player_event_logs; PlayerEventLogs player_event_logs;
const SPDat_Spell_Struct* spells; const SPDat_Spell_Struct* spells;
@ -409,7 +408,7 @@ int main(int argc, char **argv)
LogInfo("Loaded [{}] commands loaded", Strings::Commify(std::to_string(retval))); LogInfo("Loaded [{}] commands loaded", Strings::Commify(std::to_string(retval)));
} }
content_service.SetDatabase(&database) WorldContentService::Instance()->SetDatabase(&database)
->SetContentDatabase(&content_db) ->SetContentDatabase(&content_db)
->SetExpansionContext() ->SetExpansionContext()
->ReloadContentFlags(); ->ReloadContentFlags();
@ -624,7 +623,8 @@ int main(int argc, char **argv)
entity_list.MobProcess(); entity_list.MobProcess();
entity_list.BeaconProcess(); entity_list.BeaconProcess();
entity_list.EncounterProcess(); entity_list.EncounterProcess();
ZoneEventScheduler::Instance()->Process(zone, &content_service);
ZoneEventScheduler::Instance()->Process(zone, WorldContentService::Instance());
if (zone) { if (zone) {
if (!zone->Process()) { if (!zone->Process()) {

View File

@ -4571,7 +4571,7 @@ void WorldServer::ProcessReload(const ServerReload::Request& request)
break; break;
case ServerReload::Type::ContentFlags: case ServerReload::Type::ContentFlags:
content_service.SetExpansionContext()->ReloadContentFlags(); WorldContentService::Instance()->SetExpansionContext()->ReloadContentFlags();
break; break;
case ServerReload::Type::DzTemplates: case ServerReload::Type::DzTemplates:

View File

@ -1291,7 +1291,7 @@ void Zone::ReloadStaticData() {
); );
} // if that fails, try the file name, then load defaults } // if that fails, try the file name, then load defaults
content_service.SetExpansionContext()->ReloadContentFlags(); WorldContentService::Instance()->SetExpansionContext()->ReloadContentFlags();
LogInfo("Zone Static Data Reloaded"); LogInfo("Zone Static Data Reloaded");

View File

@ -211,7 +211,7 @@ LoottableRepository::Loottable *Zone::GetLootTable(const uint32 loottable_id)
{ {
for (auto &e: m_loottables) { for (auto &e: m_loottables) {
if (e.id == loottable_id) { if (e.id == loottable_id) {
if (!content_service.DoesPassContentFiltering( if (!WorldContentService::Instance()->DoesPassContentFiltering(
ContentFlags{ ContentFlags{
.min_expansion = e.min_expansion, .min_expansion = e.min_expansion,
.max_expansion = e.max_expansion, .max_expansion = e.max_expansion,
@ -249,7 +249,7 @@ LootdropRepository::Lootdrop Zone::GetLootdrop(const uint32 lootdrop_id) const
{ {
for (const auto &e: m_lootdrops) { for (const auto &e: m_lootdrops) {
if (e.id == lootdrop_id) { if (e.id == lootdrop_id) {
if (!content_service.DoesPassContentFiltering( if (!WorldContentService::Instance()->DoesPassContentFiltering(
ContentFlags{ ContentFlags{
.min_expansion = e.min_expansion, .min_expansion = e.min_expansion,
.max_expansion = e.max_expansion, .max_expansion = e.max_expansion,
@ -276,7 +276,7 @@ std::vector<LootdropEntriesRepository::LootdropEntries> Zone::GetLootdropEntries
std::vector<LootdropEntriesRepository::LootdropEntries> entries = {}; std::vector<LootdropEntriesRepository::LootdropEntries> entries = {};
for (const auto &e: m_lootdrop_entries) { for (const auto &e: m_lootdrop_entries) {
if (e.lootdrop_id == lootdrop_id) { if (e.lootdrop_id == lootdrop_id) {
if (!content_service.DoesPassContentFiltering( if (!WorldContentService::Instance()->DoesPassContentFiltering(
ContentFlags{ ContentFlags{
.min_expansion = e.min_expansion, .min_expansion = e.min_expansion,
.max_expansion = e.max_expansion, .max_expansion = e.max_expansion,

View File

@ -72,7 +72,7 @@ void Client::Handle_OP_ZoneChange(const EQApplicationPacket *app) {
int(zone_mode) int(zone_mode)
); );
content_service.HandleZoneRoutingMiddleware(zc); WorldContentService::Instance()->HandleZoneRoutingMiddleware(zc);
uint16 target_zone_id = 0; uint16 target_zone_id = 0;
auto target_instance_id = zc->instanceID; auto target_instance_id = zc->instanceID;
@ -349,19 +349,19 @@ void Client::Handle_OP_ZoneChange(const EQApplicationPacket *app) {
//TODO: ADVENTURE ENTRANCE CHECK //TODO: ADVENTURE ENTRANCE CHECK
// Expansion checks and routing // Expansion checks and routing
if (content_service.GetCurrentExpansion() >= Expansion::Classic && !GetGM()) { if (WorldContentService::Instance()->GetCurrentExpansion() >= Expansion::Classic && !GetGM()) {
bool meets_zone_expansion_check = false; bool meets_zone_expansion_check = false;
auto z = ZoneStore::Instance()->GetZoneWithFallback(ZoneID(target_zone_name), 0); auto z = ZoneStore::Instance()->GetZoneWithFallback(ZoneID(target_zone_name), 0);
if (z->expansion <= content_service.GetCurrentExpansion() || z->bypass_expansion_check) { if (z->expansion <= WorldContentService::Instance()->GetCurrentExpansion() || z->bypass_expansion_check) {
meets_zone_expansion_check = true; meets_zone_expansion_check = true;
} }
LogZoning( LogZoning(
"Checking zone request [{}] for expansion [{}] ({}) success [{}]", "Checking zone request [{}] for expansion [{}] ({}) success [{}]",
target_zone_name, target_zone_name,
(content_service.GetCurrentExpansion()), (WorldContentService::Instance()->GetCurrentExpansion()),
content_service.GetCurrentExpansionName(), WorldContentService::Instance()->GetCurrentExpansionName(),
meets_zone_expansion_check ? "true" : "false" meets_zone_expansion_check ? "true" : "false"
); );
@ -370,7 +370,7 @@ void Client::Handle_OP_ZoneChange(const EQApplicationPacket *app) {
} }
} }
if (content_service.GetCurrentExpansion() >= Expansion::Classic && GetGM()) { if (WorldContentService::Instance()->GetCurrentExpansion() >= Expansion::Classic && GetGM()) {
LogInfo("[{}] Bypassing zone expansion checks because GM flag is set", GetCleanName()); LogInfo("[{}] Bypassing zone expansion checks because GM flag is set", GetCleanName());
Message(Chat::White, "Your GM flag allows you to bypass zone expansion checks."); Message(Chat::White, "Your GM flag allows you to bypass zone expansion checks.");
} }
@ -763,7 +763,7 @@ void Client::ZonePC(uint32 zoneID, uint32 instance_id, float x, float y, float z
pZoneName = strcpy(new char[zd->long_name.length() + 1], zd->long_name.c_str()); pZoneName = strcpy(new char[zd->long_name.length() + 1], zd->long_name.c_str());
} }
auto r = content_service.FindZone(zoneID, instance_id); auto r = WorldContentService::Instance()->FindZone(zoneID, instance_id);
if (r.zone_id) { if (r.zone_id) {
zoneID = r.zone_id; zoneID = r.zone_id;
instance_id = r.instance.id; instance_id = r.instance.id;
@ -781,7 +781,7 @@ void Client::ZonePC(uint32 zoneID, uint32 instance_id, float x, float y, float z
); );
// If we are zoning to the same zone, we need to use the current instance ID if it is not specified. // If we are zoning to the same zone, we need to use the current instance ID if it is not specified.
if (content_service.IsInPublicStaticInstance(instance_id) && zoneID == zone->GetZoneID() && instance_id == 0) { if (WorldContentService::Instance()->IsInPublicStaticInstance(instance_id) && zoneID == zone->GetZoneID() && instance_id == 0) {
instance_id = zone->GetInstanceID(); instance_id = zone->GetInstanceID();
} }
} }