- 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:
Wanne
2007-05-21 18:09:15 +00:00
parent d61f4ff935
commit 4effa1c3ea
7 changed files with 73 additions and 5 deletions
+26 -1
View File
@@ -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 );
}
+4
View File
@@ -529,6 +529,10 @@ enum AnimationStates
CRIPPLE_END_OPEN_LOCKED_DOOR,
LOCKPICK_CROUCHED,
//<SB> crouch throwing
THROW_ITEM_CROUCHED,
//</SB>
NUMANIMATIONSTATES
};
+6
View File
@@ -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>
};
+6
View File
@@ -502,6 +502,12 @@ typedef enum
BODYEXPLODE,
//<SB> crouch throwing
RGMCRTHROW,
BGMCRTHROW,
RGFCRTHROW,
//</SB>
NUMANIMATIONSURFACETYPES
} AnimationSurfaceTypes;
+25 -4
View File
@@ -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>
}
}
+3
View File
@@ -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 ||
+3
View File
@@ -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 ) );