fix crash
This commit is contained in:
parent
984e5478d2
commit
70b3d380d3
@ -296,12 +296,12 @@ namespace party
|
|||||||
|
|
||||||
bool preloaded_map = false;
|
bool preloaded_map = false;
|
||||||
|
|
||||||
void xstartlobby(const int max_clients, const bool private_match)
|
void xstartlobby()
|
||||||
{
|
{
|
||||||
// Retrieve game variables
|
// Retrieve game variables
|
||||||
const int privateMatch = private_match; //game::Dvar_FindVar("xblive_privatematch")->current.integer;
|
const int privateMatch = game::Dvar_FindVar("xblive_privatematch")->current.integer;
|
||||||
const int maxPlayers = max_clients; //game::Dvar_FindVar("party_maxplayers")->current.integer;
|
const int maxPlayers = game::Dvar_FindVar("party_maxplayers")->current.integer;
|
||||||
const int privateClients = 0; //game::Dvar_FindVar("ui_privateClients")->current.integer;
|
const int privateClients = game::Dvar_FindVar("ui_privateClients")->current.integer;
|
||||||
const int availableSpots = maxPlayers - privateClients;
|
const int availableSpots = maxPlayers - privateClients;
|
||||||
|
|
||||||
// Get party data
|
// Get party data
|
||||||
@ -331,13 +331,16 @@ namespace party
|
|||||||
|
|
||||||
void perform_game_initialization(const int max_clients, const bool private_match)
|
void perform_game_initialization(const int max_clients, const bool private_match)
|
||||||
{
|
{
|
||||||
xstartlobby(max_clients, private_match);
|
|
||||||
|
|
||||||
const auto ui_maxclients = game::Dvar_FindVar("ui_maxclients");
|
const auto ui_maxclients = game::Dvar_FindVar("ui_maxclients");
|
||||||
const auto party_maxplayers = game::Dvar_FindVar("party_maxplayers");
|
const auto party_maxplayers = game::Dvar_FindVar("party_maxplayers");
|
||||||
game::Dvar_SetInt(ui_maxclients, max_clients);
|
game::Dvar_SetInt(ui_maxclients, max_clients);
|
||||||
game::Dvar_SetInt(party_maxplayers, max_clients);
|
game::Dvar_SetInt(party_maxplayers, max_clients);
|
||||||
|
|
||||||
|
const auto xblive_privatematch = game::Dvar_FindVar("xblive_privatematch");
|
||||||
|
game::Dvar_SetBool(xblive_privatematch, private_match);
|
||||||
|
|
||||||
|
xstartlobby();
|
||||||
|
|
||||||
command::execute("uploadstats", true);
|
command::execute("uploadstats", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -550,7 +553,7 @@ namespace party
|
|||||||
command::execute(utils::string::va("seta ui_mapname %s", mapname.data()), true);
|
command::execute(utils::string::va("seta ui_mapname %s", mapname.data()), true);
|
||||||
|
|
||||||
auto* gametype = game::Dvar_FindVar("g_gametype");
|
auto* gametype = game::Dvar_FindVar("g_gametype");
|
||||||
if (gametype && gametype->current.string)
|
if (gametype && gametype->current.string && gametype->current.string != "frontend"s)
|
||||||
{
|
{
|
||||||
command::execute(utils::string::va("seta ui_gametype %s", gametype->current.string), true);
|
command::execute(utils::string::va("seta ui_gametype %s", gametype->current.string), true);
|
||||||
}
|
}
|
||||||
@ -561,7 +564,7 @@ namespace party
|
|||||||
command::execute(utils::string::va("seta ui_hardcore %d", hardcore->current.enabled), true);
|
command::execute(utils::string::va("seta ui_hardcore %d", hardcore->current.enabled), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!utils::hook::invoke<bool>(0x1409CDCF0) || game::Com_FrontEnd_IsInFrontEnd())
|
if (!utils::hook::invoke<bool>(0x1409CDCF0, game::Lobby_GetPartyData()) || game::Com_FrontEnd_IsInFrontEnd())
|
||||||
{
|
{
|
||||||
if (game::environment::is_dedi())
|
if (game::environment::is_dedi())
|
||||||
{
|
{
|
||||||
|
@ -125,6 +125,7 @@ namespace game
|
|||||||
WEAK symbol<const char* (dvar_t* dvar, DvarValue value)> Dvar_ValueToString{ 0x140CEED00 };
|
WEAK symbol<const char* (dvar_t* dvar, DvarValue value)> Dvar_ValueToString{ 0x140CEED00 };
|
||||||
WEAK symbol<void(dvar_t* dvar, DvarSetSource source)> Dvar_Reset{ 0x140CEC490 };
|
WEAK symbol<void(dvar_t* dvar, DvarSetSource source)> Dvar_Reset{ 0x140CEC490 };
|
||||||
WEAK symbol<unsigned int(const char* name)> Dvar_GenerateChecksum{ 0x140CEA520 };
|
WEAK symbol<unsigned int(const char* name)> Dvar_GenerateChecksum{ 0x140CEA520 };
|
||||||
|
WEAK symbol<void(dvar_t* dvar, bool value)> Dvar_SetBool{ 0x140CEC7D0 };
|
||||||
WEAK symbol<void(dvar_t* dvar, int value)> Dvar_SetInt{ 0x140CED3D0 };
|
WEAK symbol<void(dvar_t* dvar, int value)> Dvar_SetInt{ 0x140CED3D0 };
|
||||||
WEAK symbol<void(dvar_t* dvar, float value)> Dvar_SetFloat{ 0x140CECD90 };
|
WEAK symbol<void(dvar_t* dvar, float value)> Dvar_SetFloat{ 0x140CECD90 };
|
||||||
WEAK symbol<void(bool cheatOverride)> Dvar_OverrideCheatProtection{ 0x140CEB250 };
|
WEAK symbol<void(bool cheatOverride)> Dvar_OverrideCheatProtection{ 0x140CEB250 };
|
||||||
|
Loading…
Reference in New Issue
Block a user