TrinityCore
LFG.h
Go to the documentation of this file.
1/*
2 * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#ifndef _LFG_H
19#define _LFG_H
20
21#include "Define.h"
22#include "ObjectGuid.h"
23#include <map>
24#include <set>
25#include <string>
26
27namespace lfg
28{
29
31{
35};
36
38{
45};
46
48{
49 LFG_UPDATETYPE_DEFAULT = 0, // Internal Use
50 LFG_UPDATETYPE_LEADER_UNK1 = 1, // FIXME: At group leave
63 LFG_UPDATETYPE_GROUP_DISBAND_UNK16 = 18, // FIXME: Sometimes at group disband
71};
72
74{
75 LFG_STATE_NONE, // Not using LFG / LFR
76 LFG_STATE_ROLECHECK, // Rolecheck active
78 LFG_STATE_PROPOSAL, // Proposal active
79 //LFG_STATE_BOOT, // Vote kick active
80 LFG_STATE_DUNGEON = 5, // In LFG Group, in a Dungeon
81 LFG_STATE_FINISHED_DUNGEON, // In LFG Group, in a finished Dungeon
82 LFG_STATE_RAIDBROWSER // Using Raid finder
83};
84
86{
92 LFG_QUEUE_SCHEDULED_PVP = 6, // pvp brawl
93};
94
97{
113
116{
121
123{
124 LfgLockInfoData(uint32 _lockStatus = 0, uint16 _requiredItemLevel = 0, float _currentItemLevel = 0) :
125 lockStatus(_lockStatus), requiredItemLevel(_requiredItemLevel), currentItemLevel(_currentItemLevel) { }
126
130};
131
132typedef std::set<uint32> LfgDungeonSet;
133typedef std::map<uint32, LfgLockInfoData> LfgLockMap;
134typedef std::map<ObjectGuid, LfgLockMap> LfgLockPartyMap;
135typedef std::map<ObjectGuid, uint8> LfgRolesMap;
136typedef std::map<ObjectGuid, ObjectGuid> LfgGroupsMap;
137
138TC_GAME_API std::string ConcatenateDungeons(LfgDungeonSet const& dungeons);
139TC_GAME_API std::string GetRolesString(uint8 roles);
140TC_GAME_API std::string GetStateString(LfgState state);
141
142} // namespace lfg
143
144#endif
#define TC_GAME_API
Definition: Define.h:123
uint8_t uint8
Definition: Define.h:144
uint16_t uint16
Definition: Define.h:143
uint32_t uint32
Definition: Define.h:142
Definition: LFG.cpp:24
LfgLockStatusType
Instance lock types.
Definition: LFG.h:97
@ LFG_LOCKSTATUS_INSUFFICIENT_EXPANSION
Definition: LFG.h:98
@ LFG_LOCKSTATUS_TOO_LOW_LEVEL
Definition: LFG.h:99
@ LFG_LOCKSTATUS_RAID_LOCKED
Definition: LFG.h:103
@ LFG_LOCKSTATUS_TOO_LOW_GEAR_SCORE
Definition: LFG.h:101
@ LFG_LOCKSTATUS_MISSING_ITEM
Definition: LFG.h:109
@ LFG_LOCKSTATUS_TOO_HIGH_LEVEL
Definition: LFG.h:100
@ LFG_LOCKSTATUS_TOO_HIGH_GEAR_SCORE
Definition: LFG.h:102
@ LFG_LOCKSTATUS_HAS_RESTRICTION
Definition: LFG.h:105
@ LFG_LOCKSTATUS_ATTUNEMENT_TOO_HIGH_LEVEL
Definition: LFG.h:107
@ LFG_LOCKSTATUS_ATTUNEMENT_TOO_LOW_LEVEL
Definition: LFG.h:106
@ LFG_LOCKSTATUS_MISSING_ACHIEVEMENT
Definition: LFG.h:111
@ LFG_LOCKSTATUS_NO_SPEC
Definition: LFG.h:104
@ LFG_LOCKSTATUS_NOT_IN_SEASON
Definition: LFG.h:110
@ LFG_LOCKSTATUS_QUEST_NOT_COMPLETED
Definition: LFG.h:108
LFGEnum
Definition: LFG.h:31
@ LFG_HEALERS_NEEDED
Definition: LFG.h:33
@ LFG_TANKS_NEEDED
Definition: LFG.h:32
@ LFG_DPS_NEEDED
Definition: LFG.h:34
std::map< ObjectGuid, uint8 > LfgRolesMap
Definition: LFG.h:135
LfgUpdateType
Definition: LFG.h:48
@ LFG_UPDATETYPE_ROLECHECK_FAILED
Definition: LFG.h:53
@ LFG_UPDATETYPE_GROUP_FOUND
Definition: LFG.h:57
@ LFG_UPDATETYPE_DEFAULT
Definition: LFG.h:49
@ LFG_UPDATETYPE_ADDED_TO_QUEUE
Definition: LFG.h:58
@ LFG_UPDATETYPE_GROUP_MEMBER_OFFLINE
Definition: LFG.h:62
@ LFG_UPDATETYPE_UPDATE_STATUS
Definition: LFG.h:61
@ LFG_UPDATETYPE_PROPOSAL_FAILED
Definition: LFG.h:55
@ LFG_UPDATETYPE_GROUP_DISBAND_UNK16
Definition: LFG.h:63
@ LFG_UPDATETYPE_REMOVED_XP_TOGGLE
Definition: LFG.h:69
@ LFG_UPDATETYPE_PROPOSAL_DECLINED
Definition: LFG.h:56
@ LFG_UPDATETYPE_JOIN_LFG_OBJECT_FAILED
Definition: LFG.h:67
@ LFG_UPDATETYPE_ROLECHECK_ABORTED
Definition: LFG.h:51
@ LFG_UPDATETYPE_REMOVED_FROM_QUEUE
Definition: LFG.h:54
@ LFG_UPDATETYPE_LEADER_UNK1
Definition: LFG.h:50
@ LFG_UPDATETYPE_PROPOSAL_BEGIN
Definition: LFG.h:60
@ LFG_UPDATETYPE_JOIN_QUEUE
Definition: LFG.h:52
@ LFG_UPDATETYPE_PARTY_ROLE_NOT_AVAILABLE
Definition: LFG.h:66
@ LFG_UPDATETYPE_DUNGEON_FINISHED
Definition: LFG.h:65
@ LFG_UPDATETYPE_REMOVED_FACTION_CHANGE
Definition: LFG.h:70
@ LFG_UPDATETYPE_REMOVED_LEVELUP
Definition: LFG.h:68
@ LFG_UPDATETYPE_JOIN_QUEUE_INITIAL
Definition: LFG.h:64
@ LFG_UPDATETYPE_SUSPENDED_QUEUE
Definition: LFG.h:59
LfgAnswer
Answer state (Also used to check compatibilites)
Definition: LFG.h:116
@ LFG_ANSWER_AGREE
Definition: LFG.h:119
@ LFG_ANSWER_PENDING
Definition: LFG.h:117
@ LFG_ANSWER_DENY
Definition: LFG.h:118
std::string GetStateString(LfgState state)
Definition: LFG.cpp:75
std::string GetRolesString(uint8 roles)
Definition: LFG.cpp:41
std::set< uint32 > LfgDungeonSet
Definition: LFG.h:132
std::map< ObjectGuid, ObjectGuid > LfgGroupsMap
Definition: LFG.h:136
std::string ConcatenateDungeons(LfgDungeonSet const &dungeons)
Definition: LFG.cpp:26
LfgRoles
Definition: LFG.h:38
@ PLAYER_ROLE_DAMAGE
Definition: LFG.h:43
@ PLAYER_ROLE_ANY
Definition: LFG.h:44
@ PLAYER_ROLE_TANK
Definition: LFG.h:41
@ PLAYER_ROLE_NONE
Definition: LFG.h:39
@ PLAYER_ROLE_LEADER
Definition: LFG.h:40
@ PLAYER_ROLE_HEALER
Definition: LFG.h:42
std::map< ObjectGuid, LfgLockMap > LfgLockPartyMap
Definition: LFG.h:134
LfgState
Definition: LFG.h:74
@ LFG_STATE_RAIDBROWSER
Definition: LFG.h:82
@ LFG_STATE_ROLECHECK
Definition: LFG.h:76
@ LFG_STATE_FINISHED_DUNGEON
Definition: LFG.h:81
@ LFG_STATE_DUNGEON
Definition: LFG.h:80
@ LFG_STATE_PROPOSAL
Definition: LFG.h:78
@ LFG_STATE_NONE
Definition: LFG.h:75
@ LFG_STATE_QUEUED
Definition: LFG.h:77
std::map< uint32, LfgLockInfoData > LfgLockMap
Definition: LFG.h:133
LfgQueueType
Definition: LFG.h:86
@ LFG_QUEUE_WORLD_PVP
Definition: LFG.h:91
@ LFG_QUEUE_SCENARIO
Definition: LFG.h:89
@ LFG_QUEUE_LFR
Definition: LFG.h:88
@ LFG_QUEUE_SCHEDULED_PVP
Definition: LFG.h:92
@ LFG_QUEUE_FLEX
Definition: LFG.h:90
@ LFG_QUEUE_DUNGEON
Definition: LFG.h:87
uint32 lockStatus
Definition: LFG.h:127
float currentItemLevel
Definition: LFG.h:129
uint16 requiredItemLevel
Definition: LFG.h:128
LfgLockInfoData(uint32 _lockStatus=0, uint16 _requiredItemLevel=0, float _currentItemLevel=0)
Definition: LFG.h:124