diff options
Diffstat (limited to 'src/server/game/Entities')
| -rwxr-xr-x | src/server/game/Entities/Player/Player.cpp | 4 | ||||
| -rwxr-xr-x | src/server/game/Entities/Player/Player.h | 25 |
2 files changed, 23 insertions, 6 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index cc4ca11f207..5cbddf37082 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -22190,13 +22190,13 @@ PartyResult Player::CanUninviteFromGroup() const if (grp->GetLfgKicks() == GROUP_MAX_LFG_KICKS) return ERR_PARTY_LFG_BOOT_LIMIT; - if (grp->isLfgKickActive()) + if (GetLfgState() == LFG_STATE_BOOT) return ERR_PARTY_LFG_BOOT_IN_PROGRESS; if (grp->GetMembersCount() <= GROUP_LFG_KICK_VOTES_NEEDED) return ERR_PARTY_LFG_BOOT_TOO_FEW_PLAYERS; - if (grp->isLfgDungeonComplete()) + if (GetLfgState() == LFG_STATE_FINISHED_DUNGEON) return ERR_PARTY_LFG_BOOT_DUNGEON_COMPLETE; if (grp->isRollLootActive()) diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index e64c7d0807b..05c1f45199f 100755 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -2260,10 +2260,27 @@ class Player : public Unit, public GridObject<Player> void SetLfgComment(std::string _comment) { m_LookingForGroup.comment = _comment; } uint8 GetLfgRoles() { return m_LookingForGroup.roles; } void SetLfgRoles(uint8 _roles) { m_LookingForGroup.roles = _roles; } - bool GetLfgUpdate() { return m_LookingForGroup.update; } - void SetLfgUpdate(bool update) { m_LookingForGroup.update = update; } - LfgState GetLfgState() { return m_LookingForGroup.state; } - void SetLfgState(LfgState state) { m_LookingForGroup.state = state; } + LfgState GetLfgState() const { return m_LookingForGroup.state; } + void SetLfgState(LfgState state) + { + + switch(state) + { + case LFG_STATE_NONE: + case LFG_STATE_DUNGEON: + case LFG_STATE_FINISHED_DUNGEON: + m_LookingForGroup.oldState = state; + // No break on purpose + default: + m_LookingForGroup.state = state; + } + } + void ClearLfgState() + { + m_LookingForGroup.applyDungeons.clear(); + m_LookingForGroup.roles = ROLE_NONE; + m_LookingForGroup.state = m_LookingForGroup.oldState; + } bool isUsingLfg() { return GetLfgState() != LFG_STATE_NONE; } typedef std::set<uint32> DFQuestsDoneList; |
