1414#else
1515#include " hl2mp_player.h"
1616#endif
17+ #ifdef MAPBASE
18+ #include " weapon_physcannon.h"
19+ #include " hl2mp_gamerules.h"
20+ #endif
1721
1822#include " engine/IEngineSound.h"
1923#include " SoundEmitterSystem/isoundemittersystembase.h"
@@ -126,7 +130,57 @@ void CHL2MP_Player::PlayStepSound( Vector &vecOrigin, surfacedata_t *psurface, f
126130// ANIMATION CODE
127131// ==========================
128132
133+ #ifdef SP_ANIM_STATE
134+ ConVar player_use_anim_enabled ( " player_use_anim_enabled" , " 1" , FCVAR_REPLICATED );
135+
136+ const float PLAYER_USE_ANIM_HEAVY_MASS = 20 .0f ;
137+
138+ // -----------------------------------------------------------------------------
139+ // Purpose:
140+ // -----------------------------------------------------------------------------
141+ Activity CHL2MP_Player::Weapon_TranslateActivity ( Activity baseAct, bool *pRequired )
142+ {
143+ Activity weaponTranslation = BaseClass::Weapon_TranslateActivity ( baseAct, pRequired );
144+
145+ #if EXPANDED_HL2DM_ACTIVITIES
146+ // +USE activities
147+ if ( GetUseEntity () && player_use_anim_enabled.GetBool ())
148+ {
149+ CBaseEntity* pHeldEnt = GetPlayerHeldEntity ( this );
150+ float flMass = pHeldEnt ?
151+ (pHeldEnt->VPhysicsGetObject () ? PlayerPickupGetHeldObjectMass ( GetUseEntity (), pHeldEnt->VPhysicsGetObject () ) : PLAYER_USE_ANIM_HEAVY_MASS) :
152+ (GetUseEntity ()->VPhysicsGetObject () ? GetUseEntity ()->VPhysicsGetObject ()->GetMass () : PLAYER_USE_ANIM_HEAVY_MASS);
153+ if ( flMass >= PLAYER_USE_ANIM_HEAVY_MASS)
154+ {
155+ // Heavy versions
156+ switch (baseAct)
157+ {
158+ case ACT_HL2MP_IDLE: weaponTranslation = ACT_HL2MP_IDLE_USE_HEAVY; break ;
159+ case ACT_HL2MP_RUN: weaponTranslation = ACT_HL2MP_RUN_USE_HEAVY; break ;
160+ case ACT_HL2MP_WALK: weaponTranslation = ACT_HL2MP_WALK_USE_HEAVY; break ;
161+ case ACT_HL2MP_IDLE_CROUCH: weaponTranslation = ACT_HL2MP_IDLE_CROUCH_USE_HEAVY; break ;
162+ case ACT_HL2MP_WALK_CROUCH: weaponTranslation = ACT_HL2MP_WALK_CROUCH_USE_HEAVY; break ;
163+ case ACT_HL2MP_JUMP: weaponTranslation = ACT_HL2MP_JUMP_USE_HEAVY; break ;
164+ }
165+ }
166+ else
167+ {
168+ switch (baseAct)
169+ {
170+ case ACT_HL2MP_IDLE: weaponTranslation = ACT_HL2MP_IDLE_USE; break ;
171+ case ACT_HL2MP_RUN: weaponTranslation = ACT_HL2MP_RUN_USE; break ;
172+ case ACT_HL2MP_WALK: weaponTranslation = ACT_HL2MP_WALK_USE; break ;
173+ case ACT_HL2MP_IDLE_CROUCH: weaponTranslation = ACT_HL2MP_IDLE_CROUCH_USE; break ;
174+ case ACT_HL2MP_WALK_CROUCH: weaponTranslation = ACT_HL2MP_WALK_CROUCH_USE; break ;
175+ case ACT_HL2MP_JUMP: weaponTranslation = ACT_HL2MP_JUMP_USE; break ;
176+ }
177+ }
178+ }
179+ #endif
129180
181+ return weaponTranslation;
182+ }
183+ #else
130184// Below this many degrees, slow down turning rate linearly
131185#define FADE_TURN_DEGREES 45 .0f
132186// After this, need to start turning feet
@@ -574,4 +628,5 @@ void CPlayerAnimState::GetOuterAbsVelocity( Vector& vel )
574628#else
575629 vel = GetOuter ()->GetAbsVelocity ();
576630#endif
577- }
631+ }
632+ #endif
0 commit comments