- 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_TOGGLE_WIREFRAME ] = TRUE;
gGameSettings.fOptions[ TOPTION_3D_CURSOR ] = FALSE; gGameSettings.fOptions[ TOPTION_3D_CURSOR ] = FALSE;
gGameSettings.fOptions[ TOPTION_CTH_CURSOR ] = TRUE; gGameSettings.fOptions[ TOPTION_CTH_CURSOR ] = TRUE;
//Madd: //Madd:
gGameSettings.fOptions[ TOPTION_GL_BURST_CURSOR ] = TRUE; gGameSettings.fOptions[ TOPTION_GL_BURST_CURSOR ] = TRUE;
gGameSettings.fOptions[ TOPTION_DROP_ALL ] = FALSE; gGameSettings.fOptions[ TOPTION_DROP_ALL ] = FALSE;
gGameSettings.fOptions[ TOPTION_GL_HIGH_ANGLE ] = FALSE; gGameSettings.fOptions[ TOPTION_GL_HIGH_ANGLE ] = FALSE;
@@ -250,6 +250,9 @@ void InitGameSettings()
// JA2Gold // JA2Gold
gGameSettings.fOptions[ TOPTION_MERC_CASTS_LIGHT ] = TRUE; gGameSettings.fOptions[ TOPTION_MERC_CASTS_LIGHT ] = TRUE;
//lalien
gGameSettings.fOptions[ TOPTION_SPACE_SELECTS_NEXT_SQUAD ] = TRUE;
gGameSettings.ubSizeOfDisplayCover = 4; gGameSettings.ubSizeOfDisplayCover = 4;
gGameSettings.ubSizeOfLOS = 4; gGameSettings.ubSizeOfLOS = 4;
+1
View File
@@ -45,6 +45,7 @@ enum
TOPTION_DROP_ALL, TOPTION_DROP_ALL,
TOPTION_GL_HIGH_ANGLE, TOPTION_GL_HIGH_ANGLE,
TOPTION_AIM_LEVEL_RESTRICTION, TOPTION_AIM_LEVEL_RESTRICTION,
TOPTION_SPACE_SELECTS_NEXT_SQUAD,
NUM_GAME_OPTIONS, //Toggle up this will be able to be Toggled by the player NUM_GAME_OPTIONS, //Toggle up this will be able to be Toggled by the player
//These options will NOT be toggable 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 #else
//RELEASE BUILD VERSION //RELEASE BUILD VERSION
INT16 zVersionLabel[256] = { L"Release v1.13.164" }; INT16 zVersionLabel[256] = { L"Release v1.13.165" };
#endif #endif
+2 -2
View File
@@ -43,7 +43,7 @@
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="libexpatMT.lib mss32.lib winmm.lib smackw32.lib fmodvc.lib" 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" LinkIncremental="2"
SuppressStartupBanner="TRUE" SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories=".\..\..\Standard Gaming Platform\" AdditionalLibraryDirectories=".\..\..\Standard Gaming Platform\"
@@ -546,7 +546,7 @@
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="libexpatMT.lib winmm.lib smackw32.lib mss32.lib fmodvc.lib" 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" LinkIncremental="1"
SuppressStartupBanner="TRUE" SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories=".\..\..\Standard Gaming Platform\" AdditionalLibraryDirectories=".\..\..\Standard Gaming Platform\"
+94 -68
View File
@@ -506,6 +506,8 @@ void UpdateStatColor( UINT32 uiTimer, BOOLEAN fUpdate );
extern void UpdateItemHatches(); extern void UpdateItemHatches();
extern SOLDIERTYPE *FindNextActiveSquad( SOLDIERTYPE *pSoldier );
// Wraps up check for AP-s get from a different soldier for in a vehicle... // Wraps up check for AP-s get from a different soldier for in a vehicle...
INT8 GetUIApsToDisplay( SOLDIERTYPE *pSoldier ) INT8 GetUIApsToDisplay( SOLDIERTYPE *pSoldier )
{ {
@@ -5286,85 +5288,109 @@ void CheckForAndAddMercToTeamPanel( SOLDIERTYPE *pSoldier )
UINT8 FindNextMercInTeamPanel( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKLife, BOOLEAN fOnlyRegularMercs ) UINT8 FindNextMercInTeamPanel( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKLife, BOOLEAN fOnlyRegularMercs )
{ {
INT32 cnt; INT32 cnt;
INT32 bFirstID; INT32 bFirstID;
SOLDIERTYPE *pTeamSoldier; SOLDIERTYPE *pTeamSoldier;
bFirstID = GetTeamSlotFromPlayerID( pSoldier->ubID );
if ( bFirstID == -1 ) bFirstID = GetTeamSlotFromPlayerID( pSoldier->ubID );
{
return( pSoldier->ubID ); if ( bFirstID == -1 )
} {
return( pSoldier->ubID );
}
for ( cnt = ( bFirstID + 1 ); cnt < NUM_TEAM_SLOTS; cnt++ ) for ( cnt = ( bFirstID + 1 ); cnt < NUM_TEAM_SLOTS; cnt++ )
{ {
if ( gTeamPanel[ cnt ].fOccupied ) if ( gTeamPanel[ cnt ].fOccupied )
{ {
// Set Id to close // Set Id to close
pTeamSoldier = MercPtrs[ gTeamPanel[ cnt ].ubID ]; pTeamSoldier = MercPtrs[ gTeamPanel[ cnt ].ubID ];
if ( fOnlyRegularMercs ) if ( fOnlyRegularMercs )
{ {
if ( pTeamSoldier->bActive && ( AM_AN_EPC( pTeamSoldier ) || AM_A_ROBOT( pTeamSoldier ) ) ) if ( pTeamSoldier->bActive && ( AM_AN_EPC( pTeamSoldier ) || AM_A_ROBOT( pTeamSoldier ) ) )
{ {
continue; continue;
} }
} }
if ( fGoodForLessOKLife ) 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 ) 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 ); return( (UINT8)gTeamPanel[ cnt ].ubID );
} }
} }
else else
{ {
if ( OK_CONTROLLABLE_MERC( pTeamSoldier) && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment ) if ( OK_CONTROLLABLE_MERC( pTeamSoldier) && OK_INTERRUPT_MERC( pTeamSoldier ) && pSoldier->bAssignment == pTeamSoldier->bAssignment )
{ {
return( (UINT8)gTeamPanel[ cnt ].ubID ); 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 ( ( 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! // IF we are here, keep as we always were!
return( pSoldier->ubID ); return( pSoldier->ubID );
} }
+44 -42
View File
@@ -1816,60 +1816,62 @@ void GetKeyboardInput( UINT32 *puiNewEvent )
fShift = InputEvent.usKeyState & SHIFT_DOWN ? TRUE : FALSE; fShift = InputEvent.usKeyState & SHIFT_DOWN ? TRUE : FALSE;
switch( InputEvent.usParam ) 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 // 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 ) && if ( !( gTacticalStatus.uiFlags & ENGAGED_IN_CONV ) &&
( ( gsCurInterfacePanel != SM_PANEL ) || ( ButtonList[ iSMPanelButtons[ NEXTMERC_BUTTON ] ]->uiFlags & BUTTON_ENABLED ) ) ) ( ( 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 ) if ( gusSelectedSoldier != NO_SOLDIER )
{ {
// only allow if nothing in hand and if in SM panel, the Change Squad button must be enabled // only allow if nothing in hand and if in SM panel, the Change Squad button must be enabled
if ( if (
( ( gsCurInterfacePanel != TEAM_PANEL ) || ( ButtonList[ iTEAMPanelButtons[ CHANGE_SQUAD_BUTTON ] ]->uiFlags & BUTTON_ENABLED ) ) ) ( ( 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 HandleLocateSelectMerc( pNewSoldier->ubID, LOCATEANDSELECT_MERC );
iCurrentSquad = CurrentSquad( );
pNewSoldier = FindNextActiveSquad( MercPtrs[ gusSelectedSoldier ] ); ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, pMessageStrings[ MSG_SQUAD_ACTIVE ], ( CurrentSquad( ) + 1 ) );
if ( pNewSoldier->bAssignment != iCurrentSquad ) // Center to guy....
{ LocateSoldier( gusSelectedSoldier, SETLOCATOR );
HandleLocateSelectMerc( pNewSoldier->ubID, LOCATEANDSELECT_MERC );
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, pMessageStrings[ MSG_SQUAD_ACTIVE ], ( CurrentSquad( ) + 1 ) );
// 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: case TAB:
// nothing in hand and either not in SM panel, or the matching button is enabled if we are in SM panel // nothing in hand and either not in SM panel, or the matching button is enabled if we are in SM panel
if ( ( gpItemPointer == NULL ) && if ( ( gpItemPointer == NULL ) &&
+2
View File
@@ -3416,6 +3416,7 @@ STR16 zOptionsToggleText[] =
L"Enemies Drop All Items", L"Enemies Drop All Items",
L"High Angle Grenade Launching", L"High Angle Grenade Launching",
L"Restrict Extra Aim Levels to Rifles", L"Restrict Extra Aim Levels to Rifles",
L"Space selects next squad",
}; };
//This is the help text associated with the above toggles. //This is the help text associated with the above toggles.
@@ -3486,6 +3487,7 @@ STR16 zOptionsScreenHelpText[] =
L"Enemies drop all items on death.", L"Enemies drop all items on death.",
L"Grenade launchers fire grenades at higher angles.", L"Grenade launchers fire grenades at higher angles.",
L"Aim levels beyond 4 are restricted to rifles and sniper rifles.", 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"Gegner lassen alles fallen",
L"High Angle Grenade Launching", L"High Angle Grenade Launching",
L"Restrict Extra Aim Levels to Rifles", 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. //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"Enemies Drop All Items",
L"High Angle Grenade Launching", L"High Angle Grenade Launching",
L"Restrict Extra Aim Levels to Rifles", 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. //This is the help text associated with the above toggles.