summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/map/script-fun.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/map/script-fun.cpp b/src/map/script-fun.cpp
index 02aefbb..e1866bc 100644
--- a/src/map/script-fun.cpp
+++ b/src/map/script-fun.cpp
@@ -286,7 +286,7 @@ void builtin_callsub(ScriptState *st)
static
void builtin_return(ScriptState *st)
{
- if (!(st->stack->stack_datav[st->defsp - 1].is<ScriptDataRetInfo>()))
+ if (st->defsp < 1 || !(st->stack->stack_datav[st->defsp - 1].is<ScriptDataRetInfo>()))
{
dumb_ptr<npc_data> nd = map_id_is_npc(st->oid);
if(nd)
@@ -323,7 +323,7 @@ void builtin_next(ScriptState *st)
static
void builtin_close(ScriptState *st)
{
- if (st->stack->stack_datav[st->defsp - 1].is<ScriptDataRetInfo>())
+ if (st->defsp >= 1 && st->stack->stack_datav[st->defsp - 1].is<ScriptDataRetInfo>())
{
dumb_ptr<npc_data> nd = map_id_is_npc(st->oid);
if(nd)
@@ -2312,7 +2312,7 @@ void builtin_getgmlevel(ScriptState *st)
static
void builtin_end(ScriptState *st)
{
- if (st->stack->stack_datav[st->defsp - 1].is<ScriptDataRetInfo>())
+ if (st->defsp >= 1 && st->stack->stack_datav[st->defsp - 1].is<ScriptDataRetInfo>())
{
dumb_ptr<npc_data> nd = map_id_is_npc(st->oid);
if(nd)