From b64e0d0f9178f4bf0fb91a45338fd5a3a62b8df3 Mon Sep 17 00:00:00 2001 From: Flugente Date: Thu, 10 Aug 2017 22:54:07 +0000 Subject: [PATCH] Fix: enemy airdrops could cause a deployment screen when there shouldn't be one git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8446 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- Strategic/PreBattle Interface.cpp | 16 +++++++++++++--- Strategic/PreBattle Interface.h | 1 + Strategic/Strategic Movement.cpp | 2 +- Utils/Text.h | 1 + Utils/_ChineseText.cpp | 1 + Utils/_DutchText.cpp | 1 + Utils/_EnglishText.cpp | 1 + Utils/_FrenchText.cpp | 1 + Utils/_GermanText.cpp | 3 ++- Utils/_ItalianText.cpp | 1 + Utils/_PolishText.cpp | 1 + Utils/_RussianText.cpp | 1 + 12 files changed, 25 insertions(+), 5 deletions(-) diff --git a/Strategic/PreBattle Interface.cpp b/Strategic/PreBattle Interface.cpp index 237ed977..4e11e594 100644 --- a/Strategic/PreBattle Interface.cpp +++ b/Strategic/PreBattle Interface.cpp @@ -436,7 +436,8 @@ void InitPreBattleInterface( GROUP *pBattleGroup, BOOLEAN fPersistantPBI ) gubEnemyEncounterCode == BLOODCAT_AMBUSH_CODE || gubEnemyEncounterCode == ENTERING_BLOODCAT_LAIR_CODE || gubEnemyEncounterCode == CREATURE_ATTACK_CODE || - gubEnemyEncounterCode == ENEMY_AMBUSH_DEPLOYMENT_CODE ) + gubEnemyEncounterCode == ENEMY_AMBUSH_DEPLOYMENT_CODE || + gubEnemyEncounterCode == ENEMY_INVASION_AIRDROP_CODE ) { //use same code gubExplicitEnemyEncounterCode = gubEnemyEncounterCode; } @@ -615,7 +616,8 @@ void InitPreBattleInterface( GROUP *pBattleGroup, BOOLEAN fPersistantPBI ) { if ( gubSpecialEncounterCodeForEnemyHeli ) { - gubEnemyEncounterCode = ENEMY_INVASION_CODE; + if ( gubEnemyEncounterCode != ENEMY_INVASION_AIRDROP_CODE ) + gubEnemyEncounterCode = ENEMY_INVASION_CODE; } else { @@ -894,6 +896,7 @@ void InitPreBattleInterface( GROUP *pBattleGroup, BOOLEAN fPersistantPBI ) case CREATURE_ATTACK_CODE: case ENEMY_ENCOUNTER_CODE: case ENEMY_INVASION_CODE: + case ENEMY_INVASION_AIRDROP_CODE: SetButtonFastHelpText( iPBButton[ 0 ], gzNonPersistantPBIText[ 2 ] ); break; case ENTERING_ENEMY_SECTOR_CODE: @@ -1159,6 +1162,9 @@ void RenderPBHeader( INT32 *piX, INT32 *piWidth) case ENTERING_BLOODCAT_LAIR_CODE: swprintf( str, gpStrategicString[ STR_PB_ENTERINGBLOODCATLAIR_HEADER ] ); break; + case ENEMY_INVASION_AIRDROP_CODE: + swprintf( str, gpStrategicString[STR_PB_ENEMYINVASION_AIRDROP_HEADER] ); + break; } width = StringPixLength( str, FONT10ARIALBOLD ); x = 130 - width / 2; @@ -1545,7 +1551,8 @@ void GoToSectorCallback( GUI_BUTTON *btn, INT32 reason ) if ( gfPersistantPBI && gpBattleGroup && gpBattleGroup->usGroupTeam == OUR_TEAM && gubEnemyEncounterCode != ENEMY_AMBUSH_CODE && gubEnemyEncounterCode != CREATURE_ATTACK_CODE && - gubEnemyEncounterCode != BLOODCAT_AMBUSH_CODE ) + gubEnemyEncounterCode != BLOODCAT_AMBUSH_CODE && + gubEnemyEncounterCode != ENEMY_INVASION_AIRDROP_CODE ) { gfEnterTacticalPlacementGUI = TRUE; } @@ -2350,6 +2357,7 @@ void LogBattleResults( UINT8 ubVictoryCode) break; case ENEMY_AMBUSH_CODE: case ENEMY_AMBUSH_DEPLOYMENT_CODE: + case ENEMY_INVASION_AIRDROP_CODE: AddHistoryToPlayersLog( HISTORY_WIPEDOUTENEMYAMBUSH, 0, GetWorldTotalMin(), sSectorX, sSectorY ); break; case ENTERING_ENEMY_SECTOR_CODE: @@ -2379,6 +2387,7 @@ void LogBattleResults( UINT8 ubVictoryCode) break; case ENEMY_AMBUSH_CODE: case ENEMY_AMBUSH_DEPLOYMENT_CODE: + case ENEMY_INVASION_AIRDROP_CODE: AddHistoryToPlayersLog( HISTORY_FATALAMBUSH, 0, GetWorldTotalMin(), sSectorX, sSectorY ); break; case ENTERING_ENEMY_SECTOR_CODE: @@ -2411,6 +2420,7 @@ void LogBattleResults( UINT8 ubVictoryCode) case ENEMY_AMBUSH_CODE: case BLOODCAT_AMBUSH_CODE: case ENEMY_AMBUSH_DEPLOYMENT_CODE: + case ENEMY_INVASION_AIRDROP_CODE: gCurrentIncident.usIncidentFlags |= (INCIDENT_ATTACK_ENEMY|INCIDENT_AMBUSH); break; } diff --git a/Strategic/PreBattle Interface.h b/Strategic/PreBattle Interface.h index bd771f9b..00af57e4 100644 --- a/Strategic/PreBattle Interface.h +++ b/Strategic/PreBattle Interface.h @@ -41,6 +41,7 @@ enum HOSTILE_BLOODCATS_CODE, ENEMY_AMBUSH_DEPLOYMENT_CODE, // Flugente: an ambush in which we can deploy our mercs (somewhat) + ENEMY_INVASION_AIRDROP_CODE, // Flugente: enemy airdrop }; extern BOOLEAN gfAutoAmbush; diff --git a/Strategic/Strategic Movement.cpp b/Strategic/Strategic Movement.cpp index ef7e0ed9..ab9b3f12 100644 --- a/Strategic/Strategic Movement.cpp +++ b/Strategic/Strategic Movement.cpp @@ -5996,7 +5996,7 @@ void CheckCombatInSectorDueToUnusualEnemyArrival( UINT8 aTeam, INT16 sX, INT16 s BOOLEAN fCombatAbleMerc = FALSE; BOOLEAN fBloodCatAmbush = FALSE; - gubEnemyEncounterCode = ENEMY_INVASION_CODE; + gubEnemyEncounterCode = ENEMY_INVASION_AIRDROP_CODE; gubSectorIDOfCreatureAttack = SECTOR(sX, sY); diff --git a/Utils/Text.h b/Utils/Text.h index 681313d9..3605d9a8 100644 --- a/Utils/Text.h +++ b/Utils/Text.h @@ -1828,6 +1828,7 @@ enum STR_PB_CREATUREATTACK_HEADER, STR_PB_BLOODCATAMBUSH_HEADER, STR_PB_ENTERINGBLOODCATLAIR_HEADER, + STR_PB_ENEMYINVASION_AIRDROP_HEADER, STR_PB_LOCATION, STR_PB_ENEMIES, STR_PB_MERCS, diff --git a/Utils/_ChineseText.cpp b/Utils/_ChineseText.cpp index def01ea4..4d3254c5 100644 --- a/Utils/_ChineseText.cpp +++ b/Utils/_ChineseText.cpp @@ -3405,6 +3405,7 @@ STR16 gpStrategicString[] = L"异形攻击", //STR_PB_CREATUREATTACK_HEADER L"血猫伏击", //STR_PB_BLOODCATAMBUSH_HEADER L"进入血猫巢穴", + L"ENEMY AIRDROP", //STR_PB_ENEMYINVASION_AIRDROP_HEADER // TODO.Translate //Various single words for direct translation. The Civilians represent the civilian //militia occupying the sector being attacked. Limited to 9-10 chars diff --git a/Utils/_DutchText.cpp b/Utils/_DutchText.cpp index 28fe4d2b..74b73b74 100644 --- a/Utils/_DutchText.cpp +++ b/Utils/_DutchText.cpp @@ -3405,6 +3405,7 @@ STR16 gpStrategicString[] = L"AANVAL BEEST", //STR_PB_CREATUREATTACK_HEADER L"BLOODCAT VAL", //STR_PB_BLOODCATAMBUSH_HEADER L"BINNENGAAN HOL BLOODCAT", //STR_PB_ENTERINGBLOODCATLAIR_HEADER + L"ENEMY AIRDROP", //STR_PB_ENEMYINVASION_AIRDROP_HEADER // TODO.Translate //Various single words for direct translation. The Civilians represent the civilian //militia occupying the sector being attacked. Limited to 9-10 chars diff --git a/Utils/_EnglishText.cpp b/Utils/_EnglishText.cpp index d6aa1d20..ff325136 100644 --- a/Utils/_EnglishText.cpp +++ b/Utils/_EnglishText.cpp @@ -3401,6 +3401,7 @@ STR16 gpStrategicString[] = L"CREATURE ATTACK", //STR_PB_CREATUREATTACK_HEADER L"BLOODCAT AMBUSH", //STR_PB_BLOODCATAMBUSH_HEADER L"ENTERING BLOODCAT LAIR", //STR_PB_ENTERINGBLOODCATLAIR_HEADER + L"ENEMY AIRDROP", //STR_PB_ENEMYINVASION_AIRDROP_HEADER //Various single words for direct translation. The Civilians represent the civilian //militia occupying the sector being attacked. Limited to 9-10 chars diff --git a/Utils/_FrenchText.cpp b/Utils/_FrenchText.cpp index fa109c06..6e6ee66f 100644 --- a/Utils/_FrenchText.cpp +++ b/Utils/_FrenchText.cpp @@ -3413,6 +3413,7 @@ STR16 gpStrategicString[] = L"ATTAQUE DE CRÉATURES", //STR_PB_CREATUREATTACK_HEADER L"AMBUSCADE DE CHATS SAUVAGES", //STR_PB_BLOODCATAMBUSH_HEADER L"VOUS ENTREZ DANS LE REPAIRE DES CHATS SAUVAGES", //STR_PB_ENTERINGBLOODCATLAIR_HEADER + L"ENEMY AIRDROP", //STR_PB_ENEMYINVASION_AIRDROP_HEADER // TODO.Translate //Various single words for direct translation. The Civilians represent the civilian //militia occupying the sector being attacked. Limited to 9-10 chars diff --git a/Utils/_GermanText.cpp b/Utils/_GermanText.cpp index 7266506a..0ff5eda4 100644 --- a/Utils/_GermanText.cpp +++ b/Utils/_GermanText.cpp @@ -3415,7 +3415,8 @@ STR16 gpStrategicString[] = L"FEINDLICHEN SEKTOR BETRETEN", L"MONSTERANGRIFF", L"BLOODCAT-HINTERHALT", - L"BLOODCAT-HÖHLE BETRETEN", + L"BLOODCAT-HÖHLE BETRETEN", + L"ENEMY AIRDROP", //STR_PB_ENEMYINVASION_AIRDROP_HEADER // TODO.Translate //Various single words for direct translation. The Civilians represent the civilian //militia occupying the sector being attacked. Limited to 9-10 chars diff --git a/Utils/_ItalianText.cpp b/Utils/_ItalianText.cpp index 0253d834..b794350b 100644 --- a/Utils/_ItalianText.cpp +++ b/Utils/_ItalianText.cpp @@ -3400,6 +3400,7 @@ STR16 gpStrategicString[] = L"ATTACCO DELLE CREATURE", //STR_PB_CREATUREATTACK_HEADER L"IMBOSCATA DEI BLOODCAT", //STR_PB_BLOODCATAMBUSH_HEADER L"INTRUSIONE NELLA TANA BLOODCAT", //STR_PB_ENTERINGBLOODCATLAIR_HEADER + L"ENEMY AIRDROP", //STR_PB_ENEMYINVASION_AIRDROP_HEADER // TODO.Translate //Various single words for direct translation. The Civilians represent the civilian //militia occupying the sector being attacked. Limited to 9-10 chars diff --git a/Utils/_PolishText.cpp b/Utils/_PolishText.cpp index 438addda..0e10d10c 100644 --- a/Utils/_PolishText.cpp +++ b/Utils/_PolishText.cpp @@ -3411,6 +3411,7 @@ STR16 gpStrategicString[] = L"ATAK STWORÓW", //STR_PB_CREATUREATTACK_HEADER L"ATAK DZIKICH KOTÓW", //STR_PB_BLOODCATAMBUSH_HEADER L"WEJŚCIE DO LEGOWISKA DZIKICH KOTÓW", //STR_PB_ENTERINGBLOODCATLAIR_HEADER + L"ENEMY AIRDROP", //STR_PB_ENEMYINVASION_AIRDROP_HEADER // TODO.Translate //Various single words for direct translation. The Civilians represent the civilian //militia occupying the sector being attacked. Limited to 9-10 chars diff --git a/Utils/_RussianText.cpp b/Utils/_RussianText.cpp index c4c7c954..1b71d927 100644 --- a/Utils/_RussianText.cpp +++ b/Utils/_RussianText.cpp @@ -3405,6 +3405,7 @@ STR16 gpStrategicString[] = L"АТАКА ТВАРЕЙ", //STR_PB_CREATUREATTACK_HEADER L"ЗАСАДА КОШЕК-УБИЙЦ", //STR_PB_BLOODCATAMBUSH_HEADER L"ВХОД В ЛОГОВИЩЕ КОШЕК-УБИЙЦ", //STR_PB_ENTERINGBLOODCATLAIR_HEADER + L"ENEMY AIRDROP", //STR_PB_ENEMYINVASION_AIRDROP_HEADER // TODO.Translate //Various single words for direct translation. The Civilians represent the civilian //militia occupying the sector being attacked. Limited to 9-10 chars