diff --git a/artifacts/ddraw.ini b/artifacts/ddraw.ini index 06250ecb..dd1c1491 100644 --- a/artifacts/ddraw.ini +++ b/artifacts/ddraw.ini @@ -481,6 +481,7 @@ BoostScriptDialogLimit=0 ;Set the mode to 0 to disable the size check, 1 to apply to the PC only, 2 to apply to the PC and party members, or 3 to apply to all critters ;Only the PC uses CritterInvSizeLimit. Other critters will use the unused stat (STAT_unused = 10) or have the size limit of 100 if the stat is not set ;Add 4 to the mode to limit the weight check to used items only +;You can use line number 542/543 in proto.msg and line number 35 in inventry.msg to set up custom messages for item size CritterInvSizeLimitMode=0 CritterInvSizeLimit=100 @@ -548,6 +549,10 @@ ExplosionsEmitLight=0 ;MovieTimer_artimer3=270 ;MovieTimer_artimer4=360 +;Uncomment the next line to change how many protos the engine can process at once (valid range: 512..16384) +;Set to 1024 or some higher number to avoid some glitches with scripts that will process a large number of protos +;ProtoProcessingLimit=512 + ;Set to 1 to enable the new arrays behavior ;Set to 0 for backward compatibility with pre-3.4 scripts arraysBehavior=1 @@ -620,7 +625,7 @@ FullItemDescInBarter=0 ;Set to 1 to display experience points with the bonus from Swift Learner perk when gained from non-scripted situations DisplaySwiftLearnerExp=1 -;Set to 1 to allow windows created by vanilla script function to be placed on top of inventory/loot/automap interfaces +;Set to 1 to prevent the inventory/loot/automap interfaces from being placed on top of other script-created windows InterfaceDontMoveOnTop=0 ;Set to 1 to display sfall built-in credits at the bottom of credits.txt contents instead of at the top diff --git a/sfall/Modules/ScriptExtender.cpp b/sfall/Modules/ScriptExtender.cpp index ce97dbdf..0d92d65f 100644 --- a/sfall/Modules/ScriptExtender.cpp +++ b/sfall/Modules/ScriptExtender.cpp @@ -25,6 +25,7 @@ #include "..\FalloutEngine\Fallout2.h" #include "..\InputFuncs.h" #include "..\Logging.h" +#include "..\SimplePatch.h" #include "..\Version.h" #include "..\Utils.h" #include "BarBoxes.h" @@ -722,7 +723,10 @@ void ScriptExtender::init() { SafeWrite8(0x4C9F13, idle); } modifiedIni = GetConfigInt("Main", "ModifiedIni", 0); - + + // increase the processing limit of proto_ptr_ engine function + SimplePatch(0x4A21B3, "Misc", "ProtoProcessingLimit", 512, 512, 16384); + arraysBehavior = GetConfigInt("Misc", "arraysBehavior", 1); if (arraysBehavior > 0) { arraysBehavior = 1; // only 1 and 0 allowed at this time