mirror of
https://github.com/1dot13/source.git
synced 2026-09-16 14:47: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;
|
} 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 ];
|
ANI_SPEED_DEF gubAnimCrawlSpeeds[ TOTALBODYTYPES ];
|
||||||
//Block for anim file
|
//Block for anim file
|
||||||
UINT16 gusAnimInst[ MAX_ANIMATIONS ][ MAX_FRAMES_PER_ANIM ];
|
UINT16 gusAnimInst[ MAX_ANIMATIONS ][ MAX_FRAMES_PER_ANIM ];
|
||||||
@@ -915,6 +920,10 @@ ANIMCONTROLTYPE gAnimControl[ NUMANIMATIONSTATES ] =
|
|||||||
|
|
||||||
//CROUCH PICK LOCK
|
//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,
|
"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 ] =
|
ANI_SPEED_DEF gubAnimWalkSpeeds[ TOTALBODYTYPES ] =
|
||||||
@@ -1293,7 +1302,10 @@ void InitAnimationSurfacesPerBodytype( )
|
|||||||
gubAnimSurfaceIndex[ REGMALE ][ JUMP_OVER_BLOCKING_PERSON ] = RGMJUMPOVER;
|
gubAnimSurfaceIndex[ REGMALE ][ JUMP_OVER_BLOCKING_PERSON ] = RGMJUMPOVER;
|
||||||
gubAnimSurfaceIndex[ REGMALE ][ REFUEL_VEHICLE ] = RGMMEDIC;
|
gubAnimSurfaceIndex[ REGMALE ][ REFUEL_VEHICLE ] = RGMMEDIC;
|
||||||
gubAnimSurfaceIndex[ REGMALE ][ LOCKPICK_CROUCHED ] = 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 ][ STANDING][0] = RGMWATER_R_STD;
|
||||||
gubAnimSurfaceMidWaterSubIndex[ REGMALE ][ WALKING ][0] = RGMWATER_R_WALK;
|
gubAnimSurfaceMidWaterSubIndex[ REGMALE ][ WALKING ][0] = RGMWATER_R_WALK;
|
||||||
@@ -1649,6 +1661,9 @@ void InitAnimationSurfacesPerBodytype( )
|
|||||||
gubAnimSurfaceIndex[ BIGMALE ][ REFUEL_VEHICLE ] = BGMMEDIC;
|
gubAnimSurfaceIndex[ BIGMALE ][ REFUEL_VEHICLE ] = BGMMEDIC;
|
||||||
gubAnimSurfaceIndex[ BIGMALE ][ LOCKPICK_CROUCHED ] = BGMMEDIC;
|
gubAnimSurfaceIndex[ BIGMALE ][ LOCKPICK_CROUCHED ] = BGMMEDIC;
|
||||||
|
|
||||||
|
//<SB> crouch throwing
|
||||||
|
gubAnimSurfaceIndex[ BIGMALE ][ THROW_ITEM_CROUCHED ] = BGMCRTHROW;
|
||||||
|
//</SB>
|
||||||
|
|
||||||
gubAnimSurfaceItemSubIndex[ BIGMALE ][ STANDING ] = BGMPISTOLBREATH;
|
gubAnimSurfaceItemSubIndex[ BIGMALE ][ STANDING ] = BGMPISTOLBREATH;
|
||||||
gubAnimSurfaceItemSubIndex[ BIGMALE ][ WALKING ] = BGMNOTHING_WALK;
|
gubAnimSurfaceItemSubIndex[ BIGMALE ][ WALKING ] = BGMNOTHING_WALK;
|
||||||
@@ -2014,6 +2029,9 @@ void InitAnimationSurfacesPerBodytype( )
|
|||||||
gubAnimSurfaceIndex[ STOCKYMALE ][ REFUEL_VEHICLE ] = RGMMEDIC;
|
gubAnimSurfaceIndex[ STOCKYMALE ][ REFUEL_VEHICLE ] = RGMMEDIC;
|
||||||
gubAnimSurfaceIndex[ STOCKYMALE ][ LOCKPICK_CROUCHED ] = RGMMEDIC;
|
gubAnimSurfaceIndex[ STOCKYMALE ][ LOCKPICK_CROUCHED ] = RGMMEDIC;
|
||||||
|
|
||||||
|
//<SB> crouch throwing
|
||||||
|
gubAnimSurfaceIndex[ STOCKYMALE ][ THROW_ITEM_CROUCHED ] = RGMCRTHROW;
|
||||||
|
//</SB>
|
||||||
|
|
||||||
gubAnimSurfaceItemSubIndex[ STOCKYMALE ][ STANDING ] = RGMPISTOLBREATH;
|
gubAnimSurfaceItemSubIndex[ STOCKYMALE ][ STANDING ] = RGMPISTOLBREATH;
|
||||||
gubAnimSurfaceItemSubIndex[ STOCKYMALE ][ WALKING ] = RGMNOTHING_WALK;
|
gubAnimSurfaceItemSubIndex[ STOCKYMALE ][ WALKING ] = RGMNOTHING_WALK;
|
||||||
@@ -2366,6 +2384,9 @@ void InitAnimationSurfacesPerBodytype( )
|
|||||||
gubAnimSurfaceIndex[ REGFEMALE ][ REFUEL_VEHICLE ] = RGFMEDIC;
|
gubAnimSurfaceIndex[ REGFEMALE ][ REFUEL_VEHICLE ] = RGFMEDIC;
|
||||||
gubAnimSurfaceIndex[ REGFEMALE ][ LOCKPICK_CROUCHED ] = RGFMEDIC;
|
gubAnimSurfaceIndex[ REGFEMALE ][ LOCKPICK_CROUCHED ] = RGFMEDIC;
|
||||||
|
|
||||||
|
//<SB> crouch throwing
|
||||||
|
gubAnimSurfaceIndex[ REGFEMALE ][ THROW_ITEM_CROUCHED ] = RGFCRTHROW;
|
||||||
|
//</SB>
|
||||||
|
|
||||||
gubAnimSurfaceItemSubIndex[ REGFEMALE ][ STANDING ] = RGFPISTOLBREATH;
|
gubAnimSurfaceItemSubIndex[ REGFEMALE ][ STANDING ] = RGFPISTOLBREATH;
|
||||||
gubAnimSurfaceItemSubIndex[ REGFEMALE ][ WALKING ] = RGFNOTHING_WALK;
|
gubAnimSurfaceItemSubIndex[ REGFEMALE ][ WALKING ] = RGFNOTHING_WALK;
|
||||||
@@ -3026,6 +3047,10 @@ BOOLEAN LoadAnimationStateInstructions( )
|
|||||||
|
|
||||||
FileClose( hFile );
|
FileClose( hFile );
|
||||||
|
|
||||||
|
//<SB> crouch throwing
|
||||||
|
memcpy(gusAnimInst[ THROW_ITEM_CROUCHED ],CrouchedThrowAnimationScript,sizeof(CrouchedThrowAnimationScript));
|
||||||
|
//<SB> crouch throwing
|
||||||
|
|
||||||
return( TRUE );
|
return( TRUE );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -529,6 +529,10 @@ enum AnimationStates
|
|||||||
CRIPPLE_END_OPEN_LOCKED_DOOR,
|
CRIPPLE_END_OPEN_LOCKED_DOOR,
|
||||||
LOCKPICK_CROUCHED,
|
LOCKPICK_CROUCHED,
|
||||||
|
|
||||||
|
//<SB> crouch throwing
|
||||||
|
THROW_ITEM_CROUCHED,
|
||||||
|
//</SB>
|
||||||
|
|
||||||
NUMANIMATIONSTATES
|
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,
|
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,
|
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,
|
BODYEXPLODE,
|
||||||
|
|
||||||
|
//<SB> crouch throwing
|
||||||
|
RGMCRTHROW,
|
||||||
|
BGMCRTHROW,
|
||||||
|
RGFCRTHROW,
|
||||||
|
//</SB>
|
||||||
|
|
||||||
NUMANIMATIONSURFACETYPES
|
NUMANIMATIONSURFACETYPES
|
||||||
|
|
||||||
} AnimationSurfaceTypes;
|
} AnimationSurfaceTypes;
|
||||||
|
|||||||
@@ -1500,9 +1500,24 @@ void HandleSoldierThrowItem( SOLDIERTYPE *pSoldier, INT16 sGridNo )
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ANIM_CROUCH:
|
//<SB> crouch throwing
|
||||||
case ANIM_PRONE:
|
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
|
// CHECK IF WE ARE NOT ON THE SAME GRIDNO
|
||||||
if ( sGridNo == pSoldier->sGridNo )
|
if ( sGridNo == pSoldier->sGridNo )
|
||||||
{
|
{
|
||||||
@@ -1518,12 +1533,18 @@ void HandleSoldierThrowItem( SOLDIERTYPE *pSoldier, INT16 sGridNo )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// OK, go from prone/crouch to stand first!
|
// CHANGE DIRECTION AT LEAST
|
||||||
ubDirection = (UINT8)GetDirectionFromGridNo( sGridNo, pSoldier );
|
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 ||
|
if ( pSoldier->usAnimState == LOB_ITEM ||
|
||||||
pSoldier->usAnimState == THROW_ITEM ||
|
pSoldier->usAnimState == THROW_ITEM ||
|
||||||
|
//<SB> crouch throwing
|
||||||
|
pSoldier->usAnimState == THROW_ITEM_CROUCHED ||
|
||||||
|
//<SB> crouch throwing
|
||||||
pSoldier->usAnimState == PICKUP_ITEM ||
|
pSoldier->usAnimState == PICKUP_ITEM ||
|
||||||
pSoldier->usAnimState == DROP_ITEM ||
|
pSoldier->usAnimState == DROP_ITEM ||
|
||||||
pSoldier->usAnimState == OPEN_DOOR ||
|
pSoldier->usAnimState == OPEN_DOOR ||
|
||||||
|
|||||||
@@ -3437,6 +3437,9 @@ void EVENT_SoldierGotHit( SOLDIERTYPE *pSoldier, UINT16 usWeaponIndex, INT16 sDa
|
|||||||
case SHOOT_ROCKET:
|
case SHOOT_ROCKET:
|
||||||
case SHOOT_MORTAR:
|
case SHOOT_MORTAR:
|
||||||
case THROW_ITEM:
|
case THROW_ITEM:
|
||||||
|
// <SB> crouch throwing
|
||||||
|
case THROW_ITEM_CROUCHED:
|
||||||
|
// <SB> crouch throwing
|
||||||
case LOB_ITEM:
|
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 ) );
|
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