From d09fdf66b5885d8bf7de7a4629b33602d00d3c94 Mon Sep 17 00:00:00 2001 From: 8dcc <8dcc.git@gmail.com> Date: Mon, 31 Jul 2023 15:55:01 +0200 Subject: [PATCH] Add bullet tracers --- src/features/features.h | 1 + src/features/misc.c | 26 ++++++++++++++++++++++++++ src/hooks.c | 1 + 3 files changed, 28 insertions(+) diff --git a/src/features/features.h b/src/features/features.h index 7bcfb0d..9f902fa 100644 --- a/src/features/features.h +++ b/src/features/features.h @@ -31,5 +31,6 @@ void aimbot(usercmd_t* cmd); /* src/features/misc.c */ void custom_crosshair(void); +void bullet_tracers(usercmd_t* cmd); #endif /* FEATURES_H_ */ diff --git a/src/features/misc.c b/src/features/misc.c index d861753..9a0ed47 100644 --- a/src/features/misc.c +++ b/src/features/misc.c @@ -29,3 +29,29 @@ void custom_crosshair(void) { gl_drawline(mx - gap, my + gap, mx - gap - len, my + gap + len, w, col); gl_drawline(mx + gap, my + gap, mx + gap + len, my + gap + len, w, col); } + +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()) + return; + + /* 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); + + const int tracer_len = 3000; + vec3_t end; + end.x = local_eyes.x + fwd.x * tracer_len; + end.y = local_eyes.y + fwd.y * tracer_len; + end.z = local_eyes.z + fwd.z * tracer_len; + + /* NOTE: Change tracer settings here */ + const float w = 0.8; + const float time = 2; + draw_tracer(local_eyes, end, (rgb_t){ 66, 165, 245 }, 1, w, time); +} diff --git a/src/hooks.c b/src/hooks.c index affa7e4..b9bbeaa 100644 --- a/src/hooks.c +++ b/src/hooks.c @@ -63,6 +63,7 @@ void h_CL_CreateMove(float frametime, usercmd_t* cmd, int active) { bhop(cmd); aimbot(cmd); + bullet_tracers(cmd); correct_movement(cmd, old_angles); vec_clamp(cmd->viewangles);