From 850ae40f056f3f2dd550d87acdb2fe87b928a459 Mon Sep 17 00:00:00 2001 From: EmosewaMC <39972741+EmosewaMC@users.noreply.github.com> Date: Wed, 19 Jan 2022 17:34:53 -0800 Subject: [PATCH] Moved retroactive flag check to Character.cpp --- dGame/Character.cpp | 7 +++++++ dGame/Character.h | 6 ++++++ dWorldServer/WorldServer.cpp | 7 ++----- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/dGame/Character.cpp b/dGame/Character.cpp index 4383ee4..d396382 100644 --- a/dGame/Character.cpp +++ b/dGame/Character.cpp @@ -451,6 +451,13 @@ bool Character::GetPlayerFlag(const uint32_t flagId) const { return false; //by def, return false. } +void Character::SetRetroactiveFlags() { + // Retroactive check for if player has joined a faction to set their 'joined a faction' flag to true. + if (GetPlayerFlag(ePlayerFlags::VENTURE_FACTION) || GetPlayerFlag(ePlayerFlags::ASSEMBLY_FACTION) || GetPlayerFlag(ePlayerFlags::PARADOX_FACTION) || GetPlayerFlag(ePlayerFlags::SENTINEL_FACTION)) { + SetPlayerFlag(ePlayerFlags::JOINED_A_FACTION, true); + } +} + void Character::SaveXmlRespawnCheckpoints() { //Export our respawn points: diff --git a/dGame/Character.h b/dGame/Character.h index 61017cc..9678eb3 100644 --- a/dGame/Character.h +++ b/dGame/Character.h @@ -413,6 +413,12 @@ public: */ void SendMuteNotice() const; + /** + * Sets any flags that are meant to have been set that may not have been set due to them being + * missing in a previous patch. + */ + void SetRetroactiveFlags(); + /** * Get the equipped items for this character, only used for character creation * @return the equipped items for this character on world load diff --git a/dWorldServer/WorldServer.cpp b/dWorldServer/WorldServer.cpp index e27c5c9..53abfd7 100644 --- a/dWorldServer/WorldServer.cpp +++ b/dWorldServer/WorldServer.cpp @@ -1042,11 +1042,8 @@ void HandlePacket(Packet* packet) { EntityManager::Instance()->ConstructAllEntities(packet->systemAddress); player->GetComponent()->SetLastRocketConfig(u""); - // Retroactive check for if player has joined a faction to set their 'joined a faction' flag to true. - if (c->GetPlayerFlag(ePlayerFlags::VENTURE_FACTION) || c->GetPlayerFlag(ePlayerFlags::ASSEMBLY_FACTION) || - c->GetPlayerFlag(ePlayerFlags::PARADOX_FACTION) || c->GetPlayerFlag(ePlayerFlags::SENTINEL_FACTION)) { - c->SetPlayerFlag(ePlayerFlags::JOINED_A_FACTION, true); - } + + c->SetRetroactiveFlags(); player->GetCharacter()->SetTargetScene("");