mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
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:
@@ -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
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
@@ -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
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user