mirror of
https://github.com/1dot13/source.git
synced 2026-07-29 13:52:17 +02:00
- new: Merged source code of item throwing animation in crouched stance, AI was not changed (look for comments marked <SB>)
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@890 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -32,6 +32,11 @@ typedef struct
|
||||
|
||||
} ANIMSUBTYPE;
|
||||
|
||||
|
||||
//<SB> crouch throwing
|
||||
static UINT16 CrouchedThrowAnimationScript[MAX_FRAMES_PER_ANIM] = { 1,2,3,4,5,6,7,8,9,460,10,11,12,13,14,442,603,999,0,0,0,0 };
|
||||
//</SB>
|
||||
|
||||
ANI_SPEED_DEF gubAnimCrawlSpeeds[ TOTALBODYTYPES ];
|
||||
//Block for anim file
|
||||
UINT16 gusAnimInst[ MAX_ANIMATIONS ][ MAX_FRAMES_PER_ANIM ];
|
||||
@@ -915,6 +920,10 @@ ANIMCONTROLTYPE gAnimControl[ NUMANIMATIONSTATES ] =
|
||||
|
||||
//CROUCH PICK LOCK
|
||||
"CROUCH PICK LOCK" , 0, 70, (FLOAT)0, ANIM_STATIONARY | ANIM_TURNING | ANIM_FASTTURN | ANIM_NORESTART | ANIM_LOWER_WEAPON | ANIM_LIGHT_EFFORT, ANIM_CROUCH, ANIM_CROUCH, -1,
|
||||
|
||||
//<SB> crouch throwing
|
||||
"THROW ITEM CROUCHED", 0, 80, (FLOAT)0, ANIM_STATIONARY | ANIM_NOMOVE_MARKER | ANIM_NONINTERRUPT | ANIM_MIN_EFFORT, ANIM_CROUCH, ANIM_CROUCH, -1,
|
||||
//</SB
|
||||
};
|
||||
|
||||
ANI_SPEED_DEF gubAnimWalkSpeeds[ TOTALBODYTYPES ] =
|
||||
@@ -1293,7 +1302,10 @@ void InitAnimationSurfacesPerBodytype( )
|
||||
gubAnimSurfaceIndex[ REGMALE ][ JUMP_OVER_BLOCKING_PERSON ] = RGMJUMPOVER;
|
||||
gubAnimSurfaceIndex[ REGMALE ][ REFUEL_VEHICLE ] = RGMMEDIC;
|
||||
gubAnimSurfaceIndex[ REGMALE ][ LOCKPICK_CROUCHED ] = RGMMEDIC;
|
||||
|
||||
|
||||
//<SB> crouch throwing
|
||||
gubAnimSurfaceIndex[ REGMALE ][ THROW_ITEM_CROUCHED ] = RGMCRTHROW;
|
||||
//</SB>
|
||||
|
||||
gubAnimSurfaceMidWaterSubIndex[ REGMALE ][ STANDING][0] = RGMWATER_R_STD;
|
||||
gubAnimSurfaceMidWaterSubIndex[ REGMALE ][ WALKING ][0] = RGMWATER_R_WALK;
|
||||
@@ -1649,6 +1661,9 @@ void InitAnimationSurfacesPerBodytype( )
|
||||
gubAnimSurfaceIndex[ BIGMALE ][ REFUEL_VEHICLE ] = BGMMEDIC;
|
||||
gubAnimSurfaceIndex[ BIGMALE ][ LOCKPICK_CROUCHED ] = BGMMEDIC;
|
||||
|
||||
//<SB> crouch throwing
|
||||
gubAnimSurfaceIndex[ BIGMALE ][ THROW_ITEM_CROUCHED ] = BGMCRTHROW;
|
||||
//</SB>
|
||||
|
||||
gubAnimSurfaceItemSubIndex[ BIGMALE ][ STANDING ] = BGMPISTOLBREATH;
|
||||
gubAnimSurfaceItemSubIndex[ BIGMALE ][ WALKING ] = BGMNOTHING_WALK;
|
||||
@@ -2014,6 +2029,9 @@ void InitAnimationSurfacesPerBodytype( )
|
||||
gubAnimSurfaceIndex[ STOCKYMALE ][ REFUEL_VEHICLE ] = RGMMEDIC;
|
||||
gubAnimSurfaceIndex[ STOCKYMALE ][ LOCKPICK_CROUCHED ] = RGMMEDIC;
|
||||
|
||||
//<SB> crouch throwing
|
||||
gubAnimSurfaceIndex[ STOCKYMALE ][ THROW_ITEM_CROUCHED ] = RGMCRTHROW;
|
||||
//</SB>
|
||||
|
||||
gubAnimSurfaceItemSubIndex[ STOCKYMALE ][ STANDING ] = RGMPISTOLBREATH;
|
||||
gubAnimSurfaceItemSubIndex[ STOCKYMALE ][ WALKING ] = RGMNOTHING_WALK;
|
||||
@@ -2366,6 +2384,9 @@ void InitAnimationSurfacesPerBodytype( )
|
||||
gubAnimSurfaceIndex[ REGFEMALE ][ REFUEL_VEHICLE ] = RGFMEDIC;
|
||||
gubAnimSurfaceIndex[ REGFEMALE ][ LOCKPICK_CROUCHED ] = RGFMEDIC;
|
||||
|
||||
//<SB> crouch throwing
|
||||
gubAnimSurfaceIndex[ REGFEMALE ][ THROW_ITEM_CROUCHED ] = RGFCRTHROW;
|
||||
//</SB>
|
||||
|
||||
gubAnimSurfaceItemSubIndex[ REGFEMALE ][ STANDING ] = RGFPISTOLBREATH;
|
||||
gubAnimSurfaceItemSubIndex[ REGFEMALE ][ WALKING ] = RGFNOTHING_WALK;
|
||||
@@ -3026,6 +3047,10 @@ BOOLEAN LoadAnimationStateInstructions( )
|
||||
|
||||
FileClose( hFile );
|
||||
|
||||
//<SB> crouch throwing
|
||||
memcpy(gusAnimInst[ THROW_ITEM_CROUCHED ],CrouchedThrowAnimationScript,sizeof(CrouchedThrowAnimationScript));
|
||||
//<SB> crouch throwing
|
||||
|
||||
return( TRUE );
|
||||
}
|
||||
|
||||
|
||||
@@ -529,6 +529,10 @@ enum AnimationStates
|
||||
CRIPPLE_END_OPEN_LOCKED_DOOR,
|
||||
LOCKPICK_CROUCHED,
|
||||
|
||||
//<SB> crouch throwing
|
||||
THROW_ITEM_CROUCHED,
|
||||
//</SB>
|
||||
|
||||
NUMANIMATIONSTATES
|
||||
|
||||
};
|
||||
|
||||
@@ -466,6 +466,12 @@ AnimationSurfaceType gAnimSurfaceDatabase[ NUMANIMATIONSURFACETYPES ] =
|
||||
JEEP_DIE, "ANIMS\\VEHICLES\\HM_WREK.STI", NO_STRUCT, 0, 2, TO_INIT, NULL, NULL, 0, -1,
|
||||
|
||||
BODYEXPLODE, "ANIMS\\S_MERC\\BOD_BLOW.STI", NO_STRUCT, 0, 1, TO_INIT, NULL, NULL, 0, -1,
|
||||
|
||||
//<SB> crouch throwing
|
||||
RGMCRTHROW, "ANIMS\\S_MERC\\S_CR_THR.STI", C_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||
BGMCRTHROW, "ANIMS\\M_MERC\\M_CR_THR.STI", C_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||
RGFCRTHROW, "ANIMS\\F_MERC\\F_CR_THR.STI", C_STRUCT, 0, 8, TO_INIT, NULL, NULL, 0, -1,
|
||||
//</SB>
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -502,6 +502,12 @@ typedef enum
|
||||
|
||||
BODYEXPLODE,
|
||||
|
||||
//<SB> crouch throwing
|
||||
RGMCRTHROW,
|
||||
BGMCRTHROW,
|
||||
RGFCRTHROW,
|
||||
//</SB>
|
||||
|
||||
NUMANIMATIONSURFACETYPES
|
||||
|
||||
} AnimationSurfaceTypes;
|
||||
|
||||
@@ -1500,9 +1500,24 @@ void HandleSoldierThrowItem( SOLDIERTYPE *pSoldier, INT16 sGridNo )
|
||||
}
|
||||
break;
|
||||
|
||||
case ANIM_CROUCH:
|
||||
//<SB> crouch throwing
|
||||
case ANIM_PRONE:
|
||||
if ( sGridNo == pSoldier->sGridNo )
|
||||
{
|
||||
// OK, JUST DROP ITEM!
|
||||
if ( pSoldier->pTempObject != NULL )
|
||||
{
|
||||
AddItemToPool( sGridNo, pSoldier->pTempObject, 1, pSoldier->bLevel, 0, -1 );
|
||||
NotifySoldiersToLookforItems( );
|
||||
|
||||
MemFree( pSoldier->pTempObject );
|
||||
pSoldier->pTempObject = NULL;
|
||||
}
|
||||
break;
|
||||
}
|
||||
ChangeSoldierStance( pSoldier, ANIM_CROUCH );
|
||||
|
||||
case ANIM_CROUCH:
|
||||
// CHECK IF WE ARE NOT ON THE SAME GRIDNO
|
||||
if ( sGridNo == pSoldier->sGridNo )
|
||||
{
|
||||
@@ -1518,12 +1533,18 @@ void HandleSoldierThrowItem( SOLDIERTYPE *pSoldier, INT16 sGridNo )
|
||||
}
|
||||
else
|
||||
{
|
||||
// OK, go from prone/crouch to stand first!
|
||||
// CHANGE DIRECTION AT LEAST
|
||||
ubDirection = (UINT8)GetDirectionFromGridNo( sGridNo, pSoldier );
|
||||
EVENT_SetSoldierDesiredDirection( pSoldier, ubDirection );
|
||||
|
||||
ChangeSoldierState( pSoldier, THROW_ITEM, 0 , FALSE );
|
||||
SoldierGotoStationaryStance( pSoldier );
|
||||
|
||||
EVENT_SetSoldierDesiredDirection( pSoldier, ubDirection );
|
||||
pSoldier->fTurningUntilDone = TRUE;
|
||||
|
||||
pSoldier->usPendingAnimation = THROW_ITEM_CROUCHED;
|
||||
}
|
||||
break;
|
||||
//</SB>
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -6109,6 +6109,9 @@ BOOLEAN SelectedGuyInBusyAnimation( )
|
||||
|
||||
if ( pSoldier->usAnimState == LOB_ITEM ||
|
||||
pSoldier->usAnimState == THROW_ITEM ||
|
||||
//<SB> crouch throwing
|
||||
pSoldier->usAnimState == THROW_ITEM_CROUCHED ||
|
||||
//<SB> crouch throwing
|
||||
pSoldier->usAnimState == PICKUP_ITEM ||
|
||||
pSoldier->usAnimState == DROP_ITEM ||
|
||||
pSoldier->usAnimState == OPEN_DOOR ||
|
||||
|
||||
@@ -3437,6 +3437,9 @@ void EVENT_SoldierGotHit( SOLDIERTYPE *pSoldier, UINT16 usWeaponIndex, INT16 sDa
|
||||
case SHOOT_ROCKET:
|
||||
case SHOOT_MORTAR:
|
||||
case THROW_ITEM:
|
||||
// <SB> crouch throwing
|
||||
case THROW_ITEM_CROUCHED:
|
||||
// <SB> crouch throwing
|
||||
case LOB_ITEM:
|
||||
|
||||
DebugMsg( TOPIC_JA2, DBG_LEVEL_3, String("@@@@@@@ Freeing up attacker - ATTACK ANIMATION %s ENDED BY HIT ANIMATION, Now %d", gAnimControl[ pSoldier->usAnimState ].zAnimStr, gTacticalStatus.ubAttackBusyCount ) );
|
||||
|
||||
Reference in New Issue
Block a user