- fixed behaviour of the 's' key and 'walk' UI toggle. When you press 's now or click on the 'walk' icon the character(s) stand up (if not already standing) and go to walk mode. Before they could be stuck in running mode which had been activated previously.

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7247 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
silversurfer
2014-05-31 19:46:19 +00:00
parent 8c822524d0
commit b824267154
2 changed files with 52 additions and 4 deletions
+11 -1
View File
@@ -1722,7 +1722,17 @@ UINT32 UIHandleMovementMenu( UI_EVENT *pUIEvent )
case MOVEMENT_MENU_WALK:
UIHandleSoldierStanceChange( pSoldier->ubID, ANIM_STAND );
if ( pSoldier->usUIMovementMode != WALKING && pSoldier->usUIMovementMode != RUNNING && pSoldier->usUIMovementMode != WALKING_WEAPON_RDY && pSoldier->usUIMovementMode != WALKING_DUAL_RDY && pSoldier->usUIMovementMode != WALKING_ALTERNATIVE_RDY )
{
UIHandleSoldierStanceChange( pSoldier->ubID, ANIM_STAND );
pSoldier->flags.fUIMovementFast = 0;
}
else
{
pSoldier->flags.fUIMovementFast = 0;
pSoldier->usUIMovementMode = WALKING;
gfPlotNewMovement = TRUE;
}
break;
case MOVEMENT_MENU_SWAT:
+41 -3
View File
@@ -5967,7 +5967,7 @@ void ToggleMercsNeverQuit()
}
#endif
// silversurfer: This function handles switching between prone, crouching and standing stance. Running is handled in function HandleTBSoldierRun().
void HandleStanceChangeFromUIKeys( UINT8 ubAnimHeight )
{
// If we have multiple guys selected, make all change stance!
@@ -5986,7 +5986,24 @@ void HandleStanceChangeFromUIKeys( UINT8 ubAnimHeight )
{
if ( pSoldier->flags.uiStatusFlags & SOLDIER_MULTI_SELECTED )
{
UIHandleSoldierStanceChange( pSoldier->ubID, ubAnimHeight );
// 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 )
{
if ( pSoldier->usUIMovementMode != WALKING && pSoldier->usUIMovementMode != RUNNING && pSoldier->usUIMovementMode != WALKING_WEAPON_RDY && pSoldier->usUIMovementMode != WALKING_DUAL_RDY && pSoldier->usUIMovementMode != WALKING_ALTERNATIVE_RDY )
{
UIHandleSoldierStanceChange( pSoldier->ubID, ANIM_STAND );
pSoldier->flags.fUIMovementFast = 0;
}
else
{
pSoldier->flags.fUIMovementFast = 0;
pSoldier->usUIMovementMode = WALKING;
gfPlotNewMovement = TRUE;
}
}
else
UIHandleSoldierStanceChange( pSoldier->ubID, ubAnimHeight );
}
}
}
@@ -5994,7 +6011,28 @@ void HandleStanceChangeFromUIKeys( UINT8 ubAnimHeight )
else
{
if( gusSelectedSoldier != NOBODY )
UIHandleSoldierStanceChange( (UINT8)gusSelectedSoldier, ubAnimHeight );
{
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 )
{
if ( pSoldier->usUIMovementMode != WALKING && pSoldier->usUIMovementMode != RUNNING && pSoldier->usUIMovementMode != WALKING_WEAPON_RDY && pSoldier->usUIMovementMode != WALKING_DUAL_RDY && pSoldier->usUIMovementMode != WALKING_ALTERNATIVE_RDY )
{
UIHandleSoldierStanceChange( pSoldier->ubID, ANIM_STAND );
pSoldier->flags.fUIMovementFast = 0;
}
else
{
pSoldier->flags.fUIMovementFast = 0;
pSoldier->usUIMovementMode = WALKING;
gfPlotNewMovement = TRUE;
}
}
else
UIHandleSoldierStanceChange( pSoldier->ubID, ubAnimHeight );
}
}
}