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_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
//Mod Setting.ini
+155 -67
View File
@@ -6697,16 +6697,28 @@ void HandlePlayerTeamQuotesWhenEnteringSector( INT16 sSectorX, INT16 sSectorY, I
SOLDIERTYPE *pSoldier = NULL;
#define NUM_VALID_SECTORS 6
#define DELAY_FOR_PLAYER_DESC_OF_SECTOR 2
ENTER_SECTOR_PLAYER_QUOTE PlayerSectorDescQuote[NUM_VALID_SECTORS] =
#define NUM_VALID_SECTORS 6
#define DELAY_FOR_PLAYER_DESC_OF_SECTOR 2
ENTER_SECTOR_PLAYER_QUOTE PlayerSectorDescQuote[ NUM_VALID_SECTORS ] =
{
{SEC_H9, 0, QUOTE_HATE_MERC_1_ON_TEAM},
{SEC_I9, 0, QUOTE_LEARNED_TO_HATE_MERC_ON_TEAM},
{SEC_H10, 0, QUOTE_LEARNED_TO_HATE_MERC_ON_TEAM},
{SEC_I10, 0, QUOTE_HATE_MERC_2_ON_TEAM},
{SEC_J13, 0, QUOTE_ENTER_SECTOR_WITH_FAN_1},
{SEC_J14, 1, 0},
//SEC_H9-0
{ SECTOR( gGameUBOptions.SectorGuardPostX, gGameUBOptions.SectorGuardPostY ), gGameUBOptions.SectorGuardPostZ, QUOTE_HATE_MERC_1_ON_TEAM },
//SEC_I9-0
{ SECTOR( gGameUBOptions.I9SectorPlayerQuoteX, gGameUBOptions.I9SectorPlayerQuoteY ), gGameUBOptions.I9SectorPlayerQuoteZ, QUOTE_LEARNED_TO_HATE_MERC_ON_TEAM },
//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
@@ -6733,6 +6745,71 @@ void HandlePlayerTeamQuotesWhenEnteringSector( INT16 sSectorX, INT16 sSectorY, I
}
//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 )
{
case SEC_I10:
@@ -6799,12 +6876,16 @@ void HandlePlayerTeamQuotesWhenEnteringSector( INT16 sSectorX, INT16 sSectorY, I
break;
}
*/
//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
SetSectorFlag( 9, 9, 0, SF_HAVE_SAID_PLAYER_QUOTE_NEW_SECTOR );
SetSectorFlag( 10, 8, 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( 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
@@ -6890,9 +6971,9 @@ void HandleEmailBeingSentWhenEnteringSector( INT16 sMapX, INT16 sMapY, INT8 bMap
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 ( ((sMapY == 10 && sMapX == 11) || (sMapY == 9 && sMapX == 12) && bMapZ == 0) ||
fLaptopJustGotFixed &&
(GetSectorFlagStatus( 11, 10, 0, SF_HAS_ENTERED_TACTICAL ) == TRUE || GetSectorFlagStatus( 12, 9, 0, SF_HAS_ENTERED_TACTICAL ) == TRUE) )
if( ( ( sMapY == gGameUBOptions.SectorTown2Y && sMapX == gGameUBOptions.SectorTown2X ) || ( sMapY == 9 && sMapX == 12 ) && bMapZ == 0 ) ||
fLaptopJustGotFixed &&
( 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
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 ( sMapY == 10 && sMapX == 13 && bMapZ == 0 ||
fLaptopJustGotFixed && GetSectorFlagStatus( 13, 10, 0, SF_HAS_ENTERED_TACTICAL ) == TRUE )
//if its the power generator sector J13
if( sMapY == gGameUBOptions.SectorFanY && sMapX == gGameUBOptions.SectorFanX && bMapZ == gGameUBOptions.SectorFanZ ||
fLaptopJustGotFixed && GetSectorFlagStatus( gGameUBOptions.SectorFanX, gGameUBOptions.SectorFanY, gGameUBOptions.SectorFanZ, SF_HAS_ENTERED_TACTICAL ) == TRUE )
{
//and we havent sent it before
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 ( sMapY == 10 && sMapX == 14 && bMapZ == 1 ||
fLaptopJustGotFixed && GetSectorFlagStatus( 14, 10, 1, SF_HAS_ENTERED_TACTICAL ) == TRUE )
//if its the tunnel sector J14-1
if( sMapY == gGameUBOptions.ExitForFanToPowerGenSectorY && sMapX == gGameUBOptions.ExitForFanToPowerGenSectorX && bMapZ == gGameUBOptions.ExitForFanToPowerGenSectorZ ||
fLaptopJustGotFixed && GetSectorFlagStatus( gGameUBOptions.ExitForFanToPowerGenSectorX, gGameUBOptions.ExitForFanToPowerGenSectorY, gGameUBOptions.ExitForFanToPowerGenSectorZ, SF_HAS_ENTERED_TACTICAL ) == TRUE )
{
//and we havent sent it before
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 ( !(gJa25SaveStruct.fNpcHasBeenAdded & SECTOR_ADDED_NPC__MANUEL) )
{
//if it is the right sector
if ( (sMapY == MAP_ROW_H && sMapX == 10 && bMapZ == 0) ||
(sMapY == MAP_ROW_I && sMapX == 9 && bMapZ == 0) )
//if it is the right sector H10 or I9
if( ( sMapY == gGameUBOptions.H10SectorPlayerQuoteY && sMapX == gGameUBOptions.H10SectorPlayerQuoteX && bMapZ == gGameUBOptions.H10SectorPlayerQuoteZ ) ||
( sMapY == gGameUBOptions.I9SectorPlayerQuoteY && sMapX == gGameUBOptions.I9SectorPlayerQuoteX && bMapZ == gGameUBOptions.I9SectorPlayerQuoteZ ) )
{
//Change his sector values to
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 )
{
//if this is the power gen map
if ( sMapX == 13 && sMapY == MAP_ROW_J && bMapZ == 0 )
//if this is the power gen map J13
if( sMapX == gGameUBOptions.SectorFanX && sMapY == gGameUBOptions.SectorFanY && bMapZ == gGameUBOptions.SectorFanZ )
{
BOOLEAN fGoingToTunnelSector = FALSE;
//if we are going to the first sector if the tunnel
if ( gWorldSectorX == 14 &&
gWorldSectorY == MAP_ROW_J &&
gbWorldSectorZ == 1 )
//if we are going to the first sector if the tunnel J14-1
if( gWorldSectorX == gGameUBOptions.ExitForFanToPowerGenSectorX &&
gWorldSectorY == gGameUBOptions.ExitForFanToPowerGenSectorY &&
gbWorldSectorZ == gGameUBOptions.ExitForFanToPowerGenSectorZ )
{
fGoingToTunnelSector = TRUE;
}
@@ -7040,8 +7121,8 @@ void HandleSectorSpecificUnLoadingOfMap( INT16 sMapX, INT16 sMapY, INT8 bMapZ )
//Remeber how the player got through
HandleHowPlayerGotThroughFan( );
}
//else if this is the 1st level of tunne;l
else if ( sMapX == 14 && sMapY == MAP_ROW_J && bMapZ == 1 )
//else if this is the 1st level of tunne;l J14-1
else if( sMapX == gGameUBOptions.ExitForFanToPowerGenSectorX && sMapY == gGameUBOptions.ExitForFanToPowerGenSectorY && bMapZ == gGameUBOptions.ExitForFanToPowerGenSectorZ )
{
switch ( gJa25SaveStruct.ubStateOfFanInPowerGenSector )
{
@@ -7076,31 +7157,31 @@ void HandleSectorSpecificModificatioToMap( INT16 sMapX, INT16 sMapY, INT8 bMapZ,
// only do certain modifications
//
//if this is the power gen map
if ( sMapX == 13 && sMapY == MAP_ROW_J && bMapZ == 0 )
//if this is the power gen map J13-0
if( sMapX == gGameUBOptions.SectorFanX && sMapY == gGameUBOptions.SectorFanY && bMapZ == gGameUBOptions.SectorFanZ )
{
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( );
}
//if this is the Final Sector of the complex
else if ( sMapX == 15 && sMapY == MAP_ROW_L && bMapZ == 3 )
//if this is the Final Sector of the complex L15-3
else if( sMapX == gGameUBOptions.SectorLaunchMisslesX && sMapY == gGameUBOptions.SectorLaunchMisslesY && bMapZ == gGameUBOptions.SectorLaunchMisslesZ )
{
HandleOpenControlPanelToRevealSwitchInMorrisArea( );
}
}
else
{
//if this is the first map
if ( sMapX == 7 && sMapY == MAP_ROW_H && bMapZ == 0 )
//if this is the first map H7
if( sMapX == gGameExternalOptions.ubDefaultArrivalSectorX && sMapY == gGameExternalOptions.ubDefaultArrivalSectorY && bMapZ == 0 )
{
}
//if this is the guardpost
else if ( sMapX == 9 && sMapY == MAP_ROW_H && bMapZ == 0 )
//if this is the guardpost H9
else if( sMapX == gGameUBOptions.SectorGuardPostX && sMapY == gGameUBOptions.SectorGuardPostY && bMapZ == gGameUBOptions.SectorGuardPostZ )
{
//if we havent added the money to the sector before
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 );
// 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
else if ( sMapX == 10 && sMapY == MAP_ROW_I && bMapZ == 0 )
//if this is the First sector of the town I10
else if( sMapX == gGameUBOptions.FristSectorTownX && sMapY == gGameUBOptions.FristSectorTownY && bMapZ == gGameUBOptions.FristSectorTownX )
{
//if we havent added the money to the sector before
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 );
// Add some money to the location
CreateAndAddMoneyObjectToGround( 11894, 8000, 4000, 3000 );
CreateAndAddMoneyObjectToGround( 7906, 12000, 6000, 5000 );
//CreateAndAddMoneyObjectToGround( 11894, 8000, 4000, 3000 );
//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
else if ( sMapX == 13 && sMapY == MAP_ROW_J && bMapZ == 0 )
//if this is the power gen map J13
else if( sMapX == gGameUBOptions.SectorFanX && sMapY == gGameUBOptions.SectorFanY && bMapZ == gGameUBOptions.SectorFanZ )
{
HandlePowerGenFanSoundModification( );
}
//else if this is the 1st part of tunnel
else if ( sMapX == 14 && sMapY == MAP_ROW_J && bMapZ == 1 )
//else if this is the 1st part of tunnel J14-1
else if( sMapX == gGameUBOptions.ExitForFanToPowerGenSectorX && sMapY == gGameUBOptions.ExitForFanToPowerGenSectorY && bMapZ == gGameUBOptions.ExitForFanToPowerGenSectorZ )
{
HandleFirstPartOfTunnelFanSound( );
@@ -7143,8 +7228,8 @@ void HandleSectorSpecificModificatioToMap( INT16 sMapX, INT16 sMapY, INT8 bMapZ,
}
}
//else if this is the 2nd part of tunnel
else if ( sMapX == 14 && sMapY == MAP_ROW_K && bMapZ == 1 )
//else if this is the 2nd part of tunnel K14-1
else if( sMapX == gGameUBOptions.SectorOpenGateInTunnelX && sMapY == gGameUBOptions.SectorOpenGateInTunnelY && bMapZ == gGameUBOptions.SectorOpenGateInTunnelZ )
{
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 ( sMapX == 15 && sMapY == MAP_ROW_K && bMapZ == 1 )
//else if this is the 1st level in the complex K15-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
// MakeAllTeamMembersCrouchedThenStand();
@@ -7165,8 +7250,8 @@ void HandleSectorSpecificModificatioToMap( INT16 sMapX, INT16 sMapY, INT8 bMapZ,
HandleFortifiedDoor( );
}
//if this is the Final Sector of the complex
else if ( sMapX == 15 && sMapY == MAP_ROW_L && bMapZ == 3 )
//if this is the Final Sector of the complex L15-3
else if( sMapX == gGameUBOptions.SectorLaunchMisslesX && sMapY == gGameUBOptions.SectorLaunchMisslesY && bMapZ == gGameUBOptions.SectorLaunchMisslesZ )
{
HandleOpenControlPanelToRevealSwitchInMorrisArea( );
}
@@ -7302,7 +7387,7 @@ void HandleFortifiedDoor( )
//if the fortified door should be open
if ( gJa25SaveStruct.ubStatusOfFortifiedDoor == FD__OPEN )
{
ModifyDoorStatus( 11419, TRUE, DONTSETDOORSTATUS );
ModifyDoorStatus( gGameUBOptions.SectorDoorInTunnelGridNo, TRUE, DONTSETDOORSTATUS ); //11419
}
}
@@ -7514,8 +7599,8 @@ void HandleMovingEnemiesOntoRoofs( )
return;
}
//if this is the sector south of the town
if ( gWorldSectorX == 11 && gWorldSectorY == MAP_ROW_J && gbWorldSectorZ == 0 )
//if this is the sector south of the town J11
if( gWorldSectorX == gGameUBOptions.SectorTown2X && gWorldSectorY ==gGameUBOptions.SectorTown2Y && gbWorldSectorZ == gGameUBOptions.SectorTown2Z )
{
switch ( gGameOptions.ubDifficultyLevel )
{
@@ -7523,18 +7608,20 @@ void HandleMovingEnemiesOntoRoofs( )
case DIF_LEVEL_MEDIUM:
break;
case DIF_LEVEL_HARD:
MoveEnemyFromGridNoToRoofGridNo( 15446, 13993 );
MoveEnemyFromGridNoToRoofGridNo( 15436, 14006 );
//MoveEnemyFromGridNoToRoofGridNo( 15446, 13993 );
//MoveEnemyFromGridNoToRoofGridNo( 15436, 14006 );
MoveEnemyFromGridNoToRoofGridNo( gGameUBOptions.SectorTownGridNo1a, gGameUBOptions.SectorTownGridNo1b );
MoveEnemyFromGridNoToRoofGridNo( gGameUBOptions.SectorTownGridNo2a, gGameUBOptions.SectorTownGridNo2a );
break;
default:
MoveEnemyFromGridNoToRoofGridNo( 15446, 13993 );
MoveEnemyFromGridNoToRoofGridNo( 15436, 14006 );
MoveEnemyFromGridNoToRoofGridNo( gGameUBOptions.SectorTownGridNo1a, gGameUBOptions.SectorTownGridNo1b );
MoveEnemyFromGridNoToRoofGridNo( gGameUBOptions.SectorTownGridNo2a, gGameUBOptions.SectorTownGridNo2a );
break;
}
}
//else if this is the sector south of the town
else if ( gWorldSectorX == 11 && gWorldSectorY == MAP_ROW_H && gbWorldSectorZ == 0 )
//else if this is the sector south of the town H11
else if( gWorldSectorX == gGameUBOptions.SectorTown3X && gWorldSectorY == gGameUBOptions.SectorTown3Y && gbWorldSectorZ == gGameUBOptions.SectorTown3Z )
{
switch ( gGameOptions.ubDifficultyLevel )
{
@@ -7542,10 +7629,11 @@ void HandleMovingEnemiesOntoRoofs( )
case DIF_LEVEL_MEDIUM:
break;
case DIF_LEVEL_HARD:
MoveEnemyFromGridNoToRoofGridNo( 8711, 5521 );
//MoveEnemyFromGridNoToRoofGridNo( 8711, 5521 );
MoveEnemyFromGridNoToRoofGridNo( gGameUBOptions.SectorTownGridNo3a, gGameUBOptions.SectorTownGridNo3a );
break;
default:
MoveEnemyFromGridNoToRoofGridNo( 8711, 5521 );
MoveEnemyFromGridNoToRoofGridNo( gGameUBOptions.SectorTownGridNo3a, gGameUBOptions.SectorTownGridNo3a );
break;
}
}
+9 -9
View File
@@ -3651,12 +3651,12 @@ void PerformItemAction( INT32 sGridNo, OBJECTTYPE * pObj )
case ACTION_ITEM_SEE_POWER_GEN_FAN:
//if the player is in the power plant
if( gWorldSectorX == 13 && gWorldSectorY == 10 && gbWorldSectorZ == 0 )
//if the player is in the power plant J13
if( gWorldSectorX == gGameUBOptions.SectorFanX && gWorldSectorY == gGameUBOptions.SectorFanY && gbWorldSectorZ == gGameUBOptions.SectorFanZ )
{
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
HandlePlayerHittingSwitchToLaunchMissles();
@@ -5232,8 +5232,8 @@ BOOLEAN ShouldThePlayerStopWhenWalkingOnBiggensActionItem( UINT8 ubRecordNum )
// This function checks if we should replace the fan graphic
BOOLEAN IsFanGraphicInSectorAtThisGridNo( UINT32 sGridNo )
{
// First check current sector......
if( gWorldSectorX == 13 && gWorldSectorY == MAP_ROW_J && gbWorldSectorZ == 0 )
// First check current sector...... J13-0
if( gWorldSectorX == gGameUBOptions.SectorFanX && gWorldSectorY == gGameUBOptions.SectorFanY && gbWorldSectorZ == gGameUBOptions.SectorFanZ )
{
//if this is the right gridno
/*if( sGridNo == 10978 ||
@@ -5321,8 +5321,8 @@ void HandleDestructionOfPowerGenFan()
void HandleExplosionsInTunnelSector( UINT32 sGridNo )
{
//if this isnt the tunnel sectors
if( !( gWorldSectorX == 14 && ( gWorldSectorY == MAP_ROW_J || gWorldSectorY == MAP_ROW_K ) && gbWorldSectorZ == 1 ) )
//if this isnt the tunnel sectors J14-1 and K14-1
if( !( gWorldSectorX == gGameUBOptions.ExitForFanToPowerGenSectorX && ( gWorldSectorY == gGameUBOptions.ExitForFanToPowerGenSectorY || gWorldSectorY == gGameUBOptions.SectorOpenGateInTunnelY ) && gbWorldSectorZ == 1 ) )
{
//get the fuck out...
return;
@@ -5337,8 +5337,8 @@ void HandleSeeingFortifiedDoor( UINT32 sGridNo )
{
INT32 sID=0;
//if this isnt the First level of the complex
if( !( gWorldSectorX == 15 && gWorldSectorY == MAP_ROW_K && gbWorldSectorZ == 1 ) )
//if this isnt the First level of the complex K15-1
if( !( gWorldSectorX == gGameUBOptions.SectorDoorInTunnelX && gWorldSectorY == gGameUBOptions.SectorDoorInTunnelY && gbWorldSectorZ == gGameUBOptions.SectorDoorInTunnelZ ) )
{
//get the fuck out...
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.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 )
gGameUBOptions.InGameHeliCrash = FALSE;
+57 -1
View File
@@ -160,8 +160,64 @@ typedef struct
UINT32 MineSectorUndergroundZ;
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;
} GAME_UB_OPTIONS;