diff --git a/GameSettings.cpp b/GameSettings.cpp index 140ace58..578e1d98 100644 --- a/GameSettings.cpp +++ b/GameSettings.cpp @@ -483,6 +483,7 @@ void LoadGameExternalOptions() //Misc gGameExternalOptions.fAmmoDynamicWeight = iniReader.ReadBoolean("JA2 Gameplay Settings", "DYNAMIC_AMMO_WEIGHT", TRUE); //Pulmu + gGameExternalOptions.fEnableCrepitus = iniReader.ReadBoolean("JA2 Gameplay Settings", "ENABLE_CREPITUS", TRUE); } diff --git a/GameSettings.h b/GameSettings.h index 71ce2044..d0b9d700 100644 --- a/GameSettings.h +++ b/GameSettings.h @@ -305,6 +305,7 @@ typedef struct BOOLEAN gfInsaneAggressiveQueen; BOOLEAN fAmmoDynamicWeight; //Pulmu + BOOLEAN fEnableCrepitus; } GAME_EXTERNAL_OPTIONS; diff --git a/GameVersion.cpp b/GameVersion.cpp index 00333212..46902553 100644 --- a/GameVersion.cpp +++ b/GameVersion.cpp @@ -23,12 +23,12 @@ INT16 zVersionLabel[256] = { L"Beta v. 0.98" }; #else //RELEASE BUILD VERSION - INT16 zVersionLabel[256] = { L"Release v1.13.422" }; + INT16 zVersionLabel[256] = { L"Release v1.13.426" }; #endif -INT8 czVersionNumber[16] = { "Build 06.08.10" }; +INT8 czVersionNumber[16] = { "Build 06.08.11" }; INT16 zTrackingNumber[16] = { L"Z" }; diff --git a/Laptop/BobbyR.cpp b/Laptop/BobbyR.cpp index f564402c..43d911bb 100644 --- a/Laptop/BobbyR.cpp +++ b/Laptop/BobbyR.cpp @@ -574,7 +574,7 @@ BOOLEAN InitBobbyRayNewInventory() break; //if Bobby Ray sells this, it can be sold, and it's allowed into this game (some depend on e.g. gun-nut option) // if( ( StoreInventory[ i ][ BOBBY_RAY_NEW ] != 0) && !( Item[ i ].fFlags & ITEM_NOT_BUYABLE ) && ItemIsLegal( i ) ) - if( ( StoreInventory[ i ][ BOBBY_RAY_NEW ] != 0) && !( Item[ i ].notbuyable ) && ItemIsLegal( i ) ) + if( !( Item[ i ].notbuyable ) ) { LaptopSaveInfo.BobbyRayInventory[ usBobbyrIndex ].usItemIndex = i; usBobbyrIndex++; @@ -612,10 +612,8 @@ BOOLEAN InitBobbyRayUsedInventory() break; //if Bobby Ray sells this, it can be sold, and it's allowed into this game (some depend on e.g. gun-nut option) // if( ( StoreInventory[ i ][ BOBBY_RAY_USED ] != 0) && !( Item[ i ].fFlags & ITEM_NOT_BUYABLE ) && ItemIsLegal( i ) ) - if( ( StoreInventory[ i ][ BOBBY_RAY_USED ] != 0) && !( Item[ i ].notbuyable ) && ItemIsLegal( i ) ) + if( !( Item[ i ].notbuyable ) ) { -// if( (StoreInventory[ i ][ BOBBY_RAY_USED ] != 0) && !( Item[i].fFlags & ITEM_NOT_BUYABLE ) && ItemIsLegal( i )) - if( (StoreInventory[ i ][ BOBBY_RAY_USED ] != 0) && !( Item[i].notbuyable ) && ItemIsLegal( i )) // in case his store inventory list is wrong, make sure this category of item can be sold used if ( CanDealerItemBeSoldUsed( i ) ) { diff --git a/Strategic/Creature Spreading.cpp b/Strategic/Creature Spreading.cpp index ab2aaad5..9c59f59b 100644 --- a/Strategic/Creature Spreading.cpp +++ b/Strategic/Creature Spreading.cpp @@ -939,7 +939,7 @@ void CreatureAttackTown( UINT8 ubSectorID, BOOLEAN fOverrideTest ) void ChooseCreatureQuestStartDay() { // INT32 iRandom, iDay; - if( !(gGameOptions.ubGameStyle == STYLE_SCIFI) ) + if( !(gGameOptions.ubGameStyle == STYLE_SCIFI) || !gGameExternalOptions.fEnableCrepitus) return; //only available in science fiction mode. //Post the event. Once it becomes due, it will setup the queen monster's location, and //begin spreading and attacking towns from there. @@ -1385,7 +1385,7 @@ void CreatureNightPlanning() void CheckConditionsForTriggeringCreatureQuest( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ ) { UINT8 ubValidMines = 0; - if( !(gGameOptions.ubGameStyle == STYLE_SCIFI) ) + if( !(gGameOptions.ubGameStyle == STYLE_SCIFI) || !gGameExternalOptions.fEnableCrepitus) return; //No scifi, no creatures... if( giLairID ) return; //Creature quest already begun diff --git a/Strategic/Game Init.cpp b/Strategic/Game Init.cpp index fb894678..5c7e8730 100644 --- a/Strategic/Game Init.cpp +++ b/Strategic/Game Init.cpp @@ -160,7 +160,7 @@ void InitNPCs( void ) gfPlayerTeamSawJoey = FALSE; - if ( gGameOptions.ubGameStyle == STYLE_SCIFI ) + if ( gGameOptions.ubGameStyle == STYLE_SCIFI && gGameExternalOptions.fEnableCrepitus ) { // add Bob pProfile = &(gMercProfiles[BOB]); diff --git a/Strategic/Quests.cpp b/Strategic/Quests.cpp index 835b1878..805e8a75 100644 --- a/Strategic/Quests.cpp +++ b/Strategic/Quests.cpp @@ -1017,7 +1017,7 @@ BOOLEAN CheckFact( UINT16 usFact, UINT8 ubProfileID ) break; case FACT_FATHER_DRUNK_AND_SCIFI_OPTION_ON: - gubFact[usFact] = ( ( gMercProfiles[ FATHER ].bNPCData >= 5 ) && gGameOptions.ubGameStyle == STYLE_SCIFI ); + gubFact[usFact] = ( ( gMercProfiles[ FATHER ].bNPCData >= 5 ) && gGameOptions.ubGameStyle == STYLE_SCIFI && gGameExternalOptions.fEnableCrepitus); break; case FACT_BLOODCAT_QUEST_STARTED_TWO_DAYS_AGO: diff --git a/Strategic/strategicmap.cpp b/Strategic/strategicmap.cpp index 2d7829fa..19fff3d5 100644 --- a/Strategic/strategicmap.cpp +++ b/Strategic/strategicmap.cpp @@ -1216,7 +1216,7 @@ void HandleRPCDescriptionOfSector( INT16 sSectorX, INT16 sSectorY, INT16 sSector if ( sSectorX == ubSectorDescription[ cnt ][ 1 ] && sSectorY == ubSectorDescription[ cnt ][ 0 ] ) { // If we're not scifi, skip some - if ( !(gGameOptions.ubGameStyle == STYLE_SCIFI) && cnt == 3 ) + if ( !(gGameOptions.ubGameStyle == STYLE_SCIFI && gGameExternalOptions.fEnableCrepitus) && cnt == 3 ) { continue; } diff --git a/Tactical/Interface Dialogue.cpp b/Tactical/Interface Dialogue.cpp index 09bd4006..04acbca7 100644 --- a/Tactical/Interface Dialogue.cpp +++ b/Tactical/Interface Dialogue.cpp @@ -2594,7 +2594,7 @@ void HandleNPCDoAction( UINT8 ubTargetNPC, UINT16 usActionCode, UINT8 ubQuoteNum break; case NPC_ACTION_NO_SCI_FI_END_MEANWHILE: - if ( !( gGameOptions.ubGameStyle == STYLE_SCIFI ) ) + if ( !( gGameOptions.ubGameStyle == STYLE_SCIFI && gGameExternalOptions.fEnableCrepitus) ) { // End meanwhile.... // End meanwhile.... @@ -3892,7 +3892,7 @@ void HandleNPCDoAction( UINT8 ubTargetNPC, UINT16 usActionCode, UINT8 ubQuoteNum break; case NPC_ACTION_TRIGGER_MICKY_BY_SCI_FI: - if ( gGameOptions.ubGameStyle == STYLE_SCIFI ) + if ( gGameOptions.ubGameStyle == STYLE_SCIFI && gGameExternalOptions.fEnableCrepitus) { TriggerNPCRecord( MICKY, 7 ); } diff --git a/Tactical/Items.cpp b/Tactical/Items.cpp index 21f78f2c..bd2a3717 100644 --- a/Tactical/Items.cpp +++ b/Tactical/Items.cpp @@ -1188,7 +1188,7 @@ BOOLEAN ItemIsLegal( UINT16 usItemIndex ) } } - if ( gGameOptions.ubGameStyle == STYLE_REALISTIC && Item[usItemIndex].scifi ) + if ( gGameOptions.ubGameStyle != STYLE_SCIFI && Item[usItemIndex].scifi ) { return FALSE; } diff --git a/Tactical/Rotting Corpses.cpp b/Tactical/Rotting Corpses.cpp index cd09dbb2..b2a91314 100644 --- a/Tactical/Rotting Corpses.cpp +++ b/Tactical/Rotting Corpses.cpp @@ -946,6 +946,10 @@ BOOLEAN TurnSoldierIntoCorpse( SOLDIERTYPE *pSoldier, BOOLEAN fRemoveMerc, BOOLE // Make team look for items AllSoldiersLookforItems( TRUE ); + //Madd: set warning value to signal other enemies + if( pSoldier->bTeam == ENEMY_TEAM ) + Corpse.ubAIWarningValue = 20; + //if we are to call TacticalRemoveSoldier after adding the corpse if( fRemoveMerc ) {