# HG changeset patch # User Wuzzy # 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;