added new option in Skills_Settings.ini: [Covert Ops] COVERT_TURNCOATS_ACTIVATE_IN_AUTORESOLVE

if enabled, turncoats will automatically activate when entering an autoresolve battle

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@9365 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
rftr
2022-04-14 06:50:44 +00:00
parent 5d98b5da8a
commit fcc21e32dc
10 changed files with 87 additions and 14 deletions
+22 -7
View File
@@ -3245,7 +3245,7 @@ BOOLEAN TurncoatsInSector( INT16 sSectorX, INT16 sSectorY )
return FALSE;
}
bool RemoveOneTurncoat( INT16 sSectorX, INT16 sSectorY, UINT8 aSoldierClass )
bool RemoveOneTurncoat( INT16 sSectorX, INT16 sSectorY, UINT8 aSoldierClass, BOOLEAN alsoRemoveFromGroup )
{
// HEADROCK: This is a TEMPORARY fix to avoid the assertion error. Not sure this is the best solution,
// probably isn't. But I need this bit to work.
@@ -3315,14 +3315,20 @@ bool RemoveOneTurncoat( INT16 sSectorX, INT16 sSectorY, UINT8 aSoldierClass )
{
case SOLDIER_CLASS_ADMINISTRATOR:
pSector->ubNumAdmins_Turncoat--;
if (alsoRemoveFromGroup)
pSector->ubNumAdmins--;
return true;
break;
case SOLDIER_CLASS_ARMY:
pSector->ubNumTroops_Turncoat--;
if (alsoRemoveFromGroup)
pSector->ubNumTroops--;
return true;
break;
case SOLDIER_CLASS_ELITE:
pSector->ubNumElites_Turncoat--;
if (alsoRemoveFromGroup)
pSector->ubNumElites--;
return true;
break;
default:
@@ -3342,8 +3348,11 @@ bool RemoveOneTurncoat( INT16 sSectorX, INT16 sSectorY, UINT8 aSoldierClass )
if ( pGroup->pEnemyGroup->ubNumAdmins_Turncoat && pGroup->ubGroupSize && pGroup->pEnemyGroup->ubNumAdmins )
{
pGroup->pEnemyGroup->ubNumAdmins_Turncoat--;
pGroup->pEnemyGroup->ubNumAdmins--;
pGroup->ubGroupSize--;
if (alsoRemoveFromGroup)
{
pGroup->pEnemyGroup->ubNumAdmins--;
pGroup->ubGroupSize--;
}
return true;
}
break;
@@ -3351,8 +3360,11 @@ bool RemoveOneTurncoat( INT16 sSectorX, INT16 sSectorY, UINT8 aSoldierClass )
if ( pGroup->pEnemyGroup->ubNumTroops_Turncoat && pGroup->ubGroupSize && pGroup->pEnemyGroup->ubNumTroops )
{
pGroup->pEnemyGroup->ubNumTroops_Turncoat--;
pGroup->pEnemyGroup->ubNumTroops--;
pGroup->ubGroupSize--;
if (alsoRemoveFromGroup)
{
pGroup->pEnemyGroup->ubNumTroops--;
pGroup->ubGroupSize--;
}
return true;
}
break;
@@ -3360,8 +3372,11 @@ bool RemoveOneTurncoat( INT16 sSectorX, INT16 sSectorY, UINT8 aSoldierClass )
if ( pGroup->pEnemyGroup->ubNumElites_Turncoat && pGroup->ubGroupSize && pGroup->pEnemyGroup->ubNumElites )
{
pGroup->pEnemyGroup->ubNumElites_Turncoat--;
pGroup->pEnemyGroup->ubNumElites--;
pGroup->ubGroupSize--;
if (alsoRemoveFromGroup)
{
pGroup->pEnemyGroup->ubNumElites--;
pGroup->ubGroupSize--;
}
return true;
}
break;