Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
LFG.h
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
#ifndef SF_LFG_H
7
#define SF_LFG_H
8
9
#include "
Common.h
"
10
11
namespace
lfg
12
{
13
14
enum
LFGEnum
15
{
16
LFG_TANKS_NEEDED
= 1,
17
LFG_HEALERS_NEEDED
= 1,
18
LFG_DPS_NEEDED
= 3
19
};
20
21
enum
LfgRoles
22
{
23
PLAYER_ROLE_NONE
= 0x00,
24
PLAYER_ROLE_LEADER
= 0x01,
25
PLAYER_ROLE_TANK
= 0x02,
26
PLAYER_ROLE_HEALER
= 0x04,
27
PLAYER_ROLE_DAMAGE
= 0x08
28
};
29
30
enum
LfgShortageIndex
31
{
32
LFG_ROLE_SHORTAGE_RARE
= 0,
33
LFG_ROLE_SHORTAGE_UNCOMMON
= 1,
34
LFG_ROLE_SHORTAGE_PLENTIFUL
= 2,
35
LFG_ROLE_SHORTAGE_MAX
36
};
37
38
enum
LfgUpdateType
39
{
40
LFG_UPDATETYPE_DEFAULT
= 0,
// Internal Use
41
LFG_UPDATETYPE_LEADER_UNK1
= 1,
// FIXME: At group leave
42
LFG_UPDATETYPE_ROLECHECK_ABORTED
= 4,
43
LFG_UPDATETYPE_JOIN_QUEUE
= 6,
44
LFG_UPDATETYPE_ROLECHECK_FAILED
= 7,
45
LFG_UPDATETYPE_REMOVED_FROM_QUEUE
= 8,
46
LFG_UPDATETYPE_PROPOSAL_FAILED
= 9,
47
LFG_UPDATETYPE_PROPOSAL_DECLINED
= 10,
48
LFG_UPDATETYPE_GROUP_FOUND
= 11,
49
LFG_UPDATETYPE_ADDED_TO_QUEUE
= 13,
50
LFG_UPDATETYPE_PROPOSAL_BEGIN
= 14,
51
LFG_UPDATETYPE_UPDATE_STATUS
= 15,
52
LFG_UPDATETYPE_GROUP_MEMBER_OFFLINE
= 16,
53
LFG_UPDATETYPE_GROUP_DISBAND_UNK16
= 17,
// FIXME: Sometimes at group disband
54
LFG_UPDATETYPE_JOIN_QUEUE_INITIAL
= 24,
55
LFG_UPDATETYPE_DUNGEON_FINISHED
= 25,
56
LFG_UPDATETYPE_PARTY_ROLE_NOT_AVAILABLE
= 43,
57
LFG_UPDATETYPE_JOIN_LFG_OBJECT_FAILED
= 45,
58
};
59
60
enum
LfgState
61
{
62
LFG_STATE_NONE
,
// Not using LFG / LFR
63
LFG_STATE_ROLECHECK
,
// Rolecheck active
64
LFG_STATE_QUEUED
,
// Queued
65
LFG_STATE_PROPOSAL
,
// Proposal active
66
LFG_STATE_BOOT
,
// Vote kick active
67
LFG_STATE_DUNGEON
,
// In LFG Group, in a Dungeon
68
LFG_STATE_FINISHED_DUNGEON
,
// In LFG Group, in a finished Dungeon
69
LFG_STATE_RAIDBROWSER
// Using Raid finder
70
};
71
73
enum
LfgLockStatusType
74
{
75
LFG_LOCKSTATUS_INSUFFICIENT_EXPANSION
= 1,
76
LFG_LOCKSTATUS_TOO_LOW_LEVEL
= 2,
77
LFG_LOCKSTATUS_TOO_HIGH_LEVEL
= 3,
78
LFG_LOCKSTATUS_TOO_LOW_GEAR_SCORE
= 4,
79
LFG_LOCKSTATUS_TOO_HIGH_GEAR_SCORE
= 5,
80
LFG_LOCKSTATUS_RAID_LOCKED
= 6,
81
LFG_LOCKSTATUS_ATTUNEMENT_TOO_LOW_LEVEL
= 1001,
82
LFG_LOCKSTATUS_ATTUNEMENT_TOO_HIGH_LEVEL
= 1002,
83
LFG_LOCKSTATUS_QUEST_NOT_COMPLETED
= 1022,
84
LFG_LOCKSTATUS_MISSING_ITEM
= 1025,
85
LFG_LOCKSTATUS_NOT_IN_SEASON
= 1031,
86
LFG_LOCKSTATUS_MISSING_ACHIEVEMENT
= 1034
87
};
88
90
enum
LfgAnswer
91
{
92
LFG_ANSWER_PENDING
= -1,
93
LFG_ANSWER_DENY
= 0,
94
LFG_ANSWER_AGREE
= 1
95
};
96
97
struct
LfgLockData
98
{
99
LfgLockData
(
uint32
lock = 0,
uint32
currentItemLevel
= 0,
uint32
requiredItemLevel
= 0) :
100
lockStatus
(lock),
currentItemLevel
(
currentItemLevel
),
requiredItemLevel
(
requiredItemLevel
) { }
101
102
uint32
lockStatus
;
103
uint32
currentItemLevel
;
104
uint32
requiredItemLevel
;
105
};
106
107
typedef
std::set<uint32>
LfgDungeonSet
;
108
typedef
std::map<uint32, LfgLockData>
LfgLockMap
;
109
typedef
std::map<uint64, LfgLockMap>
LfgLockPartyMap
;
110
typedef
std::set<uint64>
LfgGuidSet
;
111
typedef
std::list<uint64>
LfgGuidList
;
112
typedef
std::map<uint64, uint8>
LfgRolesMap
;
113
typedef
std::map<uint64, uint64>
LfgGroupsMap
;
114
115
std::string
ConcatenateGuids
(
LfgGuidList
const
& guids);
116
std::string
ConcatenateDungeons
(
LfgDungeonSet
const
& dungeons);
117
bool
IsValidPlayerRoles
(
uint8
roles);
118
std::string
GetRolesString
(
uint8
roles);
119
std::string
GetStateString
(
LfgState
state);
120
121
}
// namespace lfg
122
123
#endif
Common.h
uint8
std::uint8_t uint8
Definition
Define.h:79
uint32
std::uint32_t uint32
Definition
Define.h:77
lfg
Definition
LFG.cpp:11
lfg::IsValidPlayerRoles
bool IsValidPlayerRoles(uint8 roles)
Definition
LFG.cpp:28
lfg::LfgLockStatusType
LfgLockStatusType
Instance lock types.
Definition
LFG.h:74
lfg::LFG_LOCKSTATUS_INSUFFICIENT_EXPANSION
@ LFG_LOCKSTATUS_INSUFFICIENT_EXPANSION
Definition
LFG.h:75
lfg::LFG_LOCKSTATUS_TOO_LOW_LEVEL
@ LFG_LOCKSTATUS_TOO_LOW_LEVEL
Definition
LFG.h:76
lfg::LFG_LOCKSTATUS_RAID_LOCKED
@ LFG_LOCKSTATUS_RAID_LOCKED
Definition
LFG.h:80
lfg::LFG_LOCKSTATUS_TOO_LOW_GEAR_SCORE
@ LFG_LOCKSTATUS_TOO_LOW_GEAR_SCORE
Definition
LFG.h:78
lfg::LFG_LOCKSTATUS_MISSING_ITEM
@ LFG_LOCKSTATUS_MISSING_ITEM
Definition
LFG.h:84
lfg::LFG_LOCKSTATUS_TOO_HIGH_LEVEL
@ LFG_LOCKSTATUS_TOO_HIGH_LEVEL
Definition
LFG.h:77
lfg::LFG_LOCKSTATUS_TOO_HIGH_GEAR_SCORE
@ LFG_LOCKSTATUS_TOO_HIGH_GEAR_SCORE
Definition
LFG.h:79
lfg::LFG_LOCKSTATUS_ATTUNEMENT_TOO_HIGH_LEVEL
@ LFG_LOCKSTATUS_ATTUNEMENT_TOO_HIGH_LEVEL
Definition
LFG.h:82
lfg::LFG_LOCKSTATUS_ATTUNEMENT_TOO_LOW_LEVEL
@ LFG_LOCKSTATUS_ATTUNEMENT_TOO_LOW_LEVEL
Definition
LFG.h:81
lfg::LFG_LOCKSTATUS_MISSING_ACHIEVEMENT
@ LFG_LOCKSTATUS_MISSING_ACHIEVEMENT
Definition
LFG.h:86
lfg::LFG_LOCKSTATUS_NOT_IN_SEASON
@ LFG_LOCKSTATUS_NOT_IN_SEASON
Definition
LFG.h:85
lfg::LFG_LOCKSTATUS_QUEST_NOT_COMPLETED
@ LFG_LOCKSTATUS_QUEST_NOT_COMPLETED
Definition
LFG.h:83
lfg::LFGEnum
LFGEnum
Definition
LFG.h:15
lfg::LFG_HEALERS_NEEDED
@ LFG_HEALERS_NEEDED
Definition
LFG.h:17
lfg::LFG_TANKS_NEEDED
@ LFG_TANKS_NEEDED
Definition
LFG.h:16
lfg::LFG_DPS_NEEDED
@ LFG_DPS_NEEDED
Definition
LFG.h:18
lfg::LfgShortageIndex
LfgShortageIndex
Definition
LFG.h:31
lfg::LFG_ROLE_SHORTAGE_MAX
@ LFG_ROLE_SHORTAGE_MAX
Definition
LFG.h:35
lfg::LFG_ROLE_SHORTAGE_UNCOMMON
@ LFG_ROLE_SHORTAGE_UNCOMMON
Definition
LFG.h:33
lfg::LFG_ROLE_SHORTAGE_PLENTIFUL
@ LFG_ROLE_SHORTAGE_PLENTIFUL
Definition
LFG.h:34
lfg::LFG_ROLE_SHORTAGE_RARE
@ LFG_ROLE_SHORTAGE_RARE
Definition
LFG.h:32
lfg::LfgState
LfgState
Definition
LFG.h:61
lfg::LFG_STATE_RAIDBROWSER
@ LFG_STATE_RAIDBROWSER
Definition
LFG.h:69
lfg::LFG_STATE_ROLECHECK
@ LFG_STATE_ROLECHECK
Definition
LFG.h:63
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_PROPOSAL
@ LFG_STATE_PROPOSAL
Definition
LFG.h:65
lfg::LFG_STATE_BOOT
@ LFG_STATE_BOOT
Definition
LFG.h:66
lfg::LFG_STATE_NONE
@ LFG_STATE_NONE
Definition
LFG.h:62
lfg::LFG_STATE_QUEUED
@ LFG_STATE_QUEUED
Definition
LFG.h:64
lfg::LfgUpdateType
LfgUpdateType
Definition
LFG.h:39
lfg::LFG_UPDATETYPE_ROLECHECK_FAILED
@ LFG_UPDATETYPE_ROLECHECK_FAILED
Definition
LFG.h:44
lfg::LFG_UPDATETYPE_GROUP_FOUND
@ LFG_UPDATETYPE_GROUP_FOUND
Definition
LFG.h:48
lfg::LFG_UPDATETYPE_DEFAULT
@ LFG_UPDATETYPE_DEFAULT
Definition
LFG.h:40
lfg::LFG_UPDATETYPE_ADDED_TO_QUEUE
@ LFG_UPDATETYPE_ADDED_TO_QUEUE
Definition
LFG.h:49
lfg::LFG_UPDATETYPE_GROUP_MEMBER_OFFLINE
@ LFG_UPDATETYPE_GROUP_MEMBER_OFFLINE
Definition
LFG.h:52
lfg::LFG_UPDATETYPE_UPDATE_STATUS
@ LFG_UPDATETYPE_UPDATE_STATUS
Definition
LFG.h:51
lfg::LFG_UPDATETYPE_PROPOSAL_FAILED
@ LFG_UPDATETYPE_PROPOSAL_FAILED
Definition
LFG.h:46
lfg::LFG_UPDATETYPE_GROUP_DISBAND_UNK16
@ LFG_UPDATETYPE_GROUP_DISBAND_UNK16
Definition
LFG.h:53
lfg::LFG_UPDATETYPE_PROPOSAL_DECLINED
@ LFG_UPDATETYPE_PROPOSAL_DECLINED
Definition
LFG.h:47
lfg::LFG_UPDATETYPE_JOIN_LFG_OBJECT_FAILED
@ LFG_UPDATETYPE_JOIN_LFG_OBJECT_FAILED
Definition
LFG.h:57
lfg::LFG_UPDATETYPE_ROLECHECK_ABORTED
@ LFG_UPDATETYPE_ROLECHECK_ABORTED
Definition
LFG.h:42
lfg::LFG_UPDATETYPE_REMOVED_FROM_QUEUE
@ LFG_UPDATETYPE_REMOVED_FROM_QUEUE
Definition
LFG.h:45
lfg::LFG_UPDATETYPE_LEADER_UNK1
@ LFG_UPDATETYPE_LEADER_UNK1
Definition
LFG.h:41
lfg::LFG_UPDATETYPE_PROPOSAL_BEGIN
@ LFG_UPDATETYPE_PROPOSAL_BEGIN
Definition
LFG.h:50
lfg::LFG_UPDATETYPE_JOIN_QUEUE
@ LFG_UPDATETYPE_JOIN_QUEUE
Definition
LFG.h:43
lfg::LFG_UPDATETYPE_PARTY_ROLE_NOT_AVAILABLE
@ LFG_UPDATETYPE_PARTY_ROLE_NOT_AVAILABLE
Definition
LFG.h:56
lfg::LFG_UPDATETYPE_DUNGEON_FINISHED
@ LFG_UPDATETYPE_DUNGEON_FINISHED
Definition
LFG.h:55
lfg::LFG_UPDATETYPE_JOIN_QUEUE_INITIAL
@ LFG_UPDATETYPE_JOIN_QUEUE_INITIAL
Definition
LFG.h:54
lfg::LfgGroupsMap
std::map< uint64, uint64 > LfgGroupsMap
Definition
LFG.h:113
lfg::LfgAnswer
LfgAnswer
Answer state (Also used to check compatibilites).
Definition
LFG.h:91
lfg::LFG_ANSWER_AGREE
@ LFG_ANSWER_AGREE
Definition
LFG.h:94
lfg::LFG_ANSWER_PENDING
@ LFG_ANSWER_PENDING
Definition
LFG.h:92
lfg::LFG_ANSWER_DENY
@ LFG_ANSWER_DENY
Definition
LFG.h:93
lfg::LfgLockMap
std::map< uint32, LfgLockData > LfgLockMap
Definition
LFG.h:108
lfg::LfgDungeonSet
std::set< uint32 > LfgDungeonSet
Definition
LFG.h:107
lfg::LfgGuidList
std::list< uint64 > LfgGuidList
Definition
LFG.h:111
lfg::GetStateString
std::string GetStateString(LfgState state)
Definition
LFG.cpp:70
lfg::ConcatenateGuids
std::string ConcatenateGuids(LfgGuidList const &guids)
Definition
LFGQueue.cpp:246
lfg::LfgRolesMap
std::map< uint64, uint8 > LfgRolesMap
Definition
LFG.h:112
lfg::LfgRoles
LfgRoles
Definition
LFG.h:22
lfg::PLAYER_ROLE_DAMAGE
@ PLAYER_ROLE_DAMAGE
Definition
LFG.h:27
lfg::PLAYER_ROLE_TANK
@ PLAYER_ROLE_TANK
Definition
LFG.h:25
lfg::PLAYER_ROLE_NONE
@ PLAYER_ROLE_NONE
Definition
LFG.h:23
lfg::PLAYER_ROLE_LEADER
@ PLAYER_ROLE_LEADER
Definition
LFG.h:24
lfg::PLAYER_ROLE_HEALER
@ PLAYER_ROLE_HEALER
Definition
LFG.h:26
lfg::GetRolesString
std::string GetRolesString(uint8 roles)
Definition
LFG.cpp:36
lfg::LfgGuidSet
std::set< uint64 > LfgGuidSet
Definition
LFG.h:110
lfg::ConcatenateDungeons
std::string ConcatenateDungeons(LfgDungeonSet const &dungeons)
Definition
LFG.cpp:13
lfg::LfgLockPartyMap
std::map< uint64, LfgLockMap > LfgLockPartyMap
Definition
LFG.h:109
lfg::LfgLockData::currentItemLevel
uint32 currentItemLevel
Definition
LFG.h:103
lfg::LfgLockData::lockStatus
uint32 lockStatus
Definition
LFG.h:102
lfg::LfgLockData::LfgLockData
LfgLockData(uint32 lock=0, uint32 currentItemLevel=0, uint32 requiredItemLevel=0)
Definition
LFG.h:99
lfg::LfgLockData::requiredItemLevel
uint32 requiredItemLevel
Definition
LFG.h:104
src
server
game
DungeonFinding
LFG.h
Generated on
for Project SkyFire Core by
1.17.0