aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Groups
diff options
context:
space:
mode:
authorSpp <none@none>2010-08-13 15:38:10 +0200
committerSpp <none@none>2010-08-13 15:38:10 +0200
commit3e29ae1ee8ed410127fe37e47d4e904b57436dfe (patch)
treeb1d1df1d7b8e1df5c36f5b0d0887d28612102a93 /src/server/game/Groups
parent55705e91d4ab0e0341c73e3104aecb4028910288 (diff)
Dungeon Finder: Add vote kick support
--HG-- branch : trunk
Diffstat (limited to 'src/server/game/Groups')
-rw-r--r--src/server/game/Groups/Group.cpp2
-rw-r--r--src/server/game/Groups/Group.h22
2 files changed, 22 insertions, 2 deletions
diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp
index 74a26f6a7b8..7c35e5fc5ed 100644
--- a/src/server/game/Groups/Group.cpp
+++ b/src/server/game/Groups/Group.cpp
@@ -51,6 +51,8 @@ Group::Group()
m_LfgQueued = false;
m_LfgStatus = LFG_STATUS_NOT_SAVED;
m_LfgDungeonEntry = 0;
+ m_Lfgkicks = 0;
+ m_LfgkicksActive = false;
for (uint8 i = 0; i < TARGETICONCOUNT; ++i)
m_targetIcons[i] = 0;
diff --git a/src/server/game/Groups/Group.h b/src/server/game/Groups/Group.h
index 78e766edc92..f29e5d5c234 100644
--- a/src/server/game/Groups/Group.h
+++ b/src/server/game/Groups/Group.h
@@ -35,6 +35,8 @@
#define MAXRAIDSIZE 40
#define MAX_RAID_SUBGROUPS MAXRAIDSIZE/MAXGROUPSIZE
#define TARGETICONCOUNT 8
+#define GROUP_MAX_LFG_KICKS 3
+#define GROUP_LFG_KICK_VOTES_NEEDED 3
enum RollVote
{
@@ -46,6 +48,13 @@ enum RollVote
NOT_VALID = 5
};
+enum LfgDungeonStatus
+{
+ LFG_STATUS_SAVED = 0,
+ LFG_STATUS_NOT_SAVED = 1,
+ LFG_STATUS_COMPLETE = 2,
+};
+
enum GroupMemberOnlineStatus
{
MEMBER_STATUS_OFFLINE = 0x0000,
@@ -192,10 +201,12 @@ class Group
void SetLootThreshold(ItemQualities threshold) { m_lootThreshold = threshold; }
void Disband(bool hideDestroy=false);
+ // Dungeon Finder
void SetLfgQueued(bool queued) { m_LfgQueued = queued; }
bool isLfgQueued() { return m_LfgQueued; }
void SetLfgStatus(uint8 status) { m_LfgStatus = status; }
uint8 GetLfgStatus() { return m_LfgStatus; }
+ bool isLfgDungeonComplete() const { return m_LfgStatus == LFG_STATUS_COMPLETE; }
void SetLfgDungeonEntry(uint32 dungeonEntry) { m_LfgDungeonEntry = dungeonEntry; }
uint32 GetLfgDungeonEntry(bool id = true)
{
@@ -204,8 +215,11 @@ class Group
else
return m_LfgDungeonEntry;
}
-
- void SetLfgRoles(uint64 guid, const uint8 roles)
+ bool isLfgKickActive() const { return m_LfgkicksActive; }
+ void SetLfgKickActive(bool active) { m_LfgkicksActive = active; }
+ uint8 GetLfgKicks() const { return m_Lfgkicks; }
+ void SetLfgKicks(uint8 kicks) { m_Lfgkicks = kicks; }
+ void SetLfgRoles(uint64 guid, const uint8 roles)
{
member_witerator slot = _getMemberWSlot(guid);
if (slot == m_memberSlots.end())
@@ -214,6 +228,7 @@ class Group
slot->roles = roles;
SendUpdate();
}
+
// properties accessories
bool IsFull() const { return (m_groupType == GROUPTYPE_NORMAL) ? (m_memberSlots.size() >= MAXGROUPSIZE) : (m_memberSlots.size() >= MAXRAIDSIZE); }
bool isLFGGroup() const { return m_groupType & GROUPTYPE_LFG; }
@@ -350,6 +365,7 @@ class Group
/*** LOOT SYSTEM ***/
/*********************************************************/
+ bool isRollLootActive() const { return !RollId.empty(); }
void SendLootStartRoll(uint32 CountDown, uint32 mapid, const Roll &r);
void SendLootRoll(const uint64& SourceGuid, const uint64& TargetGuid, uint8 RollNumber, uint8 RollType, const Roll &r);
void SendLootRollWon(const uint64& SourceGuid, const uint64& TargetGuid, uint8 RollNumber, uint8 RollType, const Roll &r);
@@ -488,5 +504,7 @@ class Group
bool m_LfgQueued;
uint8 m_LfgStatus;
uint32 m_LfgDungeonEntry;
+ uint8 m_Lfgkicks;
+ bool m_LfgkicksActive;
};
#endif