Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
LFGGroupData.cpp
Go to the documentation of this file.
1
/*
2
* This file is part of Project SkyFire https://www.projectskyfire.org.
3
* See LICENSE.md file for Copyright information
4
*/
5
6
#include "
LFG.h
"
7
#include "
LFGGroupData.h
"
8
9
namespace
lfg
10
{
11
namespace
12
{
13
LfgGroupQueueData
const
& EmptyGroupQueueData()
14
{
15
static
LfgGroupQueueData
empty;
16
return
empty;
17
}
18
}
19
20
LfgGroupQueueData::LfgGroupQueueData
() :
State
(
LFG_STATE_NONE
),
OldState
(
LFG_STATE_NONE
),
Dungeon
(0)
21
{ }
22
23
LfgGroupData::LfgGroupData
() :
m_Leader
(0),
m_ActiveQueueId
(0),
m_KicksLeft
(
LFG_GROUP_MAX_KICKS
),
24
m_VoteKickActive
(false)
25
{ }
26
27
LfgGroupData::~LfgGroupData
()
28
{ }
29
30
bool
LfgGroupData::IsLfgGroup
()
const
31
{
32
return
GetOldState
() !=
LFG_STATE_NONE
;
33
}
34
35
void
LfgGroupData::SetState
(
LfgState
state)
36
{
37
LfgGroupQueueData
& data =
GetActiveQueueData
();
38
39
switch
(state)
40
{
41
case
LFG_STATE_NONE
:
42
data.
State
=
LFG_STATE_NONE
;
43
data.
OldState
=
LFG_STATE_NONE
;
44
data.
Dungeon
= 0;
45
m_Queues
.erase(
m_ActiveQueueId
);
46
m_ActiveQueueId
= 0;
47
m_KicksLeft
=
LFG_GROUP_MAX_KICKS
;
48
return
;
49
case
LFG_STATE_FINISHED_DUNGEON
:
50
case
LFG_STATE_DUNGEON
:
51
data.
OldState
= state;
52
// No break on purpose
53
default
:
54
data.
State
= state;
55
}
56
}
57
58
void
LfgGroupData::RestoreState
()
59
{
60
LfgGroupQueueData
& data =
GetActiveQueueData
();
61
data.
State
= data.
OldState
;
62
}
63
64
void
LfgGroupData::AddPlayer
(
uint64
guid)
65
{
66
m_Players
.insert(guid);
67
}
68
69
uint8
LfgGroupData::RemovePlayer
(
uint64
guid)
70
{
71
LfgGuidSet::iterator it =
m_Players
.find(guid);
72
if
(it !=
m_Players
.end())
73
m_Players
.erase(it);
74
return
uint8
(
m_Players
.size());
75
}
76
77
void
LfgGroupData::RemoveAllPlayers
()
78
{
79
m_Players
.clear();
80
}
81
82
void
LfgGroupData::SetLeader
(
uint64
guid)
83
{
84
m_Leader
= guid;
85
}
86
87
void
LfgGroupData::SetActiveQueueId
(
uint8
queueId)
88
{
89
m_ActiveQueueId
= queueId;
90
GetActiveQueueData
();
91
}
92
93
void
LfgGroupData::SetDungeon
(
uint32
dungeon)
94
{
95
GetActiveQueueData
().
Dungeon
= dungeon;
96
}
97
98
void
LfgGroupData::DecreaseKicksLeft
()
99
{
100
if
(
m_KicksLeft
)
101
--
m_KicksLeft
;
102
}
103
104
LfgState
LfgGroupData::GetState
()
const
105
{
106
return
GetActiveQueueData
().
State
;
107
}
108
109
LfgState
LfgGroupData::GetOldState
()
const
110
{
111
return
GetActiveQueueData
().
OldState
;
112
}
113
114
LfgGuidSet
const
&
LfgGroupData::GetPlayers
()
const
115
{
116
return
m_Players
;
117
}
118
119
uint8
LfgGroupData::GetPlayerCount
()
const
120
{
121
return
m_Players
.size();
122
}
123
124
uint64
LfgGroupData::GetLeader
()
const
125
{
126
return
m_Leader
;
127
}
128
129
uint8
LfgGroupData::GetActiveQueueId
()
const
130
{
131
return
m_ActiveQueueId
;
132
}
133
134
LfgGroupQueueDataContainer
const
&
LfgGroupData::GetQueues
()
const
135
{
136
return
m_Queues
;
137
}
138
139
uint32
LfgGroupData::GetDungeon
(
bool
asId
/* = true */
)
const
140
{
141
uint32
dungeon =
GetActiveQueueData
().
Dungeon
;
142
if
(asId)
143
return
(dungeon & 0x00FFFFFF);
144
else
145
return
dungeon;
146
}
147
148
uint8
LfgGroupData::GetKicksLeft
()
const
149
{
150
return
m_KicksLeft
;
151
}
152
153
void
LfgGroupData::SetVoteKick
(
bool
active)
154
{
155
m_VoteKickActive
= active;
156
}
157
bool
LfgGroupData::IsVoteKickActive
()
const
158
{
159
return
m_VoteKickActive
;
160
}
161
162
LfgGroupQueueData
&
LfgGroupData::GetActiveQueueData
()
163
{
164
return
m_Queues
[
m_ActiveQueueId
];
165
}
166
167
LfgGroupQueueData
const
&
LfgGroupData::GetActiveQueueData
()
const
168
{
169
LfgGroupQueueDataContainer::const_iterator itr =
m_Queues
.find(
m_ActiveQueueId
);
170
if
(itr !=
m_Queues
.end())
171
return
itr->second;
172
173
return
EmptyGroupQueueData();
174
}
175
176
}
// namespace lfg
uint8
std::uint8_t uint8
Definition
Define.h:79
uint32
std::uint32_t uint32
Definition
Define.h:77
uint64
std::uint64_t uint64
Definition
Define.h:76
LFG.h
LFGGroupData.h
lfg::LfgGroupData::RemoveAllPlayers
void RemoveAllPlayers()
Definition
LFGGroupData.cpp:77
lfg::LfgGroupData::GetDungeon
uint32 GetDungeon(bool asId=true) const
Definition
LFGGroupData.cpp:139
lfg::LfgGroupData::m_KicksLeft
uint8 m_KicksLeft
Number of kicks left.
Definition
LFGGroupData.h:84
lfg::LfgGroupData::IsVoteKickActive
bool IsVoteKickActive() const
Definition
LFGGroupData.cpp:157
lfg::LfgGroupData::GetLeader
uint64 GetLeader() const
Definition
LFGGroupData.cpp:124
lfg::LfgGroupData::RemovePlayer
uint8 RemovePlayer(uint64 guid)
Definition
LFGGroupData.cpp:69
lfg::LfgGroupData::m_VoteKickActive
bool m_VoteKickActive
Definition
LFGGroupData.h:85
lfg::LfgGroupData::IsLfgGroup
bool IsLfgGroup() const
Definition
LFGGroupData.cpp:30
lfg::LfgGroupData::SetVoteKick
void SetVoteKick(bool active)
Definition
LFGGroupData.cpp:153
lfg::LfgGroupData::~LfgGroupData
~LfgGroupData()
Definition
LFGGroupData.cpp:27
lfg::LfgGroupData::m_ActiveQueueId
uint8 m_ActiveQueueId
Active queue data owner.
Definition
LFGGroupData.h:81
lfg::LfgGroupData::DecreaseKicksLeft
void DecreaseKicksLeft()
Definition
LFGGroupData.cpp:98
lfg::LfgGroupData::GetState
LfgState GetState() const
Definition
LFGGroupData.cpp:104
lfg::LfgGroupData::SetActiveQueueId
void SetActiveQueueId(uint8 queueId)
Definition
LFGGroupData.cpp:87
lfg::LfgGroupData::SetDungeon
void SetDungeon(uint32 dungeon)
Definition
LFGGroupData.cpp:93
lfg::LfgGroupData::GetActiveQueueData
LfgGroupQueueData & GetActiveQueueData()
Definition
LFGGroupData.cpp:162
lfg::LfgGroupData::m_Queues
LfgGroupQueueDataContainer m_Queues
Queue-scoped group data.
Definition
LFGGroupData.h:82
lfg::LfgGroupData::RestoreState
void RestoreState()
Definition
LFGGroupData.cpp:58
lfg::LfgGroupData::m_Leader
uint64 m_Leader
Leader GUID.
Definition
LFGGroupData.h:79
lfg::LfgGroupData::GetPlayerCount
uint8 GetPlayerCount() const
Definition
LFGGroupData.cpp:119
lfg::LfgGroupData::SetState
void SetState(LfgState state)
Definition
LFGGroupData.cpp:35
lfg::LfgGroupData::GetActiveQueueId
uint8 GetActiveQueueId() const
Definition
LFGGroupData.cpp:129
lfg::LfgGroupData::GetKicksLeft
uint8 GetKicksLeft() const
Definition
LFGGroupData.cpp:148
lfg::LfgGroupData::m_Players
LfgGuidSet m_Players
Players in group.
Definition
LFGGroupData.h:80
lfg::LfgGroupData::LfgGroupData
LfgGroupData()
Definition
LFGGroupData.cpp:23
lfg::LfgGroupData::SetLeader
void SetLeader(uint64 guid)
Definition
LFGGroupData.cpp:82
lfg::LfgGroupData::GetPlayers
LfgGuidSet const & GetPlayers() const
Definition
LFGGroupData.cpp:114
lfg::LfgGroupData::GetOldState
LfgState GetOldState() const
Definition
LFGGroupData.cpp:109
lfg::LfgGroupData::GetQueues
LfgGroupQueueDataContainer const & GetQueues() const
Definition
LFGGroupData.cpp:134
lfg::LfgGroupData::AddPlayer
void AddPlayer(uint64 guid)
Definition
LFGGroupData.cpp:64
lfg
Definition
LFG.cpp:11
lfg::LfgGroupQueueDataContainer
std::map< uint8, LfgGroupQueueData > LfgGroupQueueDataContainer
Definition
LFGGroupData.h:29
lfg::LfgState
LfgState
Definition
LFG.h:61
lfg::LFG_STATE_FINISHED_DUNGEON
@ LFG_STATE_FINISHED_DUNGEON
Definition
LFG.h:68
lfg::LFG_STATE_DUNGEON
@ LFG_STATE_DUNGEON
Definition
LFG.h:67
lfg::LFG_STATE_NONE
@ LFG_STATE_NONE
Definition
LFG.h:62
lfg::LFG_GROUP_MAX_KICKS
@ LFG_GROUP_MAX_KICKS
Definition
LFGGroupData.h:17
lfg::LfgGuidSet
std::set< uint64 > LfgGuidSet
Definition
LFG.h:110
lfg::LfgGroupQueueData
Definition
LFGGroupData.h:21
lfg::LfgGroupQueueData::Dungeon
uint32 Dungeon
Dungeon entry.
Definition
LFGGroupData.h:26
lfg::LfgGroupQueueData::OldState
LfgState OldState
Old state.
Definition
LFGGroupData.h:25
lfg::LfgGroupQueueData::LfgGroupQueueData
LfgGroupQueueData()
Definition
LFGGroupData.cpp:20
lfg::LfgGroupQueueData::State
LfgState State
Current state in this queue.
Definition
LFGGroupData.h:24
src
server
game
DungeonFinding
LFGGroupData.cpp
Generated on
for Project SkyFire Core by
1.17.0