- new setting in game options: Space selects next squad, when turned on there is no need to press Shift+Space to select next squad

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@165 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
lalien
2006-06-04 15:36:34 +00:00
parent 573dbee6c2
commit fc503fc9ab
9 changed files with 152 additions and 114 deletions
+4 -1
View File
@@ -242,7 +242,7 @@ void InitGameSettings()
gGameSettings.fOptions[ TOPTION_TOGGLE_WIREFRAME ] = TRUE;
gGameSettings.fOptions[ TOPTION_3D_CURSOR ] = FALSE;
gGameSettings.fOptions[ TOPTION_CTH_CURSOR ] = TRUE;
//Madd:
//Madd:
gGameSettings.fOptions[ TOPTION_GL_BURST_CURSOR ] = TRUE;
gGameSettings.fOptions[ TOPTION_DROP_ALL ] = FALSE;
gGameSettings.fOptions[ TOPTION_GL_HIGH_ANGLE ] = FALSE;
@@ -250,6 +250,9 @@ void InitGameSettings()
// JA2Gold
gGameSettings.fOptions[ TOPTION_MERC_CASTS_LIGHT ] = TRUE;
//lalien
gGameSettings.fOptions[ TOPTION_SPACE_SELECTS_NEXT_SQUAD ] = TRUE;
gGameSettings.ubSizeOfDisplayCover = 4;
gGameSettings.ubSizeOfLOS = 4;
+1
View File
@@ -45,6 +45,7 @@ enum
TOPTION_DROP_ALL,
TOPTION_GL_HIGH_ANGLE,
TOPTION_AIM_LEVEL_RESTRICTION,
TOPTION_SPACE_SELECTS_NEXT_SQUAD,
NUM_GAME_OPTIONS, //Toggle up this will be able to be Toggled by the player
//These options will NOT be toggable by the Player
+1 -1
View File
@@ -23,7 +23,7 @@ INT16 zVersionLabel[256] = { L"Beta v. 0.98" };
#else
//RELEASE BUILD VERSION
INT16 zVersionLabel[256] = { L"Release v1.13.164" };
INT16 zVersionLabel[256] = { L"Release v1.13.165" };
#endif
+2 -2
View File
@@ -43,7 +43,7 @@
<Tool
Name="VCLinkerTool"
AdditionalDependencies="libexpatMT.lib mss32.lib winmm.lib smackw32.lib fmodvc.lib"
OutputFile="C:\games\Jagged Alliance 2 v1.13\ja2_debug_v1.13.148_2006_05_30.exe"
OutputFile="C:\games\Jagged Alliance 2 v1.13\ja2_debug_v1.13.165_2006_06_04.exe"
LinkIncremental="2"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories=".\..\..\Standard Gaming Platform\"
@@ -546,7 +546,7 @@
<Tool
Name="VCLinkerTool"
AdditionalDependencies="libexpatMT.lib winmm.lib smackw32.lib mss32.lib fmodvc.lib"
OutputFile="C:\Games\Jagged Alliance 2 v1.13\ja2_release_v1.13.148_2006_05_30.exe"
OutputFile="C:\Games\Jagged Alliance 2 v1.13\ja2_release_v1.13.165_2006_06_04.exe"
LinkIncremental="1"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories=".\..\..\Standard Gaming Platform\"
+94 -68
View File
@@ -506,6 +506,8 @@ void UpdateStatColor( UINT32 uiTimer, BOOLEAN fUpdate );
extern void UpdateItemHatches();
extern SOLDIERTYPE *FindNextActiveSquad( SOLDIERTYPE *pSoldier );
// Wraps up check for AP-s get from a different soldier for in a vehicle...
INT8 GetUIApsToDisplay( SOLDIERTYPE *pSoldier )
{
@@ -5286,85 +5288,109 @@ void CheckForAndAddMercToTeamPanel( SOLDIERTYPE *pSoldier )
UINT8 FindNextMercInTeamPanel( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKLife, BOOLEAN fOnlyRegularMercs )
{
INT32 cnt;
INT32 bFirstID;
SOLDIERTYPE *pTeamSoldier;
INT32 bFirstID;
SOLDIERTYPE *pTeamSoldier;
bFirstID = GetTeamSlotFromPlayerID( pSoldier->ubID );
if ( bFirstID == -1 )
{
return( pSoldier->ubID );
}
bFirstID = GetTeamSlotFromPlayerID( pSoldier->ubID );
if ( bFirstID == -1 )
{
return( pSoldier->ubID );
}
for ( cnt = ( bFirstID + 1 ); cnt < NUM_TEAM_SLOTS; cnt++ )
{
if ( gTeamPanel[ cnt ].fOccupied )
{
// Set Id to close
pTeamSoldier = MercPtrs[ gTeamPanel[ cnt ].ubID ];
if ( gTeamPanel[ cnt ].fOccupied )
{
// Set Id to close
pTeamSoldier = MercPtrs[ gTeamPanel[ cnt ].ubID ];
if ( fOnlyRegularMercs )
{
if ( pTeamSoldier->bActive && ( AM_AN_EPC( pTeamSoldier ) || AM_A_ROBOT( pTeamSoldier ) ) )
{
continue;
}
}
if ( fOnlyRegularMercs )
{
if ( pTeamSoldier->bActive && ( AM_AN_EPC( pTeamSoldier ) || AM_A_ROBOT( pTeamSoldier ) ) )
{
continue;
}
}
if ( fGoodForLessOKLife )
{
if ( pTeamSoldier->bLife > 0 && pTeamSoldier->bActive && pTeamSoldier->bInSector && pTeamSoldier->bTeam == gbPlayerNum && pTeamSoldier->bAssignment < ON_DUTY && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment )
{
return( (UINT8)gTeamPanel[ cnt ].ubID );
}
}
else
{
if ( OK_CONTROLLABLE_MERC( pTeamSoldier) && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment )
{
return( (UINT8)gTeamPanel[ cnt ].ubID );
}
}
}
}
// none found,
// Now loop back
for ( cnt = 0; cnt < bFirstID; cnt++ )
{
if ( gTeamPanel[ cnt ].fOccupied )
{
pTeamSoldier = MercPtrs[ gTeamPanel[ cnt ].ubID ];
if ( fOnlyRegularMercs )
{
if ( pTeamSoldier->bActive && ( AM_AN_EPC( pTeamSoldier ) || AM_A_ROBOT( pTeamSoldier ) ) )
{
continue;
}
}
if ( fGoodForLessOKLife )
{
if ( pTeamSoldier->bLife > 0 && pTeamSoldier->bActive && pTeamSoldier->bInSector && pTeamSoldier->bTeam == gbPlayerNum && pTeamSoldier->bAssignment < ON_DUTY && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment )
{
return( (UINT8)gTeamPanel[ cnt ].ubID );
}
}
else
{
if ( OK_CONTROLLABLE_MERC( pTeamSoldier) && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment )
{
return( (UINT8)gTeamPanel[ cnt ].ubID );
}
}
}
if ( fGoodForLessOKLife )
{
if ( pTeamSoldier->bLife > 0 && pTeamSoldier->bActive && pTeamSoldier->bInSector && pTeamSoldier->bTeam == gbPlayerNum && pTeamSoldier->bAssignment < ON_DUTY && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment )
{
return( (UINT8)gTeamPanel[ cnt ].ubID );
}
}
else
{
if ( OK_CONTROLLABLE_MERC( pTeamSoldier) && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment )
{
return( (UINT8)gTeamPanel[ cnt ].ubID );
}
}
}
}
if ( ( gusSelectedSoldier != NO_SOLDIER ) && ( gGameSettings.fOptions[ TOPTION_SPACE_SELECTS_NEXT_SQUAD ] ) )
{
// only allow if nothing in hand and if in SM panel, the Change Squad button must be enabled
if ( ( ( gsCurInterfacePanel != TEAM_PANEL ) || ( ButtonList[ iTEAMPanelButtons[ CHANGE_SQUAD_BUTTON ] ]->uiFlags & BUTTON_ENABLED ) ) )
{
SOLDIERTYPE *pNewSoldier;
INT32 iCurrentSquad;
//Select next squad
iCurrentSquad = CurrentSquad( );
pNewSoldier = FindNextActiveSquad( MercPtrs[ gusSelectedSoldier ] );
if ( pNewSoldier->bAssignment != iCurrentSquad )
{
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, pMessageStrings[ MSG_SQUAD_ACTIVE ], ( CurrentSquad( ) + 1 ) );
return( pNewSoldier->ubID );
}
}
}
if ( !gGameSettings.fOptions[ TOPTION_SPACE_SELECTS_NEXT_SQUAD ] )
{
// none found,
// Now loop back
for ( cnt = 0; cnt < bFirstID; cnt++ )
{
if ( gTeamPanel[ cnt ].fOccupied )
{
pTeamSoldier = MercPtrs[ gTeamPanel[ cnt ].ubID ];
if ( fOnlyRegularMercs )
{
if ( pTeamSoldier->bActive && ( AM_AN_EPC( pTeamSoldier ) || AM_A_ROBOT( pTeamSoldier ) ) )
{
continue;
}
}
if ( fGoodForLessOKLife )
{
if ( pTeamSoldier->bLife > 0 && pTeamSoldier->bActive && pTeamSoldier->bInSector && pTeamSoldier->bTeam == gbPlayerNum && pTeamSoldier->bAssignment < ON_DUTY && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment )
{
return( (UINT8)gTeamPanel[ cnt ].ubID );
}
}
else
{
if ( OK_CONTROLLABLE_MERC( pTeamSoldier) && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment )
{
return( (UINT8)gTeamPanel[ cnt ].ubID );
}
}
}
}
}
// IF we are here, keep as we always were!
return( pSoldier->ubID );
}
+44 -42
View File
@@ -1816,60 +1816,62 @@ void GetKeyboardInput( UINT32 *puiNewEvent )
fShift = InputEvent.usKeyState & SHIFT_DOWN ? TRUE : FALSE;
switch( InputEvent.usParam )
{
case SPACE:
case SPACE:
// nothing in hand and either not in SM panel, or the matching button is enabled if we are in SM panel
if ( !( gTacticalStatus.uiFlags & ENGAGED_IN_CONV ) &&
( ( gsCurInterfacePanel != SM_PANEL ) || ( ButtonList[ iSMPanelButtons[ NEXTMERC_BUTTON ] ]->uiFlags & BUTTON_ENABLED ) ) )
// nothing in hand and either not in SM panel, or the matching button is enabled if we are in SM panel
if ( !( gTacticalStatus.uiFlags & ENGAGED_IN_CONV ) &&
( ( gsCurInterfacePanel != SM_PANEL ) || ( ButtonList[ iSMPanelButtons[ NEXTMERC_BUTTON ] ]->uiFlags & BUTTON_ENABLED ) ) )
{
if ( !InKeyRingPopup( ) )
{
if ( !InKeyRingPopup( ) )
if ( _KeyDown( SHIFT ) )
{
if ( _KeyDown( SHIFT ) )
{
SOLDIERTYPE *pNewSoldier;
INT32 iCurrentSquad;
SOLDIERTYPE *pNewSoldier;
INT32 iCurrentSquad;
if ( gusSelectedSoldier != NO_SOLDIER )
{
// only allow if nothing in hand and if in SM panel, the Change Squad button must be enabled
if (
( ( gsCurInterfacePanel != TEAM_PANEL ) || ( ButtonList[ iTEAMPanelButtons[ CHANGE_SQUAD_BUTTON ] ]->uiFlags & BUTTON_ENABLED ) ) )
if ( gusSelectedSoldier != NO_SOLDIER )
{
// only allow if nothing in hand and if in SM panel, the Change Squad button must be enabled
if (
( ( gsCurInterfacePanel != TEAM_PANEL ) || ( ButtonList[ iTEAMPanelButtons[ CHANGE_SQUAD_BUTTON ] ]->uiFlags & BUTTON_ENABLED ) ) )
{
//Select next squad
iCurrentSquad = CurrentSquad( );
pNewSoldier = FindNextActiveSquad( MercPtrs[ gusSelectedSoldier ] );
if ( pNewSoldier->bAssignment != iCurrentSquad )
{
//Select next squad
iCurrentSquad = CurrentSquad( );
HandleLocateSelectMerc( pNewSoldier->ubID, LOCATEANDSELECT_MERC );
pNewSoldier = FindNextActiveSquad( MercPtrs[ gusSelectedSoldier ] );
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, pMessageStrings[ MSG_SQUAD_ACTIVE ], ( CurrentSquad( ) + 1 ) );
if ( pNewSoldier->bAssignment != iCurrentSquad )
{
HandleLocateSelectMerc( pNewSoldier->ubID, LOCATEANDSELECT_MERC );
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, pMessageStrings[ MSG_SQUAD_ACTIVE ], ( CurrentSquad( ) + 1 ) );
// Center to guy....
LocateSoldier( gusSelectedSoldier, SETLOCATOR );
}
// Center to guy....
LocateSoldier( gusSelectedSoldier, SETLOCATOR );
}
}
}
else
{
if ( gusSelectedSoldier != NO_SOLDIER )
{ //Select next merc
UINT8 bID;
bID = FindNextMercInTeamPanel( MercPtrs[ gusSelectedSoldier ], FALSE, FALSE );
HandleLocateSelectMerc( bID, LOCATEANDSELECT_MERC );
// Center to guy....
LocateSoldier( gusSelectedSoldier, SETLOCATOR );
}
}
*puiNewEvent = M_ON_TERRAIN;
}
else
{
if ( gusSelectedSoldier != NO_SOLDIER )
{ //Select next merc
UINT8 bID;
bID = FindNextMercInTeamPanel( MercPtrs[ gusSelectedSoldier ], FALSE, FALSE );
HandleLocateSelectMerc( bID, LOCATEANDSELECT_MERC );
// Center to guy....
LocateSoldier( gusSelectedSoldier, SETLOCATOR );
}
}
*puiNewEvent = M_ON_TERRAIN;
}
break;
}
break;
case TAB:
// nothing in hand and either not in SM panel, or the matching button is enabled if we are in SM panel
if ( ( gpItemPointer == NULL ) &&
+2
View File
@@ -3416,6 +3416,7 @@ STR16 zOptionsToggleText[] =
L"Enemies Drop All Items",
L"High Angle Grenade Launching",
L"Restrict Extra Aim Levels to Rifles",
L"Space selects next squad",
};
//This is the help text associated with the above toggles.
@@ -3486,6 +3487,7 @@ STR16 zOptionsScreenHelpText[] =
L"Enemies drop all items on death.",
L"Grenade launchers fire grenades at higher angles.",
L"Aim levels beyond 4 are restricted to rifles and sniper rifles.",
L"When enabled |S|p|a|c|e selects next squad automatically.",
};
+2
View File
@@ -3220,6 +3220,8 @@ STR16 zOptionsToggleText[] =
L"Gegner lassen alles fallen",
L"High Angle Grenade Launching",
L"Restrict Extra Aim Levels to Rifles",
L"Space selects next squad",
L"When enabled |S|p|a|c|e selects next squad automatically.",
};
//This is the help text associated with the above toggles.
+2
View File
@@ -3405,6 +3405,8 @@ STR16 zOptionsToggleText[] =
L"Enemies Drop All Items",
L"High Angle Grenade Launching",
L"Restrict Extra Aim Levels to Rifles",
L"Space selects next squad",
L"When enabled |S|p|a|c|e selects next squad automatically.",
};
//This is the help text associated with the above toggles.