mirror of
https://github.com/1dot13/source.git
synced 2026-08-12 14:10:23 +02:00
Moving Tanks Feature (by anv)
- feature: tanks can move around in tactical. Set with Tactical Gameplay Settings > ENEMY_TANKS_CAN_MOVE. - feature: tanks can ignore chance to get through and destroy enemy cover even if it probably won't hit anyone behind it. Set with Tactical Gameplay Settings > ENEMY_TANKS_BLOW_OBSTACLES_UP. - feature: tanks can use cannon even against single mercs and in perfect health. Set with Tactical Gameplay Settings > ENEMY_TANKS_DONT_SPARE_SHELLS. - feature: tanks can noticed as soon as any part of it is visible. Set with Tactical Gameplay Settings > ENEMY_TANKS_ANY_PART_VISIBLE. - feature: depending on game difficulty enemy patrols at game start can be randomly reinforced with tank. Set with Strategic Gameplay Settings > ARMY_USES_TANKS_IN_PATROLS. - feature: depending on game difficulty enemy groups created during offensives can include tanks. Set with trategic Gameplay Settings > ARMY_USES_TANKS_IN_ATTACKS. - feature: mercs in vehicles automatically rest their guns, - fix: guns can be rested on vehicles, - rewritten code to allow putting enemies inside vehicles, - added missing descriptions for all vehicle options to INIEditorJA2Options.xml. git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7277 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -695,7 +695,7 @@ BOOLEAN AddWaypointStrategicIDToPGroup( GROUP *pGroup, UINT32 uiSectorID )
|
||||
|
||||
//Enemy grouping functions -- private use by the strategic AI.
|
||||
//............................................................
|
||||
GROUP* CreateNewEnemyGroupDepartingFromSector( UINT32 uiSector, UINT8 ubNumAdmins, UINT8 ubNumTroops, UINT8 ubNumElites )
|
||||
GROUP* CreateNewEnemyGroupDepartingFromSector( UINT32 uiSector, UINT8 ubNumAdmins, UINT8 ubNumTroops, UINT8 ubNumElites, UINT8 ubNumTanks )
|
||||
{
|
||||
GROUP *pNew;
|
||||
AssertMsg( uiSector >= 0 && uiSector <= 255, String( "CreateNewEnemyGroup with out of range value of %d", uiSector ) );
|
||||
@@ -706,7 +706,7 @@ GROUP* CreateNewEnemyGroupDepartingFromSector( UINT32 uiSector, UINT8 ubNumAdmin
|
||||
AssertMsg( pNew->pEnemyGroup, "MemAlloc failure during enemy group creation." );
|
||||
memset( pNew->pEnemyGroup, 0, sizeof( ENEMYGROUP ) );
|
||||
// Make sure group is not bigger than allowed!
|
||||
while (ubNumAdmins + ubNumTroops + ubNumElites > gGameExternalOptions.iMaxEnemyGroupSize)
|
||||
while (ubNumAdmins + ubNumTroops + ubNumElites + ubNumTanks > gGameExternalOptions.iMaxEnemyGroupSize)
|
||||
{
|
||||
if (ubNumTroops)
|
||||
{
|
||||
@@ -716,10 +716,14 @@ GROUP* CreateNewEnemyGroupDepartingFromSector( UINT32 uiSector, UINT8 ubNumAdmin
|
||||
{
|
||||
ubNumAdmins--;
|
||||
}
|
||||
else
|
||||
else if (ubNumElites)
|
||||
{
|
||||
ubNumElites--;
|
||||
}
|
||||
else if (ubNumTanks)
|
||||
{
|
||||
ubNumTanks--;
|
||||
}
|
||||
}
|
||||
pNew->pWaypoints = NULL;
|
||||
pNew->ubSectorX = (UINT8)SECTORX( uiSector );
|
||||
@@ -733,7 +737,8 @@ GROUP* CreateNewEnemyGroupDepartingFromSector( UINT32 uiSector, UINT8 ubNumAdmin
|
||||
pNew->pEnemyGroup->ubNumAdmins = ubNumAdmins;
|
||||
pNew->pEnemyGroup->ubNumTroops = ubNumTroops;
|
||||
pNew->pEnemyGroup->ubNumElites = ubNumElites;
|
||||
pNew->ubGroupSize = (UINT8)(ubNumAdmins + ubNumTroops + ubNumElites);
|
||||
pNew->pEnemyGroup->ubNumTanks = ubNumTanks;
|
||||
pNew->ubGroupSize = (UINT8)(ubNumAdmins + ubNumTroops + ubNumElites + ubNumTanks);
|
||||
pNew->ubTransportationMask = FOOT;
|
||||
pNew->fVehicle = FALSE;
|
||||
pNew->ubCreatedSectorID = pNew->ubOriginalSector;
|
||||
@@ -5554,7 +5559,7 @@ BOOLEAN ScoutIsPresentInSquad( INT16 ubSectorNumX, INT16 ubSectorNumY )
|
||||
}
|
||||
|
||||
#ifdef JA2UB
|
||||
GROUP* CreateNewEnemyGroupDepartingFromSectorUsingZLevel( UINT32 uiSector, UINT8 ubSectorZ, UINT8 ubNumAdmins, UINT8 ubNumTroops, UINT8 ubNumElites )
|
||||
GROUP* CreateNewEnemyGroupDepartingFromSectorUsingZLevel( UINT32 uiSector, UINT8 ubSectorZ, UINT8 ubNumAdmins, UINT8 ubNumTroops, UINT8 ubNumElites, UINT8 ubNumTanks )
|
||||
{
|
||||
GROUP *pNew;
|
||||
AssertMsg( uiSector >= 0 && uiSector <= 255, String( "CreateNewEnemyGroup with out of range value of %d", uiSector ) );
|
||||
|
||||
Reference in New Issue
Block a user