UB 1.13 Fixes (by Jazz)

- Externalized more hardcoded grid numbers


git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8097 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Wanne
2016-03-08 21:06:31 +00:00
parent ea6e30d8c8
commit 446484f6ca
5 changed files with 319 additions and 78 deletions
+35
View File
@@ -195,6 +195,41 @@ void IniGlobalGameSetting(lua_State *L)
lua_pushboolean(L, gGameUBOptions.InGameHeli); lua_pushboolean(L, gGameUBOptions.InGameHeli);
lua_setglobal(L, "UB_iniINGAMEHELI"); lua_setglobal(L, "UB_iniINGAMEHELI");
lua_pushinteger(L, gGameUBOptions.SectorLaunchMisslesX);
lua_setglobal(L, "UB_iniSECTOR_LAUNCH_MISSLES_X");
lua_pushinteger(L, gGameUBOptions.SectorLaunchMisslesY);
lua_setglobal(L, "UB_iniSECTOR_LAUNCH_MISSLES_Y");
lua_pushinteger(L, gGameUBOptions.SectorLaunchMisslesZ);
lua_setglobal(L, "UB_iniSECTOR_LAUNCH_MISSLES_Z");
lua_pushinteger(L, gGameUBOptions.SectorFanX);
lua_setglobal(L, "UB_iniPOWERGEN_SECTOR_X");
lua_pushinteger(L, gGameUBOptions.SectorFanY);
lua_setglobal(L, "UB_iniPOWERGEN_SECTOR_Y");
lua_pushinteger(L, gGameUBOptions.SectorFanZ);
lua_setglobal(L, "UB_iniPOWERGEN_SECTOR_Z");
lua_pushinteger(L, gGameUBOptions.SectorDoorInTunnelX);
lua_setglobal(L, "UB_iniSECTOR_DOOR_IN_TUNNEL_X");
lua_pushinteger(L, gGameUBOptions.SectorDoorInTunnelY);
lua_setglobal(L, "UB_iniSECTOR_DOOR_IN_TUNNEL_Y");
lua_pushinteger(L, gGameUBOptions.SectorDoorInTunnelZ);
lua_setglobal(L, "UB_SECTOR_DOOR_IN_TUNNEL_Z");
#endif #endif
//Mod Setting.ini //Mod Setting.ini
+155 -67
View File
@@ -6697,16 +6697,28 @@ void HandlePlayerTeamQuotesWhenEnteringSector( INT16 sSectorX, INT16 sSectorY, I
SOLDIERTYPE *pSoldier = NULL; SOLDIERTYPE *pSoldier = NULL;
#define NUM_VALID_SECTORS 6 #define NUM_VALID_SECTORS 6
#define DELAY_FOR_PLAYER_DESC_OF_SECTOR 2 #define DELAY_FOR_PLAYER_DESC_OF_SECTOR 2
ENTER_SECTOR_PLAYER_QUOTE PlayerSectorDescQuote[NUM_VALID_SECTORS] =
ENTER_SECTOR_PLAYER_QUOTE PlayerSectorDescQuote[ NUM_VALID_SECTORS ] =
{ {
{SEC_H9, 0, QUOTE_HATE_MERC_1_ON_TEAM}, //SEC_H9-0
{SEC_I9, 0, QUOTE_LEARNED_TO_HATE_MERC_ON_TEAM}, { SECTOR( gGameUBOptions.SectorGuardPostX, gGameUBOptions.SectorGuardPostY ), gGameUBOptions.SectorGuardPostZ, QUOTE_HATE_MERC_1_ON_TEAM },
{SEC_H10, 0, QUOTE_LEARNED_TO_HATE_MERC_ON_TEAM},
{SEC_I10, 0, QUOTE_HATE_MERC_2_ON_TEAM}, //SEC_I9-0
{SEC_J13, 0, QUOTE_ENTER_SECTOR_WITH_FAN_1}, { SECTOR( gGameUBOptions.I9SectorPlayerQuoteX, gGameUBOptions.I9SectorPlayerQuoteY ), gGameUBOptions.I9SectorPlayerQuoteZ, QUOTE_LEARNED_TO_HATE_MERC_ON_TEAM },
{SEC_J14, 1, 0},
//SEC_H10-0
{ SECTOR( gGameUBOptions.H10SectorPlayerQuoteX, gGameUBOptions.H10SectorPlayerQuoteY ), gGameUBOptions.H10SectorPlayerQuoteZ, QUOTE_LEARNED_TO_HATE_MERC_ON_TEAM },
//SEC_I10-0
{ SECTOR( gGameUBOptions.FristSectorTownX, gGameUBOptions.FristSectorTownY ), gGameUBOptions.FristSectorTownZ, QUOTE_HATE_MERC_2_ON_TEAM },
//SEC_J13-0
{ SECTOR( gGameUBOptions.SectorFanX, gGameUBOptions.SectorFanY ), gGameUBOptions.SectorFanZ, QUOTE_ENTER_SECTOR_WITH_FAN_1 },
//SEC_J14-1
{ SECTOR( gGameUBOptions.SectorGuardPostX, gGameUBOptions.SectorGuardPostY ), gGameUBOptions.ExitForFanToPowerGenSectorZ, 0 },
}; };
//loop through all the sectors that have the quotes //loop through all the sectors that have the quotes
@@ -6733,6 +6745,71 @@ void HandlePlayerTeamQuotesWhenEnteringSector( INT16 sSectorX, INT16 sSectorY, I
} }
//Switch on the town ID //Switch on the town ID
//I10
if ( iSectorID == SECTOR( gGameUBOptions.FristSectorTownX, gGameUBOptions.FristSectorTownY ) )
{
UINT8 cnt;
for( cnt=0; cnt<bNumValidMercs; cnt++ )
{
//Say the qoute in a couple of seconds
DelayedMercQuote( ubValidMercProfileIDArray[ cnt ], PlayerSectorDescQuote[ uiCnt ].ubQuoteNum, GetWorldTotalSeconds() + DELAY_FOR_PLAYER_DESC_OF_SECTOR + cnt );
}
}
//J13
else if ( iSectorID == SECTOR( gGameUBOptions.SectorFanX, gGameUBOptions.SectorFanY ) )
{
if( PlayerSectorDescQuote[ uiCnt ].bSectorZ == gGameUBOptions.SectorFanZ )
{
//See if Manuel is on the team
pSoldier = FindSoldierByProfileID( MANUEL_UB, TRUE );
//if he is ON the team
if( pSoldier != NULL )
{
//get manuel to say the quote
DelayedMercQuote( MANUEL_UB, PlayerSectorDescQuote[ uiCnt ].ubQuoteNum, GetWorldTotalSeconds() + DELAY_FOR_PLAYER_DESC_OF_SECTOR );
//get manuel to say his additional quote
DelayedMercQuote( MANUEL_UB, QUOTE_ENTER_SECTOR_WITH_FAN_2, GetWorldTotalSeconds() + DELAY_FOR_PLAYER_DESC_OF_SECTOR );
}
else
{
//else if Biggens is not on the team, check for biggens
pSoldier = FindSoldierByProfileID( BIGGENS_UB, TRUE );
//if he is ON the team
if( pSoldier != NULL )
{
//get manuel to say the quote
DelayedMercQuote( BIGGENS_UB, PlayerSectorDescQuote[ uiCnt ].ubQuoteNum, GetWorldTotalSeconds() + DELAY_FOR_PLAYER_DESC_OF_SECTOR );
//Remember he said
SetJa25GeneralFlag( JA_GF__BIGGENS_SAID_QUOTE_117 );
}
}
//Remeber the quote was said
SetFactTrue( FACT_PLAYER_KNOWS_ABOUT_FAN_STOPPING );
}
}
//J14
else if ( iSectorID == SECTOR( gGameUBOptions.ExitForFanToPowerGenSectorX, gGameUBOptions.ExitForFanToPowerGenSectorY ) )
{
//first underground sector
HandlePlayerQuotesWhenEnteringFirstTunnelSector();
}
else
{
//Get a random merc from the list
UINT8 ubMercToSayQuote = RandomProfileIdFromNewMercsOnPlayerTeam();
//Say the qoute in a couple of seconds
DelayedMercQuote( ubMercToSayQuote, PlayerSectorDescQuote[ uiCnt ].ubQuoteNum, GetWorldTotalSeconds() + DELAY_FOR_PLAYER_DESC_OF_SECTOR );
}
/*
switch ( iSectorID ) switch ( iSectorID )
{ {
case SEC_I10: case SEC_I10:
@@ -6799,12 +6876,16 @@ void HandlePlayerTeamQuotesWhenEnteringSector( INT16 sSectorX, INT16 sSectorY, I
break; break;
} }
*/
//if this sector is one of the fields before the town, only say the quote once for both sectors //if this sector is one of the fields before the town, only say the quote once for both sectors
if ( (iSectorID == SEC_I9 || iSectorID == SEC_H10) && sSectorZ == 0 ) //I9 or H10
if( ( iSectorID == SECTOR( gGameUBOptions.I9SectorPlayerQuoteX, gGameUBOptions.I9SectorPlayerQuoteY ) || iSectorID == SECTOR( gGameUBOptions.H10SectorPlayerQuoteX, gGameUBOptions.H10SectorPlayerQuoteY ) ) && sSectorZ == 0 )
{ {
//Remeber that we said the quote //Remeber that we said the quote
SetSectorFlag( 9, 9, 0, SF_HAVE_SAID_PLAYER_QUOTE_NEW_SECTOR ); //SetSectorFlag( 9, 9, 0, SF_HAVE_SAID_PLAYER_QUOTE_NEW_SECTOR );
SetSectorFlag( 10, 8, 0, SF_HAVE_SAID_PLAYER_QUOTE_NEW_SECTOR ); //SetSectorFlag( 10, 8, 0, SF_HAVE_SAID_PLAYER_QUOTE_NEW_SECTOR );
SetSectorFlag( gGameUBOptions.I9SectorPlayerQuoteX, gGameUBOptions.I9SectorPlayerQuoteY, gGameUBOptions.I9SectorPlayerQuoteZ, SF_HAVE_SAID_PLAYER_QUOTE_NEW_SECTOR );
SetSectorFlag( gGameUBOptions.H10SectorPlayerQuoteX, gGameUBOptions.H10SectorPlayerQuoteY, gGameUBOptions.H10SectorPlayerQuoteZ, SF_HAVE_SAID_PLAYER_QUOTE_NEW_SECTOR );
} }
//default //default
@@ -6890,9 +6971,9 @@ void HandleEmailBeingSentWhenEnteringSector( INT16 sMapX, INT16 sMapY, INT8 bMap
if ( gubFact[FACT_PLAYER_IMPORTED_SAVE_MIGUEL_DEAD] == FALSE ) if ( gubFact[FACT_PLAYER_IMPORTED_SAVE_MIGUEL_DEAD] == FALSE )
{ {
//if its either J11 or I12 ( or we just got the email back up and we have been to the sector //if its either J11 or I12 ( or we just got the email back up and we have been to the sector
if ( ((sMapY == 10 && sMapX == 11) || (sMapY == 9 && sMapX == 12) && bMapZ == 0) || if( ( ( sMapY == gGameUBOptions.SectorTown2Y && sMapX == gGameUBOptions.SectorTown2X ) || ( sMapY == 9 && sMapX == 12 ) && bMapZ == 0 ) ||
fLaptopJustGotFixed && fLaptopJustGotFixed &&
(GetSectorFlagStatus( 11, 10, 0, SF_HAS_ENTERED_TACTICAL ) == TRUE || GetSectorFlagStatus( 12, 9, 0, SF_HAS_ENTERED_TACTICAL ) == TRUE) ) ( GetSectorFlagStatus( gGameUBOptions.SectorTown2X, gGameUBOptions.SectorTown2Y, gGameUBOptions.SectorTown2Z, SF_HAS_ENTERED_TACTICAL ) == TRUE || GetSectorFlagStatus( 12, 9, 0, SF_HAS_ENTERED_TACTICAL ) == TRUE ) )
{ {
//and we havent sent it before //and we havent sent it before
if ( !(gJa25SaveStruct.ubEmailFromSectorFlag & SECTOR_EMAIL__J11_J12) ) if ( !(gJa25SaveStruct.ubEmailFromSectorFlag & SECTOR_EMAIL__J11_J12) )
@@ -6916,9 +6997,9 @@ void HandleEmailBeingSentWhenEnteringSector( INT16 sMapX, INT16 sMapY, INT8 bMap
} }
} }
//if its the power generator sector //if its the power generator sector J13
if ( sMapY == 10 && sMapX == 13 && bMapZ == 0 || if( sMapY == gGameUBOptions.SectorFanY && sMapX == gGameUBOptions.SectorFanX && bMapZ == gGameUBOptions.SectorFanZ ||
fLaptopJustGotFixed && GetSectorFlagStatus( 13, 10, 0, SF_HAS_ENTERED_TACTICAL ) == TRUE ) fLaptopJustGotFixed && GetSectorFlagStatus( gGameUBOptions.SectorFanX, gGameUBOptions.SectorFanY, gGameUBOptions.SectorFanZ, SF_HAS_ENTERED_TACTICAL ) == TRUE )
{ {
//and we havent sent it before //and we havent sent it before
if ( !(gJa25SaveStruct.ubEmailFromSectorFlag & SECTOR_EMAIL__POWER_GEN) ) if ( !(gJa25SaveStruct.ubEmailFromSectorFlag & SECTOR_EMAIL__POWER_GEN) )
@@ -6932,9 +7013,9 @@ void HandleEmailBeingSentWhenEnteringSector( INT16 sMapX, INT16 sMapY, INT8 bMap
} }
//if its the tunnel sector //if its the tunnel sector J14-1
if ( sMapY == 10 && sMapX == 14 && bMapZ == 1 || if( sMapY == gGameUBOptions.ExitForFanToPowerGenSectorY && sMapX == gGameUBOptions.ExitForFanToPowerGenSectorX && bMapZ == gGameUBOptions.ExitForFanToPowerGenSectorZ ||
fLaptopJustGotFixed && GetSectorFlagStatus( 14, 10, 1, SF_HAS_ENTERED_TACTICAL ) == TRUE ) fLaptopJustGotFixed && GetSectorFlagStatus( gGameUBOptions.ExitForFanToPowerGenSectorX, gGameUBOptions.ExitForFanToPowerGenSectorY, gGameUBOptions.ExitForFanToPowerGenSectorZ, SF_HAS_ENTERED_TACTICAL ) == TRUE )
{ {
//and we havent sent it before //and we havent sent it before
if ( !(gJa25SaveStruct.ubEmailFromSectorFlag & SECTOR_EMAIL__TUNNEL) ) if ( !(gJa25SaveStruct.ubEmailFromSectorFlag & SECTOR_EMAIL__TUNNEL) )
@@ -6958,9 +7039,9 @@ void ShouldNpcBeAddedToSector( INT16 sMapX, INT16 sMapY, INT8 bMapZ )
//if Manuel has never been added before //if Manuel has never been added before
if ( !(gJa25SaveStruct.fNpcHasBeenAdded & SECTOR_ADDED_NPC__MANUEL) ) if ( !(gJa25SaveStruct.fNpcHasBeenAdded & SECTOR_ADDED_NPC__MANUEL) )
{ {
//if it is the right sector //if it is the right sector H10 or I9
if ( (sMapY == MAP_ROW_H && sMapX == 10 && bMapZ == 0) || if( ( sMapY == gGameUBOptions.H10SectorPlayerQuoteY && sMapX == gGameUBOptions.H10SectorPlayerQuoteX && bMapZ == gGameUBOptions.H10SectorPlayerQuoteZ ) ||
(sMapY == MAP_ROW_I && sMapX == 9 && bMapZ == 0) ) ( sMapY == gGameUBOptions.I9SectorPlayerQuoteY && sMapX == gGameUBOptions.I9SectorPlayerQuoteX && bMapZ == gGameUBOptions.I9SectorPlayerQuoteZ ) )
{ {
//Change his sector values to //Change his sector values to
gMercProfiles[MANUEL_UB].sSectorX = sMapX; gMercProfiles[MANUEL_UB].sSectorX = sMapX;
@@ -7017,15 +7098,15 @@ void ShouldNpcBeAddedToSector( INT16 sMapX, INT16 sMapY, INT8 bMapZ )
void HandleSectorSpecificUnLoadingOfMap( INT16 sMapX, INT16 sMapY, INT8 bMapZ ) void HandleSectorSpecificUnLoadingOfMap( INT16 sMapX, INT16 sMapY, INT8 bMapZ )
{ {
//if this is the power gen map //if this is the power gen map J13
if ( sMapX == 13 && sMapY == MAP_ROW_J && bMapZ == 0 ) if( sMapX == gGameUBOptions.SectorFanX && sMapY == gGameUBOptions.SectorFanY && bMapZ == gGameUBOptions.SectorFanZ )
{ {
BOOLEAN fGoingToTunnelSector = FALSE; BOOLEAN fGoingToTunnelSector = FALSE;
//if we are going to the first sector if the tunnel //if we are going to the first sector if the tunnel J14-1
if ( gWorldSectorX == 14 && if( gWorldSectorX == gGameUBOptions.ExitForFanToPowerGenSectorX &&
gWorldSectorY == MAP_ROW_J && gWorldSectorY == gGameUBOptions.ExitForFanToPowerGenSectorY &&
gbWorldSectorZ == 1 ) gbWorldSectorZ == gGameUBOptions.ExitForFanToPowerGenSectorZ )
{ {
fGoingToTunnelSector = TRUE; fGoingToTunnelSector = TRUE;
} }
@@ -7040,8 +7121,8 @@ void HandleSectorSpecificUnLoadingOfMap( INT16 sMapX, INT16 sMapY, INT8 bMapZ )
//Remeber how the player got through //Remeber how the player got through
HandleHowPlayerGotThroughFan( ); HandleHowPlayerGotThroughFan( );
} }
//else if this is the 1st level of tunne;l //else if this is the 1st level of tunne;l J14-1
else if ( sMapX == 14 && sMapY == MAP_ROW_J && bMapZ == 1 ) else if( sMapX == gGameUBOptions.ExitForFanToPowerGenSectorX && sMapY == gGameUBOptions.ExitForFanToPowerGenSectorY && bMapZ == gGameUBOptions.ExitForFanToPowerGenSectorZ )
{ {
switch ( gJa25SaveStruct.ubStateOfFanInPowerGenSector ) switch ( gJa25SaveStruct.ubStateOfFanInPowerGenSector )
{ {
@@ -7076,31 +7157,31 @@ void HandleSectorSpecificModificatioToMap( INT16 sMapX, INT16 sMapY, INT8 bMapZ,
// only do certain modifications // only do certain modifications
// //
//if this is the power gen map //if this is the power gen map J13-0
if ( sMapX == 13 && sMapY == MAP_ROW_J && bMapZ == 0 ) if( sMapX == gGameUBOptions.SectorFanX && sMapY == gGameUBOptions.SectorFanY && bMapZ == gGameUBOptions.SectorFanZ )
{ {
HandlePowerGenFanSoundModification( ); HandlePowerGenFanSoundModification( );
} }
else if ( sMapX == 14 && sMapY == MAP_ROW_J && bMapZ == 1 ) else if( sMapX == gGameUBOptions.ExitForFanToPowerGenSectorX && sMapY == gGameUBOptions.ExitForFanToPowerGenSectorY && bMapZ == gGameUBOptions.ExitForFanToPowerGenSectorZ ) //J14-1
{ {
HandleFirstPartOfTunnelFanSound( ); HandleFirstPartOfTunnelFanSound( );
} }
//if this is the Final Sector of the complex //if this is the Final Sector of the complex L15-3
else if ( sMapX == 15 && sMapY == MAP_ROW_L && bMapZ == 3 ) else if( sMapX == gGameUBOptions.SectorLaunchMisslesX && sMapY == gGameUBOptions.SectorLaunchMisslesY && bMapZ == gGameUBOptions.SectorLaunchMisslesZ )
{ {
HandleOpenControlPanelToRevealSwitchInMorrisArea( ); HandleOpenControlPanelToRevealSwitchInMorrisArea( );
} }
} }
else else
{ {
//if this is the first map //if this is the first map H7
if ( sMapX == 7 && sMapY == MAP_ROW_H && bMapZ == 0 ) if( sMapX == gGameExternalOptions.ubDefaultArrivalSectorX && sMapY == gGameExternalOptions.ubDefaultArrivalSectorY && bMapZ == 0 )
{ {
} }
//if this is the guardpost //if this is the guardpost H9
else if ( sMapX == 9 && sMapY == MAP_ROW_H && bMapZ == 0 ) else if( sMapX == gGameUBOptions.SectorGuardPostX && sMapY == gGameUBOptions.SectorGuardPostY && bMapZ == gGameUBOptions.SectorGuardPostZ )
{ {
//if we havent added the money to the sector before //if we havent added the money to the sector before
if ( !IsJa25GeneralFlagSet( JA_GF__PICKED_UP_MONEY_IN_GUARD_POST ) ) if ( !IsJa25GeneralFlagSet( JA_GF__PICKED_UP_MONEY_IN_GUARD_POST ) )
@@ -7108,12 +7189,13 @@ void HandleSectorSpecificModificatioToMap( INT16 sMapX, INT16 sMapY, INT8 bMapZ,
SetJa25GeneralFlag( JA_GF__PICKED_UP_MONEY_IN_GUARD_POST ); SetJa25GeneralFlag( JA_GF__PICKED_UP_MONEY_IN_GUARD_POST );
// Add some money to the location // Add some money to the location
CreateAndAddMoneyObjectToGround( 9026, 15000, 10000, 7000 ); //CreateAndAddMoneyObjectToGround( 9026, 15000, 10000, 7000 );
CreateAndAddMoneyObjectToGround( gGameUBOptions.H9MoneyGridNo, gGameUBOptions.H9MoneyEasy, gGameUBOptions.H9MoneyMedium, gGameUBOptions.H9MoneyHard);
} }
} }
//if this is the First sector of the town //if this is the First sector of the town I10
else if ( sMapX == 10 && sMapY == MAP_ROW_I && bMapZ == 0 ) else if( sMapX == gGameUBOptions.FristSectorTownX && sMapY == gGameUBOptions.FristSectorTownY && bMapZ == gGameUBOptions.FristSectorTownX )
{ {
//if we havent added the money to the sector before //if we havent added the money to the sector before
if ( !IsJa25GeneralFlagSet( JA_GF__PICKED_UP_MONEY_IN_FIRST_TOWN ) ) if ( !IsJa25GeneralFlagSet( JA_GF__PICKED_UP_MONEY_IN_FIRST_TOWN ) )
@@ -7121,19 +7203,22 @@ void HandleSectorSpecificModificatioToMap( INT16 sMapX, INT16 sMapY, INT8 bMapZ,
SetJa25GeneralFlag( JA_GF__PICKED_UP_MONEY_IN_FIRST_TOWN ); SetJa25GeneralFlag( JA_GF__PICKED_UP_MONEY_IN_FIRST_TOWN );
// Add some money to the location // Add some money to the location
CreateAndAddMoneyObjectToGround( 11894, 8000, 4000, 3000 ); //CreateAndAddMoneyObjectToGround( 11894, 8000, 4000, 3000 );
CreateAndAddMoneyObjectToGround( 7906, 12000, 6000, 5000 ); //CreateAndAddMoneyObjectToGround( 7906, 12000, 6000, 5000 );
CreateAndAddMoneyObjectToGround( gGameUBOptions.I10MoneyGridNo1, gGameUBOptions.I10MoneyEasy1, gGameUBOptions.I10MoneyMedium1, gGameUBOptions.I10MoneyHard1 );
CreateAndAddMoneyObjectToGround( gGameUBOptions.I10MoneyGridNo2, gGameUBOptions.I10MoneyEasy2, gGameUBOptions.I10MoneyMedium2, gGameUBOptions.I10MoneyHard2 );
} }
} }
//if this is the power gen map //if this is the power gen map J13
else if ( sMapX == 13 && sMapY == MAP_ROW_J && bMapZ == 0 ) else if( sMapX == gGameUBOptions.SectorFanX && sMapY == gGameUBOptions.SectorFanY && bMapZ == gGameUBOptions.SectorFanZ )
{ {
HandlePowerGenFanSoundModification( ); HandlePowerGenFanSoundModification( );
} }
//else if this is the 1st part of tunnel //else if this is the 1st part of tunnel J14-1
else if ( sMapX == 14 && sMapY == MAP_ROW_J && bMapZ == 1 ) else if( sMapX == gGameUBOptions.ExitForFanToPowerGenSectorX && sMapY == gGameUBOptions.ExitForFanToPowerGenSectorY && bMapZ == gGameUBOptions.ExitForFanToPowerGenSectorZ )
{ {
HandleFirstPartOfTunnelFanSound( ); HandleFirstPartOfTunnelFanSound( );
@@ -7143,8 +7228,8 @@ void HandleSectorSpecificModificatioToMap( INT16 sMapX, INT16 sMapY, INT8 bMapZ,
} }
} }
//else if this is the 2nd part of tunnel //else if this is the 2nd part of tunnel K14-1
else if ( sMapX == 14 && sMapY == MAP_ROW_K && bMapZ == 1 ) else if( sMapX == gGameUBOptions.SectorOpenGateInTunnelX && sMapY == gGameUBOptions.SectorOpenGateInTunnelY && bMapZ == gGameUBOptions.SectorOpenGateInTunnelZ )
{ {
if ( IsJa25GeneralFlagSet( JA_GF__MOVE_ENEMIES_TO_EDGE_IN_TUNNEL_1 ) ) if ( IsJa25GeneralFlagSet( JA_GF__MOVE_ENEMIES_TO_EDGE_IN_TUNNEL_1 ) )
{ {
@@ -7152,8 +7237,8 @@ void HandleSectorSpecificModificatioToMap( INT16 sMapX, INT16 sMapY, INT8 bMapZ,
} }
} }
//else if this is the 1st level in the complex //else if this is the 1st level in the complex K15-1
else if ( sMapX == 15 && sMapY == MAP_ROW_K && bMapZ == 1 ) else if( sMapX == gGameUBOptions.SectorDoorInTunnelX && sMapY == gGameUBOptions.SectorDoorInTunnelY && bMapZ == gGameUBOptions.SectorDoorInTunnelZ )
{ {
//Make all the team members look like they dropped from a high place //Make all the team members look like they dropped from a high place
// MakeAllTeamMembersCrouchedThenStand(); // MakeAllTeamMembersCrouchedThenStand();
@@ -7165,8 +7250,8 @@ void HandleSectorSpecificModificatioToMap( INT16 sMapX, INT16 sMapY, INT8 bMapZ,
HandleFortifiedDoor( ); HandleFortifiedDoor( );
} }
//if this is the Final Sector of the complex //if this is the Final Sector of the complex L15-3
else if ( sMapX == 15 && sMapY == MAP_ROW_L && bMapZ == 3 ) else if( sMapX == gGameUBOptions.SectorLaunchMisslesX && sMapY == gGameUBOptions.SectorLaunchMisslesY && bMapZ == gGameUBOptions.SectorLaunchMisslesZ )
{ {
HandleOpenControlPanelToRevealSwitchInMorrisArea( ); HandleOpenControlPanelToRevealSwitchInMorrisArea( );
} }
@@ -7302,7 +7387,7 @@ void HandleFortifiedDoor( )
//if the fortified door should be open //if the fortified door should be open
if ( gJa25SaveStruct.ubStatusOfFortifiedDoor == FD__OPEN ) if ( gJa25SaveStruct.ubStatusOfFortifiedDoor == FD__OPEN )
{ {
ModifyDoorStatus( 11419, TRUE, DONTSETDOORSTATUS ); ModifyDoorStatus( gGameUBOptions.SectorDoorInTunnelGridNo, TRUE, DONTSETDOORSTATUS ); //11419
} }
} }
@@ -7514,8 +7599,8 @@ void HandleMovingEnemiesOntoRoofs( )
return; return;
} }
//if this is the sector south of the town //if this is the sector south of the town J11
if ( gWorldSectorX == 11 && gWorldSectorY == MAP_ROW_J && gbWorldSectorZ == 0 ) if( gWorldSectorX == gGameUBOptions.SectorTown2X && gWorldSectorY ==gGameUBOptions.SectorTown2Y && gbWorldSectorZ == gGameUBOptions.SectorTown2Z )
{ {
switch ( gGameOptions.ubDifficultyLevel ) switch ( gGameOptions.ubDifficultyLevel )
{ {
@@ -7523,18 +7608,20 @@ void HandleMovingEnemiesOntoRoofs( )
case DIF_LEVEL_MEDIUM: case DIF_LEVEL_MEDIUM:
break; break;
case DIF_LEVEL_HARD: case DIF_LEVEL_HARD:
MoveEnemyFromGridNoToRoofGridNo( 15446, 13993 ); //MoveEnemyFromGridNoToRoofGridNo( 15446, 13993 );
MoveEnemyFromGridNoToRoofGridNo( 15436, 14006 ); //MoveEnemyFromGridNoToRoofGridNo( 15436, 14006 );
MoveEnemyFromGridNoToRoofGridNo( gGameUBOptions.SectorTownGridNo1a, gGameUBOptions.SectorTownGridNo1b );
MoveEnemyFromGridNoToRoofGridNo( gGameUBOptions.SectorTownGridNo2a, gGameUBOptions.SectorTownGridNo2a );
break; break;
default: default:
MoveEnemyFromGridNoToRoofGridNo( 15446, 13993 ); MoveEnemyFromGridNoToRoofGridNo( gGameUBOptions.SectorTownGridNo1a, gGameUBOptions.SectorTownGridNo1b );
MoveEnemyFromGridNoToRoofGridNo( 15436, 14006 ); MoveEnemyFromGridNoToRoofGridNo( gGameUBOptions.SectorTownGridNo2a, gGameUBOptions.SectorTownGridNo2a );
break; break;
} }
} }
//else if this is the sector south of the town //else if this is the sector south of the town H11
else if ( gWorldSectorX == 11 && gWorldSectorY == MAP_ROW_H && gbWorldSectorZ == 0 ) else if( gWorldSectorX == gGameUBOptions.SectorTown3X && gWorldSectorY == gGameUBOptions.SectorTown3Y && gbWorldSectorZ == gGameUBOptions.SectorTown3Z )
{ {
switch ( gGameOptions.ubDifficultyLevel ) switch ( gGameOptions.ubDifficultyLevel )
{ {
@@ -7542,10 +7629,11 @@ void HandleMovingEnemiesOntoRoofs( )
case DIF_LEVEL_MEDIUM: case DIF_LEVEL_MEDIUM:
break; break;
case DIF_LEVEL_HARD: case DIF_LEVEL_HARD:
MoveEnemyFromGridNoToRoofGridNo( 8711, 5521 ); //MoveEnemyFromGridNoToRoofGridNo( 8711, 5521 );
MoveEnemyFromGridNoToRoofGridNo( gGameUBOptions.SectorTownGridNo3a, gGameUBOptions.SectorTownGridNo3a );
break; break;
default: default:
MoveEnemyFromGridNoToRoofGridNo( 8711, 5521 ); MoveEnemyFromGridNoToRoofGridNo( gGameUBOptions.SectorTownGridNo3a, gGameUBOptions.SectorTownGridNo3a );
break; break;
} }
} }
+9 -9
View File
@@ -3651,12 +3651,12 @@ void PerformItemAction( INT32 sGridNo, OBJECTTYPE * pObj )
case ACTION_ITEM_SEE_POWER_GEN_FAN: case ACTION_ITEM_SEE_POWER_GEN_FAN:
//if the player is in the power plant //if the player is in the power plant J13
if( gWorldSectorX == 13 && gWorldSectorY == 10 && gbWorldSectorZ == 0 ) if( gWorldSectorX == gGameUBOptions.SectorFanX && gWorldSectorY == gGameUBOptions.SectorFanY && gbWorldSectorZ == gGameUBOptions.SectorFanZ )
{ {
HandleSeeingPowerGenFan( sGridNo ); HandleSeeingPowerGenFan( sGridNo );
} }
else if( gWorldSectorX == 15 && gWorldSectorY == 12 && gbWorldSectorZ == 3 ) else if( gWorldSectorX == gGameUBOptions.SectorLaunchMisslesX && gWorldSectorY == gGameUBOptions.SectorLaunchMisslesY && gbWorldSectorZ == gGameUBOptions.SectorLaunchMisslesZ ) //L15-3
{ {
//The player is hitting the switch to launch the missles //The player is hitting the switch to launch the missles
HandlePlayerHittingSwitchToLaunchMissles(); HandlePlayerHittingSwitchToLaunchMissles();
@@ -5232,8 +5232,8 @@ BOOLEAN ShouldThePlayerStopWhenWalkingOnBiggensActionItem( UINT8 ubRecordNum )
// This function checks if we should replace the fan graphic // This function checks if we should replace the fan graphic
BOOLEAN IsFanGraphicInSectorAtThisGridNo( UINT32 sGridNo ) BOOLEAN IsFanGraphicInSectorAtThisGridNo( UINT32 sGridNo )
{ {
// First check current sector...... // First check current sector...... J13-0
if( gWorldSectorX == 13 && gWorldSectorY == MAP_ROW_J && gbWorldSectorZ == 0 ) if( gWorldSectorX == gGameUBOptions.SectorFanX && gWorldSectorY == gGameUBOptions.SectorFanY && gbWorldSectorZ == gGameUBOptions.SectorFanZ )
{ {
//if this is the right gridno //if this is the right gridno
/*if( sGridNo == 10978 || /*if( sGridNo == 10978 ||
@@ -5321,8 +5321,8 @@ void HandleDestructionOfPowerGenFan()
void HandleExplosionsInTunnelSector( UINT32 sGridNo ) void HandleExplosionsInTunnelSector( UINT32 sGridNo )
{ {
//if this isnt the tunnel sectors //if this isnt the tunnel sectors J14-1 and K14-1
if( !( gWorldSectorX == 14 && ( gWorldSectorY == MAP_ROW_J || gWorldSectorY == MAP_ROW_K ) && gbWorldSectorZ == 1 ) ) if( !( gWorldSectorX == gGameUBOptions.ExitForFanToPowerGenSectorX && ( gWorldSectorY == gGameUBOptions.ExitForFanToPowerGenSectorY || gWorldSectorY == gGameUBOptions.SectorOpenGateInTunnelY ) && gbWorldSectorZ == 1 ) )
{ {
//get the fuck out... //get the fuck out...
return; return;
@@ -5337,8 +5337,8 @@ void HandleSeeingFortifiedDoor( UINT32 sGridNo )
{ {
INT32 sID=0; INT32 sID=0;
//if this isnt the First level of the complex //if this isnt the First level of the complex K15-1
if( !( gWorldSectorX == 15 && gWorldSectorY == MAP_ROW_K && gbWorldSectorZ == 1 ) ) if( !( gWorldSectorX == gGameUBOptions.SectorDoorInTunnelX && gWorldSectorY == gGameUBOptions.SectorDoorInTunnelY && gbWorldSectorZ == gGameUBOptions.SectorDoorInTunnelZ ) )
{ {
//get the fuck out... //get the fuck out...
return; return;
+63 -1
View File
@@ -311,7 +311,69 @@ void LoadGameUBOptions()
gGameUBOptions.MineSectorUndergroundGridno1 = iniReader.ReadInteger("Unfinished Business Settings","MINE_SECTOR_UNDERGROUND_GRIDNO_1", 13057); gGameUBOptions.MineSectorUndergroundGridno1 = iniReader.ReadInteger("Unfinished Business Settings","MINE_SECTOR_UNDERGROUND_GRIDNO_1", 13057);
gGameUBOptions.MineSectorUndergroundGridno2 = iniReader.ReadInteger("Unfinished Business Settings","MINE_SECTOR_UNDERGROUND_GRIDNO_2", 12897); gGameUBOptions.MineSectorUndergroundGridno2 = iniReader.ReadInteger("Unfinished Business Settings","MINE_SECTOR_UNDERGROUND_GRIDNO_2", 12897);
//K15-1
gGameUBOptions.SectorDoorInTunnelX = iniReader.ReadInteger("Unfinished Business Settings","SECTOR_DOOR_IN_TUNNEL_X", 15);
gGameUBOptions.SectorDoorInTunnelY = iniReader.ReadInteger("Unfinished Business Settings","SECTOR_DOOR_IN_TUNNEL_Y", 11);
gGameUBOptions.SectorDoorInTunnelZ = iniReader.ReadInteger("Unfinished Business Settings","SECTOR_DOOR_IN_TUNNEL_Z", 1);
gGameUBOptions.SectorDoorInTunnelGridNo = iniReader.ReadInteger("Unfinished Business Settings","SECTOR_DOOR_IN_TUNNEL_GRIDNO", 11419);
//H9
gGameUBOptions.SectorGuardPostX = iniReader.ReadInteger("Unfinished Business Settings","SECTOR_GUARDPOST_X", 9);
gGameUBOptions.SectorGuardPostY = iniReader.ReadInteger("Unfinished Business Settings","SECTOR_GUARDPOST_Y", 8);
gGameUBOptions.SectorGuardPostZ = iniReader.ReadInteger("Unfinished Business Settings","SECTOR_GUARDPOST_Z", 0);
gGameUBOptions.H9MoneyGridNo = iniReader.ReadInteger("Unfinished Business Settings","H9_MONEY_GRIDNO", 9026);
gGameUBOptions.H9MoneyEasy = iniReader.ReadInteger("Unfinished Business Settings","H9_MONEY_EASY", 15000);
gGameUBOptions.H9MoneyMedium = iniReader.ReadInteger("Unfinished Business Settings","H9_MONEY_MEDIUM", 10000);
gGameUBOptions.H9MoneyHard = iniReader.ReadInteger("Unfinished Business Settings","H9_MONEY_HARD", 7000);
//I10
gGameUBOptions.FristSectorTownX = iniReader.ReadInteger("Unfinished Business Settings","SECTOR_TOWN1_X", 10);
gGameUBOptions.FristSectorTownY = iniReader.ReadInteger("Unfinished Business Settings","SECTOR_TOWN1_Y", 9);
gGameUBOptions.FristSectorTownZ = iniReader.ReadInteger("Unfinished Business Settings","SECTOR_TOWN1_Z", 0);
gGameUBOptions.I10MoneyGridNo1 = iniReader.ReadInteger("Unfinished Business Settings","I10_MONEY_GRIDNO_1", 11894);
gGameUBOptions.I10MoneyEasy1 = iniReader.ReadInteger("Unfinished Business Settings","I10_MONEY_EASY_1", 8000);
gGameUBOptions.I10MoneyMedium1 = iniReader.ReadInteger("Unfinished Business Settings","I10_MONEY_MEDIUM_1", 4000);
gGameUBOptions.I10MoneyHard1 = iniReader.ReadInteger("Unfinished Business Settings","I10_MONEY_HARD_1", 3000);
gGameUBOptions.I10MoneyGridNo2 = iniReader.ReadInteger("Unfinished Business Settings","I10_MONEY_GRIDNO_2", 7906);
gGameUBOptions.I10MoneyEasy2 = iniReader.ReadInteger("Unfinished Business Settings","I10_MONEY_EASY_2", 12000);
gGameUBOptions.I10MoneyMedium2 = iniReader.ReadInteger("Unfinished Business Settings","I10_MONEY_MEDIUM_2", 6000);
gGameUBOptions.I10MoneyHard2 = iniReader.ReadInteger("Unfinished Business Settings","I10_MONEY_HARD_2", 5000);
//J11
gGameUBOptions.SectorTown2X = iniReader.ReadInteger("Unfinished Business Settings","SECTOR_TOWN2_X", 10);
gGameUBOptions.SectorTown2Y = iniReader.ReadInteger("Unfinished Business Settings","SECTOR_TOWN2_Y", 9);
gGameUBOptions.SectorTown2Z = iniReader.ReadInteger("Unfinished Business Settings","SECTOR_TOWN2_Z", 0);
//H11
gGameUBOptions.SectorTown3X = iniReader.ReadInteger("Unfinished Business Settings","SECTOR_TOWN3_X", 11);
gGameUBOptions.SectorTown3Y = iniReader.ReadInteger("Unfinished Business Settings","SECTOR_TOWN3_Y", 8);
gGameUBOptions.SectorTown3Z = iniReader.ReadInteger("Unfinished Business Settings","SECTOR_TOWN3_Z", 0);
gGameUBOptions.SectorTownGridNo1a = iniReader.ReadInteger("Unfinished Business Settings","TOWN2_FROM_GRIDNO_1", 15446);
gGameUBOptions.SectorTownGridNo1b = iniReader.ReadInteger("Unfinished Business Settings","TOWN2_TO_ROOF_GRIDNO_1", 13993);
gGameUBOptions.SectorTownGridNo2a = iniReader.ReadInteger("Unfinished Business Settings","TOWN2_FROM_GRIDNO_2", 15436);
gGameUBOptions.SectorTownGridNo2b = iniReader.ReadInteger("Unfinished Business Settings","TOWN2_TO_ROOF_GRIDNO_2", 14006);
gGameUBOptions.SectorTownGridNo3a = iniReader.ReadInteger("Unfinished Business Settings","TOWN3_FROM_GRIDNO_1", 8711);
gGameUBOptions.SectorTownGridNo3b = iniReader.ReadInteger("Unfinished Business Settings","TOWN3_TO_ROOF_GRIDNO_1", 5521);
//I9
gGameUBOptions.I9SectorPlayerQuoteX = iniReader.ReadInteger("Unfinished Business Settings","I9_SECTOR_PLAYER_QUOTE_X", 9);
gGameUBOptions.I9SectorPlayerQuoteY = iniReader.ReadInteger("Unfinished Business Settings","I9_SECTOR_PLAYER_QUOTE_Y", 9);
gGameUBOptions.I9SectorPlayerQuoteZ = iniReader.ReadInteger("Unfinished Business Settings","I9_SECTOR_PLAYER_QUOTE_Z", 0);
//H10
gGameUBOptions.H10SectorPlayerQuoteX = iniReader.ReadInteger("Unfinished Business Settings","H10_SECTOR_PLAYER_QUOTE_X", 10);
gGameUBOptions.H10SectorPlayerQuoteY = iniReader.ReadInteger("Unfinished Business Settings","H10_SECTOR_PLAYER_QUOTE_Y", 8);
gGameUBOptions.H10SectorPlayerQuoteZ = iniReader.ReadInteger("Unfinished Business Settings","H10_SECTOR_PLAYER_QUOTE_Z", 0);
if ( gGameUBOptions.InGameHeli == TRUE ) if ( gGameUBOptions.InGameHeli == TRUE )
gGameUBOptions.InGameHeliCrash = FALSE; gGameUBOptions.InGameHeliCrash = FALSE;
+57 -1
View File
@@ -160,8 +160,64 @@ typedef struct
UINT32 MineSectorUndergroundZ; UINT32 MineSectorUndergroundZ;
UINT32 MineSectorUndergroundGridno1; UINT32 MineSectorUndergroundGridno1;
UINT32 MineSectorUndergroundGridno2; UINT32 MineSectorUndergroundGridno2;
UINT32 SectorDoorInTunnelX;
UINT32 SectorDoorInTunnelY;
UINT32 SectorDoorInTunnelZ;
UINT32 SectorGuardPostX;
UINT32 SectorGuardPostZ;
UINT32 SectorGuardPostY;
UINT32 H9MoneyGridNo;
UINT32 H9MoneyEasy;
UINT32 H9MoneyMedium;
UINT32 H9MoneyHard;
UINT32 FristSectorTownX;
UINT32 FristSectorTownY;
UINT32 FristSectorTownZ;
UINT32 I10MoneyGridNo1;
UINT32 I10MoneyEasy1;
UINT32 I10MoneyMedium1;
UINT32 I10MoneyHard1;
UINT32 I10MoneyGridNo2;
UINT32 I10MoneyEasy2;
UINT32 I10MoneyMedium2;
UINT32 I10MoneyHard2;
UINT32 SectorTown2X;
UINT32 SectorTown2Y;
UINT32 SectorTown2Z;
UINT32 SectorTown3X;
UINT32 SectorTown3Y;
UINT32 SectorTown3Z;
UINT32 SectorTownGridNo1a;
UINT32 SectorTownGridNo1b;
UINT32 SectorTownGridNo2a;
UINT32 SectorTownGridNo2b;
UINT32 SectorTownGridNo3a;
UINT32 SectorTownGridNo3b;
//I9
UINT32 I9SectorPlayerQuoteX;
UINT32 I9SectorPlayerQuoteY;
UINT32 I9SectorPlayerQuoteZ;
//H10
UINT32 H10SectorPlayerQuoteX;
UINT32 H10SectorPlayerQuoteY;
UINT32 H10SectorPlayerQuoteZ;
UINT32 SectorDoorInTunnelGridNo;
UINT8 MaxNumberOfMercs; UINT8 MaxNumberOfMercs;
} GAME_UB_OPTIONS; } GAME_UB_OPTIONS;