From bd9a15547dab82334bbeafc00c1208cbbcdf6f69 Mon Sep 17 00:00:00 2001
From: mekolat <mekolat@users.noreply.github.com>
Date: Thu, 29 Oct 2015 13:22:10 -0400
Subject: default getarg value

---
 src/map/script-fun.cpp | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

(limited to 'src/map')

diff --git a/src/map/script-fun.cpp b/src/map/script-fun.cpp
index fb9d1e3..9050189 100644
--- a/src/map/script-fun.cpp
+++ b/src/map/script-fun.cpp
@@ -224,8 +224,15 @@ void builtin_getarg(ScriptState *st)
     }
 
     int i = conv_num(st, &st->stack->stack_datav[st->defsp - 4]); // Number of arguments.
-    if (arg > i || arg < 0)
+    if (arg > i || arg < 0 || i == 0)
+    {
+        const char a = 3; // ETX
+        if (HARG(1))
+            push_copy(st->stack, st->start + 3);
+        else
+            push_str<ScriptDataStr>(st->stack, VString<1>(a));
         return;
+    }
     push_copy(st->stack, (st->defsp - 4 - i) + arg);
 }
 
@@ -4322,7 +4329,7 @@ BuiltinFunction builtin_functions[] =
     BUILTIN(callfunc, "F"_s, '\0'),
     BUILTIN(call, "F?*"_s, '.'),
     BUILTIN(callsub, "L"_s, '\0'),
-    BUILTIN(getarg, "i"_s, '.'),
+    BUILTIN(getarg, "i?"_s, '.'),
     BUILTIN(return, "?"_s, '\0'),
     BUILTIN(void, "?*"_s, '\0'),
     BUILTIN(next, ""_s, '\0'),
-- 
cgit v1.2.3-70-g09d2