- 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:
Lesh
2006-08-17 16:54:13 +00:00
parent 0d9a0e0b9c
commit f82ad0c521
+29 -33
View File
@@ -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 )
{