2017-01-20 08:36:52 -05:00
|
|
|
#pragma once
|
|
|
|
|
2017-01-19 16:23:59 -05:00
|
|
|
namespace Components
|
|
|
|
{
|
|
|
|
class Party : public Component
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
Party();
|
|
|
|
|
|
|
|
static Network::Address Target();
|
|
|
|
static void Connect(Network::Address target);
|
2018-12-17 08:29:18 -05:00
|
|
|
static const char* GetLobbyInfo(SteamID lobby, const std::string& key);
|
2017-01-19 16:23:59 -05:00
|
|
|
static void RemoveLobby(SteamID lobby);
|
|
|
|
|
|
|
|
static bool PlaylistAwaiting();
|
|
|
|
static void PlaylistContinue();
|
2018-12-17 08:29:18 -05:00
|
|
|
static void PlaylistError(const std::string& error);
|
2017-01-19 16:23:59 -05:00
|
|
|
|
2018-12-17 08:29:18 -05:00
|
|
|
static void ConnectError(const std::string& message);
|
2017-01-19 16:23:59 -05:00
|
|
|
|
2017-07-12 13:36:18 -04:00
|
|
|
static bool IsInUserMapLobby();
|
|
|
|
static bool IsInLobby();
|
|
|
|
|
2022-05-20 18:12:46 -04:00
|
|
|
static bool IsEnabled();
|
|
|
|
|
2017-01-19 16:23:59 -05:00
|
|
|
static std::string GetMotd();
|
|
|
|
|
|
|
|
private:
|
|
|
|
class JoinContainer
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
Network::Address target;
|
|
|
|
std::string challenge;
|
|
|
|
std::string motd;
|
|
|
|
DWORD joinTime;
|
|
|
|
bool valid;
|
|
|
|
int matchType;
|
|
|
|
|
|
|
|
Utils::InfoString info;
|
|
|
|
|
|
|
|
// Party-specific stuff
|
|
|
|
DWORD requestTime;
|
|
|
|
bool awaitingPlaylist;
|
|
|
|
};
|
|
|
|
|
|
|
|
static JoinContainer Container;
|
|
|
|
static std::map<uint64_t, Network::Address> LobbyMap;
|
|
|
|
|
2022-05-20 18:12:46 -04:00
|
|
|
static Dvar::Var PartyEnable;
|
|
|
|
|
2017-01-19 16:23:59 -05:00
|
|
|
static SteamID GenerateLobbyId();
|
|
|
|
|
|
|
|
static Game::dvar_t* RegisterMinPlayers(const char* name, int value, int min, int max, Game::dvar_flag flag, const char* description);
|
|
|
|
|
|
|
|
static DWORD UIDvarIntStub(char* dvar);
|
|
|
|
};
|
|
|
|
}
|