Fix name dvar

This commit is contained in:
Federico Cecchetto 2022-05-19 21:04:57 +02:00
parent c9a419e42b
commit 02fcebf24b
2 changed files with 22 additions and 3 deletions

View File

@ -46,7 +46,23 @@ namespace patches
return "Unknown Soldier";
}
return std::string{ username, username_len - 1 };
return std::string{username, username_len - 1};
}
utils::hook::detour com_register_dvars_hook;
void com_register_dvars_stub()
{
if (game::environment::is_mp())
{
// Make name save
dvars::register_string("name", get_login_username().data(), game::DVAR_FLAG_SAVED, "Player name.");
// Disable data validation error popup
dvars::register_int("data_validation_allow_drop", 0, 0, 0, game::DVAR_FLAG_NONE, "");
}
return com_register_dvars_hook.invoke<void>();
}
utils::hook::detour set_client_dvar_from_server_hook;
@ -151,6 +167,9 @@ namespace patches
public:
void post_unpack() override
{
// Register dvars
com_register_dvars_hook.create(SELECT_VALUE(0, 0x15BB60_b), &com_register_dvars_stub);
// Unlock fps in main menu
utils::hook::set<BYTE>(SELECT_VALUE(0, 0x34396B_b), 0xEB);

View File

@ -65,9 +65,9 @@ namespace game
WEAK symbol<dvar_t*(int hash, const char* name, int value, int min, int max,
unsigned int flags)> Dvar_RegisterInt{0x0, 0x182A10};
WEAK symbol<dvar_t*(int hash, const char* dvarName, float value, float min,
float max, unsigned int flags)> Dvar_RegisterFloat{0x0, 0x182900};
float max, unsigned int flags)> Dvar_RegisterFloat{0x0, 0x1827F0};
WEAK symbol<dvar_t*(int hash, const char* dvarName, const char* value,
unsigned int flags)> Dvar_RegisterString{0x0, 0x182AF0};
unsigned int flags)> Dvar_RegisterString{0x0, 0x182BD0};
WEAK symbol<dvar_t*(int dvarName, const char* a2, float x, float y, float z,
float w, float min, float max, unsigned int flags)> Dvar_RegisterVec4{0x0, 0x183010};