New feature: turncoats can be created from enemies and ordered to switch sides

Requires GameDir >= r2535

For more info, see http://thepit.ja-galaxy-forum.com/index.php?t=msg&goto=360191&#msg_360191

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8811 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Flugente
2020-05-30 00:13:42 +00:00
parent 0f13599775
commit c5022fa1e5
44 changed files with 1587 additions and 140 deletions
+35
View File
@@ -5815,6 +5815,13 @@ void InvestigateSector( UINT8 ubSectorID )
ubNumToSend--;
ubAdmins[i]++;
ubTotal++;
// Flugente: turncoats might move as well
if ( pSector->ubNumAdmins_Turncoat > pSector->ubNumAdmins )
{
SectorInfo[ubSectorID].ubNumAdmins_Turncoat += pSector->ubNumAdmins_Turncoat - pSector->ubNumAdmins;
pSector->ubNumAdmins_Turncoat = pSector->ubNumAdmins;
}
}
else if( pSector->ubNumTroops )
{
@@ -5822,6 +5829,13 @@ void InvestigateSector( UINT8 ubSectorID )
ubNumToSend--;
ubTroops[i]++;
ubTotal++;
// Flugente: turncoats might move as well
if ( pSector->ubNumTroops_Turncoat > pSector->ubNumTroops )
{
SectorInfo[ubSectorID].ubNumTroops_Turncoat += pSector->ubNumTroops_Turncoat - pSector->ubNumTroops;
pSector->ubNumTroops_Turncoat = pSector->ubNumTroops;
}
}
else if( pSector->ubNumElites )
{
@@ -5829,6 +5843,13 @@ void InvestigateSector( UINT8 ubSectorID )
ubNumToSend--;
ubElites[i]++;
ubTotal++;
// Flugente: turncoats might move as well
if ( pSector->ubNumElites_Turncoat > pSector->ubNumElites )
{
SectorInfo[ubSectorID].ubNumElites_Turncoat += pSector->ubNumElites_Turncoat - pSector->ubNumElites;
pSector->ubNumElites_Turncoat = pSector->ubNumElites;
}
}
else
{
@@ -6571,6 +6592,13 @@ void UpgradeAdminsToTroops()
--ubAdminsToCheck;
}
// Flugente: make sure turncoat numbers are plausible
if ( pSector->ubNumAdmins_Turncoat > pSector->ubNumAdmins )
{
pSector->ubNumTroops_Turncoat += pSector->ubNumAdmins_Turncoat - pSector->ubNumAdmins;
pSector->ubNumAdmins_Turncoat = pSector->ubNumAdmins;
}
}
}
}
@@ -6628,6 +6656,13 @@ void UpgradeAdminsToTroops()
ubAdminsToCheck--;
}
// Flugente: make sure turncoat numbers are plausible
if ( pGroup->pEnemyGroup->ubNumAdmins_Turncoat > pGroup->pEnemyGroup->ubNumAdmins )
{
pGroup->pEnemyGroup->ubNumTroops_Turncoat += pGroup->pEnemyGroup->ubNumAdmins_Turncoat - pGroup->pEnemyGroup->ubNumAdmins;
pGroup->pEnemyGroup->ubNumAdmins_Turncoat = pGroup->pEnemyGroup->ubNumAdmins;
}
}
}
}