Merge pull request #239 from Brentdevent/ranked
Ranked dedicated servers
This commit is contained in:
commit
300065634e
@ -38,8 +38,8 @@ namespace client_patches
|
|||||||
|
|
||||||
void preload_map_stub(int localClientNum, const char* mapname, const char* gametype)
|
void preload_map_stub(int localClientNum, const char* mapname, const char* gametype)
|
||||||
{
|
{
|
||||||
|
game::Com_GametypeSettings_SetGametype(gametype, false, false);
|
||||||
stop_zombies_intro_if_needed();
|
stop_zombies_intro_if_needed();
|
||||||
|
|
||||||
preload_map_hook.invoke(localClientNum, mapname, gametype);
|
preload_map_hook.invoke(localClientNum, mapname, gametype);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,10 +15,49 @@ namespace dedicated_patches
|
|||||||
game::Scr_AddInt(game::SCRIPTINSTANCE_SERVER, 1);
|
game::Scr_AddInt(game::SCRIPTINSTANCE_SERVER, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
game::eNetworkModes get_online_mode()
|
game::eNetworkModes get_online_mode_stub()
|
||||||
{
|
{
|
||||||
return game::MODE_NETWORK_ONLINE;
|
return game::MODE_NETWORK_ONLINE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool is_online_stub()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool is_mod_loaded_stub()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void patch_is_mod_loaded_checks()
|
||||||
|
{
|
||||||
|
const std::vector<uintptr_t> is_mod_loaded_addresses =
|
||||||
|
{
|
||||||
|
{ 0x1401DA1B5_g },
|
||||||
|
{ 0x14024D4A0_g },
|
||||||
|
{ 0x14024D669_g },
|
||||||
|
{ 0x14024D939_g },
|
||||||
|
{ 0x14024DC64_g },
|
||||||
|
{ 0x14024E13A_g },
|
||||||
|
{ 0x14024E5A3_g },
|
||||||
|
{ 0x14024FFB9_g },
|
||||||
|
{ 0x140251E9E_g },
|
||||||
|
{ 0x140253680_g },
|
||||||
|
{ 0x140257BF6_g },
|
||||||
|
{ 0x1402D25E2_g }, // unsure if needed to patch
|
||||||
|
{ 0x1402D296D_g }, // unsure
|
||||||
|
{ 0x1402D58E9_g }, // unsure
|
||||||
|
{ 0x1402DC5BB_g }, // unsure
|
||||||
|
{ 0x140468374_g },
|
||||||
|
{ 0x14046B796_g }
|
||||||
|
};
|
||||||
|
|
||||||
|
for (const auto& address : is_mod_loaded_addresses)
|
||||||
|
{
|
||||||
|
utils::hook::call(address, is_mod_loaded_stub);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
struct component final : server_component
|
struct component final : server_component
|
||||||
@ -28,8 +67,15 @@ namespace dedicated_patches
|
|||||||
// Fix infinite loop
|
// Fix infinite loop
|
||||||
utils::hook::jump(0x1402E86B0_g, scr_are_textures_loaded_stub);
|
utils::hook::jump(0x1402E86B0_g, scr_are_textures_loaded_stub);
|
||||||
|
|
||||||
utils::hook::jump(0x1405003E0_g, get_online_mode);
|
// Online classes
|
||||||
utils::hook::jump(0x1405003B0_g, get_online_mode);
|
utils::hook::jump(0x1405003E0_g, get_online_mode_stub);
|
||||||
|
utils::hook::jump(0x1405003B0_g, get_online_mode_stub);
|
||||||
|
|
||||||
|
// Progression / Ranked
|
||||||
|
utils::hook::jump(0x140500A50_g, is_online_stub);
|
||||||
|
utils::hook::jump(0x140500980_g, is_online_stub);
|
||||||
|
utils::hook::jump(0x1402565D0_g, is_online_stub);
|
||||||
|
patch_is_mod_loaded_checks();
|
||||||
|
|
||||||
scheduler::once([]()
|
scheduler::once([]()
|
||||||
{
|
{
|
||||||
|
@ -173,8 +173,7 @@ namespace party
|
|||||||
{
|
{
|
||||||
if (is_connecting_to_dedi)
|
if (is_connecting_to_dedi)
|
||||||
{
|
{
|
||||||
game::Com_SessionMode_SetGameMode(game::MODE_GAME_DEFAULT);
|
game::Com_SessionMode_SetGameMode(game::MODE_GAME_MATCHMAKING_PLAYLIST);
|
||||||
game::Com_GametypeSettings_SetGametype(gametype.data(), false, false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//connect_to_session(target, hostname, xuid, mode);
|
//connect_to_session(target, hostname, xuid, mode);
|
||||||
|
Loading…
Reference in New Issue
Block a user