#include #include "loader/component_loader.hpp" #include "game/game.hpp" #include "game/dvars.hpp" #include namespace patches { namespace { utils::hook::detour pm_crashland_hook; void pm_crashland_stub(void* ps, void* pm) { if (dvars::jump_enableFallDamage->current.enabled) { pm_crashland_hook.invoke(ps, pm); } } uint64_t off_11C52460; void* sub_46148() { off_11C52460 = 0xAD0C58_b; return &off_11C52460; } } class component final : public component_interface { public: void post_unpack() override { // Not sure but it works utils::hook::set(0x633080_b, 0xC301B0); utils::hook::set(0x272F70_b, 0xC301B0); utils::hook::jump(0x46148_b, sub_46148, true); // Unlock fps in main menu utils::hook::set(0x3D8E1B_b, 0xEB); // Disable battle net popup utils::hook::nop(0x5F4496_b, 5); pm_crashland_hook.create(0x688A20_b, pm_crashland_stub); dvars::jump_enableFallDamage = dvars::register_bool("jump_enableFallDamage", 1, game::DVAR_FLAG_REPLICATED); dvars::register_float("jump_height", 39, 0, 1000, game::DVAR_FLAG_REPLICATED); dvars::register_float("g_gravity", 800, 1, 1000, game::DVAR_FLAG_REPLICATED); dvars::register_int("g_speed", 190, 0, 1000, game::DVAR_FLAG_REPLICATED); } }; } REGISTER_COMPONENT(patches::component)