# HG changeset patch
# User Wuzzy <almikes@aol.com>
# Date 1493312941 -7200
# Node ID a775a61e02abcc5c46dd6721542ad6bcb2583333
# Parent  81ab841a0da5ea59c55674a31bc9f7b8bacb58cd
Lua: Fix HideHog causing engine crash when provided with invalid gear ID or hog was hidden

diff -r 81ab841a0da5 -r a775a61e02ab ChangeLog.txt
--- a/ChangeLog.txt	Thu Apr 27 16:29:23 2017 +0200
+++ b/ChangeLog.txt	Thu Apr 27 19:09:01 2017 +0200
@@ -249,6 +249,7 @@
  + New variable: AmmoTypeMax -- Maximum ammo type ID (useful to iterate through all ammo types, starting by 0)
  + Locale library: loc_noop -- Mark string for translation but don't translate it
  + Animate library: AnimInit([startAnimating]) -- New parameter startAnimating: if true, will start game in cinematic mode with most controls disabled. Must play an animation after that
+ * Fixed call: HideHog(gear) -- Fix crash when gear is invalid. Returns true on success or false otherwise
  * Removed call: SetAmmoStore -- Old undocumented function of questional use, has never been used
 
 0.9.21 -> 0.9.22
diff -r 81ab841a0da5 -r a775a61e02ab hedgewars/uScript.pas
--- a/hedgewars/uScript.pas	Thu Apr 27 16:29:23 2017 +0200
+++ b/hedgewars/uScript.pas	Thu Apr 27 19:09:01 2017 +0200
@@ -2541,9 +2541,15 @@
     if CheckLuaParamCount(L, 1, 'HideHog', 'gearUid') then
         begin
         gear:= GearByUID(Trunc(lua_tonumber(L, 1)));
-        HideHog(gear^.hedgehog)
+        if (gear <> nil) and (gear^.hedgehog <> nil) then
+            begin
+            HideHog(gear^.hedgehog);
+            lua_pushboolean(L, true);
+            end
+        else
+            lua_pushboolean(L, false);
         end;
-    lc_hidehog := 0;
+    lc_hidehog := 1;
 end;
 
 function lc_restorehog(L: Plua_State): LongInt; Cdecl;