Minor refactor

This commit is contained in:
6arelyFuture 2022-05-21 16:59:28 +02:00
parent c6cb8257d5
commit eec738e129
Signed by: Future
GPG Key ID: FA77F074E98D98A5
7 changed files with 35 additions and 15 deletions

View File

@ -60,7 +60,7 @@ void client_command(int client_number) {
class component final : public component_interface {
public:
void post_unpack() override {
utils::hook::call(SELECT(0x58DA1C, 0x4FB3BD), client_command);
utils::hook::call(SELECT_VALUE(0x58DA1C, 0x4FB3BD), client_command);
add_chat_commands();
}

View File

@ -69,12 +69,12 @@ void __declspec(naked) jump_start_sp_stub() {
class component final : public component_interface {
public:
void post_unpack() override {
if (game::environment::t5mp()) {
if (game::environment::is_mp()) {
jump_height = reinterpret_cast<game::dvar_s**>(0xC4F7D8);
utils::hook::jump(0x5CE92F, jump_start_mp_stub);
}
if (game::environment::t5zm()) {
if (game::environment::is_sp()) {
player_sustainAmmo = reinterpret_cast<game::dvar_s**>(0xBCD250);
pm_weapon_use_ammo_hook.create(0x6979B0, &pm_weapon_use_ammo_stub);
@ -83,8 +83,8 @@ public:
}
player_sprintStrafeSpeedScale =
reinterpret_cast<game::dvar_s**>(SELECT(0xC51AE8, 0xBCD18C));
utils::hook::jump(SELECT(0x6344B0, 0x611BC0),
reinterpret_cast<game::dvar_s**>(SELECT_VALUE(0xC51AE8, 0xBCD18C));
utils::hook::jump(SELECT_VALUE(0x6344B0, 0x611BC0),
bg_get_sprint_strafe_speed_scale_stub);
}
};

View File

@ -0,0 +1,21 @@
#include <std_include.hpp>
#include "../loader/component_loader.hpp"
#include <utils/hook.hpp>
namespace gsc_patches {
namespace {
void g_log_printf(const char* fmt) { game::G_LogPrintf("%s", fmt); }
} // namespace
class component final : public component_interface {
public:
void post_unpack() override {
if (game::environment::is_mp()) {
utils::hook::call(0x8426D3, g_log_printf);
}
}
};
} // namespace gsc_patches
REGISTER_COMPONENT(gsc_patches::component)

View File

@ -6,8 +6,8 @@ gamemode current = reinterpret_cast<const char*>(0xA6840C) == "multiplayer"s
: gamemode::zombies;
namespace environment {
bool t5mp() { return current == gamemode::multiplayer; }
bool is_mp() { return current == gamemode::multiplayer; }
bool t5zm() { return current == gamemode::zombies; }
bool is_sp() { return current == gamemode::zombies; }
} // namespace environment
} // namespace game

View File

@ -1,6 +1,6 @@
#pragma once
#define SELECT(mp, zm) (game::environment::t5mp() ? mp : zm)
#define SELECT_VALUE(mp, zm) (game::environment::is_mp() ? (mp) : (zm))
namespace game {
enum gamemode { none, multiplayer, zombies };
@ -8,8 +8,8 @@ enum gamemode { none, multiplayer, zombies };
extern gamemode current;
namespace environment {
bool t5mp();
bool t5zm();
bool is_mp();
bool is_sp();
} // namespace environment
template <typename T> class symbol {
@ -17,8 +17,8 @@ public:
symbol(const size_t t5mp, const size_t t5zm)
: t5mp_(reinterpret_cast<T*>(t5mp)), t5zm_(reinterpret_cast<T*>(t5zm)) {}
T* get() const {
if (environment::t5mp()) {
[[nodiscard]] T* get() const {
if (environment::is_mp()) {
return t5mp_;
}

View File

@ -58,8 +58,10 @@ WEAK symbol<char*(char*)> I_CleanStr{0x4B0700, 0x0};
WEAK symbol<char*(int)> ConcatArgs{0x5D5F10, 0x4FB210};
WEAK symbol<void(int)> ClientCommand{0x63DB70, 0x4AF770};
WEAK symbol<void(gentity_s*, gentity_s*, int, const char*)> G_Say{0x51BBD0,
0x49A790};
WEAK symbol<void(const char* fmt, ...)> G_LogPrintf{0x5CD250, 0x69EA30};
WEAK symbol<void(gentity_s*, unsigned __int16, unsigned int)> Scr_Notify{
0x458D30, 0x0};

View File

@ -1,8 +1,5 @@
#pragma once
#define BINARY_PAYLOAD_SIZE 0x0A000000
#define TLS_PAYLOAD_SIZE 0x2000
#define DLL_EXPORT extern "C" __declspec(dllexport)
#define WIN32_LEAN_AND_MEAN