Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
LFG.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 "Language.h"
7#include "LFG.h"
8#include "ObjectMgr.h"
9
10namespace lfg
11{
12
13 std::string ConcatenateDungeons(LfgDungeonSet const& dungeons)
14 {
15 std::string dungeonstr = "";
16 if (!dungeons.empty())
17 {
18 std::ostringstream o;
19 LfgDungeonSet::const_iterator it = dungeons.begin();
20 o << (*it);
21 for (++it; it != dungeons.end(); ++it)
22 o << ", " << uint32(*it);
23 dungeonstr = o.str();
24 }
25 return dungeonstr;
26 }
27
29 {
31 static uint8 const playableRoleMask = PLAYER_ROLE_TANK | PLAYER_ROLE_HEALER | PLAYER_ROLE_DAMAGE;
32
33 return (roles & ~validRoleMask) == 0 && (roles & playableRoleMask) != 0;
34 }
35
36 std::string GetRolesString(uint8 roles)
37 {
38 std::string rolesstr = "";
39
40 if (roles & PLAYER_ROLE_TANK)
41 rolesstr.append(sObjectMgr->GetSkyFireStringForDBCLocale(LANG_LFG_ROLE_TANK));
42
43 if (roles & PLAYER_ROLE_HEALER)
44 {
45 if (!rolesstr.empty())
46 rolesstr.append(", ");
47 rolesstr.append(sObjectMgr->GetSkyFireStringForDBCLocale(LANG_LFG_ROLE_HEALER));
48 }
49
50 if (roles & PLAYER_ROLE_DAMAGE)
51 {
52 if (!rolesstr.empty())
53 rolesstr.append(", ");
54 rolesstr.append(sObjectMgr->GetSkyFireStringForDBCLocale(LANG_LFG_ROLE_DAMAGE));
55 }
56
57 if (roles & PLAYER_ROLE_LEADER)
58 {
59 if (!rolesstr.empty())
60 rolesstr.append(", ");
61 rolesstr.append(sObjectMgr->GetSkyFireStringForDBCLocale(LANG_LFG_ROLE_LEADER));
62 }
63
64 if (rolesstr.empty())
65 rolesstr.append(sObjectMgr->GetSkyFireStringForDBCLocale(LANG_LFG_ROLE_NONE));
66
67 return rolesstr;
68 }
69
70 std::string GetStateString(LfgState state)
71 {
72 int32 entry = LANG_LFG_ERROR;
73 switch (state)
74 {
75 case LFG_STATE_NONE:
76 entry = LANG_LFG_STATE_NONE;
77 break;
80 break;
83 break;
86 break;
89 break;
90 case LFG_STATE_BOOT:
91 entry = LANG_LFG_STATE_BOOT;
92 break;
95 break;
98 break;
99 }
100
101 return std::string(sObjectMgr->GetSkyFireStringForDBCLocale(entry));
102 }
103
104} // namespace lfg
std::int32_t int32
Definition Define.h:73
std::uint8_t uint8
Definition Define.h:79
std::uint32_t uint32
Definition Define.h:77
@ LANG_LFG_ROLE_TANK
Definition Language.h:1144
@ LANG_LFG_STATE_BOOT
Definition Language.h:1140
@ LANG_LFG_ROLE_LEADER
Definition Language.h:1147
@ LANG_LFG_STATE_PROPOSAL
Definition Language.h:1139
@ LANG_LFG_ERROR
Definition Language.h:1149
@ LANG_LFG_ROLE_HEALER
Definition Language.h:1145
@ LANG_LFG_STATE_ROLECHECK
Definition Language.h:1137
@ LANG_LFG_STATE_RAIDBROWSER
Definition Language.h:1143
@ LANG_LFG_STATE_DUNGEON
Definition Language.h:1141
@ LANG_LFG_STATE_NONE
Definition Language.h:1136
@ LANG_LFG_ROLE_NONE
Definition Language.h:1148
@ LANG_LFG_STATE_FINISHED_DUNGEON
Definition Language.h:1142
@ LANG_LFG_STATE_QUEUED
Definition Language.h:1138
@ LANG_LFG_ROLE_DAMAGE
Definition Language.h:1146
#define sObjectMgr
Definition ObjectMgr.h:1617
Definition LFG.cpp:11
bool IsValidPlayerRoles(uint8 roles)
Definition LFG.cpp:28
LfgState
Definition LFG.h:61
@ LFG_STATE_RAIDBROWSER
Definition LFG.h:69
@ LFG_STATE_ROLECHECK
Definition LFG.h:63
@ LFG_STATE_FINISHED_DUNGEON
Definition LFG.h:68
@ LFG_STATE_DUNGEON
Definition LFG.h:67
@ LFG_STATE_PROPOSAL
Definition LFG.h:65
@ LFG_STATE_BOOT
Definition LFG.h:66
@ LFG_STATE_NONE
Definition LFG.h:62
@ LFG_STATE_QUEUED
Definition LFG.h:64
std::set< uint32 > LfgDungeonSet
Definition LFG.h:107
std::string GetStateString(LfgState state)
Definition LFG.cpp:70
@ PLAYER_ROLE_DAMAGE
Definition LFG.h:27
@ PLAYER_ROLE_TANK
Definition LFG.h:25
@ PLAYER_ROLE_LEADER
Definition LFG.h:24
@ PLAYER_ROLE_HEALER
Definition LFG.h:26
std::string GetRolesString(uint8 roles)
Definition LFG.cpp:36
std::string ConcatenateDungeons(LfgDungeonSet const &dungeons)
Definition LFG.cpp:13