Added ProtoProcessingLimit option to address some glitches with scripts that will process a large number of protos (#198)

This commit is contained in:
NovaRain
2018-10-04 09:44:48 +08:00
parent 96cb6c51ea
commit 569721381c
2 changed files with 11 additions and 2 deletions
+6 -1
View File
@@ -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
+4
View File
@@ -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"
@@ -723,6 +724,9 @@ void ScriptExtender::init() {
}
modifiedIni = GetConfigInt("Main", "ModifiedIni", 0);
// increase the processing limit of proto_ptr_ engine function
SimplePatch<DWORD>(0x4A21B3, "Misc", "ProtoProcessingLimit", 512, 512, 16384);
arraysBehavior = GetConfigInt("Misc", "arraysBehavior", 1);
if (arraysBehavior > 0) {
arraysBehavior = 1; // only 1 and 0 allowed at this time