From 3170aa1e87f1a39a91500d85f458e95a42d3c7d9 Mon Sep 17 00:00:00 2001 From: pivotman319 <15126754+pivotman319-owo@users.noreply.github.com> Date: Sat, 31 May 2025 15:53:49 +0200 Subject: [PATCH 01/10] Soldiers and Citizens now use unused AR2 activities in animations Fixes ValveSoftware/Source-1-Games#7276. --- src/game/server/hl2/weapon_ar2.cpp | 90 +++++++++++++++--------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/src/game/server/hl2/weapon_ar2.cpp b/src/game/server/hl2/weapon_ar2.cpp index d9c7ec2538e..bd395628208 100644 --- a/src/game/server/hl2/weapon_ar2.cpp +++ b/src/game/server/hl2/weapon_ar2.cpp @@ -55,53 +55,53 @@ PRECACHE_WEAPON_REGISTER(weapon_ar2); acttable_t CWeaponAR2::m_acttable[] = { { ACT_RANGE_ATTACK1, ACT_RANGE_ATTACK_AR2, true }, - { ACT_RELOAD, ACT_RELOAD_SMG1, true }, // FIXME: hook to AR2 unique - { ACT_IDLE, ACT_IDLE_SMG1, true }, // FIXME: hook to AR2 unique - { ACT_IDLE_ANGRY, ACT_IDLE_ANGRY_SMG1, true }, // FIXME: hook to AR2 unique - - { ACT_WALK, ACT_WALK_RIFLE, true }, - -// Readiness activities (not aiming) - { ACT_IDLE_RELAXED, ACT_IDLE_SMG1_RELAXED, false },//never aims - { ACT_IDLE_STIMULATED, ACT_IDLE_SMG1_STIMULATED, false }, - { ACT_IDLE_AGITATED, ACT_IDLE_ANGRY_SMG1, false },//always aims - - { ACT_WALK_RELAXED, ACT_WALK_RIFLE_RELAXED, false },//never aims - { ACT_WALK_STIMULATED, ACT_WALK_RIFLE_STIMULATED, false }, - { ACT_WALK_AGITATED, ACT_WALK_AIM_RIFLE, false },//always aims - - { ACT_RUN_RELAXED, ACT_RUN_RIFLE_RELAXED, false },//never aims - { ACT_RUN_STIMULATED, ACT_RUN_RIFLE_STIMULATED, false }, - { ACT_RUN_AGITATED, ACT_RUN_AIM_RIFLE, false },//always aims - -// Readiness activities (aiming) - { ACT_IDLE_AIM_RELAXED, ACT_IDLE_SMG1_RELAXED, false },//never aims - { ACT_IDLE_AIM_STIMULATED, ACT_IDLE_AIM_RIFLE_STIMULATED, false }, - { ACT_IDLE_AIM_AGITATED, ACT_IDLE_ANGRY_SMG1, false },//always aims - - { ACT_WALK_AIM_RELAXED, ACT_WALK_RIFLE_RELAXED, false },//never aims - { ACT_WALK_AIM_STIMULATED, ACT_WALK_AIM_RIFLE_STIMULATED, false }, - { ACT_WALK_AIM_AGITATED, ACT_WALK_AIM_RIFLE, false },//always aims - - { ACT_RUN_AIM_RELAXED, ACT_RUN_RIFLE_RELAXED, false },//never aims - { ACT_RUN_AIM_STIMULATED, ACT_RUN_AIM_RIFLE_STIMULATED, false }, - { ACT_RUN_AIM_AGITATED, ACT_RUN_AIM_RIFLE, false },//always aims -//End readiness activities - - { ACT_WALK_AIM, ACT_WALK_AIM_RIFLE, true }, - { ACT_WALK_CROUCH, ACT_WALK_CROUCH_RIFLE, true }, - { ACT_WALK_CROUCH_AIM, ACT_WALK_CROUCH_AIM_RIFLE, true }, - { ACT_RUN, ACT_RUN_RIFLE, true }, - { ACT_RUN_AIM, ACT_RUN_AIM_RIFLE, true }, - { ACT_RUN_CROUCH, ACT_RUN_CROUCH_RIFLE, true }, - { ACT_RUN_CROUCH_AIM, ACT_RUN_CROUCH_AIM_RIFLE, true }, + { ACT_RANGE_ATTACK2, ACT_COMBINE_AR2_ALTFIRE, true }, // Shared with Soldiers and Citizens. + { ACT_RELOAD, ACT_RELOAD_AR2, true }, + { ACT_IDLE, ACT_IDLE_AR2, true }, + { ACT_IDLE_ANGRY, ACT_IDLE_ANGRY_AR2, true }, + + { ACT_WALK, ACT_WALK_AR2, true }, + + // Readiness activities (not aiming) + { ACT_IDLE_RELAXED, ACT_IDLE_AR2_RELAXED, false }, // Citizens only. Never aims. + { ACT_IDLE_STIMULATED, ACT_IDLE_AR2_STIMULATED, false }, + { ACT_IDLE_AGITATED, ACT_IDLE_ANGRY_AR2, false }, // Citizens only. Always aims. + + { ACT_WALK_RELAXED, ACT_WALK_AR2_RELAXED, false }, // Citizens only. Never aims. + { ACT_WALK_STIMULATED, ACT_WALK_AR2_STIMULATED, false }, + { ACT_WALK_AGITATED, ACT_WALK_AIM_AR2, false }, // Citizens only. Always aims. + + { ACT_RUN_RELAXED, ACT_RUN_AR2_RELAXED, false }, // Citizens only. Never aims. + { ACT_RUN_STIMULATED, ACT_RUN_AR2_STIMULATED, false }, + { ACT_RUN_AGITATED, ACT_RUN_AIM_AR2, false }, // Citizens only. Always aims. + + // Readiness activities (aiming) + { ACT_IDLE_AIM_RELAXED, ACT_IDLE_AR2_RELAXED, false }, // Citizens only. Never aims. + { ACT_IDLE_AIM_STIMULATED, ACT_IDLE_AIM_AR2_STIMULATED, false }, + { ACT_IDLE_AIM_AGITATED, ACT_IDLE_ANGRY_AR2, false }, // Citizens only. Always aims. + + { ACT_WALK_AIM_RELAXED, ACT_WALK_AR2_RELAXED, false }, // Citizens only. Never aims. + { ACT_WALK_AIM_STIMULATED, ACT_WALK_AIM_AR2_STIMULATED, false }, + { ACT_WALK_AIM_AGITATED, ACT_WALK_AIM_AR2, false }, // Citizens only. Always aims. + + { ACT_RUN_AIM_RELAXED, ACT_RUN_AR2_RELAXED, false }, // Citizens only. Never aims. + { ACT_RUN_AIM_STIMULATED, ACT_RUN_AIM_AR2_STIMULATED, false }, + { ACT_RUN_AIM_AGITATED, ACT_RUN_AIM_AR2, false }, // Citizens only. Always aims. + //End readiness activities + + { ACT_WALK_AIM, ACT_WALK_AIM_AR2, true }, + { ACT_WALK_CROUCH, ACT_WALK_CROUCH_RIFLE, true }, // This doesn't have unique Citizen anims. + { ACT_WALK_CROUCH_AIM, ACT_WALK_CROUCH_AIM_RIFLE, true }, // This doesn't have unique Citizen anims. + { ACT_RUN, ACT_RUN_AR2, true }, + { ACT_RUN_AIM, ACT_RUN_AIM_AR2_STIMULATED, true }, // Exists, but only for stimulated readiness. + { ACT_RUN_CROUCH, ACT_RUN_CROUCH_RIFLE, true }, // This doesn't have unique Citizen anims. + { ACT_RUN_CROUCH_AIM, ACT_RUN_CROUCH_AIM_RIFLE, true }, // This doesn't have unique Citizen anims. { ACT_GESTURE_RANGE_ATTACK1, ACT_GESTURE_RANGE_ATTACK_AR2, false }, - { ACT_COVER_LOW, ACT_COVER_SMG1_LOW, false }, // FIXME: hook to AR2 unique + { ACT_COVER_LOW, ACT_COVER_LOW, false }, // No unique activity ID. ACT_COVER_LOW for both Citizens and Soldiers. { ACT_RANGE_AIM_LOW, ACT_RANGE_AIM_AR2_LOW, false }, - { ACT_RANGE_ATTACK1_LOW, ACT_RANGE_ATTACK_SMG1_LOW, true }, // FIXME: hook to AR2 unique - { ACT_RELOAD_LOW, ACT_RELOAD_SMG1_LOW, false }, - { ACT_GESTURE_RELOAD, ACT_GESTURE_RELOAD_SMG1, true }, -// { ACT_RANGE_ATTACK2, ACT_RANGE_ATTACK_AR2_GRENADE, true }, + { ACT_RANGE_ATTACK1_LOW, ACT_RANGE_ATTACK_AR2_LOW, true }, + { ACT_RELOAD_LOW, ACT_RELOAD_SMG1_LOW, false }, // No unique activity ID for both Citizens and Soldiers. + { ACT_GESTURE_RELOAD, ACT_GESTURE_RELOAD_AR2, true }, }; IMPLEMENT_ACTTABLE(CWeaponAR2); From d3ff838e3d0a2fc67f35cb9ef2500a18e887beeb Mon Sep 17 00:00:00 2001 From: pivotman319 Date: Sat, 31 May 2025 16:52:21 +0200 Subject: [PATCH 02/10] Add AR2 activities to ai_activity.h These are present in Combine Soldier and Citizen animations but are never used as ai_activity never declared them --- src/game/shared/ai_activity.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/game/shared/ai_activity.h b/src/game/shared/ai_activity.h index 3702cb839e9..2b88def99ef 100644 --- a/src/game/shared/ai_activity.h +++ b/src/game/shared/ai_activity.h @@ -343,6 +343,7 @@ typedef enum ACT_RANGE_ATTACK_AR2, ACT_RANGE_ATTACK_AR2_LOW, ACT_RANGE_ATTACK_AR2_GRENADE, + ACT_COMBINE_AR2_ALTFIRE, // ar2 energy ball ACT_RANGE_ATTACK_HMG1, ACT_RANGE_ATTACK_ML, ACT_RANGE_ATTACK_SMG1, @@ -387,7 +388,9 @@ typedef enum ACT_IDLE_RIFLE, ACT_IDLE_SMG1, + ACT_IDLE_AR2, ACT_IDLE_ANGRY_SMG1, + ACT_IDLE_ANGRY_AR2, ACT_IDLE_PISTOL, ACT_IDLE_ANGRY_PISTOL, ACT_IDLE_ANGRY_SHOTGUN, @@ -400,11 +403,20 @@ typedef enum ACT_IDLE_SMG1_RELAXED, ACT_IDLE_SMG1_STIMULATED, + ACT_IDLE_AR2_RELAXED, + ACT_IDLE_AR2_STIMULATED, + ACT_WALK_AR2_RELAXED, + ACT_RUN_AR2_RELAXED, + ACT_WALK_AR2_STIMULATED, + ACT_RUN_AR2_STIMULATED, ACT_WALK_RIFLE_RELAXED, ACT_RUN_RIFLE_RELAXED, ACT_WALK_RIFLE_STIMULATED, ACT_RUN_RIFLE_STIMULATED, + ACT_IDLE_AIM_AR2_STIMULATED, + ACT_WALK_AIM_AR2_STIMULATED, + ACT_RUN_AIM_AR2_STIMULATED, ACT_IDLE_AIM_RIFLE_STIMULATED, ACT_WALK_AIM_RIFLE_STIMULATED, ACT_RUN_AIM_RIFLE_STIMULATED, @@ -441,6 +453,12 @@ typedef enum ACT_WALK_AIM_RIFLE, ACT_WALK_CROUCH_RIFLE, ACT_WALK_CROUCH_AIM_RIFLE, + ACT_WALK_AR2, + ACT_WALK_AIM_AR2, + ACT_WALK_CROUCH_AR2, + ACT_WALK_CROUCH_AIM_AR2, + ACT_RUN_AR2, + ACT_RUN_AIM_AR2, ACT_RUN_RIFLE, ACT_RUN_AIM_RIFLE, ACT_RUN_CROUCH_RIFLE, @@ -463,12 +481,15 @@ typedef enum ACT_RELOAD_PISTOL_LOW, ACT_RELOAD_SMG1, ACT_RELOAD_SMG1_LOW, + ACT_RELOAD_AR2, + ACT_RELOAD_AR2_LOW, ACT_RELOAD_SHOTGUN, ACT_RELOAD_SHOTGUN_LOW, ACT_GESTURE_RELOAD, ACT_GESTURE_RELOAD_PISTOL, ACT_GESTURE_RELOAD_SMG1, + ACT_GESTURE_RELOAD_AR2, ACT_GESTURE_RELOAD_SHOTGUN, // Busy animations From cd6c26502a413a9b95c0074a043de06a52e6ca14 Mon Sep 17 00:00:00 2001 From: pivotman319 Date: Sat, 31 May 2025 16:57:45 +0200 Subject: [PATCH 03/10] Remove dupe reference for ACT_COMBINE_AR2_ALTFIRE as it is now defined in ai_activity.h --- src/game/server/hl2/npc_combine.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/game/server/hl2/npc_combine.cpp b/src/game/server/hl2/npc_combine.cpp index fb335e679e0..2caed4dfb8d 100644 --- a/src/game/server/hl2/npc_combine.cpp +++ b/src/game/server/hl2/npc_combine.cpp @@ -94,7 +94,6 @@ int COMBINE_AE_ALTFIRE; Activity ACT_COMBINE_THROW_GRENADE; Activity ACT_COMBINE_LAUNCH_GRENADE; Activity ACT_COMBINE_BUGBAIT; -Activity ACT_COMBINE_AR2_ALTFIRE; Activity ACT_WALK_EASY; Activity ACT_WALK_MARCH; @@ -3303,7 +3302,6 @@ DECLARE_TASK( TASK_COMBINE_SET_STANDING ) DECLARE_ACTIVITY( ACT_COMBINE_THROW_GRENADE ) DECLARE_ACTIVITY( ACT_COMBINE_LAUNCH_GRENADE ) DECLARE_ACTIVITY( ACT_COMBINE_BUGBAIT ) -DECLARE_ACTIVITY( ACT_COMBINE_AR2_ALTFIRE ) DECLARE_ACTIVITY( ACT_WALK_EASY ) DECLARE_ACTIVITY( ACT_WALK_MARCH ) From 715a109193ed92b38a5dfe8501540aafe49df7c0 Mon Sep 17 00:00:00 2001 From: pivotman319 Date: Sat, 31 May 2025 19:27:11 +0200 Subject: [PATCH 04/10] final activity fixes --- src/game/server/ai_activity.cpp | 27 ++++++++++++++++++++++++++- src/game/shared/activitylist.cpp | 15 +++++++++++++++ src/game/shared/ai_activity.h | 3 +-- 3 files changed, 42 insertions(+), 3 deletions(-) diff --git a/src/game/server/ai_activity.cpp b/src/game/server/ai_activity.cpp index 3e620df68f0..5e4f30568d7 100644 --- a/src/game/server/ai_activity.cpp +++ b/src/game/server/ai_activity.cpp @@ -403,6 +403,7 @@ void CAI_BaseNPC::InitDefaultActivitySR(void) ADD_ACTIVITY_TO_SR( ACT_RANGE_ATTACK_AR2 ); ADD_ACTIVITY_TO_SR( ACT_RANGE_ATTACK_AR2_LOW ); ADD_ACTIVITY_TO_SR( ACT_RANGE_ATTACK_AR2_GRENADE ); + ADD_ACTIVITY_TO_SR( ACT_COMBINE_AR2_ALTFIRE ); ADD_ACTIVITY_TO_SR( ACT_RANGE_ATTACK_HMG1 ); ADD_ACTIVITY_TO_SR( ACT_RANGE_ATTACK_ML ); ADD_ACTIVITY_TO_SR( ACT_RANGE_ATTACK_SMG1 ); @@ -420,11 +421,12 @@ void CAI_BaseNPC::InitDefaultActivitySR(void) ADD_ACTIVITY_TO_SR( ACT_MELEE_ATTACK_SWING ); ADD_ACTIVITY_TO_SR( ACT_RANGE_AIM_LOW ); + ADD_ACTIVITY_TO_SR( ACT_RANGE_AIM_AR2_LOW ); ADD_ACTIVITY_TO_SR( ACT_RANGE_AIM_SMG1_LOW ); ADD_ACTIVITY_TO_SR( ACT_RANGE_AIM_PISTOL_LOW ); - ADD_ACTIVITY_TO_SR( ACT_RANGE_AIM_AR2_LOW ); ADD_ACTIVITY_TO_SR( ACT_COVER_PISTOL_LOW ); + ADD_ACTIVITY_TO_SR( ACT_COVER_AR2_LOW ); ADD_ACTIVITY_TO_SR( ACT_COVER_SMG1_LOW ); ADD_ACTIVITY_TO_SR( ACT_GESTURE_RANGE_ATTACK_AR1 ); @@ -445,7 +447,9 @@ void CAI_BaseNPC::InitDefaultActivitySR(void) ADD_ACTIVITY_TO_SR( ACT_GESTURE_MELEE_ATTACK_SWING ); ADD_ACTIVITY_TO_SR( ACT_IDLE_RIFLE ); + ADD_ACTIVITY_TO_SR( ACT_IDLE_AR2 ); ADD_ACTIVITY_TO_SR( ACT_IDLE_SMG1 ); + ADD_ACTIVITY_TO_SR( ACT_IDLE_ANGRY_AR2 ); ADD_ACTIVITY_TO_SR( ACT_IDLE_ANGRY_SMG1 ); ADD_ACTIVITY_TO_SR( ACT_IDLE_PISTOL ); ADD_ACTIVITY_TO_SR( ACT_IDLE_ANGRY_PISTOL ); @@ -457,14 +461,32 @@ void CAI_BaseNPC::InitDefaultActivitySR(void) ADD_ACTIVITY_TO_SR( ACT_IDLE_SUITCASE ); ADD_ACTIVITY_TO_SR( ACT_WALK_SUITCASE ); + ADD_ACTIVITY_TO_SR( ACT_IDLE_AR2_RELAXED ); + ADD_ACTIVITY_TO_SR( ACT_IDLE_AR2_STIMULATED ); + ADD_ACTIVITY_TO_SR( ACT_IDLE_SMG1_RELAXED ); ADD_ACTIVITY_TO_SR( ACT_IDLE_SMG1_STIMULATED ); + ADD_ACTIVITY_TO_SR( ACT_WALK_AR2_RELAXED ); + ADD_ACTIVITY_TO_SR( ACT_RUN_AR2_RELAXED ); + ADD_ACTIVITY_TO_SR( ACT_WALK_AR2_STIMULATED ); + ADD_ACTIVITY_TO_SR( ACT_RUN_AR2_STIMULATED ); + + ADD_ACTIVITY_TO_SR( ACT_WALK_AR2 ); + ADD_ACTIVITY_TO_SR( ACT_WALK_AIM_AR2 ); + ADD_ACTIVITY_TO_SR( ACT_WALK_CROUCH_AIM_RIFLE ); + ADD_ACTIVITY_TO_SR( ACT_RUN_AR2 ); + ADD_ACTIVITY_TO_SR( ACT_RUN_AIM_AR2 ); + ADD_ACTIVITY_TO_SR( ACT_WALK_RIFLE_RELAXED ); ADD_ACTIVITY_TO_SR( ACT_RUN_RIFLE_RELAXED ); ADD_ACTIVITY_TO_SR( ACT_WALK_RIFLE_STIMULATED ); ADD_ACTIVITY_TO_SR( ACT_RUN_RIFLE_STIMULATED ); + ADD_ACTIVITY_TO_SR( ACT_IDLE_AIM_AR2_STIMULATED ); + ADD_ACTIVITY_TO_SR( ACT_WALK_AIM_AR2_STIMULATED ); + ADD_ACTIVITY_TO_SR( ACT_RUN_AIM_AR2_STIMULATED ); + ADD_ACTIVITY_TO_SR( ACT_IDLE_AIM_RIFLE_STIMULATED ); ADD_ACTIVITY_TO_SR( ACT_WALK_AIM_RIFLE_STIMULATED ); ADD_ACTIVITY_TO_SR( ACT_RUN_AIM_RIFLE_STIMULATED ); @@ -522,11 +544,14 @@ void CAI_BaseNPC::InitDefaultActivitySR(void) ADD_ACTIVITY_TO_SR( ACT_RELOAD_PISTOL_LOW ); ADD_ACTIVITY_TO_SR( ACT_RELOAD_SMG1 ); ADD_ACTIVITY_TO_SR( ACT_RELOAD_SMG1_LOW ); + ADD_ACTIVITY_TO_SR( ACT_RELOAD_AR2 ); + ADD_ACTIVITY_TO_SR( ACT_RELOAD_AR2_LOW ); ADD_ACTIVITY_TO_SR( ACT_RELOAD_SHOTGUN ); ADD_ACTIVITY_TO_SR( ACT_RELOAD_SHOTGUN_LOW ); ADD_ACTIVITY_TO_SR( ACT_GESTURE_RELOAD ); ADD_ACTIVITY_TO_SR( ACT_GESTURE_RELOAD_PISTOL ); + ADD_ACTIVITY_TO_SR( ACT_GESTURE_RELOAD_AR2 ); ADD_ACTIVITY_TO_SR( ACT_GESTURE_RELOAD_SMG1 ); ADD_ACTIVITY_TO_SR( ACT_GESTURE_RELOAD_SHOTGUN ); diff --git a/src/game/shared/activitylist.cpp b/src/game/shared/activitylist.cpp index edfcb66bb01..4d52f3a3962 100644 --- a/src/game/shared/activitylist.cpp +++ b/src/game/shared/activitylist.cpp @@ -532,17 +532,20 @@ void ActivityList_RegisterSharedActivities( void ) REGISTER_SHARED_ACTIVITY( ACT_MELEE_ATTACK_SWING ); REGISTER_SHARED_ACTIVITY( ACT_RANGE_AIM_LOW ); + REGISTER_SHARED_ACTIVITY( ACT_RANGE_AIM_AR2_LOW ); REGISTER_SHARED_ACTIVITY( ACT_RANGE_AIM_SMG1_LOW ); REGISTER_SHARED_ACTIVITY( ACT_RANGE_AIM_PISTOL_LOW ); REGISTER_SHARED_ACTIVITY( ACT_RANGE_AIM_AR2_LOW ); REGISTER_SHARED_ACTIVITY( ACT_COVER_PISTOL_LOW ); + REGISTER_SHARED_ACTIVITY( ACT_COVER_AR2_LOW ); REGISTER_SHARED_ACTIVITY( ACT_COVER_SMG1_LOW ); // weapon override activities REGISTER_SHARED_ACTIVITY( ACT_GESTURE_RANGE_ATTACK_AR1 ); REGISTER_SHARED_ACTIVITY( ACT_GESTURE_RANGE_ATTACK_AR2 ); REGISTER_SHARED_ACTIVITY( ACT_GESTURE_RANGE_ATTACK_AR2_GRENADE ); + REGISTER_SHARED_ACTIVITY( ACT_COMBINE_AR2_ALTFIRE ); // ar2 energy ball REGISTER_SHARED_ACTIVITY( ACT_GESTURE_RANGE_ATTACK_HMG1 ); REGISTER_SHARED_ACTIVITY( ACT_GESTURE_RANGE_ATTACK_ML ); REGISTER_SHARED_ACTIVITY( ACT_GESTURE_RANGE_ATTACK_SMG1 ); @@ -558,6 +561,8 @@ void ActivityList_RegisterSharedActivities( void ) REGISTER_SHARED_ACTIVITY( ACT_GESTURE_MELEE_ATTACK_SWING ); REGISTER_SHARED_ACTIVITY( ACT_IDLE_RIFLE ); + REGISTER_SHARED_ACTIVITY( ACT_IDLE_AR2 ); + REGISTER_SHARED_ACTIVITY( ACT_IDLE_ANGRY_AR2 ); REGISTER_SHARED_ACTIVITY( ACT_IDLE_SMG1 ); REGISTER_SHARED_ACTIVITY( ACT_IDLE_ANGRY_SMG1 ); REGISTER_SHARED_ACTIVITY( ACT_IDLE_PISTOL ); @@ -570,6 +575,13 @@ void ActivityList_RegisterSharedActivities( void ) REGISTER_SHARED_ACTIVITY( ACT_IDLE_SUITCASE ); REGISTER_SHARED_ACTIVITY( ACT_WALK_SUITCASE ); + REGISTER_SHARED_ACTIVITY( ACT_IDLE_AR2_RELAXED ); + REGISTER_SHARED_ACTIVITY( ACT_IDLE_AR2_STIMULATED ); + REGISTER_SHARED_ACTIVITY( ACT_WALK_AR2_RELAXED ); + REGISTER_SHARED_ACTIVITY( ACT_RUN_AR2_RELAXED ); + REGISTER_SHARED_ACTIVITY( ACT_WALK_AR2_STIMULATED ); + REGISTER_SHARED_ACTIVITY( ACT_RUN_AR2_STIMULATED ); + REGISTER_SHARED_ACTIVITY( ACT_IDLE_SMG1_RELAXED ); REGISTER_SHARED_ACTIVITY( ACT_IDLE_SMG1_STIMULATED ); @@ -634,6 +646,8 @@ void ActivityList_RegisterSharedActivities( void ) // Reloads REGISTER_SHARED_ACTIVITY( ACT_RELOAD_PISTOL ); REGISTER_SHARED_ACTIVITY( ACT_RELOAD_PISTOL_LOW ); + REGISTER_SHARED_ACTIVITY( ACT_RELOAD_AR2 ); + REGISTER_SHARED_ACTIVITY( ACT_RELOAD_AR2_LOW ); REGISTER_SHARED_ACTIVITY( ACT_RELOAD_SMG1 ); REGISTER_SHARED_ACTIVITY( ACT_RELOAD_SMG1_LOW ); REGISTER_SHARED_ACTIVITY( ACT_RELOAD_SHOTGUN ); @@ -641,6 +655,7 @@ void ActivityList_RegisterSharedActivities( void ) REGISTER_SHARED_ACTIVITY( ACT_GESTURE_RELOAD ); REGISTER_SHARED_ACTIVITY( ACT_GESTURE_RELOAD_PISTOL ); + REGISTER_SHARED_ACTIVITY( ACT_GESTURE_RELOAD_AR2 ); REGISTER_SHARED_ACTIVITY( ACT_GESTURE_RELOAD_SMG1 ); REGISTER_SHARED_ACTIVITY( ACT_GESTURE_RELOAD_SHOTGUN ); diff --git a/src/game/shared/ai_activity.h b/src/game/shared/ai_activity.h index 2b88def99ef..3a92566235e 100644 --- a/src/game/shared/ai_activity.h +++ b/src/game/shared/ai_activity.h @@ -366,6 +366,7 @@ typedef enum ACT_RANGE_AIM_AR2_LOW, ACT_COVER_PISTOL_LOW, + ACT_COVER_AR2_LOW, ACT_COVER_SMG1_LOW, // weapon override activities @@ -455,8 +456,6 @@ typedef enum ACT_WALK_CROUCH_AIM_RIFLE, ACT_WALK_AR2, ACT_WALK_AIM_AR2, - ACT_WALK_CROUCH_AR2, - ACT_WALK_CROUCH_AIM_AR2, ACT_RUN_AR2, ACT_RUN_AIM_AR2, ACT_RUN_RIFLE, From 065fea24ff11a691c4cb2154eebf385385f0dd01 Mon Sep 17 00:00:00 2001 From: pivotman319 Date: Sat, 31 May 2025 22:05:55 +0200 Subject: [PATCH 05/10] oversighted ACT_RUN_AIM_AR2_STIMULATED --- src/game/shared/activitylist.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/game/shared/activitylist.cpp b/src/game/shared/activitylist.cpp index 4d52f3a3962..3644900031e 100644 --- a/src/game/shared/activitylist.cpp +++ b/src/game/shared/activitylist.cpp @@ -581,6 +581,7 @@ void ActivityList_RegisterSharedActivities( void ) REGISTER_SHARED_ACTIVITY( ACT_RUN_AR2_RELAXED ); REGISTER_SHARED_ACTIVITY( ACT_WALK_AR2_STIMULATED ); REGISTER_SHARED_ACTIVITY( ACT_RUN_AR2_STIMULATED ); + REGISTER_SHARED_ACTIVITY( ACT_RUN_AIM_AR2_STIMULATED ); REGISTER_SHARED_ACTIVITY( ACT_IDLE_SMG1_RELAXED ); REGISTER_SHARED_ACTIVITY( ACT_IDLE_SMG1_STIMULATED ); From 08b7cfe15cd3dd79771e83a2d1a70a1a52ff04d6 Mon Sep 17 00:00:00 2001 From: pivotman319 Date: Sat, 31 May 2025 22:38:08 +0200 Subject: [PATCH 06/10] fix accidental dupe of ACT_RANGE_AIM_AR2_LOW in activitylist.cpp --- src/game/shared/activitylist.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/game/shared/activitylist.cpp b/src/game/shared/activitylist.cpp index 3644900031e..3cab88a7469 100644 --- a/src/game/shared/activitylist.cpp +++ b/src/game/shared/activitylist.cpp @@ -535,7 +535,6 @@ void ActivityList_RegisterSharedActivities( void ) REGISTER_SHARED_ACTIVITY( ACT_RANGE_AIM_AR2_LOW ); REGISTER_SHARED_ACTIVITY( ACT_RANGE_AIM_SMG1_LOW ); REGISTER_SHARED_ACTIVITY( ACT_RANGE_AIM_PISTOL_LOW ); - REGISTER_SHARED_ACTIVITY( ACT_RANGE_AIM_AR2_LOW ); REGISTER_SHARED_ACTIVITY( ACT_COVER_PISTOL_LOW ); REGISTER_SHARED_ACTIVITY( ACT_COVER_AR2_LOW ); From 0ddcc9a5d51974a73c8dd813607ca97867c4ba72 Mon Sep 17 00:00:00 2001 From: pivotman319 Date: Sat, 31 May 2025 23:12:34 +0200 Subject: [PATCH 07/10] add missing activities ACT_RUN_AR2, ACT_WALK_AR2 to activitylist registration --- src/game/shared/activitylist.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/game/shared/activitylist.cpp b/src/game/shared/activitylist.cpp index 3cab88a7469..8e718755a93 100644 --- a/src/game/shared/activitylist.cpp +++ b/src/game/shared/activitylist.cpp @@ -576,8 +576,10 @@ void ActivityList_RegisterSharedActivities( void ) REGISTER_SHARED_ACTIVITY( ACT_IDLE_AR2_RELAXED ); REGISTER_SHARED_ACTIVITY( ACT_IDLE_AR2_STIMULATED ); - REGISTER_SHARED_ACTIVITY( ACT_WALK_AR2_RELAXED ); + REGISTER_SHARED_ACTIVITY( ACT_RUN_AR2 ); + REGISTER_SHARED_ACTIVITY( ACT_WALK_AR2 ); REGISTER_SHARED_ACTIVITY( ACT_RUN_AR2_RELAXED ); + REGISTER_SHARED_ACTIVITY( ACT_WALK_AR2_RELAXED ); REGISTER_SHARED_ACTIVITY( ACT_WALK_AR2_STIMULATED ); REGISTER_SHARED_ACTIVITY( ACT_RUN_AR2_STIMULATED ); REGISTER_SHARED_ACTIVITY( ACT_RUN_AIM_AR2_STIMULATED ); From 054f79d5f3e5989f875cd440d0e33e739bdeb56a Mon Sep 17 00:00:00 2001 From: pivotman319 Date: Sun, 1 Jun 2025 03:14:56 +0200 Subject: [PATCH 08/10] Fix Combine soldier movement w/ new AR2 anims by repurposing citizen shotgun activity replacement code from CNPC_Citizen::NPC_TranslateActivity() into CNPC_Combine::NPC_TranslateActivity() --- src/game/server/hl2/npc_combine.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/game/server/hl2/npc_combine.cpp b/src/game/server/hl2/npc_combine.cpp index 2caed4dfb8d..717b1402c6e 100644 --- a/src/game/server/hl2/npc_combine.cpp +++ b/src/game/server/hl2/npc_combine.cpp @@ -1338,6 +1338,18 @@ Activity CNPC_Combine::NPC_TranslateActivity( Activity eNewActivity ) } } + // ugly hack for ar2 anims + if ( eNewActivity == ACT_RUN_AR2 ) + return ( Activity )ACT_RUN_RIFLE; + if ( eNewActivity == ACT_RUN_AIM_AR2 ) + return ( Activity )ACT_RUN_AIM_RIFLE; + if ( eNewActivity == ACT_RUN_AIM_AR2_STIMULATED) + return ( Activity )ACT_RUN_AIM_RIFLE; + if ( eNewActivity == ACT_WALK_AIM_AR2 ) + return ( Activity )ACT_WALK_AIM_RIFLE; + if ( eNewActivity == ACT_IDLE_ANGRY_AR2 ) + return ( Activity )ACT_IDLE_ANGRY; + return BaseClass::NPC_TranslateActivity( eNewActivity ); } From 554ea336121791dea85bbfa7fad8cc7f4266a56f Mon Sep 17 00:00:00 2001 From: pivotman319 Date: Sun, 1 Jun 2025 03:26:12 +0200 Subject: [PATCH 09/10] same thing as previous commit but with ACT_WALK_AR2 added --- src/game/server/hl2/npc_combine.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/game/server/hl2/npc_combine.cpp b/src/game/server/hl2/npc_combine.cpp index 717b1402c6e..a1002c9abf2 100644 --- a/src/game/server/hl2/npc_combine.cpp +++ b/src/game/server/hl2/npc_combine.cpp @@ -1345,6 +1345,8 @@ Activity CNPC_Combine::NPC_TranslateActivity( Activity eNewActivity ) return ( Activity )ACT_RUN_AIM_RIFLE; if ( eNewActivity == ACT_RUN_AIM_AR2_STIMULATED) return ( Activity )ACT_RUN_AIM_RIFLE; + if ( eNewActivity == ACT_WALK_AR2 ) + return ( Activity )ACT_WALK_RIFLE; if ( eNewActivity == ACT_WALK_AIM_AR2 ) return ( Activity )ACT_WALK_AIM_RIFLE; if ( eNewActivity == ACT_IDLE_ANGRY_AR2 ) From 015612e62a874ec7f12387caf21ec99ae537080a Mon Sep 17 00:00:00 2001 From: pivotman319 Date: Sun, 1 Jun 2025 04:02:20 +0200 Subject: [PATCH 10/10] Improve handling code for missing shotgun anim replacement in npc_citizen, use switch for soldier AR2 anim substitutes --- src/game/server/hl2/npc_citizen17.cpp | 26 ++++++++++++++------- src/game/server/hl2/npc_combine.cpp | 33 ++++++++++++++++----------- 2 files changed, 38 insertions(+), 21 deletions(-) diff --git a/src/game/server/hl2/npc_citizen17.cpp b/src/game/server/hl2/npc_citizen17.cpp index adb9eb8ca5f..6719a8b06cd 100644 --- a/src/game/server/hl2/npc_citizen17.cpp +++ b/src/game/server/hl2/npc_citizen17.cpp @@ -1843,14 +1843,24 @@ Activity CNPC_Citizen::NPC_TranslateActivity( Activity activity ) // !!!HACK - Citizens don't have the required animations for shotguns, // so trick them into using the rifle counterparts for now (sjb) - if ( activity == ACT_RUN_AIM_SHOTGUN ) - return ACT_RUN_AIM_RIFLE; - if ( activity == ACT_WALK_AIM_SHOTGUN ) - return ACT_WALK_AIM_RIFLE; - if ( activity == ACT_IDLE_ANGRY_SHOTGUN ) - return ACT_IDLE_ANGRY_SMG1; - if ( activity == ACT_RANGE_ATTACK_SHOTGUN_LOW ) - return ACT_RANGE_ATTACK_SMG1_LOW; + switch ( activity ) + { + case ACT_RUN_AIM_AR2: + activity = ACT_RUN_AIM_AR2_STIMULATED; + break; + case ACT_RUN_AIM_SHOTGUN: + activity = ACT_RUN_AIM_RIFLE; + break; + case ACT_WALK_AIM_SHOTGUN: + activity = ACT_WALK_AIM_RIFLE; + break; + case ACT_IDLE_ANGRY_SHOTGUN: + activity = ACT_IDLE_ANGRY_SMG1; + break; + case ACT_RANGE_ATTACK_SHOTGUN_LOW: + activity = ACT_RANGE_ATTACK_SMG1_LOW; + break; + } return BaseClass::NPC_TranslateActivity( activity ); } diff --git a/src/game/server/hl2/npc_combine.cpp b/src/game/server/hl2/npc_combine.cpp index a1002c9abf2..234d9aee4cb 100644 --- a/src/game/server/hl2/npc_combine.cpp +++ b/src/game/server/hl2/npc_combine.cpp @@ -1338,19 +1338,26 @@ Activity CNPC_Combine::NPC_TranslateActivity( Activity eNewActivity ) } } - // ugly hack for ar2 anims - if ( eNewActivity == ACT_RUN_AR2 ) - return ( Activity )ACT_RUN_RIFLE; - if ( eNewActivity == ACT_RUN_AIM_AR2 ) - return ( Activity )ACT_RUN_AIM_RIFLE; - if ( eNewActivity == ACT_RUN_AIM_AR2_STIMULATED) - return ( Activity )ACT_RUN_AIM_RIFLE; - if ( eNewActivity == ACT_WALK_AR2 ) - return ( Activity )ACT_WALK_RIFLE; - if ( eNewActivity == ACT_WALK_AIM_AR2 ) - return ( Activity )ACT_WALK_AIM_RIFLE; - if ( eNewActivity == ACT_IDLE_ANGRY_AR2 ) - return ( Activity )ACT_IDLE_ANGRY; + // ugly hack for ar2 anims + switch (eNewActivity) + { + case ACT_RUN_AR2: + eNewActivity = ACT_RUN_RIFLE; + break; + case ACT_RUN_AIM_AR2: + case ACT_RUN_AIM_AR2_STIMULATED: + eNewActivity = ACT_RUN_AIM_RIFLE; + break; + case ACT_WALK_AR2: + eNewActivity = ACT_WALK_RIFLE; + break; + case ACT_WALK_AIM_AR2: + eNewActivity = ACT_WALK_AIM_RIFLE; + break; + case ACT_IDLE_ANGRY_AR2: + eNewActivity = ACT_IDLE_ANGRY; + break; + } return BaseClass::NPC_TranslateActivity( eNewActivity ); }