From b29f71e5979859b99da949725f41b0669f337976 Mon Sep 17 00:00:00 2001 From: Wizzard <25581244+Wizzard@users.noreply.toomuchslop.com> Date: Tue, 19 Sep 2023 14:46:59 -0400 Subject: [PATCH] Dirty temp fix for tracers in CS1.6 --- src/features/misc.c | 18 +++++++++++++++--- src/globals.c | 3 +++ src/hooks.c | 2 ++ src/include/globals.h | 1 + src/main.c | 5 +---- 5 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/features/misc.c b/src/features/misc.c index 7b38c9d..deb1ac5 100644 --- a/src/features/misc.c +++ b/src/features/misc.c @@ -4,6 +4,7 @@ #include "../include/globals.h" #include "../include/cvars.h" #include "../include/util.h" +#include "../include/game_detection.h" void custom_crosshair(void) { if (!CVAR_ON(crosshair)) @@ -30,17 +31,26 @@ void custom_crosshair(void) { gl_drawline(mx + gap, my + gap, mx + gap + len, my + gap + len, w, col); } +weapon_data_t g_currentWeapon; +static double lastTracerTime = 0; + void bullet_tracers(usercmd_t* cmd) { /* Only draw if we are holding attack and we can shoot */ - if (!CVAR_ON(tracers) || !(cmd->buttons & IN_ATTACK) || !can_shoot() || - !is_alive(localplayer)) + if (!CVAR_ON(tracers) || !(cmd->buttons & IN_ATTACK) || !can_shoot() || !is_alive(localplayer)) return; + /* Dirty temp fix for tracers being spammed in CS1.6 */ + if (IsCS16() && (g_flCurrentTime - lastTracerTime < 0.5)) { + return; + } + + if (IsCS16()) { + } /* Get player eye pos, start of tracer */ vec3_t view_height; i_engine->pEventAPI->EV_LocalPlayerViewheight(view_height); vec3_t local_eyes = vec_add(localplayer->origin, view_height); - + /* Get forward vector from viewangles */ vec3_t fwd; i_engine->pfnAngleVectors(cmd->viewangles, fwd, NULL, NULL); @@ -55,4 +65,6 @@ void bullet_tracers(usercmd_t* cmd) { const float w = 0.8; const float time = 2; draw_tracer(local_eyes, end, (rgb_t){ 66, 165, 245 }, 1, w, time); + lastTracerTime = g_flCurrentTime; } + diff --git a/src/globals.c b/src/globals.c index 73b65a7..1708d13 100644 --- a/src/globals.c +++ b/src/globals.c @@ -15,6 +15,9 @@ vec3_t g_punchAngles = { 0, 0, 0 }; float g_flNextAttack = 0.f, g_flNextPrimaryAttack = 0.f; int g_iClip = 0; +double g_flCurrentTime = 0.0; + + void* hw; void** h_client; DECL_INTF(cl_enginefunc_t, engine); diff --git a/src/hooks.c b/src/hooks.c index 55d5051..716d753 100644 --- a/src/hooks.c +++ b/src/hooks.c @@ -108,6 +108,8 @@ void h_HUD_PostRunCmd(struct local_state_s* from, struct local_state_s* to, unsigned int random_seed) { ORIGINAL(HUD_PostRunCmd, from, to, cmd, runfuncs, time, random_seed); + g_flCurrentTime = time; + /* Store attack information to check if we can shoot */ if (runfuncs) { g_flNextAttack = to->client.m_flNextAttack; diff --git a/src/include/globals.h b/src/include/globals.h index b89e08c..145756c 100644 --- a/src/include/globals.h +++ b/src/include/globals.h @@ -37,6 +37,7 @@ extern game_id this_game_id; extern vec3_t g_punchAngles; extern float g_flNextAttack, g_flNextPrimaryAttack; extern int g_iClip; +extern double g_flCurrentTime; extern void* hw; extern void** h_client; /* hClientDLL hander */ diff --git a/src/main.c b/src/main.c index 4bf157c..428e324 100644 --- a/src/main.c +++ b/src/main.c @@ -38,7 +38,7 @@ void load(void) { } /* Get game version after injecting */ - this_game_id = get_cur_game(); + //this_game_id = get_cur_game(); i_engine->pfnClientCmd("echo \"goldsource-cheat loaded successfully!\""); i_engine->pfnClientCmd("echo \"Deadzone rulez!\""); @@ -64,10 +64,7 @@ void load(void) { break; } - return; - - loaded = true; }