Added an option to disable Arroyo-related events

Minor fix to DisableSpecialMapIDs (as ID 0 is still a valid map).
Edited some descriptions in ddraw.ini.
This commit is contained in:
NovaRain
2025-08-29 13:23:57 +08:00
parent 95cd72348d
commit 9a18193060
2 changed files with 23 additions and 6 deletions
+14 -4
View File
@@ -1,5 +1,5 @@
;sfall configuration settings
;v3.8.47
;v3.8.47.1
[Main]
;Set to 1 if you want to use command line arguments to tell sfall to use another ini file
@@ -138,7 +138,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
@@ -797,15 +797,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
+9 -2
View File
@@ -671,7 +671,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);
}
@@ -1015,7 +1015,7 @@ void MiscPatches::init() {
if (IniReader::GetConfigInt("Misc", "DisableSpecialMapIDs", 0)) {
dlogr("Applying disable special maps handling patch.", DL_INIT);
const DWORD specialMapIdsAddr[] = {0x4836D6, 0x4836DB};
SafeWriteBatch<BYTE>(0, specialMapIdsAddr);
SafeWriteBatch<BYTE>(-1, specialMapIdsAddr);
}
// Remove hardcoding for city areas 45 and 46 (AREA_FAKE_VAULT_13)
@@ -1024,6 +1024,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);