Source-1-Games
Source-1-Games copied to clipboard
[TF2] Activity remap tables cause animation issues for ACT_MP_FALLING_STOMP
The following notes address all the issues that can occur during stock gameplay. Naturally, with server modifications, even more of these remaps may be incorrect/missing, but that's outside the scope of this ticket. There are potentially also other activities that have similar issues with activity remap tables, but those are also outside the scope of this ticket.
Context:
-
ACT_MP_FALLING_STOMPis an activity that gets set in CTFPlayerAnimState::HandleJumping() when a player has a Z velocity under -580 andCTFPlayerShared::CanFallStomp()returns true (among other requirements).-
CTFPlayerShared::CanFallStomp()returns true if the player hasTF_COND_ROCKETPACK(e.g. from the Thermal Thruster's ability) or the attributeboots_falling_stomp(e.g. from the Mantreads)
-
-
s_acttableMeleeremapsACT_MP_FALLING_STOMPtoACT_MP_FALLING_STOMP_MELEE.- This remap table is used for most non-all-class melee weapons.
-
s_acttablePrimaryremapsACT_MP_FALLING_STOMPtoACT_MP_FALLING_STOMP_PRIMARY.- This remap table is used for all Pyro flamethrowers and most of the Soldier rocket launchers.
-
s_acttablePrimary2does not remapACT_MP_FALLING_STOMPtoACT_MP_FALLING_STOMP_PRIMARY.- This remap table is used for, among other things, the Cow Mangler.
-
s_acttableMeleeAllclassdoes not remapACT_MP_FALLING_STOMPtoACT_MP_FALLING_STOMP_MELEE.- This remap table is used for most all-class melee weapons, as well as the Hot Hand.
-
s_acttableItem4does not remapACT_MP_FALLING_STOMPto anything.- This remap table is used for, among other things, the Thermal Thruster.
- In
soldier_animations.mdl, the sequencesprimary_fall_stomp_Aandprimary_fall_stomp_Bare both assigned activityACT_MP_FALLING_STOMP_PRIMARY - In
soldier_animations.mdl, the sequencemelee_fall_stompis assigned activityACT_MP_FALLING_STOMP_MELEE - In
pyro_animations.mdl, the sequencestomp_ITEM4is assigned activityACT_MP_FALLING_STOMP
Issues:
- As a Soldier with the Mantreads equipped and the Cow Mangler as the active weapon, activating the conditions to trigger
ACT_MP_FALLING_STOMPresults in the character ref-posing for the duration of the activity, due tos_acttablePrimary2missing the remap toACT_MP_FALLING_STOMP_PRIMARY. None of the Soldier's sequences are assignedACT_MP_FALLING_STOMP, so the ref-pose occurs. - As a Soldier with the Mantreads and any all-class melee weapon (e.g. the Ham Shank) as the active weapon, activating the conditions to trigger
ACT_MP_FALLING_STOMPresults in the character ref-posing for the duration of the activity, due tos_acttableMeleeAllclassmissing the remap toACT_MP_FALLING_STOMP_MELEE. None of the Soldier's sequences are assignedACT_MP_FALLING_STOMP, so the ref-pose occurs. Note that this does not occur for non-all-class melee items, as the remap exists for those. - As a Pyro with the Thermal Thruster, activating the conditions to trigger
ACT_MP_FALLING_STOMP(e.g. using the Thermal Thruster to gainTF_COND_ROCKETPACK) and then switching to the Pyro's primary weapon (e.g. any Flamethrower) results in the character ref-posing for the duration of the activity, due tos_acttablePrimaryremapping it toACT_MP_FALLING_STOMP_PRIMARY. None of the Pyro's sequences are assignedACT_MP_FALLING_STOMP_PRIMARY, so the ref-pose occurs. - As a Pyro with the Thermal Thruster, activating the conditions to trigger
ACT_MP_FALLING_STOMP(e.g. using the Thermal Thruster to gainTF_COND_ROCKETPACK) and then switching to the Pyro's melee weapon (excluding all-class melee weapons and the Hot Hand) results in the character ref-posing for the duration of the activity, due tos_acttableMeleeremapping it toACT_MP_FALLING_STOMP_MELEE. None of the Pyro's sequences are assignedACT_MP_FALLING_STOMP_MELEE, so the ref-pose occurs. Note that this does not occur for all-class Melee items or the Hot Hand, as it is missing the remap. - Separately, the Soldier's sequence
melee_fall_stompseems to be using a Rocket Launcher animation, instead of an appropriate melee animation.
Fixes:
-
s_acttablePrimary2should contain the remap forACT_MP_FALLING_STOMPtoACT_MP_FALLING_STOMP_PRIMARY -
s_acttableMeleeAllclassshould contain the remap forACT_MP_FALLING_STOMPtoACT_MP_FALLING_STOMP_MELEE -
pyro_animations.mdlshould contain a duplicate sequence of e.g.airwalk_PRIMARYthat is assigned the activityACT_MP_FALLING_STOMP_PRIMARY; no other sequences seem to fit the feature, so a regular airwalk animation during this activity will suffice.- Note that a duplicate is necessary because a sequence may only have one activity assigned to it.
-
pyro_animations.mdlshould change the activity assigned to the sequencestomp_ITEM4fromACT_MP_FALLING_STOMPtoACT_MP_FALLING_STOMP_MELEE. This animation works passably for melee weapons (in addition to its intended use with the Thermal Thruster). The alternate option is to duplicateairwalk_MELEEfor this case.- As a part of this,
s_acttableItem4should gain a remap fromACT_MP_FALLING_STOMPtoACT_MP_FALLING_STOMP_MELEEso that the Thermal Thruster doesn't break with the activity reassignment. - Potentially, both
soldier_animations.mdlandpyro_animations.mdlshould contain a fallback sequence assigned toACT_MP_FALLING_STOMPso that if a remap doesn't exist for a given item, the ref-pose can be avoided. A duplicate of any of theairwalk- orstomp-related sequences should suffice.
- As a part of this,
- The Soldier
melee_fall_stompanimation should probably be reworked in some way.
More animations fixes! nice:)