diff options
Diffstat (limited to 'src/map/script-call.cpp')
-rw-r--r-- | src/map/script-call.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/map/script-call.cpp b/src/map/script-call.cpp index d54e234..7c7d4e6 100644 --- a/src/map/script-call.cpp +++ b/src/map/script-call.cpp @@ -383,6 +383,9 @@ void pop_stack(struct script_stack *stack, int start, int end) static ByteCode get_com(ScriptPointer *script) { + if (script == nullptr) + return ByteCode::NOP; + if (static_cast<uint8_t>(script->peek()) >= 0x80) { // synthetic! Does not advance pos yet. @@ -742,10 +745,16 @@ void run_func(ScriptState *st) static void run_script_main(ScriptState *st, Borrowed<const ScriptBuffer> rootscript) { + if (st == nullptr) + return; + int cmdcount = script_config.check_cmdcount; int gotocount = script_config.check_gotocount; struct script_stack *stack = st->stack; + if (stack == nullptr) + return; + st->defsp = stack->stack_datav.size(); int rerun_pos = st->scriptp.pos; |