Improved code for alternate mouse commands (option ALTERNATE_MOUSE_COMMANDS).

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8778 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Sevenfm
2020-04-02 20:41:36 +00:00
parent c0f36bc6c2
commit 5784135c29
2 changed files with 261 additions and 225 deletions
+119 -113
View File
@@ -59,7 +59,8 @@
#include "worlddat.h" //for gtileset
#include "Debug Control.h" //for livelog
#include "SkillMenu.h" // sevenfm: need this for TraitsMenu
#include "SkillMenu.h" // sevenfm: need this for TraitsMenu
#include "DisplayCover.h" // added by Sevenfm
#include "Vehicles.h" // anv: for switching from soldier to vehicle
#include "VehicleMenu.h"
@@ -134,6 +135,10 @@ void HandleRTLocateSoldier( void );
extern void SetScopeMode( INT32 usMapPos );
extern void HandleTacticalReload(void);
extern void HandleTacticalTransformItem(void);
extern void HandleTBSelectAllMercs(void);
extern void HandleStealthChangeFromUIKeys( );
extern void HandleTBReloadAll( void );
extern void HandleTBEnterTurnbased( void );
@@ -1897,147 +1902,148 @@ void QueryRTX2Button( UINT32 *puiNewEvent )
}
// sevenfm: new mouse commands
void HandleAltMouseRTWheel( void )
void HandleAltMouseRTWheel(void)
{
if ( !( gTacticalStatus.uiFlags & ENGAGED_IN_CONV ) &&
( ( gsCurInterfacePanel != SM_PANEL ) || ( ButtonList[ iSMPanelButtons[ NEXTMERC_BUTTON ] ]->uiFlags & BUTTON_ENABLED ) ) )
if (!(gTacticalStatus.uiFlags & ENGAGED_IN_CONV) &&
((gsCurInterfacePanel != SM_PANEL) || (ButtonList[iSMPanelButtons[NEXTMERC_BUTTON]]->uiFlags & BUTTON_ENABLED)))
{
if ( gViewportRegion.WheelState > 0 ) // wheel up
if (gViewportRegion.WheelState > 0) // wheel up
{
if ( _KeyDown( ALT ) )
if( _KeyDown( SHIFT ) )
{
if( _KeyDown( CTRL ) ) // SHIFT+CTRL+ALT
HandleTBPickUpBackpacks();
else // SHIFT+ALT
CycleThroughKnownEnemies();
}
else if ( _KeyDown( CTRL ) ) // CTRL+ALT
HandleTBSwapGoogles();
else // ALT
HandleTBGotoHigherStance();
else if( _KeyDown( CTRL ) )
if (_KeyDown(ALT))
if (_KeyDown(SHIFT))
{
if( _KeyDown( SHIFT ) ) // SHIFT+CTRL
HandleTBSwapGunsling();
else // CTRL
HandleTBSoldierRun();
if (_KeyDown(CTRL)) // SHIFT+CTRL+ALT
;
else // SHIFT+ALT
;
}
else if( _KeyDown( SHIFT ) ) // SHIFT
HandleTBCycleThroughVisibleEnemies();
else
HandleTBLocatePrevMerc();
else if (_KeyDown(CTRL)) // CTRL+ALT
HandleTBPickUpBackpacks();
else // ALT
HandleTBGotoHigherStance();
else if (_KeyDown(CTRL))
{
if (_KeyDown(SHIFT)) // SHIFT+CTRL
;
else // CTRL
HandleTBLocatePrevMerc();
}
else if (_KeyDown(SHIFT)) // SHIFT
HandleTBCycleThroughVisibleEnemiesBackward();
else
;
}
else // wheel down
{
if ( _KeyDown( ALT ) )
if( _KeyDown( SHIFT ) )
{
if( _KeyDown( CTRL ) ) // SHIFT+CTRL+ALT
HandleTBDropBackpacks();
else // SHIFT+ALT
CycleThroughKnownEnemies( TRUE );
}
else if ( _KeyDown( CTRL ) ) // CTRL+ALT
HandleTBSwapSidearm();
else // ALT
HandleTBGotoLowerStance();
else if( _KeyDown( CTRL ) )
if (_KeyDown(ALT))
if (_KeyDown(SHIFT))
{
if( _KeyDown( SHIFT ) ) // SHIFT+CTRL
HandleTBSwapKnife();
else // CTRL
HandleTBSwapHands();
if (_KeyDown(CTRL)) // SHIFT+CTRL+ALT
;
else // SHIFT+ALT
;
}
else if( _KeyDown( SHIFT ) ) // SHIFT
HandleTBCycleThroughVisibleEnemiesBackward();
else
HandleTBLocateNextMerc();
else if (_KeyDown(CTRL)) // CTRL+ALT
HandleTBDropBackpacks();
else // ALT
HandleTBGotoLowerStance();
else if (_KeyDown(CTRL))
{
if (_KeyDown(SHIFT)) // SHIFT+CTRL
;
else // CTRL
HandleTBLocateNextMerc();
}
else if (_KeyDown(SHIFT)) // SHIFT
HandleTBCycleThroughVisibleEnemies();
else
;
}
}
}
void HandleAltMouseRTMButton( UINT32 *puiNewEvent )
void HandleAltMouseRTMButton(UINT32 *puiNewEvent)
{
INT32 usMapPos;
GetMouseMapPos( &usMapPos );
GetMouseMapPos(&usMapPos);
if ( _KeyDown( ALT ) )
if( _KeyDown( SHIFT ) )
{
if( _KeyDown( CTRL ) ) // SHIFT+CTRL+ALT
HandleRTJumpThroughWindow();
else // SHIFT+ALT
;// reserved
}
else if ( _KeyDown( CTRL ) ) // CTRL+ALT
HandleTBChangeLevel();
else // ALT
HandleRTToggleFireMode();
else if( _KeyDown( CTRL ) )
if (_KeyDown(ALT))
if (_KeyDown(SHIFT))
{
if( _KeyDown( SHIFT ) ) // SHIFT+CTRL
HandleRTJump();
if (_KeyDown(CTRL)) // SHIFT+CTRL+ALT
;
else // SHIFT+ALT
;// reserved
}
else if (_KeyDown(CTRL)) // CTRL+ALT
HandleTacticalReload();
else // ALT
HandleRTToggleFireMode();
else if (_KeyDown(CTRL))
{
if (_KeyDown(SHIFT)) // SHIFT+CTRL
;
else // CTRL
SetScopeMode( usMapPos );
SetScopeMode(usMapPos);
}
else if( _KeyDown( SHIFT ) ) // SHIFT
HandleTBLocateSoldier();
else if (_KeyDown(SHIFT)) // SHIFT
HandleTacticalTransformItem();
else // Button
HandleRTLook( puiNewEvent );
HandleRTLook(puiNewEvent);
}
void HandleAltMouseRTX1Button( UINT32 *puiNewEvent )
void HandleAltMouseRTX1Button(UINT32 *puiNewEvent)
{
if ( _KeyDown( ALT ) )
if( _KeyDown( SHIFT ) )
{
if( _KeyDown( CTRL ) ) // SHIFT+CTRL+ALT
HandleTBToggleSneak();
else // SHIFT+ALT
HandleTBToggleFormation();
}
else if ( _KeyDown( CTRL ) ) // CTRL+ALT
HandleTBSwapGoogles();
else // ALT
HandleTBSwapKnife();
else if( _KeyDown( CTRL ) )
if (_KeyDown(ALT))
if (_KeyDown(SHIFT))
{
if( _KeyDown( SHIFT ) ) // SHIFT+CTRL
HandleTBEnterTurnbased();
else // CTRL
HandleTBSwapSidearm();
if (_KeyDown(CTRL)) // SHIFT+CTRL+ALT
;
else // SHIFT+ALT
;
}
else if( _KeyDown( SHIFT ) ) // SHIFT
else if (_KeyDown(CTRL)) // CTRL+ALT
ToggleTrapNetworkView();
else // ALT
HandleTBSwapGunsling();
else // Button
HandleTBSwapHands();
}
void HandleAltMouseRTX2Button( UINT32 *puiNewEvent )
{
if ( _KeyDown( ALT ) )
if( _KeyDown( SHIFT ) )
{
if( _KeyDown( CTRL ) ) // SHIFT+CTRL+ALT
HandleTBToggleTrapNetworkView();
else // SHIFT+ALT
HandleTBReloadAll();
}
else if ( _KeyDown( CTRL ) ) // CTRL+ALT
HandleTBShowMines();
else // ALT
HandleTBToggleStealthAll();
else if( _KeyDown( CTRL ) )
else if (_KeyDown(CTRL))
{
if( _KeyDown( SHIFT ) ) // SHIFT+CTRL
HandleTBShowLOS();
if (_KeyDown(SHIFT)) // SHIFT+CTRL
;
else // CTRL
HandleTBShowCover();
HandleTBSwapHands();
}
else if( _KeyDown( SHIFT ) ) // SHIFT
HandleTBReload();
else if (_KeyDown(SHIFT)) // SHIFT
HandleTBSelectAllMercs();
else // Button
HandleTBToggleStealth();
HandleTBShowLOS();
}
void HandleAltMouseRTX2Button(UINT32 *puiNewEvent)
{
if (_KeyDown(ALT))
if (_KeyDown(SHIFT))
{
if (_KeyDown(CTRL)) // SHIFT+CTRL+ALT
;
else // SHIFT+ALT
;
}
else if (_KeyDown(CTRL)) // CTRL+ALT
ToggleHostileTrapsView();
else // ALT
HandleTBToggleFormation();
else if (_KeyDown(CTRL))
{
if (_KeyDown(SHIFT)) // SHIFT+CTRL
;
else // CTRL
HandleRTJump();
}
else if (_KeyDown(SHIFT)) // SHIFT
HandleRTJumpThroughWindow();
else // Button
HandleTBShowCover();
}
// sevenfm: original mouse commands functionality
+142 -112
View File
@@ -336,6 +336,7 @@ void HandleTBDropBackpacks( void );
void HandleTBPickUpBackpacks( void );
void HandleTBSoldierRun( void );
void HandleTacticalReload(void);
void HandleTacticalTakeItem( void );
void HandleTacticalDropItem( UINT8 ubSlot );
void HandleTacticalTakeInvItem( INT32 iType );
@@ -7065,146 +7066,148 @@ void SwapMercPortraits ( SOLDIERTYPE *pSoldier, INT8 bDirection )
// sevenfm: new mouse commands
void HandleAltMouseTBWheel( void )
{
if ( !( gTacticalStatus.uiFlags & ENGAGED_IN_CONV ) &&
( ( gsCurInterfacePanel != SM_PANEL ) || ( ButtonList[ iSMPanelButtons[ NEXTMERC_BUTTON ] ]->uiFlags & BUTTON_ENABLED ) ) )
{
if ( gViewportRegion.WheelState > 0 ) // wheel up
{
if ( _KeyDown( ALT ) )
if( _KeyDown( SHIFT ) )
{
if( _KeyDown( CTRL ) ) // SHIFT+CTRL+ALT
HandleTBPickUpBackpacks();
else // SHIFT+ALT
HandleTBCycleThroughKnownEnemies();
}
else if ( _KeyDown( CTRL ) ) // CTRL+ALT
HandleTBSwapGoogles();
else // ALT
HandleTBGotoHigherStance();
else if( _KeyDown( CTRL ) )
if (!(gTacticalStatus.uiFlags & ENGAGED_IN_CONV) &&
((gsCurInterfacePanel != SM_PANEL) || (ButtonList[iSMPanelButtons[NEXTMERC_BUTTON]]->uiFlags & BUTTON_ENABLED)))
{
if (gViewportRegion.WheelState > 0) // wheel up
{
if (_KeyDown(ALT))
if (_KeyDown(SHIFT))
{
if( _KeyDown( SHIFT ) ) // SHIFT+CTRL
HandleTBSwapGunsling();
else // CTRL
HandleTBSoldierRun();
if (_KeyDown(CTRL)) // SHIFT+CTRL+ALT
;
else // SHIFT+ALT
;
}
else if( _KeyDown( SHIFT ) ) // SHIFT
HandleTBCycleThroughVisibleEnemies();
else
HandleTBLocatePrevMerc();
else if (_KeyDown(CTRL)) // CTRL+ALT
HandleTBPickUpBackpacks();
else // ALT
HandleTBGotoHigherStance();
else if (_KeyDown(CTRL))
{
if (_KeyDown(SHIFT)) // SHIFT+CTRL
;
else // CTRL
HandleTBLocatePrevMerc();
}
else if (_KeyDown(SHIFT)) // SHIFT
HandleTBCycleThroughVisibleEnemiesBackward();
else
;
}
else // wheel down
{
if ( _KeyDown( ALT ) )
if( _KeyDown( SHIFT ) )
{
if( _KeyDown( CTRL ) ) // SHIFT+CTRL+ALT
HandleTBDropBackpacks();
else // SHIFT+ALT
HandleTBCycleThroughKnownEnemiesBackward();
}
else if ( _KeyDown( CTRL ) ) // CTRL+ALT
HandleTBSwapSidearm();
else // ALT
HandleTBGotoLowerStance();
else if( _KeyDown( CTRL ) )
if (_KeyDown(ALT))
if (_KeyDown(SHIFT))
{
if( _KeyDown( SHIFT ) ) // SHIFT+CTRL
HandleTBSwapKnife();
else // CTRL
HandleTBSwapHands();
if (_KeyDown(CTRL)) // SHIFT+CTRL+ALT
;
else // SHIFT+ALT
;
}
else if( _KeyDown( SHIFT ) ) // SHIFT
HandleTBCycleThroughVisibleEnemiesBackward();
else
HandleTBLocateNextMerc();
else if (_KeyDown(CTRL)) // CTRL+ALT
HandleTBDropBackpacks();
else // ALT
HandleTBGotoLowerStance();
else if (_KeyDown(CTRL))
{
if (_KeyDown(SHIFT)) // SHIFT+CTRL
;
else // CTRL
HandleTBLocateNextMerc();
}
else if (_KeyDown(SHIFT)) // SHIFT
HandleTBCycleThroughVisibleEnemies();
else
;
}
}
}
void HandleAltMouseTBMButton( UINT32 *puiNewEvent )
void HandleAltMouseTBMButton(UINT32 *puiNewEvent)
{
INT32 usMapPos;
GetMouseMapPos( &usMapPos );
GetMouseMapPos(&usMapPos);
if ( _KeyDown( ALT ) )
if( _KeyDown( SHIFT ) )
{
if( _KeyDown( CTRL ) ) // SHIFT+CTRL+ALT
HandleTBJumpThroughWindow();
else // SHIFT+ALT
;// reserved
}
else if ( _KeyDown( CTRL ) ) // CTRL+ALT
HandleTBChangeLevel();
else // ALT
HandleTBToggleFireMode();
else if( _KeyDown( CTRL ) )
if (_KeyDown(ALT))
if (_KeyDown(SHIFT))
{
if( _KeyDown( SHIFT ) ) // SHIFT+CTRL
HandleTBJump();
if (_KeyDown(CTRL)) // SHIFT+CTRL+ALT
;
else // SHIFT+ALT
;// reserved
}
else if (_KeyDown(CTRL)) // CTRL+ALT
HandleTacticalReload();
else // ALT
HandleTBToggleFireMode();
else if (_KeyDown(CTRL))
{
if (_KeyDown(SHIFT)) // SHIFT+CTRL
;
else // CTRL
SetScopeMode( usMapPos );
SetScopeMode(usMapPos);
}
else if( _KeyDown( SHIFT ) ) // SHIFT
HandleTBLocateSoldier();
else if (_KeyDown(SHIFT)) // SHIFT
HandleTacticalTransformItem();
else // Button
HandleTBLook( puiNewEvent );
HandleTBLook(puiNewEvent);
}
void HandleAltMouseTBX1Button( UINT32 *puiNewEvent )
void HandleAltMouseTBX1Button(UINT32 *puiNewEvent)
{
if ( _KeyDown( ALT ) )
if( _KeyDown( SHIFT ) )
{
if( _KeyDown( CTRL ) ) // SHIFT+CTRL+ALT
HandleTBToggleSneak();
else // SHIFT+ALT
HandleTBToggleFormation();
}
else if ( _KeyDown( CTRL ) ) // CTRL+ALT
HandleTBSwapGoogles();
else // ALT
HandleTBSwapKnife();
else if( _KeyDown( CTRL ) )
if (_KeyDown(ALT))
if (_KeyDown(SHIFT))
{
if( _KeyDown( SHIFT ) ) // SHIFT+CTRL
HandleTBEnterTurnbased();
else // CTRL
HandleTBSwapSidearm();
if (_KeyDown(CTRL)) // SHIFT+CTRL+ALT
;
else // SHIFT+ALT
;
}
else if( _KeyDown( SHIFT ) ) // SHIFT
else if (_KeyDown(CTRL)) // CTRL+ALT
ToggleTrapNetworkView();
else // ALT
HandleTBSwapGunsling();
else // Button
HandleTBSwapHands();
}
void HandleAltMouseTBX2Button( UINT32 *puiNewEvent )
{
if ( _KeyDown( ALT ) )
if( _KeyDown( SHIFT ) )
{
if( _KeyDown( CTRL ) ) // SHIFT+CTRL+ALT
HandleTBToggleTrapNetworkView();
else // SHIFT+ALT
HandleTBReloadAll();
}
else if ( _KeyDown( CTRL ) ) // CTRL+ALT
HandleTBShowMines();
else // ALT
HandleTBToggleStealthAll();
else if( _KeyDown( CTRL ) )
else if (_KeyDown(CTRL))
{
if( _KeyDown( SHIFT ) ) // SHIFT+CTRL
HandleTBShowLOS();
if (_KeyDown(SHIFT)) // SHIFT+CTRL
;
else // CTRL
HandleTBShowCover();
HandleTBSwapHands();
}
else if( _KeyDown( SHIFT ) ) // SHIFT
HandleTBReload();
else if (_KeyDown(SHIFT)) // SHIFT
;
else // Button
HandleTBToggleStealth();
HandleTBShowLOS();
}
void HandleAltMouseTBX2Button(UINT32 *puiNewEvent)
{
if (_KeyDown(ALT))
if (_KeyDown(SHIFT))
{
if (_KeyDown(CTRL)) // SHIFT+CTRL+ALT
;
else // SHIFT+ALT
;
}
else if (_KeyDown(CTRL)) // CTRL+ALT
ToggleHostileTrapsView();
else // ALT
HandleTBToggleFormation();
else if (_KeyDown(CTRL))
{
if (_KeyDown(SHIFT)) // SHIFT+CTRL
;
else // CTRL
HandleTBJump();
}
else if (_KeyDown(SHIFT)) // SHIFT
HandleTBJumpThroughWindow();
else // Button
HandleTBShowCover();
}
// sevenfm: these functions keep original mouse code functionality
void HandleMouseTBWheel( void )
{
@@ -8804,4 +8807,31 @@ void HandleTacticalTakeItem( void )
}
}
void HandleTacticalReload()
{
SOLDIERTYPE *pSoldier;
INT16 bAPs = 0;
if (gusSelectedSoldier != NOBODY)
pSoldier = MercPtrs[gusSelectedSoldier];
else
return;
// Do we have the ammo to reload?
// Check APs to reload...
bAPs = GetAPsToAutoReload(pSoldier);
if (EnoughPoints(pSoldier, bAPs, 0, TRUE))
{
// OK, we have some ammo we can reload.... reload now!
if (!AutoReload(pSoldier))
{
// Do we say we could not reload gun...?
pSoldier->DoMercBattleSound(BATTLE_SOUND_CURSE1);
//TacticalCharacterDialogue( pSoldier, QUOTE_OUT_OF_AMMO );
}
// ATE: Re-examine cursor info!
gfUIForceReExamineCursorData = TRUE;
}
}