diff --git a/GameSettings.cpp b/GameSettings.cpp index dc3a7c9a..68210c19 100644 --- a/GameSettings.cpp +++ b/GameSettings.cpp @@ -1196,7 +1196,10 @@ void LoadGameExternalOptions() gGameExternalOptions.ubMilitiaDropEquipment = iniReader.ReadInteger("Tactical Difficulty Settings","MILITIA_DROP_EQUIPMENT", 0, 0, 2 ); // silversurfer: enable dropping of all items for civilians? - gGameExternalOptions.fCiviliansDropAll = iniReader.ReadBoolean("Tactical Difficulty Settings","CIVILIANS_DROP_ALL", FALSE); + gGameExternalOptions.fCiviliansDropAll = iniReader.ReadBoolean("Tactical Difficulty Settings","CIVILIANS_DROP_ALL", FALSE); + + // Flugente: can NPCs drop items in autoresolve? + gGameExternalOptions.fNPCAutoresolveItemDrop = iniReader.ReadBoolean("Tactical Difficulty Settings", "NPC_AUTORESOLVE_DROP_ALL", FALSE ); // HEADROCK HAM B2.7: Change the speed of skill progression. (defaults set to JA2 normal) gGameExternalOptions.usHealthSubpointsToImprove = iniReader.ReadInteger("Tactical Difficulty Settings","HEALTH_SUBPOINTS_TO_IMPROVE", 50, 1, 1000 ); @@ -1866,7 +1869,7 @@ void LoadGameExternalOptions() gGameExternalOptions.sMinEnterMilitiaReinforcements = iniReader.ReadInteger("Strategic Gameplay Settings", "MIN_ENTER_MILITIA_REINFORCEMENTS", 6, 1, 64); gGameExternalOptions.sRndEnterMilitiaReinforcements = iniReader.ReadInteger("Strategic Gameplay Settings", "RND_ENTER_MILITIA_REINFORCEMENTS", 4, 1, 64); //dnl ch68 090913 Don't allow permanent items removal from sector - gGameExternalOptions.fNoRemoveRandomSectorItems = iniReader.ReadBoolean("Strategic GamePlay Settings", "NO_REMOVE_RANDOM_SECTOR_ITEMS", true, false); + gGameExternalOptions.fNoRemoveRandomSectorItems = iniReader.ReadBoolean("Strategic GamePlay Settings", "NO_REMOVE_RANDOM_SECTOR_ITEMS", TRUE ); gGameExternalOptions.fArmyUsesTanksInAttacks = iniReader.ReadBoolean("Strategic Gameplay Settings","ARMY_USES_TANKS_IN_ATTACKS", FALSE); gGameExternalOptions.fArmyUsesTanksInPatrols = iniReader.ReadBoolean("Strategic Gameplay Settings","ARMY_USES_TANKS_IN_PATROLS", FALSE); diff --git a/GameSettings.h b/GameSettings.h index a26b1278..8779a4b4 100644 --- a/GameSettings.h +++ b/GameSettings.h @@ -1235,6 +1235,9 @@ typedef struct // enables item drops for civilians BOOLEAN fCiviliansDropAll; + // Flugente: can NPCs drop items in autoresolve? + BOOLEAN fNPCAutoresolveItemDrop; + // WANNE: Don't stop and talk when spotting a new item in turn based mode BOOLEAN fItemSpottedNoTalk; diff --git a/GameVersion.cpp b/GameVersion.cpp index 4024b8c2..e60d1cb3 100644 --- a/GameVersion.cpp +++ b/GameVersion.cpp @@ -55,8 +55,8 @@ #endif -CHAR8 czVersionNumber[16] = { "Build 18.08.12" }; //YY.MM.DD +CHAR8 czVersionNumber[16] = { "Build 18.08.15" }; //YY.MM.DD CHAR16 zTrackingNumber[16] = { L"Z" }; -CHAR16 zRevisionNumber[16] = { L"Revision 8591" }; +CHAR16 zRevisionNumber[16] = { L"Revision 8594" }; // SAVE_GAME_VERSION is defined in header, change it there diff --git a/Tactical/Inventory Choosing.cpp b/Tactical/Inventory Choosing.cpp index 443c9a6e..19af8b4b 100644 --- a/Tactical/Inventory Choosing.cpp +++ b/Tactical/Inventory Choosing.cpp @@ -2434,8 +2434,9 @@ else // only enemy soldiers use auto-drop system! // don't use the auto-drop system in auto-resolve: player won't see what's being used & enemies will often win & keep'em + // Flugente: nah. We can decide to not drop later on if we want anyway. // HEADROCK HAM B2.8: Militia now drop all their equipment... IF not killed by player (see TurnSoldierIntoCorpse() ) - if ( (SOLDIER_CLASS_ENEMY( bSoldierClass ) || ( gGameExternalOptions.ubMilitiaDropEquipment > 0 && SOLDIER_CLASS_MILITIA( bSoldierClass ) )) && !IsAutoResolveActive() ) + if ( SOLDIER_CLASS_ENEMY( bSoldierClass ) || ( gGameExternalOptions.ubMilitiaDropEquipment > 0 && SOLDIER_CLASS_MILITIA( bSoldierClass ) ) ) { // SPECIAL handling for weapons: we'll always drop a weapon type that has never been dropped before UINT32 invsize = pp->Inv.size(); diff --git a/Tactical/Tactical Save.cpp b/Tactical/Tactical Save.cpp index cdc2971c..e0228f76 100644 --- a/Tactical/Tactical Save.cpp +++ b/Tactical/Tactical Save.cpp @@ -1970,7 +1970,7 @@ BOOLEAN AddWorldItemsToUnLoadedSector( INT16 sMapX, INT16 sMapY, INT8 bMapZ, INT if( fOverWrite ) { //first loop through and mark all entries that they dont exists - for( UINT32 cnt=0; cntinv[ i ].exists() == true ) { - // if not a player soldier - if ( pSoldier->bTeam != gbPlayerNum ) + // Flugente: if we don't want items to drop in autoresolve, this is the place to set that + if ( pSoldier->bTeam != gbPlayerNum && !gGameExternalOptions.fNPCAutoresolveItemDrop ) { - // this percent of the time, they don't drop stuff they would've dropped in tactical... - if ( Random( 100 ) < 75 ) - { - // mark it undroppable... - pSoldier->inv[ i ].fFlags |= OBJECT_UNDROPPABLE; - } + // mark it undroppable... + pSoldier->inv[i].fFlags |= OBJECT_UNDROPPABLE; } //if the item can be dropped