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
64
66{
67 LFG_STATE_NONE, // Not using LFG / LFR
68 LFG_STATE_ROLECHECK, // Rolecheck active
70 LFG_STATE_PROPOSAL, // Proposal active
71 //LFG_STATE_BOOT, // Vote kick active
72 LFG_STATE_DUNGEON = 5, // In LFG Group, in a Dungeon
73 LFG_STATE_FINISHED_DUNGEON, // In LFG Group, in a finished Dungeon
74 LFG_STATE_RAIDBROWSER // Using Raid finder
75};
76
93
101
102typedef std::set<uint32> LfgDungeonSet;
103typedef std::map<uint32, uint32> LfgLockMap;
104typedef std::map<ObjectGuid, LfgLockMap> LfgLockPartyMap;
105typedef std::map<ObjectGuid, uint8> LfgRolesMap;
106typedef std::map<ObjectGuid, ObjectGuid> LfgGroupsMap;
107
108TC_GAME_API std::string ConcatenateDungeons(LfgDungeonSet const& dungeons);
109TC_GAME_API std::string GetRolesString(uint8 roles);
110TC_GAME_API std::string GetStateString(LfgState state);
111
112// allow implicit enum to int conversions for formatting
113inline int32 format_as(LfgUpdateType e) { return e; }
114inline uint8 format_as(LfgState e) { return e; }
115
116} // namespace lfg
117
118#endif
#define TC_GAME_API
Definition Define.h:114
uint8_t uint8
Definition Define.h:135
int32_t int32
Definition Define.h:129
Definition LFG.cpp:24
LfgLockStatusType
Instance lock types.
Definition LFG.h:79
@ LFG_LOCKSTATUS_INSUFFICIENT_EXPANSION
Definition LFG.h:80
@ LFG_LOCKSTATUS_TOO_LOW_LEVEL
Definition LFG.h:81
@ LFG_LOCKSTATUS_RAID_LOCKED
Definition LFG.h:85
@ LFG_LOCKSTATUS_TOO_LOW_GEAR_SCORE
Definition LFG.h:83
@ LFG_LOCKSTATUS_MISSING_ITEM
Definition LFG.h:89
@ LFG_LOCKSTATUS_TOO_HIGH_LEVEL
Definition LFG.h:82
@ LFG_LOCKSTATUS_TOO_HIGH_GEAR_SCORE
Definition LFG.h:84
@ LFG_LOCKSTATUS_ATTUNEMENT_TOO_HIGH_LEVEL
Definition LFG.h:87
@ LFG_LOCKSTATUS_ATTUNEMENT_TOO_LOW_LEVEL
Definition LFG.h:86
@ LFG_LOCKSTATUS_MISSING_ACHIEVEMENT
Definition LFG.h:91
@ LFG_LOCKSTATUS_NOT_IN_SEASON
Definition LFG.h:90
@ LFG_LOCKSTATUS_QUEST_NOT_COMPLETED
Definition LFG.h:88
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:105
LfgState
Definition LFG.h:66
@ LFG_STATE_RAIDBROWSER
Definition LFG.h:74
@ LFG_STATE_ROLECHECK
Definition LFG.h:68
@ LFG_STATE_FINISHED_DUNGEON
Definition LFG.h:73
@ LFG_STATE_DUNGEON
Definition LFG.h:72
@ LFG_STATE_PROPOSAL
Definition LFG.h:70
@ LFG_STATE_NONE
Definition LFG.h:67
@ LFG_STATE_QUEUED
Definition LFG.h:69
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:61
@ LFG_UPDATETYPE_UPDATE_STATUS
Definition LFG.h:60
@ LFG_UPDATETYPE_PROPOSAL_FAILED
Definition LFG.h:55
@ LFG_UPDATETYPE_GROUP_DISBAND_UNK16
Definition LFG.h:62
@ LFG_UPDATETYPE_PROPOSAL_DECLINED
Definition LFG.h:56
@ 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:59
@ LFG_UPDATETYPE_JOIN_QUEUE
Definition LFG.h:52
LfgAnswer
Answer state (Also used to check compatibilites)
Definition LFG.h:96
@ LFG_ANSWER_AGREE
Definition LFG.h:99
@ LFG_ANSWER_PENDING
Definition LFG.h:97
@ LFG_ANSWER_DENY
Definition LFG.h:98
std::string GetStateString(LfgState state)
Definition LFG.cpp:75
std::string GetRolesString(uint8 roles)
Definition LFG.cpp:41
std::map< uint32, uint32 > LfgLockMap
Definition LFG.h:103
std::set< uint32 > LfgDungeonSet
Definition LFG.h:102
std::map< ObjectGuid, ObjectGuid > LfgGroupsMap
Definition LFG.h:106
std::string ConcatenateDungeons(LfgDungeonSet const &dungeons)
Definition LFG.cpp:26
int32 format_as(LfgUpdateType e)
Definition LFG.h:113
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:104