diff --git a/artifacts/ddraw.ini b/artifacts/ddraw.ini index b4ca345e..9dfddd8c 100644 --- a/artifacts/ddraw.ini +++ b/artifacts/ddraw.ini @@ -1,5 +1,5 @@ ;sfall configuration settings -;v4.4.7 +;v4.4.7.1 [Main] ;Set to 1 to enable the built-in High Resolution Patch mode that is similar to the hi-res patch by Mash @@ -156,7 +156,7 @@ AllowSoundForFloats=0 ;This does not effect the play_sfall_sound and stop_sfall_sound script functions AllowDShowSound=0 -;Set to 1 to override the default music path with data\sound\music\ if music_path is not present in the cfg +;Set to 1 to override the default music path with data\sound\music\ if music_path is not present in fallout2.cfg ;Set to 2 to overwrite all occurrences of the music path OverrideMusicDir=1 @@ -783,15 +783,25 @@ PartyMemberSkillFix=0 ;Set to -1 to disable the special death message when the global variable is set SpecialDeathGVAR=491 -;Set to 1 to disable the special handling of map IDs 19 and 37 in the engine when entering the maps +;Set to 1 to disable the engine's special handling of map IDs 19 and 37 when entering those maps ;Note that enabling this option will break the map changes in Modoc and Vault 15 in Fallout 2 DisableSpecialMapIDs=0 -;Set to 1 to disable the special handling of city areas 45 and 46 in the engine when visiting Area 45: +;Set to 1 to disable the engine's special handling of city areas 45 and 46 when visiting Area 45: ;Area 45 automatically disappears from the world map, and Area 46 appears on the world map ;Note that enabling this option will break the location change of the 'Fake Vault 13' in Fallout 2 DisableSpecialAreas=0 +;Set to 1 to disable the engine's processing of events related to Arroyo (areas 0 and 22) +;This also disables the playback of Hakunin dream sequences and the processing of global variables: +;GVAR_ENEMY_ARROYO (7), GVAR_TOWN_REP_ARROYO (47), GVAR_FALLOUT_2 (494) +DisableArroyoEvents=0 + +;Set to 1 to fix the issue with the division operator treating negative integers as unsigned +;Note: To perform the unsigned integer division, use the new 'div' operator +;This option is always enabled in 4.3.5/3.8.35 or later. The information is left for reference only +DivisionOperatorFix=1 + ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ; Configuration ini files ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX diff --git a/sfall/Modules/MiscPatches.cpp b/sfall/Modules/MiscPatches.cpp index c9f22e17..582a8d4a 100644 --- a/sfall/Modules/MiscPatches.cpp +++ b/sfall/Modules/MiscPatches.cpp @@ -639,7 +639,7 @@ static void EncounterTableSizePatch() { static void DisablePipboyAlarmPatch() { if (IniReader::GetConfigInt("Misc", "DisablePipboyAlarm", 0)) { - dlogr("Applying Disable Pip-Boy alarm button patch.", DL_INIT); + dlogr("Applying disable Pip-Boy alarm button patch.", DL_INIT); SafeWrite8(0x499518, CodeType::Ret); SafeWrite8(0x443601, 0); } @@ -977,7 +977,7 @@ void MiscPatches::init() { // Remove hardcoding for maps with IDs 19 and 37 if (IniReader::GetConfigInt("Misc", "DisableSpecialMapIDs", 0)) { dlogr("Applying disable special maps handling patch.", DL_INIT); - SafeWriteBatch(0, {0x4836D6, 0x4836DB}); + SafeWriteBatch(-1, {0x4836D6, 0x4836DB}); } // Remove hardcoding for city areas 45 and 46 (AREA_FAKE_VAULT_13) @@ -986,6 +986,13 @@ void MiscPatches::init() { SafeWrite8(0x4C0576, CodeType::JumpShort); } + // Remove processing of events related to Arroyo (areas 0 and 22) + if (IniReader::GetConfigInt("Misc", "DisableArroyoEvents", 0)) { + dlogr("Applying disable Arroyo-related events patch.", DL_INIT); + SafeWrite8(0x4A36BF, CodeType::Jump); + SafeWrite32(0x4A36C0, 336); // jmp 0x4A3814 (scriptsCheckGameEvents_) + } + // Set the normal font for death screen subtitles if (IniReader::GetConfigInt("Misc", "DeathScreenFontPatch", 0)) { dlogr("Applying death screen font patch.", DL_INIT);