2023-03-16 08:12:53 -04:00
# include <std_include.hpp>
# include "loader/component_loader.hpp"
# include "game/game.hpp"
# include "game/utils.hpp"
# include "scheduler.hpp"
# include <utils/hook.hpp>
namespace dvars_patches
{
namespace
{
void patch_dvars ( )
{
2023-03-16 18:21:26 -04:00
game : : register_sessionmode_dvar_bool ( " com_pauseSupported " , ! game : : is_server ( ) , game : : DVAR_SERVERINFO , " Whether is pause is ever supported by the game mode " ) ;
2023-03-16 08:12:53 -04:00
}
void patch_flags ( )
{
if ( game : : is_client ( ) )
{
game : : dvar_set_flags ( " r_dof_enable " , game : : DVAR_ARCHIVE ) ;
game : : dvar_set_flags ( " r_lodbiasrigid " , game : : DVAR_ARCHIVE ) ;
game : : dvar_set_flags ( " gpad_stick_deadzone_max " , game : : DVAR_ARCHIVE ) ;
game : : dvar_set_flags ( " gpad_stick_deadzone_min " , game : : DVAR_ARCHIVE ) ;
2023-03-17 14:24:44 -04:00
game : : dvar_set_flags ( " cg_drawLagometer " , game : : DVAR_ARCHIVE ) ;
2023-03-16 08:12:53 -04:00
}
scheduler : : execute ( scheduler : : pipeline : : dvars_flags_patched ) ;
}
void dof_enabled_stub ( utils : : hook : : assembler & a )
{
const auto update_ads_dof = a . newLabel ( ) ;
a . mov ( rax , qword_ptr ( 0x14AE95478 _g ) ) ; // r_dof_enable
2023-03-17 14:53:10 -04:00
a . test ( rax , rax ) ;
a . jz ( update_ads_dof ) ;
2023-03-16 08:12:53 -04:00
a . cmp ( byte_ptr ( rax , 0x28 ) , 1 ) ;
a . je ( update_ads_dof ) ;
a . jmp ( 0x141116ECB _g ) ;
a . bind ( update_ads_dof ) ;
a . lea ( rdx , ptr ( rbx , 0x131EB4 ) ) ;
2023-03-17 14:53:10 -04:00
a . jmp ( 0x141116EC2 _g ) ; // CG_UpdateAdsDof
2023-03-16 08:12:53 -04:00
}
}
class component final : public generic_component
{
public :
void post_unpack ( ) override
{
2023-03-16 18:21:26 -04:00
scheduler : : once ( patch_dvars , scheduler : : pipeline : : main ) ;
scheduler : : once ( patch_flags , scheduler : : pipeline : : main ) ;
2023-03-16 08:12:53 -04:00
if ( game : : is_server ( ) )
{
return ;
}
// toggle ADS dof based on r_dof_enable
2023-03-17 14:53:10 -04:00
utils : : hook : : jump ( 0x141116EBB _g , utils : : hook : : assemble ( dof_enabled_stub ) ) ;
2023-03-16 08:12:53 -04:00
}
} ;
}
REGISTER_COMPONENT ( dvars_patches : : component )