# HG changeset patch # User nemo # Date 1312219741 14400 # Node ID f7ec6e5ad0546c94505918abfe95d22a26a4d372 # Parent fef4564392380467f048281e1a90bb2b002a55b7 add getter for effects. untested. diff -r fef456439238 -r f7ec6e5ad054 hedgewars/uScript.pas --- a/hedgewars/uScript.pas Mon Aug 01 10:08:02 2011 +0400 +++ b/hedgewars/uScript.pas Mon Aug 01 13:29:01 2011 -0400 @@ -986,11 +986,28 @@ LuaError('Lua: Wrong number of parameters passed to SetEffect!') else begin gear := GearByUID(lua_tointeger(L, 1)); - if gear <> nil then + if (gear <> nil) and (gear^.Hedgehog <> nil) then gear^.Hedgehog^.Effects[THogEffect(lua_tointeger(L, 2))]:= lua_toboolean(L, 3); end; lc_seteffect := 0; end; +function lc_geteffect(L : Plua_State) : LongInt; Cdecl; +var gear : PGear; +begin + if lua_gettop(L) <> 2 then + begin + LuaError('Lua: Wrong number of parameters passed to GetEffect!'); + end + else + begin + gear:= GearByUID(lua_tointeger(L, 1)); + if (gear <> nil) and (gear^.Hedgehog <> nil) then + lua_pushboolean(L, gear^.Hedgehog^.Effects[THogEffect(lua_tointeger(L, 2))]) + else + lua_pushboolean(L, false) + end; + lc_geteffect:= 1 +end; function lc_setstate(L : Plua_State) : LongInt; Cdecl; var gear : PGear; @@ -1840,6 +1857,7 @@ lua_register(luaState, 'SetHealth', @lc_sethealth); lua_register(luaState, 'GetHealth', @lc_gethealth); lua_register(luaState, 'SetEffect', @lc_seteffect); +lua_register(luaState, 'GetEffect', @lc_geteffect); lua_register(luaState, 'GetHogClan', @lc_gethogclan); lua_register(luaState, 'GetClanColor', @lc_getclancolor); lua_register(luaState, 'SetClanColor', @lc_setclancolor);