Added KnockoutTime option to change the duration of the knockout effect.

Renamed WorldMapInterface option to ExpandWorldMap.

Fixed op_lookup_string_proc_ engine function not searching the last
procedure in a script.
This commit is contained in:
NovaRain
2019-07-04 13:49:11 +08:00
parent e2865b751b
commit cde3157153
5 changed files with 14 additions and 6 deletions
+6 -2
View File
@@ -108,10 +108,10 @@ FadeMultiplier=100
;You can use resized FRMs in 700x682 for town maps in the expanded world map interface ;You can use resized FRMs in 700x682 for town maps in the expanded world map interface
;Requires High Resolution Patch v4.1.8 and a new WORLDMAP.frm file in art\intrface\ (included in sfall.dat) ;Requires High Resolution Patch v4.1.8 and a new WORLDMAP.frm file in art\intrface\ (included in sfall.dat)
;The resolution of hi-res patch must be set to at least 890x720 ;The resolution of hi-res patch must be set to at least 890x720
WorldMapInterface=0 ExpandWorldMap=0
;Set to 1 to expand the number of action points displayed on the interface bar ;Set to 1 to expand the number of action points displayed on the interface bar
;Requires new IFACE_E.frm and HR_IFACE_800E.frm files in art\intrface\ (included in sfall.dat) to display correctly ;Requires new IFACE_E.frm and HR_IFACE_<res>E.frm files in art\intrface\ (included in sfall.dat) to display correctly
;The minimum supported version of High Resolution Patch is 4.1.8 ;The minimum supported version of High Resolution Patch is 4.1.8
ActionPointsBar=0 ActionPointsBar=0
@@ -703,6 +703,10 @@ SpecialDeathGVAR=491
;Note that enabling this option can break the map changes in Modoc and Vault 15 ;Note that enabling this option can break the map changes in Modoc and Vault 15
DisableSpecialMapIDs=0 DisableSpecialMapIDs=0
;Changes the base value of the duration of the knockout effect (valid range: 35..100)
;The formula for the duration in ticks is: 10 * (value - 3 * EN)
KnockoutTime=35
;Set to 1 to display sfall built-in credits at the bottom of credits.txt contents instead of at the top ;Set to 1 to display sfall built-in credits at the bottom of credits.txt contents instead of at the top
CreditsAtBottom=0 CreditsAtBottom=0
+3
View File
@@ -2793,6 +2793,9 @@ void BugFixes::init()
// Fix for combat not ending automatically when there are no hostile critters // Fix for combat not ending automatically when there are no hostile critters
MakeCall(0x422CF3, combat_should_end_hack); MakeCall(0x422CF3, combat_should_end_hack);
SafeWrite16(0x422CEA, 0x0C74); // jz 0x422CF8 (skip party members) SafeWrite16(0x422CEA, 0x0C74); // jz 0x422CF8 (skip party members)
// Fix for op_lookup_string_proc_ engine function not searching the last procedure in a script
SafeWrite8(0x46C7AC, 0x76); // jb > jbe
} }
} }
+1 -1
View File
@@ -440,7 +440,7 @@ static void WorldMapInterfacePatch() {
} }
if (hrpIsEnabled) { if (hrpIsEnabled) {
if (worldmapInterface = GetConfigInt("Interface", "WorldMapInterface", 0)) { if (worldmapInterface = GetConfigInt("Interface", "ExpandWorldMap", 0)) {
LoadGameHook::OnAfterGameInit() += WorldmapViewportPatch; // Note: must be applied after WorldMapSlots patch LoadGameHook::OnAfterGameInit() += WorldmapViewportPatch; // Note: must be applied after WorldMapSlots patch
} }
} }
+3 -2
View File
@@ -846,8 +846,7 @@ void MiscPatches::init() {
dlogr(" Done", DL_INIT); dlogr(" Done", DL_INIT);
} }
int gvar = GetConfigInt("Misc", "SpecialDeathGVAR", fo::GVAR_MODOC_SHITTY_DEATH); SimplePatch<DWORD>(0x440C2A, "Misc", "SpecialDeathGVAR", fo::GVAR_MODOC_SHITTY_DEATH);
if (gvar != fo::GVAR_MODOC_SHITTY_DEATH) SafeWrite32(0x440C2A, gvar);
// Remove hardcoding for maps with IDs 19 and 37 // Remove hardcoding for maps with IDs 19 and 37
if (GetConfigInt("Misc", "DisableSpecialMapIDs", 0)) { if (GetConfigInt("Misc", "DisableSpecialMapIDs", 0)) {
@@ -856,6 +855,8 @@ void MiscPatches::init() {
dlogr(" Done", DL_INIT); dlogr(" Done", DL_INIT);
} }
SimplePatch<DWORD>(0x424FA7, "Misc", "KnockoutTime", 35, 35, 100);
// Increase the max text width of the information card in the character screen // Increase the max text width of the information card in the character screen
SafeWriteBatch<BYTE>(144, {0x43ACD5, 0x43DD37}); // 136, 133 SafeWriteBatch<BYTE>(144, {0x43ACD5, 0x43DD37}); // 136, 133
+1 -1
View File
@@ -168,7 +168,7 @@ void Objects::init() {
MakeCall(0x477A0E, item_identical_hack); // don't put item with unique ID to items stack MakeCall(0x477A0E, item_identical_hack); // don't put item with unique ID to items stack
// Fix mapper bug by reassigning object IDs to critters (for maps not yet visited) // Fix mapper bug by reassigning object IDs to critters (for unvisited maps)
MakeCall(0x482E6B, map_load_file_hack); MakeCall(0x482E6B, map_load_file_hack);
SafeWrite8(0x482E71, 0x85); // jz > jnz SafeWrite8(0x482E71, 0x85); // jz > jnz
} }