Difference between revisions of "Acttable t"

From Valve Developer Community
Jump to: navigation, search
m
Line 23: Line 23:
 
The third value is whether the animation is "required" or not. {{todo|Meaning of this.}}
 
The third value is whether the animation is "required" or not. {{todo|Meaning of this.}}
  
[[Category:Weapons programming]] {{DISPLAYTITLE:acttable_t}}
+
[[Category:Weapons programming]][[Category:Structures]] {{DISPLAYTITLE:acttable_t}}

Revision as of 07:36, 11 April 2011

acttable_t defines translations between the generic activities generated by a PlayerAnimState object into ones specific to the current weapon. For instance, ACT_MP_STAND_IDLE might be translated into ACT_DOD_STAND_AIM_RIFLE by the Rifle weapon.

If a weapon doesn't have an ActTable, or has an incomplete one, you are likely to find your player models entering "jesus pose" in some conditions.

Bug: CBaseCombatWeapon::ActivityOverride(), which executes an ActTable, is not called from base code. See m_PlayerAnimState#Implementation to fix this.

Implementation

Add DECLARE_ACTTABLE() to both the client and server classes. Then, in shared code:

acttable_t CMyWeapon::m_acttable[] = 
{
	{ ACT_MP_STAND_IDLE,	ACT_MYMOD_STAND_AIM_MYWEAPON,	false },
	{ ACT_MP_CROUCH_IDLE,	ACT_MYMOD_CROUCH_AIM_MYWEAPON,	false },
	{ ACT_MP_RUN,		ACT_MYMOD_RUN_MYWEAPON,		false },
	// etc.
};

IMPLEMENT_ACTTABLE( CMyWeapon );

The third value is whether the animation is "required" or not. To do: Meaning of this.