From f176bc09c48d18371f0f707429d7744b3f683fe0 Mon Sep 17 00:00:00 2001 From: kitsune Date: Thu, 7 May 2026 15:11:52 +0200 Subject: [PATCH 1/4] fix(concommand): rd_reset_level_and_promotion client access (c_asw_concommands.cpp) --- src/game/client/swarm/c_asw_concommands.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/game/client/swarm/c_asw_concommands.cpp b/src/game/client/swarm/c_asw_concommands.cpp index 1f4043716..4f941f702 100644 --- a/src/game/client/swarm/c_asw_concommands.cpp +++ b/src/game/client/swarm/c_asw_concommands.cpp @@ -862,7 +862,7 @@ void rd_reset_level_and_promotion_f() Msg( "All done, your level and promotion have been reset!\n" ); } -ConCommand rd_reset_level_and_promotion( "rd_reset_level_and_promotion", rd_reset_level_and_promotion_f, "Resets promotion (rank, level etc.)", FCVAR_DEVELOPMENTONLY ); +ConCommand rd_reset_level_and_promotion( "rd_reset_level_and_promotion", rd_reset_level_and_promotion_f, "Resets promotion (rank, level etc.)", FCVAR_NOT_CONNECTED ); void asw_show_xp_f() { From 8eabc0e5324380ad0b3d33e8f98cd0e3721adf2c Mon Sep 17 00:00:00 2001 From: kitsune Date: Thu, 7 May 2026 15:19:02 +0200 Subject: [PATCH 2/4] gameplay(weapons): rd_weapon_autoaim runtime toggle auto-aim for autogun/prifle (c_asw_weapon.cpp, asw_weapon_autogun_shared.h, asw_weapon_prifle_shared.h) - Add rd_weapon_autoaim ConVar\n- Gate auto-aim values via CLIENT_DLL\n- Disable auto-aim when ConVar is off --- src/game/client/swarm/c_asw_weapon.cpp | 1 + .../shared/swarm/asw_weapon_autogun_shared.h | 24 +++++++++++++++++-- .../shared/swarm/asw_weapon_prifle_shared.h | 23 ++++++++++++++++-- 3 files changed, 44 insertions(+), 4 deletions(-) diff --git a/src/game/client/swarm/c_asw_weapon.cpp b/src/game/client/swarm/c_asw_weapon.cpp index 9abf49302..4e2bd2a2d 100644 --- a/src/game/client/swarm/c_asw_weapon.cpp +++ b/src/game/client/swarm/c_asw_weapon.cpp @@ -125,6 +125,7 @@ ConVar rd_drop_magazine_force_up( "rd_drop_magazine_force_up", "50", FCVAR_NONE, ConVar rd_drop_magazine_spin( "rd_drop_magazine_spin", "1000", FCVAR_NONE, "Amount of random angular velocity to apply to dropped magazine" ); ConVar rd_drop_magazine_lifetime( "rd_drop_magazine_lifetime", "4", FCVAR_NONE, "Time before a dropped magazine fades" ); ConVar rd_strange_device_model( "rd_strange_device_model", "0", FCVAR_NONE, "Should items with strange devices attached display them in the world?" ); +ConVar rd_weapon_autoaim( "rd_weapon_autoaim", "1", FCVAR_NONE, "Enable or disable weapon auto-aim if available." ); extern ConVar asw_use_particle_tracers; extern ConVar muzzleflash_light; diff --git a/src/game/shared/swarm/asw_weapon_autogun_shared.h b/src/game/shared/swarm/asw_weapon_autogun_shared.h index c457a2bdc..619772199 100644 --- a/src/game/shared/swarm/asw_weapon_autogun_shared.h +++ b/src/game/shared/swarm/asw_weapon_autogun_shared.h @@ -27,8 +27,28 @@ class CASW_Weapon_Autogun : public CASW_Weapon_Rifle //float GetFireRate( void ) { return 0.1f; } - virtual const float GetAutoAimAmount() { return 0.36f; } - virtual const float GetAutoAimRadiusScale() { return 1.5f; } + #ifdef CLIENT_DLL + virtual const float GetAutoAimAmount() + { + extern ConVar rd_weapon_autoaim; + return rd_weapon_autoaim.GetBool() ? 0.36f : 0.0f; + } + virtual const float GetAutoAimRadiusScale() + { + extern ConVar rd_weapon_autoaim; + return rd_weapon_autoaim.GetBool() ? 1.5f : 0.0f; + } + #else + virtual const float GetAutoAimAmount() + { + return 0.26f; + } + virtual const float GetAutoAimRadiusScale() + { + return 1.5f; + } + #endif + virtual bool ShouldFlareAutoaim() { return true; } virtual const Vector& GetBulletSpread( void ); diff --git a/src/game/shared/swarm/asw_weapon_prifle_shared.h b/src/game/shared/swarm/asw_weapon_prifle_shared.h index 5125dc7a3..4044c60e8 100644 --- a/src/game/shared/swarm/asw_weapon_prifle_shared.h +++ b/src/game/shared/swarm/asw_weapon_prifle_shared.h @@ -22,8 +22,27 @@ class CASW_Weapon_PRifle : public CASW_Weapon_Rifle virtual ~CASW_Weapon_PRifle(); void Precache(); - virtual const float GetAutoAimAmount() { return 0.26f; } - virtual const float GetAutoAimRadiusScale() { return 1.5f; } + #ifdef CLIENT_DLL + virtual const float GetAutoAimAmount() + { + extern ConVar rd_weapon_autoaim; + return rd_weapon_autoaim.GetBool() ? 0.26f : 0.0f; + } + virtual const float GetAutoAimRadiusScale() + { + extern ConVar rd_weapon_autoaim; + return rd_weapon_autoaim.GetBool() ? 1.5f : 0.0f; + } + #else + virtual const float GetAutoAimAmount() + { + return 0.26f; + } + virtual const float GetAutoAimRadiusScale() + { + return 1.5f; + } + #endif virtual float GetFireRate(); virtual float GetWeaponBaseDamageOverride(); virtual int GetWeaponSkillId(); From 157b5a00b32a24df56b504c17eb6ebdb7c4b8bb1 Mon Sep 17 00:00:00 2001 From: Grimowy <87246477+Kitsune44@users.noreply.github.com> Date: Sat, 9 May 2026 16:02:39 +0200 Subject: [PATCH 3/4] Apply suggestion from @BenLubar Co-authored-by: Ben Lubar --- src/game/shared/swarm/asw_weapon_autogun_shared.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/game/shared/swarm/asw_weapon_autogun_shared.h b/src/game/shared/swarm/asw_weapon_autogun_shared.h index 619772199..adde0089c 100644 --- a/src/game/shared/swarm/asw_weapon_autogun_shared.h +++ b/src/game/shared/swarm/asw_weapon_autogun_shared.h @@ -41,7 +41,7 @@ class CASW_Weapon_Autogun : public CASW_Weapon_Rifle #else virtual const float GetAutoAimAmount() { - return 0.26f; + return 0.36f; } virtual const float GetAutoAimRadiusScale() { From c14a3ae360b1e6b4d427d9cbe5114e8e659cbca6 Mon Sep 17 00:00:00 2001 From: Grimowy <87246477+Kitsune44@users.noreply.github.com> Date: Sat, 9 May 2026 16:09:03 +0200 Subject: [PATCH 4/4] Update src/game/client/swarm/c_asw_concommands.cpp --- src/game/client/swarm/c_asw_concommands.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/game/client/swarm/c_asw_concommands.cpp b/src/game/client/swarm/c_asw_concommands.cpp index 4f941f702..df1b12c57 100644 --- a/src/game/client/swarm/c_asw_concommands.cpp +++ b/src/game/client/swarm/c_asw_concommands.cpp @@ -862,7 +862,7 @@ void rd_reset_level_and_promotion_f() Msg( "All done, your level and promotion have been reset!\n" ); } -ConCommand rd_reset_level_and_promotion( "rd_reset_level_and_promotion", rd_reset_level_and_promotion_f, "Resets promotion (rank, level etc.)", FCVAR_NOT_CONNECTED ); +ConCommand rd_reset_level_and_promotion( "rd_reset_level_and_promotion", rd_reset_level_and_promotion_f, "Resets promotion (rank, level etc.)", FCVAR_CHEAT | FCVAR_NOT_CONNECTED ); void asw_show_xp_f() {