mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
- dying soldiers don't fallback into obstacles anymore. but they still fallback through wall
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@451 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
+29
-33
@@ -3462,11 +3462,13 @@ void CheckForAndHandleSoldierIncompacitated( SOLDIERTYPE *pSoldier )
|
||||
// Randomly fall back or forward, if we are in the standing hit animation
|
||||
if ( pSoldier->usAnimState == GENERIC_HIT_STAND || pSoldier->usAnimState == STANDING_BURST_HIT || pSoldier->usAnimState == RIFLE_STAND_HIT )
|
||||
{
|
||||
INT8 bTestDirection = pSoldier->bDirection;
|
||||
INT8 bTestDirection = pSoldier->bDirection;
|
||||
BOOLEAN fForceDirection = FALSE;
|
||||
BOOLEAN fDoFallback = FALSE;
|
||||
BOOLEAN fDoFallback = FALSE;
|
||||
|
||||
|
||||
// Lesh: lets fix dead humans fallback through obstacles
|
||||
|
||||
// TRY FALLING BACKWARDS, ( ONLY IF WE ARE A MERC! )
|
||||
#ifdef TESTFALLBACK
|
||||
if ( IS_MERC_BODY_TYPE( pSoldier ) )
|
||||
@@ -3484,49 +3486,43 @@ void CheckForAndHandleSoldierIncompacitated( SOLDIERTYPE *pSoldier )
|
||||
fForceDirection = TRUE;
|
||||
}
|
||||
|
||||
sNewGridNo = pSoldier->sGridNo;
|
||||
sNewGridNo = NewGridNo( (UINT16)pSoldier->sGridNo, DirectionInc( gOppositeDirection[ bTestDirection ] ) );
|
||||
|
||||
// if ( OKFallDirection( pSoldier, sNewGridNo, pSoldier->bLevel, bTestDirection, FALLBACK_HIT_STAND ) )
|
||||
// {
|
||||
// SECOND GRIDNO
|
||||
sNewGridNo = NewGridNo( (UINT16)sNewGridNo, DirectionInc( gOppositeDirection[ bTestDirection ] ) );
|
||||
|
||||
// if ( OKFallDirection( pSoldier, sNewGridNo, pSoldier->bLevel, bTestDirection, FALLBACK_HIT_STAND ) )
|
||||
// {
|
||||
// ALL'S OK HERE..... IF WE FORCED DIRECTION, SET!
|
||||
if ( fForceDirection )
|
||||
{
|
||||
EVENT_SetSoldierDesiredDirection( pSoldier, bTestDirection );
|
||||
EVENT_SetSoldierDirection( pSoldier, bTestDirection );
|
||||
}
|
||||
ChangeToFallbackAnimation( pSoldier, pSoldier->bDirection );
|
||||
return;
|
||||
// }
|
||||
//else
|
||||
//{
|
||||
// fDoFallback = TRUE;
|
||||
//}
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// fDoFallback = TRUE;
|
||||
//}
|
||||
if ( OKFallDirection( pSoldier, sNewGridNo, pSoldier->bLevel, bTestDirection, FLYBACK_HIT ) )
|
||||
{
|
||||
// CHECKED BEHIND GRIDS - OK
|
||||
fDoFallback = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
fDoFallback = FALSE;
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
fDoFallback = TRUE;
|
||||
fDoFallback = FALSE;
|
||||
}
|
||||
|
||||
if ( fDoFallback )
|
||||
if ( !fDoFallback )
|
||||
{
|
||||
// 1 )REC DIRECTION
|
||||
// 1 ) REC DIRECTION
|
||||
// 2 ) SET FLAG FOR STARTING TO FALL
|
||||
BeginTyingToFall( pSoldier );
|
||||
BeginTyingToFall( pSoldier );
|
||||
ChangeSoldierState( pSoldier, FALLFORWARD_FROMHIT_STAND, 0, FALSE );
|
||||
return;
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
// ALL'S OK HERE..... IF WE FORCED DIRECTION, SET!
|
||||
if ( fForceDirection )
|
||||
{
|
||||
EVENT_SetSoldierDesiredDirection( pSoldier, bTestDirection );
|
||||
EVENT_SetSoldierDirection( pSoldier, bTestDirection );
|
||||
}
|
||||
ChangeToFallbackAnimation( pSoldier, pSoldier->bDirection );
|
||||
return;
|
||||
}
|
||||
}
|
||||
else if ( pSoldier->usAnimState == GENERIC_HIT_CROUCH )
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user