- removed UINT8 NumFreeMilitiaSlots()

- militia groups can reinforce battles in neighbouring sectors

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7711 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Flugente
2015-01-06 19:54:29 +00:00
parent 097c33815d
commit 474df6ffb5
3 changed files with 13 additions and 18 deletions
+6
View File
@@ -548,6 +548,12 @@ UINT8 NumFreeSlots( UINT8 ubTeam )
++ubNumFreeSlots;
}
// the militia team size can be restricted by the ini
if ( ubTeam == MILITIA_TEAM )
{
ubNumFreeSlots = (UINT8)max( 0, (INT8)ubNumFreeSlots - (INT8)(gGameExternalOptions.ubGameMaximumNumberOfRebels - gGameExternalOptions.iMaxMilitiaPerSector) );
}
return ubNumFreeSlots;
}
+5 -18
View File
@@ -277,22 +277,6 @@ UINT8 DoReinforcementAsPendingEnemy( INT16 sMapX, INT16 sMapY )
return 255;
}
UINT8 NumFreeMilitiaSlots()
{
UINT8 ubNumFreeSlots = 0;
INT32 i;
SOLDIERTYPE *pSoldier;
//Count the number of free militia slots. It is possible to have multiple groups exceed the maximum.
for( i = gTacticalStatus.Team[ MILITIA_TEAM ].bFirstID; i <= gTacticalStatus.Team[ MILITIA_TEAM].bLastID; i++ )
{
pSoldier = &Menptr[ i ];
if( !pSoldier->bActive )
ubNumFreeSlots++;
}
return max( 0 , ubNumFreeSlots - ( gGameExternalOptions.ubGameMaximumNumberOfRebels - gGameExternalOptions.iMaxMilitiaPerSector ) );
}
UINT8 DoReinforcementAsPendingMilitia( INT16 sMapX, INT16 sMapY, UINT8 *pubRank )
{
UINT16 pusMoveDir[4][3];
@@ -310,7 +294,9 @@ UINT8 DoReinforcementAsPendingMilitia( INT16 sMapX, INT16 sMapY, UINT8 *pubRank
{
*pubRank = 255;
return 255;
}else
}
else
{
for(;;)
{
ubIndex = Random(ubDirNumber);
@@ -338,6 +324,7 @@ UINT8 DoReinforcementAsPendingMilitia( INT16 sMapX, INT16 sMapY, UINT8 *pubRank
return (UINT8)pusMoveDir[ ubIndex ][ 2 ];
}
}
}
}
@@ -369,7 +356,7 @@ void AddPossiblePendingMilitiaToBattle()
)
return;
//gGameExternalOptions.guiMaxMilitiaSquadSize - CountAllMilitiaInSector( gWorldSectorX, gWorldSectorY );
ubSlots = NumFreeMilitiaSlots();
ubSlots = NumFreeSlots( MILITIA_TEAM );
if(gGameExternalOptions.sMinDelayMilitiaReinforcements)//dnl ch68 090913
{
if(gTacticalStatus.Team[MILITIA_TEAM].bAwareOfOpposition == TRUE)
+2
View File
@@ -48,6 +48,7 @@
#include "GameSettings.h"
#include "Quests.h"
#include "Interface.h" // added by Flugente for zBackground
#include "Reinforcement.h" // added by Flugente for AddPossiblePendingMilitiaToBattle()
#endif
#include "MilitiaSquads.h"
@@ -3494,6 +3495,7 @@ void HandleArrivalOfReinforcements( GROUP *pGroup )
ResetMortarsOnTeamCount();
ResetNumSquadleadersInArmyGroup(); // added by SANDRO
AddPossiblePendingEnemiesToBattle();
AddPossiblePendingMilitiaToBattle( );
}
//Update the known number of enemies in the sector.