From f72e4424ebfd7d21bfd2a3236a8034ad611cda65 Mon Sep 17 00:00:00 2001 From: Wanne Date: Fri, 11 Oct 2013 06:55:31 +0000 Subject: [PATCH] Externalizations (by Buggler) - Queen Palace & Interrogate meanwhile stuff - Initial POW stuff in Alma - Sectors for triggering Meduna outskirts meanwhile scene - Add Iggy to location when game progress condition met - Add Rat to location after creature meanwhile scene git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@6479 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- GameSettings.cpp | 41 +++++++++++++++++- GameSettings.h | 41 ++++++++++++++++-- Strategic/Meanwhile.cpp | 60 +++++++++++++-------------- Strategic/Player Command.cpp | 5 ++- Strategic/Queen Command.cpp | 41 +++++++++--------- Strategic/Queen Command.h | 3 +- Strategic/Strategic Event Handler.cpp | 1 + Strategic/strategicmap.cpp | 6 +-- Tactical/Campaign.cpp | 13 +++--- Tactical/Interface Dialogue.cpp | 14 +++---- Tactical/Turn Based Input.cpp | 12 +++--- 11 files changed, 159 insertions(+), 78 deletions(-) diff --git a/GameSettings.cpp b/GameSettings.cpp index 63441455..90f4c7b7 100644 --- a/GameSettings.cpp +++ b/GameSettings.cpp @@ -2340,8 +2340,8 @@ void LoadModSettings(){ gModSettings.iBasementEntry[1] = iniReader.ReadInteger("Rebel Hideout", "BASEMENT_ENTRY_2", 13363); gModSettings.iBasementEntry[2] = iniReader.ReadInteger("Rebel Hideout", "BASEMENT_ENTRY_3", 13364); gModSettings.iBasementEntry[3] = iniReader.ReadInteger("Rebel Hideout", "BASEMENT_ENTRY_4", 13365); - gModSettings.iBasementEntry[4] = iniReader.ReadInteger("Rebel Hideout", "BASEMENT_ENTRY_5", 13325); - gModSettings.iBasementEntry[5] = iniReader.ReadInteger("Rebel Hideout", "BASEMENT_ENTRY_6", 13324); + gModSettings.iBasementEntry[4] = iniReader.ReadInteger("Rebel Hideout", "BASEMENT_ENTRY_5", 13525); + gModSettings.iBasementEntry[5] = iniReader.ReadInteger("Rebel Hideout", "BASEMENT_ENTRY_6", 13524); gModSettings.iBasementEntry[6] = iniReader.ReadInteger("Rebel Hideout", "BASEMENT_ENTRY_7", 0); gModSettings.iBasementEntry[7] = iniReader.ReadInteger("Rebel Hideout", "BASEMENT_ENTRY_8", 0); gModSettings.iBasementEntry[8] = iniReader.ReadInteger("Rebel Hideout", "BASEMENT_ENTRY_9", 0); @@ -2379,6 +2379,15 @@ void LoadModSettings(){ //[Alma] gModSettings.sRocketRifleGridNo = iniReader.ReadInteger("Alma", "ROCKETRIFLE_POSITION", 10472); + gModSettings.ubInitialPOWSectorX = iniReader.ReadInteger("Alma", "INITIAL_POW_SECTOR_X", 13); + gModSettings.ubInitialPOWSectorY = iniReader.ReadInteger("Alma", "INITIAL_POW_SECTOR_Y", 9); + gModSettings.iInitialPOWGridNo[0] = iniReader.ReadInteger("Alma", "INITIAL_POW_POSITION_1", 9208); + gModSettings.iInitialPOWGridNo[1] = iniReader.ReadInteger("Alma", "INITIAL_POW_POSITION_2", 9688); + gModSettings.iInitialPOWGridNo[2] = iniReader.ReadInteger("Alma", "INITIAL_POW_POSITION_3", 9215); + gModSettings.iInitialPOWItemGridNo[0] = iniReader.ReadInteger("Alma", "INITIAL_POW_ITEM_POSITION_1", 12246); + gModSettings.iInitialPOWItemGridNo[1] = iniReader.ReadInteger("Alma", "INITIAL_POW_ITEM_POSITION_2", 12406); + gModSettings.iInitialPOWItemGridNo[2] = iniReader.ReadInteger("Alma", "INITIAL_POW_ITEM_POSITION_3", 12086); + //[Grumm] //[Tixa] @@ -2391,6 +2400,10 @@ void LoadModSettings(){ gModSettings.ubHospitalSectorY = iniReader.ReadInteger("Cambria", "HOSPITAL_SECTOR_Y", 6); gModSettings.ubHospitalSectorZ = iniReader.ReadInteger("Cambria", "HOSPITAL_SECTOR_Z", 0); + gModSettings.ubAddRatSectorX = iniReader.ReadInteger("Cambria", "ADD_RAT_SECTOR_X", 9); + gModSettings.ubAddRatSectorY = iniReader.ReadInteger("Cambria", "ADD_RAT_SECTOR_Y", 7); + gModSettings.ubAddRatSectorZ = iniReader.ReadInteger("Cambria", "ADD_RAT_SECTOR_Z", 0); + //[San Mona] gModSettings.usPornShopRoomHans = iniReader.ReadInteger("San Mona", "PORN_SHOP_ROOM_HANS", 49); gModSettings.iHansGridNo = iniReader.ReadInteger("San Mona", "HANS_POSTION", 13523); @@ -2427,6 +2440,11 @@ void LoadModSettings(){ gModSettings.ubSpikeNewSectorX = iniReader.ReadInteger("San Mona", "SPIKE_NEW_SECTOR_X", 5); gModSettings.ubSpikeNewSectorY = iniReader.ReadInteger("San Mona", "SPIKE_NEW_SECTOR_Y", 3); + gModSettings.ubSpikeNewSectorZ = iniReader.ReadInteger("San Mona", "SPIKE_NEW_SECTOR_Z", 0); + + gModSettings.ubAddIggySectorX = iniReader.ReadInteger("San Mona", "ADD_IGGY_SECTOR_X", 5); + gModSettings.ubAddIggySectorY = iniReader.ReadInteger("San Mona", "ADD_IGGY_SECTOR_Y", 3); + gModSettings.ubAddIggySectorZ = iniReader.ReadInteger("San Mona", "ADD_IGGY_SECTOR_Z", 0); //[Estoni] @@ -2450,6 +2468,25 @@ void LoadModSettings(){ gModSettings.ubWeaponCache5X = iniReader.ReadInteger("Weapon Cache", "WEAPON_CACHE_5_X", 9); gModSettings.ubWeaponCache5Y = iniReader.ReadInteger("Weapon Cache", "WEAPON_CACHE_5_Y", 13); + gModSettings.ubMeanwhilePalaceSectorX = iniReader.ReadInteger("Meanwhile", "PALACE_SECTOR_X", 3); + gModSettings.ubMeanwhilePalaceSectorY = iniReader.ReadInteger("Meanwhile", "PALACE_SECTOR_Y", 16); + + gModSettings.ubMeanwhileInterrogatePOWSectorX = iniReader.ReadInteger("Meanwhile", "INTERROGATE_POW_SECTOR_X", 7); + gModSettings.ubMeanwhileInterrogatePOWSectorY = iniReader.ReadInteger("Meanwhile", "INTERROGATE_POW_SECTOR_Y", 14); + gModSettings.iMeanwhileInterrogatePOWGridNo[0] = iniReader.ReadInteger("Meanwhile", "INTERROGATE_POW_POSITION_1", 7756); + gModSettings.iMeanwhileInterrogatePOWGridNo[1] = iniReader.ReadInteger("Meanwhile", "INTERROGATE_POW_POSITION_2", 7757); + gModSettings.iMeanwhileInterrogatePOWGridNo[2] = iniReader.ReadInteger("Meanwhile", "INTERROGATE_POW_POSITION_3", 7758); + gModSettings.iMeanwhileInterrogatePOWItemGridNo[0] = iniReader.ReadInteger("Meanwhile", "INTERROGATE_POW_ITEM_POSITION_1", 12089); + gModSettings.iMeanwhileInterrogatePOWItemGridNo[1] = iniReader.ReadInteger("Meanwhile", "INTERROGATE_POW_ITEM_POSITION_2", 12089); + gModSettings.iMeanwhileInterrogatePOWItemGridNo[2] = iniReader.ReadInteger("Meanwhile", "INTERROGATE_POW_ITEM_POSITION_3", 12089); + + gModSettings.ubMeanwhileMedunaOutskirtsRowMinX = iniReader.ReadInteger("Meanwhile", "MEDUNA_OUTSKIRTS_ROW_MIN_X", 2); + gModSettings.ubMeanwhileMedunaOutskirtsRowMaxX = iniReader.ReadInteger("Meanwhile", "MEDUNA_OUTSKIRTS_ROW_MAX_X", 6); + gModSettings.ubMeanwhileMedunaOutskirtsRowY = iniReader.ReadInteger("Meanwhile", "MEDUNA_OUTSKIRTS_ROW_Y", 13); + gModSettings.ubMeanwhileMedunaOutskirtsColX = iniReader.ReadInteger("Meanwhile", "MEDUNA_OUTSKIRTS_COL_X", 6); + gModSettings.ubMeanwhileMedunaOutskirtsColMinY = iniReader.ReadInteger("Meanwhile", "MEDUNA_OUTSKIRTS_COL_MIN_Y", 14); + gModSettings.ubMeanwhileMedunaOutskirtsColMaxY = iniReader.ReadInteger("Meanwhile", "MEDUNA_OUTSKIRTS_COL_MAX_Y", 14); + } // silversurfer: load item property modifiers diff --git a/GameSettings.h b/GameSettings.h index d09e2f67..14798f2f 100644 --- a/GameSettings.h +++ b/GameSettings.h @@ -1710,6 +1710,12 @@ typedef struct //[Alma] INT32 sRocketRifleGridNo; + + //POW stuff for QUEST_HELD_IN_ALMA + UINT8 ubInitialPOWSectorX; + UINT8 ubInitialPOWSectorY; + INT32 iInitialPOWGridNo[3]; + INT32 iInitialPOWItemGridNo[3]; //[Grumm] @@ -1725,6 +1731,11 @@ typedef struct UINT8 ubHospitalSectorY; UINT8 ubHospitalSectorZ; + //add Rat to location after creature meanwhile scene + UINT8 ubAddRatSectorX; + UINT8 ubAddRatSectorY; + UINT8 ubAddRatSectorZ; + //[San Mona] //Porn Quest UINT16 usPornShopRoomHans; @@ -1755,12 +1766,10 @@ typedef struct UINT8 ubKingpinMoneySectorY; UINT8 ubKingpinMoneySectorZ; - //Joey Primary Location to be found + //Joey primary and alternate Location to be found UINT8 ubJoeyPrimarySectorX; UINT8 ubJoeyPrimarySectorY; UINT8 ubJoeyPrimarySectorZ; - - //Joey Alternate Location UINT8 ubJoeyAlternateSectorX; UINT8 ubJoeyAlternateSectorY; UINT8 ubJoeyAlternateSectorZ; @@ -1768,6 +1777,12 @@ typedef struct //Spike new location when assassins are sent UINT8 ubSpikeNewSectorX; UINT8 ubSpikeNewSectorY; + UINT8 ubSpikeNewSectorZ; + + //add Iggy to location when game progress condition met + UINT8 ubAddIggySectorX; + UINT8 ubAddIggySectorY; + UINT8 ubAddIggySectorZ; //[Estoni] @@ -1792,6 +1807,26 @@ typedef struct UINT8 ubWeaponCache5X; UINT8 ubWeaponCache5Y; + //Meanwhile scenes + //palace sector + UINT8 ubMeanwhilePalaceSectorX; + UINT8 ubMeanwhilePalaceSectorY; + + //interrogate and second POW stuff + UINT8 ubMeanwhileInterrogatePOWSectorX; + UINT8 ubMeanwhileInterrogatePOWSectorY; + INT32 iMeanwhileInterrogatePOWGridNo[3]; + INT32 iMeanwhileInterrogatePOWItemGridNo[3]; + + //row sectors to trigger meduna outskirts meanwhile + UINT8 ubMeanwhileMedunaOutskirtsRowMinX; + UINT8 ubMeanwhileMedunaOutskirtsRowMaxX; + UINT8 ubMeanwhileMedunaOutskirtsRowY; + //column sectors to trigger meduna outskirts meanwhile + UINT8 ubMeanwhileMedunaOutskirtsColX; + UINT8 ubMeanwhileMedunaOutskirtsColMinY; + UINT8 ubMeanwhileMedunaOutskirtsColMaxY; + }MOD_SETTINGS; // silversurfer: item property modifiers diff --git a/Strategic/Meanwhile.cpp b/Strategic/Meanwhile.cpp index 13c8249a..39d9bd64 100644 --- a/Strategic/Meanwhile.cpp +++ b/Strategic/Meanwhile.cpp @@ -486,7 +486,7 @@ void StartMeanwhile( ) // Force reload of NPC files... ReloadQuoteFile( QUEEN ); - ChangeNpcToDifferentSector( QUEEN, 3, 16, 0 ); + ChangeNpcToDifferentSector( QUEEN, gModSettings.ubMeanwhilePalaceSectorX, gModSettings.ubMeanwhilePalaceSectorY, 0 ); //3, 16 } // SAVE MESSANGER! @@ -502,7 +502,7 @@ void StartMeanwhile( ) // Force reload of NPC files... ReloadQuoteFile( ELLIOT ); - ChangeNpcToDifferentSector( ELLIOT, 3, 16, 0 ); + ChangeNpcToDifferentSector( ELLIOT, gModSettings.ubMeanwhilePalaceSectorX, gModSettings.ubMeanwhilePalaceSectorY, 0 ); } if ( gCurrentMeanwhileDef.ubMeanwhileID == OUTSKIRTS_MEDUNA ) @@ -520,7 +520,7 @@ void StartMeanwhile( ) // Force reload of NPC files... ReloadQuoteFile( JOE ); - ChangeNpcToDifferentSector( JOE, 3, 16, 0 ); + ChangeNpcToDifferentSector( JOE, gModSettings.ubMeanwhilePalaceSectorX, gModSettings.ubMeanwhilePalaceSectorY, 0 ); } } @@ -542,7 +542,7 @@ void StartMeanwhile( ) // Force reload of NPC files... ReloadQuoteFile( QUEEN ); - ChangeNpcToDifferentSector( QUEEN, 7, 14, 0 ); + ChangeNpcToDifferentSector( QUEEN, gModSettings.ubMeanwhileInterrogatePOWSectorX, gModSettings.ubMeanwhileInterrogatePOWSectorY, 0 ); // 7, 14 } // SAVE MESSANGER! @@ -558,7 +558,7 @@ void StartMeanwhile( ) // Force reload of NPC files... ReloadQuoteFile( ELLIOT ); - ChangeNpcToDifferentSector( ELLIOT, 7, 14, 0 ); + ChangeNpcToDifferentSector( ELLIOT, gModSettings.ubMeanwhileInterrogatePOWSectorX, gModSettings.ubMeanwhileInterrogatePOWSectorY, 0 ); } // SAVE JOE! @@ -574,7 +574,7 @@ void StartMeanwhile( ) // Force reload of NPC files... ReloadQuoteFile( JOE ); - ChangeNpcToDifferentSector( JOE, 7, 14, 0 ); + ChangeNpcToDifferentSector( JOE, gModSettings.ubMeanwhileInterrogatePOWSectorX, gModSettings.ubMeanwhileInterrogatePOWSectorY, 0 ); } break; @@ -850,7 +850,7 @@ void EndMeanwhile( ) gMercProfiles[ ubProfile ].sSectorX = gNPCSaveData[ cnt ].sX; gMercProfiles[ ubProfile ].sSectorY = gNPCSaveData[ cnt ].sY; gMercProfiles[ ubProfile ].bSectorZ = (INT8)gNPCSaveData[ cnt ].sZ; - gMercProfiles[ ubProfile ].sGridNo = (INT8)gNPCSaveData[ cnt ].sGridNo; + gMercProfiles[ ubProfile ].sGridNo = (INT32)gNPCSaveData[ cnt ].sGridNo; // Ensure NPC files loaded... ReloadQuoteFile( ubProfile ); @@ -899,7 +899,7 @@ void DoneFadeOutMeanwhileOnceDone( ) gMercProfiles[ ubProfile ].sSectorX = gNPCSaveData[ cnt ].sX; gMercProfiles[ ubProfile ].sSectorY = gNPCSaveData[ cnt ].sY; gMercProfiles[ ubProfile ].bSectorZ = (INT8)gNPCSaveData[ cnt ].sZ; - gMercProfiles[ ubProfile ].sGridNo = (INT8)gNPCSaveData[ cnt ].sGridNo; + gMercProfiles[ ubProfile ].sGridNo = (INT32)gNPCSaveData[ cnt ].sGridNo; // Ensure NPC files loaded... ReloadQuoteFile( ubProfile ); @@ -975,8 +975,8 @@ void HandleCreatureRelease( void ) UINT32 uiTime = 0; MEANWHILE_DEFINITION MeanwhileDef; - MeanwhileDef.sSectorX = 3; - MeanwhileDef.sSectorY = 16; + MeanwhileDef.sSectorX = gModSettings.ubMeanwhilePalaceSectorX; + MeanwhileDef.sSectorY = gModSettings.ubMeanwhilePalaceSectorY; MeanwhileDef.ubNPCNumber = QUEEN; MeanwhileDef.usTriggerEvent = 0; @@ -997,8 +997,8 @@ void HandleMeanWhileEventPostingForTownLiberation( UINT8 bTownId ) UINT8 ubId = 0; BOOLEAN fHandled = FALSE; - MeanwhileDef.sSectorX = 3; - MeanwhileDef.sSectorY = 16; + MeanwhileDef.sSectorX = gModSettings.ubMeanwhilePalaceSectorX; + MeanwhileDef.sSectorY = gModSettings.ubMeanwhilePalaceSectorY; MeanwhileDef.ubNPCNumber = QUEEN; MeanwhileDef.usTriggerEvent = 0; @@ -1053,8 +1053,8 @@ void HandleMeanWhileEventPostingForTownLoss( UINT8 bTownId ) return; } - MeanwhileDef.sSectorX = 3; - MeanwhileDef.sSectorY = 16; + MeanwhileDef.sSectorX = gModSettings.ubMeanwhilePalaceSectorX; + MeanwhileDef.sSectorY = gModSettings.ubMeanwhilePalaceSectorY; MeanwhileDef.ubNPCNumber = QUEEN; MeanwhileDef.usTriggerEvent = 0; @@ -1084,8 +1084,8 @@ void HandleMeanWhileEventPostingForSAMLiberation( INT8 bSamId ) return; } - MeanwhileDef.sSectorX = 3; - MeanwhileDef.sSectorY = 16; + MeanwhileDef.sSectorX = gModSettings.ubMeanwhilePalaceSectorX; + MeanwhileDef.sSectorY = gModSettings.ubMeanwhilePalaceSectorY; MeanwhileDef.ubNPCNumber = QUEEN; MeanwhileDef.usTriggerEvent = 0; @@ -1132,8 +1132,8 @@ void HandleFlowersMeanwhileScene( INT8 bTimeCode ) return; } - MeanwhileDef.sSectorX = 3; - MeanwhileDef.sSectorY = 16; + MeanwhileDef.sSectorX = gModSettings.ubMeanwhilePalaceSectorX; + MeanwhileDef.sSectorY = gModSettings.ubMeanwhilePalaceSectorY; MeanwhileDef.ubNPCNumber = QUEEN; MeanwhileDef.usTriggerEvent = 0; @@ -1165,8 +1165,8 @@ void HandleOutskirtsOfMedunaMeanwhileScene( void ) return; } - MeanwhileDef.sSectorX = 3; - MeanwhileDef.sSectorY = 16; + MeanwhileDef.sSectorX = gModSettings.ubMeanwhilePalaceSectorX; + MeanwhileDef.sSectorY = gModSettings.ubMeanwhilePalaceSectorY; MeanwhileDef.ubNPCNumber = QUEEN; MeanwhileDef.usTriggerEvent = 0; @@ -1188,8 +1188,8 @@ void HandleKillChopperMeanwhileScene( void ) return; } - MeanwhileDef.sSectorX = 3; - MeanwhileDef.sSectorY = 16; + MeanwhileDef.sSectorX = gModSettings.ubMeanwhilePalaceSectorX; + MeanwhileDef.sSectorY = gModSettings.ubMeanwhilePalaceSectorY; MeanwhileDef.ubNPCNumber = QUEEN; MeanwhileDef.usTriggerEvent = 0; @@ -1211,8 +1211,8 @@ void HandleScientistAWOLMeanwhileScene( void ) return; } - MeanwhileDef.sSectorX = 3; - MeanwhileDef.sSectorY = 16; + MeanwhileDef.sSectorX = gModSettings.ubMeanwhilePalaceSectorX; + MeanwhileDef.sSectorY = gModSettings.ubMeanwhilePalaceSectorY; MeanwhileDef.ubNPCNumber = QUEEN; MeanwhileDef.usTriggerEvent = 0; @@ -1234,8 +1234,8 @@ void HandleInterrogationMeanwhileScene( void ) return; } - MeanwhileDef.sSectorX = 7; // what sector? - MeanwhileDef.sSectorY = MAP_ROW_N; + MeanwhileDef.sSectorX = gModSettings.ubMeanwhileInterrogatePOWSectorX; // interrogate sector + MeanwhileDef.sSectorY = gModSettings.ubMeanwhileInterrogatePOWSectorY; MeanwhileDef.ubNPCNumber = QUEEN; MeanwhileDef.usTriggerEvent = 0; @@ -1258,8 +1258,8 @@ void HandleFirstBattleVictory( void ) return; } - MeanwhileDef.sSectorX = 3; - MeanwhileDef.sSectorY = 16; + MeanwhileDef.sSectorX = gModSettings.ubMeanwhilePalaceSectorX; + MeanwhileDef.sSectorY = gModSettings.ubMeanwhilePalaceSectorY; MeanwhileDef.ubNPCNumber = QUEEN; MeanwhileDef.usTriggerEvent = 0; @@ -1286,8 +1286,8 @@ void HandleDelayedFirstBattleVictory( void ) return; } - MeanwhileDef.sSectorX = 3; - MeanwhileDef.sSectorY = 16; + MeanwhileDef.sSectorX = gModSettings.ubMeanwhilePalaceSectorX; + MeanwhileDef.sSectorY = gModSettings.ubMeanwhilePalaceSectorY; MeanwhileDef.ubNPCNumber = QUEEN; MeanwhileDef.usTriggerEvent = 0; diff --git a/Strategic/Player Command.cpp b/Strategic/Player Command.cpp index a2b14e9a..6d737268 100644 --- a/Strategic/Player Command.cpp +++ b/Strategic/Player Command.cpp @@ -340,7 +340,10 @@ BOOLEAN SetThisSectorAsPlayerControlled( INT16 sMapX, INT16 sMapY, INT8 bMapZ, B } // SetSectorFlag( sMapX, sMapY, bMapZ, SF_SECTOR_HAS_BEEN_LIBERATED_ONCE ); - if ( bMapZ == 0 && ( ( sMapY == MAP_ROW_M && (sMapX >= 2 && sMapX <= 6) ) || sMapY == MAP_ROW_N && sMapX == 6) ) + if ( bMapZ == 0 && ( ( ( sMapX >= gModSettings.ubMeanwhileMedunaOutskirtsRowMinX && sMapX <= gModSettings.ubMeanwhileMedunaOutskirtsRowMaxX ) && //row x range + sMapY == gModSettings.ubMeanwhileMedunaOutskirtsRowY ) || //row y + ( sMapX == gModSettings.ubMeanwhileMedunaOutskirtsColX && // col x + ( sMapY >= gModSettings.ubMeanwhileMedunaOutskirtsColMinY && sMapY <= gModSettings.ubMeanwhileMedunaOutskirtsColMaxY ) ) ) ) //col y range { #if (defined JA2UB) diff --git a/Strategic/Queen Command.cpp b/Strategic/Queen Command.cpp index 36bb16dd..b0f7caf2 100644 --- a/Strategic/Queen Command.cpp +++ b/Strategic/Queen Command.cpp @@ -85,7 +85,8 @@ extern INT32 giGarrisonArraySize; extern BOOLEAN gfOverrideSector; #endif -INT32 gsInterrogationGridNo[3] = { 7756, 7757, 7758 }; +//Buggler: Externalized to gModSettings.iMeanwhileInterrogatePOWGridNo +//INT32 gsInterrogationGridNo[3] = { 7756, 7757, 7758 }; #ifdef JA2UB INT32 gsGridNoForMapEdgePointInfo=-1; @@ -2076,8 +2077,8 @@ void EndCaptureSequence( ) { MEANWHILE_DEFINITION MeanwhileDef; - MeanwhileDef.sSectorX = 7; - MeanwhileDef.sSectorY = 14; + MeanwhileDef.sSectorX = gModSettings.ubMeanwhileInterrogatePOWSectorX; //7 + MeanwhileDef.sSectorY = gModSettings.ubMeanwhileInterrogatePOWSectorY; //14 MeanwhileDef.ubNPCNumber = QUEEN; MeanwhileDef.usTriggerEvent = 0; MeanwhileDef.ubMeanwhileID = INTERROGATION; @@ -2102,11 +2103,11 @@ void EnemyCapturesPlayerSoldier( SOLDIERTYPE *pSoldier ) BOOLEAN fMadeCorpse; INT32 iNumEnemiesInSector; - // TODO.WANNE: Hardcoded grid number - static INT32 sAlmaCaptureGridNos[] = { 9208, 9688, 9215 }; //dnl!!! - static INT32 sAlmaCaptureItemsGridNo[] = { 12246, 12406, 13046 }; //dnl!!! + // Buggler: Externalized Hardcoded grid number + //static INT32 sAlmaCaptureGridNos[] = { 9208, 9688, 9215 }; //dnl!!! + //static INT32 sAlmaCaptureItemsGridNo[] = { 12246, 12406, 12086 }; //dnl!!! - static INT32 sInterrogationItemGridNo[] = { 12089, 12089, 12089 }; //dnl!!! + //static INT32 sInterrogationItemGridNo[] = { 12089, 12089, 12089 }; //dnl!!! AssertNotNIL(pSoldier); @@ -2142,8 +2143,8 @@ void EnemyCapturesPlayerSoldier( SOLDIERTYPE *pSoldier ) TakeSoldierOutOfVehicle( pSoldier ); - // Are there anemies in ALMA? ( I13 ) - iNumEnemiesInSector = NumEnemiesInSector( 13, 9 ); + // Are there enemies in ALMA? ( I13 ) + iNumEnemiesInSector = NumEnemiesInSector( gModSettings.ubInitialPOWSectorX, gModSettings.ubInitialPOWSectorY ); //(13, 9) // IF there are no enemies, and we need to do alma, skip! if ( gubQuest[ QUEST_HELD_IN_ALMA ] == QUESTNOTSTARTED && iNumEnemiesInSector == 0 ) @@ -2176,8 +2177,8 @@ void EnemyCapturesPlayerSoldier( SOLDIERTYPE *pSoldier ) if ( gubQuest[ QUEST_HELD_IN_ALMA ] == QUESTNOTSTARTED ) { //-teleport him to NE Alma sector (not Tixa as originally planned) - pSoldier->sSectorX = 13; - pSoldier->sSectorY = 9; + pSoldier->sSectorX = gModSettings.ubInitialPOWSectorX; //13 + pSoldier->sSectorY = gModSettings.ubInitialPOWSectorY; //9 pSoldier->bSectorZ = 0; // put him on the floor!! @@ -2189,27 +2190,28 @@ void EnemyCapturesPlayerSoldier( SOLDIERTYPE *pSoldier ) if( pSoldier->inv[ i ].exists() == true ) { WorldItem.fExists = TRUE; - WorldItem.sGridNo = sAlmaCaptureItemsGridNo[ gStrategicStatus.ubNumCapturedForRescue ]; + WorldItem.sGridNo = gModSettings.iInitialPOWItemGridNo[ gStrategicStatus.ubNumCapturedForRescue ]; WorldItem.ubLevel = 0; WorldItem.usFlags = 0; WorldItem.bVisible = FALSE; WorldItem.bRenderZHeightAboveLevel = 0; pSoldier->inv[ i ].MoveThisObjectTo(WorldItem.object); - AddWorldItemsToUnLoadedSector( 13, 9, 0, sAlmaCaptureItemsGridNo[ gStrategicStatus.ubNumCapturedForRescue ], 1, &WorldItem, FALSE ); + AddWorldItemsToUnLoadedSector( gModSettings.ubInitialPOWSectorX, gModSettings.ubInitialPOWSectorY, 0, + gModSettings.iInitialPOWItemGridNo[ gStrategicStatus.ubNumCapturedForRescue ], 1, &WorldItem, FALSE ); } } pSoldier->ubStrategicInsertionCode = INSERTION_CODE_GRIDNO; - pSoldier->usStrategicInsertionData = sAlmaCaptureGridNos[ gStrategicStatus.ubNumCapturedForRescue ]; + pSoldier->usStrategicInsertionData = gModSettings.iInitialPOWGridNo[ gStrategicStatus.ubNumCapturedForRescue ]; gStrategicStatus.ubNumCapturedForRescue++; } else if ( gubQuest[ QUEST_HELD_IN_ALMA ] == QUESTDONE ) { //-teleport him to N7 - pSoldier->sSectorX = 7; - pSoldier->sSectorY = 14; + pSoldier->sSectorX = gModSettings.ubMeanwhileInterrogatePOWSectorX; //7 + pSoldier->sSectorY = gModSettings.ubMeanwhileInterrogatePOWSectorY; //14 pSoldier->bSectorZ = 0; // put him on the floor!! @@ -2221,19 +2223,20 @@ void EnemyCapturesPlayerSoldier( SOLDIERTYPE *pSoldier ) if( pSoldier->inv[ i ].exists() == true ) { WorldItem.fExists = TRUE; - WorldItem.sGridNo = sInterrogationItemGridNo[ gStrategicStatus.ubNumCapturedForRescue ]; + WorldItem.sGridNo = gModSettings.iMeanwhileInterrogatePOWItemGridNo[ gStrategicStatus.ubNumCapturedForRescue ]; WorldItem.ubLevel = 0; WorldItem.usFlags = 0; WorldItem.bVisible = FALSE; WorldItem.bRenderZHeightAboveLevel = 0; pSoldier->inv[ i ].MoveThisObjectTo(WorldItem.object); - AddWorldItemsToUnLoadedSector( 7, 14, 0, sInterrogationItemGridNo[ gStrategicStatus.ubNumCapturedForRescue ], 1, &WorldItem, FALSE ); + AddWorldItemsToUnLoadedSector( gModSettings.ubMeanwhileInterrogatePOWSectorX, gModSettings.ubMeanwhileInterrogatePOWSectorY, 0, + gModSettings.iMeanwhileInterrogatePOWItemGridNo[ gStrategicStatus.ubNumCapturedForRescue ], 1, &WorldItem, FALSE ); } } pSoldier->ubStrategicInsertionCode = INSERTION_CODE_GRIDNO; - pSoldier->usStrategicInsertionData = gsInterrogationGridNo[ gStrategicStatus.ubNumCapturedForRescue ]; + pSoldier->usStrategicInsertionData = gModSettings.iMeanwhileInterrogatePOWGridNo[ gStrategicStatus.ubNumCapturedForRescue ]; gStrategicStatus.ubNumCapturedForRescue++; } diff --git a/Strategic/Queen Command.h b/Strategic/Queen Command.h index 9299d1ea..f0383a07 100644 --- a/Strategic/Queen Command.h +++ b/Strategic/Queen Command.h @@ -54,7 +54,8 @@ BOOLEAN PlayerSectorDefended( UINT8 ubSectorID ); BOOLEAN OnlyHostileCivsInSector(); -extern INT32 gsInterrogationGridNo[3]; +//Buggler: Externalized to gModSettings.iMeanwhileInterrogatePOWGridNo +//extern INT32 gsInterrogationGridNo[3]; #ifdef JA2UB extern INT32 gsGridNoForMapEdgePointInfo; diff --git a/Strategic/Strategic Event Handler.cpp b/Strategic/Strategic Event Handler.cpp index 42896535..d541bf7a 100644 --- a/Strategic/Strategic Event Handler.cpp +++ b/Strategic/Strategic Event Handler.cpp @@ -725,6 +725,7 @@ void HandleNPCSystemEvent( UINT32 uiEvent ) SetFactTrue( FACT_KINGPIN_CAN_SEND_ASSASSINS ); gMercProfiles[ SPIKE ].sSectorX = gModSettings.ubSpikeNewSectorX; //5 gMercProfiles[ SPIKE ].sSectorY = gModSettings.ubSpikeNewSectorY; //MAP_ROW_C + gMercProfiles[ SPIKE ].bSectorZ = gModSettings.ubSpikeNewSectorZ; //0 gTacticalStatus.fCivGroupHostile[ KINGPIN_CIV_GROUP ] = CIV_GROUP_WILL_BECOME_HOSTILE; } } diff --git a/Strategic/strategicmap.cpp b/Strategic/strategicmap.cpp index 91aadee1..3fc69833 100644 --- a/Strategic/strategicmap.cpp +++ b/Strategic/strategicmap.cpp @@ -1911,7 +1911,7 @@ void GetMapFileName(INT16 sMapX,INT16 sMapY, INT8 bSectorZ, STR8 bString, BOOLEA /* Ja25: No meanwhiles */ #else // If we are in a meanwhile... - if ( AreInMeanwhile( ) && sMapX == 3 && sMapY == 16 && !bSectorZ )//GetMeanwhileID() != INTERROGATION ) + if ( AreInMeanwhile( ) && sMapX == gModSettings.ubMeanwhilePalaceSectorX && sMapY == gModSettings.ubMeanwhilePalaceSectorY && !bSectorZ ) //GetMeanwhileID() != INTERROGATION ), (3, 16) { if( fAddAlternateMapLetter ) { @@ -3114,7 +3114,7 @@ void UpdateMercsInSector( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ ) fPOWSquadSet = TRUE; // ATE: If we are in i13 - pop up message! - if ( sSectorY == MAP_ROW_I && sSectorX == 13 ) + if ( sSectorX == gModSettings.ubInitialPOWSectorX && sSectorY == gModSettings.ubInitialPOWSectorY ) //(13, 9) { DoMessageBox( MSG_BOX_BASIC_STYLE, TacticalStr[ POW_MERCS_ARE_HERE ], GAME_SCREEN, ( UINT8 )MSG_BOX_FLAG_OK, NULL, NULL ); } @@ -3127,7 +3127,7 @@ void UpdateMercsInSector( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ ) } else { - if ( sSectorY != MAP_ROW_I && sSectorX != 13 ) + if ( sSectorX != gModSettings.ubInitialPOWSectorX && sSectorY != gModSettings.ubInitialPOWSectorY ) //(13, 9) { AddCharacterToSquad( pSoldier, ubPOWSquad ); } diff --git a/Tactical/Campaign.cpp b/Tactical/Campaign.cpp index 4102f34e..06565885 100644 --- a/Tactical/Campaign.cpp +++ b/Tactical/Campaign.cpp @@ -1725,7 +1725,7 @@ void HourlyProgressUpdate(void) } #endif // at 50% make Mike available to the strategic AI - if ( ubCurrentProgress >= gGameExternalOptions.ubGameProgressMikeAvailable && gStrategicStatus.ubHighestProgress <= gGameExternalOptions.ubGameProgressMikeAvailable ) + if ( ubCurrentProgress >= gGameExternalOptions.ubGameProgressMikeAvailable && gStrategicStatus.ubHighestProgress < gGameExternalOptions.ubGameProgressMikeAvailable ) { if( gubFact[FACT_MIKE_AVAILABLE_TO_ARMY] < 2 ) { @@ -1734,22 +1734,23 @@ void HourlyProgressUpdate(void) } // at 70% add Iggy to the world - if ( ubCurrentProgress >= gGameExternalOptions.ubGameProgressIggyAvaliable && gStrategicStatus.ubHighestProgress <= gGameExternalOptions.ubGameProgressIggyAvaliable ) + if ( ubCurrentProgress >= gGameExternalOptions.ubGameProgressIggyAvaliable && gStrategicStatus.ubHighestProgress < gGameExternalOptions.ubGameProgressIggyAvaliable ) { if ( gubFact[ FACT_IGGY_AVAILABLE_TO_ARMY ] < 2 ) { - gMercProfiles[ IGGY ].sSectorX = 5; - gMercProfiles[ IGGY ].sSectorY = MAP_ROW_C; + gMercProfiles[ IGGY ].sSectorX = gModSettings.ubAddIggySectorX; //5 + gMercProfiles[ IGGY ].sSectorY = gModSettings.ubAddIggySectorY; //MAP_ROW_C + gMercProfiles[ IGGY ].bSectorZ = gModSettings.ubAddIggySectorZ; //0 } } // Flugente: on certain progress levels, the queen decides to initiate major attacks - if ( ubCurrentProgress >= gGameExternalOptions.ubGameProgressOffensiveStage1 && gStrategicStatus.ubHighestProgress <= gGameExternalOptions.ubGameProgressOffensiveStage1 ) + if ( ubCurrentProgress >= gGameExternalOptions.ubGameProgressOffensiveStage1 && gStrategicStatus.ubHighestProgress < gGameExternalOptions.ubGameProgressOffensiveStage1 ) { ExecuteStrategicAIAction( NPC_ACTION_GLOBAL_OFFENSIVE_1, 0, 0 ); } - if ( ubCurrentProgress >= gGameExternalOptions.ubGameProgressOffensiveStage2 && gStrategicStatus.ubHighestProgress <= gGameExternalOptions.ubGameProgressOffensiveStage2 ) + if ( ubCurrentProgress >= gGameExternalOptions.ubGameProgressOffensiveStage2 && gStrategicStatus.ubHighestProgress < gGameExternalOptions.ubGameProgressOffensiveStage2 ) { ExecuteStrategicAIAction( NPC_ACTION_GLOBAL_OFFENSIVE_2, 0, 0 ); } diff --git a/Tactical/Interface Dialogue.cpp b/Tactical/Interface Dialogue.cpp index ef608d7b..b5438bda 100644 --- a/Tactical/Interface Dialogue.cpp +++ b/Tactical/Interface Dialogue.cpp @@ -3352,18 +3352,18 @@ void HandleNPCDoAction( UINT8 ubTargetNPC, UINT16 usActionCode, UINT8 ubQuoteNum // Target a different merc.... if ( usActionCode == NPC_ACTION_PUNCH_PC_SLOT_0 ) { - sGridNo = gsInterrogationGridNo[ 0 ]; //pTarget = MercPtrs[ 0 ]; + sGridNo = gModSettings.iMeanwhileInterrogatePOWGridNo[ 0 ]; } else if ( usActionCode == NPC_ACTION_PUNCH_PC_SLOT_1 ) { //pTarget = MercPtrs[ 1 ]; - sGridNo = gsInterrogationGridNo[ 1 ]; + sGridNo = gModSettings.iMeanwhileInterrogatePOWGridNo[ 1 ]; } else //if ( usActionCode == NPC_ACTION_PUNCH_PC_SLOT_2 ) { //pTarget = MercPtrs[ 2 ]; - sGridNo = gsInterrogationGridNo[ 2 ]; + sGridNo = gModSettings.iMeanwhileInterrogatePOWGridNo[ 2 ]; } ubTargetID = WhoIsThere2( sGridNo, 0 ); @@ -3473,7 +3473,7 @@ void HandleNPCDoAction( UINT8 ubTargetNPC, UINT16 usActionCode, UINT8 ubQuoteNum for ( cnt = 0; cnt < 3; cnt++ ) { - ubTargetID = WhoIsThere2( gsInterrogationGridNo[ cnt ], 0 ); + ubTargetID = WhoIsThere2( gModSettings.iMeanwhileInterrogatePOWGridNo[ cnt ], 0 ); if ( ubTargetID == NOBODY ) { continue; @@ -4132,9 +4132,9 @@ void HandleNPCDoAction( UINT8 ubTargetNPC, UINT16 usActionCode, UINT8 ubQuoteNum case NPC_ACTION_ADD_RAT: // add Rat - gMercProfiles[ RAT ].sSectorX = 9; - gMercProfiles[ RAT ].sSectorY = MAP_ROW_G; - gMercProfiles[ RAT ].bSectorZ = 0; + gMercProfiles[ RAT ].sSectorX = gModSettings.ubAddRatSectorX; //9 + gMercProfiles[ RAT ].sSectorY = gModSettings.ubAddRatSectorY; //7 + gMercProfiles[ RAT ].bSectorZ = gModSettings.ubAddRatSectorZ; //0 break; case NPC_ACTION_ENDGAME_STATE_1: diff --git a/Tactical/Turn Based Input.cpp b/Tactical/Turn Based Input.cpp index ca064bc6..36874589 100644 --- a/Tactical/Turn Based Input.cpp +++ b/Tactical/Turn Based Input.cpp @@ -6080,16 +6080,16 @@ void TestMeanWhile( INT32 iID ) INT32 cnt; SOLDIERTYPE *pSoldier; - MeanwhileDef.sSectorX = 3; - MeanwhileDef.sSectorY = 16; + MeanwhileDef.sSectorX = gModSettings.ubMeanwhilePalaceSectorX; //3 + MeanwhileDef.sSectorY = gModSettings.ubMeanwhilePalaceSectorY; //16 MeanwhileDef.ubNPCNumber = QUEEN; MeanwhileDef.usTriggerEvent = 0; MeanwhileDef.ubMeanwhileID = (UINT8)iID; if ( iID == INTERROGATION ) { - MeanwhileDef.sSectorX = 7; - MeanwhileDef.sSectorY = 14; + MeanwhileDef.sSectorX = gModSettings.ubMeanwhileInterrogatePOWSectorX; //7 + MeanwhileDef.sSectorY = gModSettings.ubMeanwhileInterrogatePOWSectorY; //14 // Loop through our mercs and set gridnos once some found..... // look for all mercs on the same team, @@ -6103,8 +6103,8 @@ void TestMeanWhile( INT32 iID ) ChangeSoldiersAssignment( pSoldier, ASSIGNMENT_POW ); - pSoldier->sSectorX = 7; - pSoldier->sSectorY = 14; + pSoldier->sSectorX = gModSettings.ubMeanwhileInterrogatePOWSectorX; //7 + pSoldier->sSectorY = gModSettings.ubMeanwhileInterrogatePOWSectorY; //14 } }