mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
When changing stance from UI, first stop cowering.
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8930 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
+48
-6
@@ -1819,6 +1819,13 @@ UINT32 UIHandleMovementMenu( UI_EVENT *pUIEvent )
|
||||
}
|
||||
else
|
||||
{
|
||||
if (pSoldier->IsCowering())
|
||||
{
|
||||
pSoldier->StopCoweringAnimation();
|
||||
UINT16 usNewState = pSoldier->GetNewSoldierStateFromNewStance(ANIM_STAND);
|
||||
pSoldier->usPendingAnimation = usNewState;
|
||||
}
|
||||
|
||||
pSoldier->flags.fUIMovementFast = 1;
|
||||
pSoldier->usUIMovementMode = RUNNING;
|
||||
gfPlotNewMovement = TRUE;
|
||||
@@ -1834,6 +1841,13 @@ UINT32 UIHandleMovementMenu( UI_EVENT *pUIEvent )
|
||||
}
|
||||
else
|
||||
{
|
||||
if (pSoldier->IsCowering())
|
||||
{
|
||||
pSoldier->StopCoweringAnimation();
|
||||
UINT16 usNewState = pSoldier->GetNewSoldierStateFromNewStance(ANIM_STAND);
|
||||
pSoldier->usPendingAnimation = usNewState;
|
||||
}
|
||||
|
||||
pSoldier->flags.fUIMovementFast = 0;
|
||||
pSoldier->usUIMovementMode = WALKING;
|
||||
gfPlotNewMovement = TRUE;
|
||||
@@ -1841,13 +1855,31 @@ UINT32 UIHandleMovementMenu( UI_EVENT *pUIEvent )
|
||||
break;
|
||||
|
||||
case MOVEMENT_MENU_SWAT:
|
||||
|
||||
UIHandleSoldierStanceChange( pSoldier->ubID, ANIM_CROUCH );
|
||||
if (pSoldier->IsCowering())
|
||||
{
|
||||
pSoldier->StopCoweringAnimation();
|
||||
UINT16 usNewState = pSoldier->GetNewSoldierStateFromNewStance(ANIM_CROUCH);
|
||||
if (gAnimControl[pSoldier->usAnimState].ubEndHeight != ANIM_CROUCH)
|
||||
pSoldier->usPendingAnimation = usNewState;
|
||||
}
|
||||
else
|
||||
{
|
||||
UIHandleSoldierStanceChange(pSoldier->ubID, ANIM_CROUCH);
|
||||
}
|
||||
break;
|
||||
|
||||
case MOVEMENT_MENU_PRONE:
|
||||
|
||||
UIHandleSoldierStanceChange( pSoldier->ubID, ANIM_PRONE );
|
||||
if (pSoldier->IsCowering())
|
||||
{
|
||||
pSoldier->StopCoweringAnimation();
|
||||
UINT16 usNewState = pSoldier->GetNewSoldierStateFromNewStance(ANIM_PRONE);
|
||||
if (gAnimControl[pSoldier->usAnimState].ubEndHeight != ANIM_PRONE)
|
||||
pSoldier->usPendingAnimation = usNewState;
|
||||
}
|
||||
else
|
||||
{
|
||||
UIHandleSoldierStanceChange(pSoldier->ubID, ANIM_PRONE);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -3128,8 +3160,18 @@ UINT32 UIHandlePADJAdjustStance( UI_EVENT *pUIEvent )
|
||||
}
|
||||
else
|
||||
{
|
||||
// Set state to result
|
||||
UIHandleSoldierStanceChange( pSoldier->ubID, ubNewStance );
|
||||
if (pSoldier->IsCowering())
|
||||
{
|
||||
pSoldier->StopCoweringAnimation();
|
||||
UINT16 usNewState = pSoldier->GetNewSoldierStateFromNewStance(ubNewStance);
|
||||
if (gAnimControl[pSoldier->usAnimState].ubEndHeight != ubNewStance)
|
||||
pSoldier->usPendingAnimation = usNewState;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Set state to result
|
||||
UIHandleSoldierStanceChange(pSoldier->ubID, ubNewStance);
|
||||
}
|
||||
}
|
||||
|
||||
// Once we have APs, we can safely reset nomove flag!
|
||||
|
||||
@@ -6132,7 +6132,6 @@ void HandleStanceChangeFromUIKeys( UINT8 ubAnimHeight )
|
||||
if( gusSelectedSoldier != NOBODY )
|
||||
{
|
||||
pSoldier = MercPtrs[ (UINT8)gusSelectedSoldier ];
|
||||
|
||||
// silversurfer: If we decide to stand up or press "s" again while we are standing we should reset movement to walk mode.
|
||||
// If we want to run we have to press "r" which is handled elsewhere.
|
||||
if ( ubAnimHeight == ANIM_STAND )
|
||||
@@ -6144,13 +6143,32 @@ void HandleStanceChangeFromUIKeys( UINT8 ubAnimHeight )
|
||||
}
|
||||
else
|
||||
{
|
||||
if (pSoldier->IsCowering())
|
||||
{
|
||||
pSoldier->StopCoweringAnimation();
|
||||
UINT16 usNewState = pSoldier->GetNewSoldierStateFromNewStance(ubAnimHeight);
|
||||
pSoldier->usPendingAnimation = usNewState;
|
||||
}
|
||||
|
||||
pSoldier->flags.fUIMovementFast = 0;
|
||||
pSoldier->usUIMovementMode = WALKING;
|
||||
gfPlotNewMovement = TRUE;
|
||||
}
|
||||
}
|
||||
else
|
||||
UIHandleSoldierStanceChange( pSoldier->ubID, ubAnimHeight );
|
||||
{
|
||||
if (pSoldier->IsCowering())
|
||||
{
|
||||
pSoldier->StopCoweringAnimation();
|
||||
UINT16 usNewState = pSoldier->GetNewSoldierStateFromNewStance(ubAnimHeight);
|
||||
if (gAnimControl[pSoldier->usAnimState].ubEndHeight != ubAnimHeight)
|
||||
pSoldier->usPendingAnimation = usNewState;
|
||||
}
|
||||
else
|
||||
{
|
||||
UIHandleSoldierStanceChange(pSoldier->ubID, ubAnimHeight);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -8124,6 +8142,13 @@ void HandleTBSoldierRun( void )
|
||||
}
|
||||
else
|
||||
{
|
||||
if (pSoldier->IsCowering())
|
||||
{
|
||||
pSoldier->StopCoweringAnimation();
|
||||
UINT16 usNewState = pSoldier->GetNewSoldierStateFromNewStance(ANIM_STAND);
|
||||
pSoldier->usPendingAnimation = usNewState;
|
||||
}
|
||||
|
||||
pSoldier->flags.fUIMovementFast = 1;
|
||||
pSoldier->usUIMovementMode = RUNNING;
|
||||
gfPlotNewMovement = TRUE;
|
||||
|
||||
Reference in New Issue
Block a user