mirror of
https://github.com/1dot13/source.git
synced 2026-07-29 13:52:17 +02:00
Added bayonet animations (standing against prone targets) for all merc bodytypes (by Taro)
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8494 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -101,7 +101,8 @@ static UINT16 CRYO_DEATH_AnimationScript[MAX_FRAMES_PER_ANIM] = {1, 2, 3, 4, 5,
|
||||
static UINT16 CRYO_DEATH_CROUCHED_AnimationScript[MAX_FRAMES_PER_ANIM] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 465, 440, 497, 442, 0, 0, 0, 0};
|
||||
|
||||
// 1038 is the jump to READY_ALTERNATIVE_STAND
|
||||
static UINT16 BAYONET_STAB_AnimationScript[MAX_FRAMES_PER_ANIM] = {757, 1, 2, 3, 4, 5, 6, 7, 727, 492, 8, 9, 430, 10, 11, 12, 13, 14, 15, 16, 17, 442, 1038, 494, 0};
|
||||
static UINT16 BAYONET_STAB_STANDING_VS_STANDING_AnimationScript[MAX_FRAMES_PER_ANIM] = {757, 1, 2, 3, 4, 5, 6, 7, 727, 492, 8, 9, 430, 10, 11, 12, 13, 14, 15, 16, 17, 442, 1038, 494, 0};
|
||||
static UINT16 BAYONET_STAB_STANDING_VS_PRONE_AnimationScript[MAX_FRAMES_PER_ANIM] = { 757, 1, 2, 3, 4, 5, 6, 7, 727, 492, 8, 9, 430, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 442, 1038, 494, 0 };
|
||||
|
||||
ANI_SPEED_DEF gubAnimCrawlSpeeds[ TOTALBODYTYPES ];
|
||||
//Block for anim file
|
||||
@@ -1088,9 +1089,10 @@ ANIMCONTROLTYPE gAnimControl[ NUMANIMATIONSTATES ] =
|
||||
// CRYO_DEATH_CROUCHED
|
||||
{"CRYO_DEATH_CROUCHED", 0, 150, (FLOAT)0, ANIM_STATIONARY | ANIM_NOMOVE_MARKER | ANIM_NO_EFFORT | ANIM_NONINTERRUPT | ANIM_NOCHANGE_WEAPON | ANIM_IGNORE_AUTOSTANCE | ANIM_ATTACK, ANIM_CROUCH, ANIM_CROUCH, -1},
|
||||
|
||||
//BAYONET_STAB
|
||||
{ "BAYONET_STAB" , 0, 70, (FLOAT)0, ANIM_STATIONARY | ANIM_TURNING | ANIM_FASTTURN | ANIM_NORESTART | ANIM_LIGHT_EFFORT | ANIM_ATTACK , ANIM_STAND, ANIM_STAND, -1 },
|
||||
|
||||
// BAYONET_STAB_STANDING_VS_STANDING
|
||||
{ "BAYONET_STAB_STANDING_VS_STANDING" , 0, 70, (FLOAT)0, ANIM_STATIONARY | ANIM_TURNING | ANIM_FASTTURN | ANIM_NORESTART | ANIM_LIGHT_EFFORT | ANIM_ATTACK , ANIM_STAND, ANIM_STAND, -1 },
|
||||
// BAYONET_STAB_STANDING_VS_PRONE
|
||||
{ "BAYONET_STAB_STANDING_VS_PRONE" , 0, 70, (FLOAT)0, ANIM_STATIONARY | ANIM_TURNING | ANIM_FASTTURN | ANIM_NORESTART | ANIM_LIGHT_EFFORT | ANIM_ATTACK , ANIM_STAND, ANIM_STAND, -1 },
|
||||
};
|
||||
|
||||
ANI_SPEED_DEF gubAnimWalkSpeeds[ TOTALBODYTYPES ] =
|
||||
@@ -1344,7 +1346,8 @@ void InitAnimationSurfacesPerBodytype( )
|
||||
gubAnimSurfaceIndex[ REGMALE ][ SLICE ] = RGMSLICE;
|
||||
gubAnimSurfaceIndex[ REGMALE ][ STAB ] = RGMSTAB;
|
||||
gubAnimSurfaceIndex[ REGMALE ][ CROUCH_STAB ] = RGMCSTAB;
|
||||
gubAnimSurfaceIndex[ REGMALE ][ BAYONET_STAB ] = RGMBAYONET;
|
||||
gubAnimSurfaceIndex[ REGMALE ][ BAYONET_STAB_STANDING_VS_STANDING ] = RGMBAYONET_S_S;
|
||||
gubAnimSurfaceIndex[ REGMALE ][ BAYONET_STAB_STANDING_VS_PRONE ] = RGMBAYONET_S_P;
|
||||
gubAnimSurfaceIndex[ REGMALE ][ START_AID ] = RGMMEDIC;
|
||||
gubAnimSurfaceIndex[ REGMALE ][ GIVING_AID ] = RGMMEDIC;
|
||||
gubAnimSurfaceIndex[ REGMALE ][ END_AID ] = RGMMEDIC;
|
||||
@@ -1792,7 +1795,8 @@ void InitAnimationSurfacesPerBodytype( )
|
||||
gubAnimSurfaceIndex[ BIGMALE ][ SLICE ] = BGMSLICE;
|
||||
gubAnimSurfaceIndex[ BIGMALE ][ STAB ] = BGMSTAB;
|
||||
gubAnimSurfaceIndex[ BIGMALE ][ CROUCH_STAB ] = BGMCSTAB;
|
||||
gubAnimSurfaceIndex[ BIGMALE ][ BAYONET_STAB ] = BGMBAYONET;
|
||||
gubAnimSurfaceIndex[ BIGMALE ][ BAYONET_STAB_STANDING_VS_STANDING ] = BGMBAYONET_S_S;
|
||||
gubAnimSurfaceIndex[ BIGMALE ][ BAYONET_STAB_STANDING_VS_PRONE ] = BGMBAYONET_S_P;
|
||||
gubAnimSurfaceIndex[ BIGMALE ][ START_AID ] = BGMMEDIC;
|
||||
gubAnimSurfaceIndex[ BIGMALE ][ GIVING_AID ] = BGMMEDIC;
|
||||
gubAnimSurfaceIndex[ BIGMALE ][ END_AID ] = BGMMEDIC;
|
||||
@@ -2258,7 +2262,8 @@ void InitAnimationSurfacesPerBodytype( )
|
||||
gubAnimSurfaceIndex[ STOCKYMALE ][ SLICE ] = RGMSLICE;
|
||||
gubAnimSurfaceIndex[ STOCKYMALE ][ STAB ] = RGMSTAB;
|
||||
gubAnimSurfaceIndex[ STOCKYMALE ][ CROUCH_STAB ] = RGMCSTAB;
|
||||
gubAnimSurfaceIndex[ STOCKYMALE ][ BAYONET_STAB ] = RGMBAYONET;
|
||||
gubAnimSurfaceIndex[ STOCKYMALE ][ BAYONET_STAB_STANDING_VS_STANDING ] = RGMBAYONET_S_S;
|
||||
gubAnimSurfaceIndex[ STOCKYMALE ][ BAYONET_STAB_STANDING_VS_PRONE ] = RGMBAYONET_S_P;
|
||||
gubAnimSurfaceIndex[ STOCKYMALE ][ START_AID ] = RGMMEDIC;
|
||||
gubAnimSurfaceIndex[ STOCKYMALE ][ GIVING_AID ] = RGMMEDIC;
|
||||
gubAnimSurfaceIndex[ STOCKYMALE ][ END_AID ] = RGMMEDIC;
|
||||
@@ -2701,7 +2706,8 @@ void InitAnimationSurfacesPerBodytype( )
|
||||
gubAnimSurfaceIndex[ REGFEMALE ][ SLICE ] = RGFSLICE;
|
||||
gubAnimSurfaceIndex[ REGFEMALE ][ STAB ] = RGFSTAB;
|
||||
gubAnimSurfaceIndex[ REGFEMALE ][ CROUCH_STAB ] = RGFCSTAB;
|
||||
gubAnimSurfaceIndex[ REGFEMALE ][ BAYONET_STAB ] = RGFBAYONET;
|
||||
gubAnimSurfaceIndex[ REGFEMALE ][ BAYONET_STAB_STANDING_VS_STANDING ] = RGFBAYONET_S_S;
|
||||
gubAnimSurfaceIndex[ REGFEMALE ][ BAYONET_STAB_STANDING_VS_PRONE ] = RGFBAYONET_S_P;
|
||||
gubAnimSurfaceIndex[ REGFEMALE ][ START_AID ] = RGFMEDIC;
|
||||
gubAnimSurfaceIndex[ REGFEMALE ][ GIVING_AID ] = RGFMEDIC;
|
||||
gubAnimSurfaceIndex[ REGFEMALE ][ END_AID ] = RGFMEDIC;
|
||||
@@ -3783,7 +3789,8 @@ BOOLEAN LoadAnimationStateInstructions( )
|
||||
memcpy( gusAnimInst[CRYO_DEATH], CRYO_DEATH_AnimationScript, sizeof(CRYO_DEATH_AnimationScript) );
|
||||
memcpy( gusAnimInst[CRYO_DEATH_CROUCHED], CRYO_DEATH_CROUCHED_AnimationScript, sizeof(CRYO_DEATH_CROUCHED_AnimationScript) );
|
||||
|
||||
memcpy(gusAnimInst[BAYONET_STAB], BAYONET_STAB_AnimationScript, sizeof(BAYONET_STAB_AnimationScript));
|
||||
memcpy(gusAnimInst[BAYONET_STAB_STANDING_VS_STANDING], BAYONET_STAB_STANDING_VS_STANDING_AnimationScript, sizeof(BAYONET_STAB_STANDING_VS_STANDING_AnimationScript));
|
||||
memcpy(gusAnimInst[BAYONET_STAB_STANDING_VS_PRONE], BAYONET_STAB_STANDING_VS_PRONE_AnimationScript, sizeof(BAYONET_STAB_STANDING_VS_PRONE_AnimationScript));
|
||||
|
||||
// NOTE: Careful here... keep in mind you have to increase MAX_ANIMATIONS whenever you would go over 399(currently) animation numbers
|
||||
|
||||
|
||||
@@ -612,7 +612,8 @@ enum AnimationStates
|
||||
CRYO_DEATH,
|
||||
CRYO_DEATH_CROUCHED,
|
||||
|
||||
BAYONET_STAB,
|
||||
BAYONET_STAB_STANDING_VS_STANDING,
|
||||
BAYONET_STAB_STANDING_VS_PRONE,
|
||||
|
||||
NUMANIMATIONSTATES
|
||||
|
||||
|
||||
@@ -130,7 +130,8 @@ AnimationSurfaceType gAnimSurfaceDatabase[ NUMANIMATIONSURFACETYPES ] =
|
||||
RGMPISTOLDRUNK, "ANIMS\\S_MERC\\S_N_DRNK.STI", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||
RGMCROWBAR, "ANIMS\\S_MERC\\S_CROBAR.STI", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||
RGMJUMPOVER, "ANIMS\\S_MERC\\S_N_RUN.STI", NO_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||
RGMBAYONET, "ANIMS\\S_MERC\\S_BAYONET_S_S.STI", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||
RGMBAYONET_S_S, "ANIMS\\S_MERC\\S_BAYONET_S_S.STI", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||
RGMBAYONET_S_P, "ANIMS\\S_MERC\\S_BAYONET_S_P.STI", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||
|
||||
BGMWALKING, "ANIMS\\M_MERC\\M_R_WALK.STI", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||
BGMSTANDING, "ANIMS\\M_MERC\\M_R_STD.STI", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||
@@ -224,7 +225,8 @@ AnimationSurfaceType gAnimSurfaceDatabase[ NUMANIMATIONSURFACETYPES ] =
|
||||
BGMPISTOLDRUNK, "ANIMS\\M_MERC\\M_N_DRNK.STI", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||
BGMCROWBAR, "ANIMS\\M_MERC\\M_CROBAR.STI", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||
BGMJUMPOVER, "ANIMS\\M_MERC\\M_N_RUN.STI", NO_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||
BGMBAYONET, "ANIMS\\M_MERC\\M_BAYONET_S_S.STI", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||
BGMBAYONET_S_S, "ANIMS\\M_MERC\\M_BAYONET_S_S.STI", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||
BGMBAYONET_S_P, "ANIMS\\M_MERC\\M_BAYONET_S_P.STI", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||
|
||||
RGFWALKING, "ANIMS\\F_MERC\\F_R_WALK.STI", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||
RGFSTANDING, "ANIMS\\F_MERC\\F_BRETH2.STI", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||
@@ -312,7 +314,8 @@ AnimationSurfaceType gAnimSurfaceDatabase[ NUMANIMATIONSURFACETYPES ] =
|
||||
RGFPISTOLDRUNK, "ANIMS\\F_MERC\\F_N_DRNK.STI", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||
RGFCROWBAR, "ANIMS\\F_MERC\\F_CROBAR.STI", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||
RGFJUMPOVER, "ANIMS\\F_MERC\\F_N_RUN.STI", NO_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||
RGFBAYONET, "ANIMS\\F_MERC\\F_BAYONET_S_S.STI", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||
RGFBAYONET_S_S, "ANIMS\\F_MERC\\F_BAYONET_S_S.STI", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||
RGFBAYONET_S_P, "ANIMS\\F_MERC\\F_BAYONET_S_P.STI", S_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||
|
||||
CRYO_EXPLODE, "ANIMS\\S_MERC\\S_CRYO_DEATH_S.STI", S_STRUCT, 0, 1, TO_INIT, NULL, NULL, 0, -1,
|
||||
CRYO_EXPLODE_CROUCHED, "ANIMS\\S_MERC\\S_CRYO_DEATH_C.STI", S_STRUCT, 0, 1, TO_INIT, NULL, NULL, 0, -1,
|
||||
|
||||
@@ -171,7 +171,8 @@ typedef enum AnimationSurfaceTypes
|
||||
RGMPISTOLDRUNK,
|
||||
RGMCROWBAR,
|
||||
RGMJUMPOVER,
|
||||
RGMBAYONET,
|
||||
RGMBAYONET_S_S,
|
||||
RGMBAYONET_S_P,
|
||||
|
||||
BGMWALKING,
|
||||
BGMSTANDING,
|
||||
@@ -265,7 +266,8 @@ typedef enum AnimationSurfaceTypes
|
||||
BGMPISTOLDRUNK,
|
||||
BGMCROWBAR,
|
||||
BGMJUMPOVER,
|
||||
BGMBAYONET,
|
||||
BGMBAYONET_S_S,
|
||||
BGMBAYONET_S_P,
|
||||
|
||||
RGFWALKING,
|
||||
RGFSTANDING,
|
||||
@@ -353,7 +355,8 @@ typedef enum AnimationSurfaceTypes
|
||||
RGFPISTOLDRUNK,
|
||||
RGFCROWBAR,
|
||||
RGFJUMPOVER,
|
||||
RGFBAYONET,
|
||||
RGFBAYONET_S_S,
|
||||
RGFBAYONET_S_P,
|
||||
|
||||
CRYO_EXPLODE,
|
||||
CRYO_EXPLODE_CROUCHED,
|
||||
|
||||
@@ -12340,7 +12340,7 @@ void SOLDIERTYPE::EVENT_SoldierBeginBladeAttack( INT32 sGridNo, UINT8 ubDirectio
|
||||
if (this->usAnimState == RUNNING || this->usAnimState == RUNNING_W_PISTOL)
|
||||
this->usSoldierFlagMask2 |= SOLDIER_BAYONET_RUNBONUS;
|
||||
|
||||
this->EVENT_InitNewSoldierAnim(BAYONET_STAB, 0, FALSE);
|
||||
this->EVENT_InitNewSoldierAnim(BAYONET_STAB_STANDING_VS_STANDING, 0, FALSE);
|
||||
}
|
||||
// SANDRO - use focused stab animation on aimed blade attacks
|
||||
else if (gGameExternalOptions.fEnhancedCloseCombatSystem && (this->aiData.bAimTime > 0))
|
||||
@@ -12379,9 +12379,17 @@ void SOLDIERTYPE::EVENT_SoldierBeginBladeAttack( INT32 sGridNo, UINT8 ubDirectio
|
||||
break;
|
||||
|
||||
case ANIM_PRONE:
|
||||
|
||||
if (this->bWeaponMode == WM_ATTACHED_BAYONET && gAnimControl[this->usAnimState].ubEndHeight == ANIM_STAND)
|
||||
{
|
||||
// if this attack happens directly after running, the attack is slightly more powerful due to extra force
|
||||
if (this->usAnimState == RUNNING || this->usAnimState == RUNNING_W_PISTOL)
|
||||
this->usSoldierFlagMask2 |= SOLDIER_BAYONET_RUNBONUS;
|
||||
|
||||
this->EVENT_InitNewSoldierAnim(BAYONET_STAB_STANDING_VS_PRONE, 0, FALSE);
|
||||
}
|
||||
// CHECK OUR STANCE
|
||||
if ( gAnimControl[this->usAnimState].ubEndHeight != ANIM_CROUCH )
|
||||
else if ( gAnimControl[this->usAnimState].ubEndHeight != ANIM_CROUCH )
|
||||
{
|
||||
// SET DESIRED STANCE AND SET PENDING ANIMATION
|
||||
SendChangeSoldierStanceEvent( this, ANIM_CROUCH );
|
||||
@@ -23040,7 +23048,8 @@ UINT16 GetSuspiciousAnimationAPDuration( UINT16 usAnimation )
|
||||
case SLICE:
|
||||
case STAB:
|
||||
case CROUCH_STAB:
|
||||
case BAYONET_STAB:
|
||||
case BAYONET_STAB_STANDING_VS_STANDING:
|
||||
case BAYONET_STAB_STANDING_VS_PRONE:
|
||||
case PUNCH:
|
||||
case PUNCH_BREATH:
|
||||
case KICK_DOOR:
|
||||
|
||||
Reference in New Issue
Block a user