diff --git a/Strategic/Strategic AI.cpp b/Strategic/Strategic AI.cpp index 5f759010..8dd26287 100644 --- a/Strategic/Strategic AI.cpp +++ b/Strategic/Strategic AI.cpp @@ -2932,12 +2932,13 @@ void SendReinforcementsForGarrison( INT32 iDstGarrisonID, UINT16 usDefencePoints Ensure_RepairedGarrisonGroup( &gGarrisonGroup, &giGarrisonArraySize ); /* added NULL fix, 2007-03-03, Sgt. Kolja */ ValidateWeights( 8 ); - if( gGarrisonGroup[ iDstGarrisonID ].ubSectorID == SEC_B13 || + /*if( gGarrisonGroup[ iDstGarrisonID ].ubSectorID == SEC_B13 || gGarrisonGroup[ iDstGarrisonID ].ubSectorID == SEC_C13 || gGarrisonGroup[ iDstGarrisonID ].ubSectorID == SEC_D13 ) { pSector = NULL; - } + }*/ + pSector = &SectorInfo[ gGarrisonGroup[ iDstGarrisonID ].ubSectorID ]; //Determine how many units the garrison needs. iReinforcementsRequested = GarrisonReinforcementsRequested( iDstGarrisonID, &ubNumExtraReinforcements ); @@ -3312,6 +3313,7 @@ void EvaluateQueenSituation() break; } + /* // Buggler: Unlimited troops setting will have a constant pool value, limited troops setting should not be able to recruit new troops if( !giReinforcementPool ) { //Queen has run out of reinforcements. Simulate recruiting and training new troops uiOffset *= 10; @@ -3319,7 +3321,7 @@ void EvaluateQueenSituation() giReinforcementPool += ( gGameExternalOptions.guiBaseQueenPoolIncrement * gGameOptions.ubDifficultyLevel ) * ( 100 + CurrentPlayerProgressPercentage() ) / 100 ; AddStrategicEvent( EVENT_EVALUATE_QUEEN_SITUATION, GetWorldTotalMin() + uiOffset, 0 ); return; - } + }*/ //Re-post the event AddStrategicEvent( EVENT_EVALUATE_QUEEN_SITUATION, GetWorldTotalMin() + uiOffset, 0 ); @@ -5628,7 +5630,7 @@ void RequestHighPriorityGarrisonReinforcements( INT32 iGarrisonID, UINT8 ubSoldi ubBestDist = 255; iBestIndex = -1; - Ensure_RepairedGarrisonGroup( &gGarrisonGroup, &giGarrisonArraySize ); /* added NULL fix, 2007-03-03, Sgt. Kolja */ + Ensure_RepairedGarrisonGroup( &gGarrisonGroup, &giGarrisonArraySize ); /* added NULL fix, 2007-03-03, Sgt. Kolja */ for( i = 0; i < giPatrolArraySize; i++ ) { @@ -5648,6 +5650,8 @@ void RequestHighPriorityGarrisonReinforcements( INT32 iGarrisonID, UINT8 ubSoldi } ubDstSectorX = (UINT8)SECTORX( gGarrisonGroup[ iGarrisonID ].ubSectorID ); ubDstSectorY = (UINT8)SECTORY( gGarrisonGroup[ iGarrisonID ].ubSectorID ); + + /* // Comment code calling reinforcements from patrol groups as they will not be replenished subsequently if( iBestIndex != -1 ) { //Send the group to the garrison pGroup = GetGroup( gPatrolGroup[ iBestIndex ].ubGroupID ); @@ -5734,19 +5738,24 @@ void RequestHighPriorityGarrisonReinforcements( INT32 iGarrisonID, UINT8 ubSoldi } } else - { //There are no groups that have enough troops. Send a new force from the palace instead. - pGroup = CreateNewEnemyGroupDepartingFromSector( SECTOR( gModSettings.ubSAISpawnSectorX, gModSettings.ubSAISpawnSectorY ), 0, ubSoldiersRequested, 0, 0 ); - pGroup->ubMoveType = ONE_WAY; - pGroup->pEnemyGroup->ubIntention = REINFORCEMENTS; - gGarrisonGroup[ iGarrisonID ].ubPendingGroupID = pGroup->ubGroupID; - pGroup->ubOriginalSector = (UINT8)SECTOR( ubDstSectorX, ubDstSectorY ); + */ + { //There are no groups that have enough troops. Send a new force from the palace instead. + if ( giReinforcementPool > 0 ) + { + pGroup = CreateNewEnemyGroupDepartingFromSector( SECTOR( gModSettings.ubSAISpawnSectorX, gModSettings.ubSAISpawnSectorY ), + 0, min( ubSoldiersRequested, giReinforcementPool ), 0 ); + pGroup->ubMoveType = ONE_WAY; + pGroup->pEnemyGroup->ubIntention = REINFORCEMENTS; + gGarrisonGroup[ iGarrisonID ].ubPendingGroupID = pGroup->ubGroupID; + pGroup->ubOriginalSector = (UINT8)SECTOR( ubDstSectorX, ubDstSectorY ); - //Madd: unlimited reinforcements? - if ( !gfUnlimitedTroops ) - giReinforcementPool -= (INT32)ubSoldiersRequested; + //Madd: unlimited reinforcements? + if ( !gfUnlimitedTroops ) + giReinforcementPool -= (INT32)min( ubSoldiersRequested, giReinforcementPool ); - MoveSAIGroupToSector( &pGroup, gGarrisonGroup[ iGarrisonID ].ubSectorID, EVASIVE, REINFORCEMENTS ); - ValidateGroup( pGroup ); + MoveSAIGroupToSector( &pGroup, gGarrisonGroup[ iGarrisonID ].ubSectorID, EVASIVE, REINFORCEMENTS ); + ValidateGroup( pGroup ); + } } } diff --git a/Strategic/mapscreen.cpp b/Strategic/mapscreen.cpp index 728a1bd6..f5f5ff51 100644 --- a/Strategic/mapscreen.cpp +++ b/Strategic/mapscreen.cpp @@ -7202,8 +7202,11 @@ void GetMapKeyboardInput( UINT32 *puiNewEvent ) break; case '`': + if (fAlt) + { + } #ifdef JA2TESTVERSION - if( fCtrl ) + else if( fCtrl ) { if( bSelectedInfoChar != -1 ) { @@ -7211,11 +7214,8 @@ void GetMapKeyboardInput( UINT32 *puiNewEvent ) } } #endif - if (fAlt) - { - - break; - } + else + RequestToggleMercInventoryPanel(); break; case '\\': diff --git a/Tactical/Interface.cpp b/Tactical/Interface.cpp index a0e7d179..7c3673fb 100644 --- a/Tactical/Interface.cpp +++ b/Tactical/Interface.cpp @@ -786,6 +786,8 @@ void ToggleTacticalPanels( ) else { gbNewPanel = SM_PANEL; + // silversurfer: This needs to be reset to TRUE because inventory view only allows radar screen to be displayed and not the squad list. + fRenderRadarScreen = TRUE; } }