Lua: Fix HideHog causing engine crash when provided with invalid gear ID or hog was hidden
--- 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
--- 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;