TrinityCore
Loading...
Searching...
No Matches
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
36
46
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
94
113
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// allow implicit enum to int conversions for formatting
143inline int32 format_as(LfgUpdateType e) { return e; }
144inline uint8 format_as(LfgState e) { return e; }
145
146} // namespace lfg
147
148#endif
#define TC_GAME_API
Definition Define.h:129
uint8_t uint8
Definition Define.h:156
int32_t int32
Definition Define.h:150
uint16_t uint16
Definition Define.h:155
uint32_t uint32
Definition Define.h:154
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
int32 format_as(LfgUpdateType e)
Definition LFG.h:143
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