fix(Core/Player): clear current title if the player loses it (#8827)

This commit is contained in:
Skjalf
2021-11-02 20:13:54 -03:00
committed by GitHub
parent cfbafe0355
commit 80febc4de0
2 changed files with 7 additions and 0 deletions

View File

@@ -12486,6 +12486,12 @@ void Player::SetTitle(CharTitlesEntry const* title, bool lost)
if (!HasFlag(PLAYER__FIELD_KNOWN_TITLES + fieldIndexOffset, flag))
return;
// Clear the current title if it is the one being removed.
if (title->bit_index == GetUInt32Value(PLAYER_CHOSEN_TITLE))
{
SetCurrentTitle(nullptr, true);
}
RemoveFlag(PLAYER__FIELD_KNOWN_TITLES + fieldIndexOffset, flag);
}
else

View File

@@ -2495,6 +2495,7 @@ public:
[[nodiscard]] bool HasTitle(uint32 bitIndex) const;
bool HasTitle(CharTitlesEntry const* title) const { return HasTitle(title->bit_index); }
void SetTitle(CharTitlesEntry const* title, bool lost = false);
void SetCurrentTitle(CharTitlesEntry const* title, bool clear = false) { SetUInt32Value(PLAYER_CHOSEN_TITLE, clear ? 0 : title->bit_index); };
//bool isActiveObject() const { return true; }
bool CanSeeSpellClickOn(Creature const* creature) const;