diff options
| author | jacob1 <jfu614@gmail.com> | 2013-01-23 21:48:21 (GMT) |
|---|---|---|
| committer | jacob1 <jfu614@gmail.com> | 2013-01-23 21:48:21 (GMT) |
| commit | c5eecff13133bc20987ddc0a52bf133f4dd83d06 (patch) | |
| tree | cb3004debae4be382af56ec6e0113d7ef2aba717 /src/cat/LegacyLuaAPI.cpp | |
| parent | 7475a49e0b736cd9d710a674bd25dc20bc90e342 (diff) | |
| download | powder-c5eecff13133bc20987ddc0a52bf133f4dd83d06.zip powder-c5eecff13133bc20987ddc0a52bf133f4dd83d06.tar.gz | |
fix "i" argument to graphics functions.
Also, they don't overwrite the default one, you can pass in nil to tpt.element/graphics_func for the function to restore the original.
Diffstat (limited to 'src/cat/LegacyLuaAPI.cpp')
| -rw-r--r-- | src/cat/LegacyLuaAPI.cpp | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/src/cat/LegacyLuaAPI.cpp b/src/cat/LegacyLuaAPI.cpp index 5492e2e..506c910 100644 --- a/src/cat/LegacyLuaAPI.cpp +++ b/src/cat/LegacyLuaAPI.cpp @@ -671,16 +671,29 @@ int luatpt_element_func(lua_State *l) return luaL_error(l, "Invalid element"); } } + else if(lua_isnil(l, 1)) + { + int element = luaL_optint(l, 2, 0); + if(element > 0 && element < PT_NUM) + { + lua_el_func[element] = 0; + lua_el_mode[element] = 0; + } + else + { + return luaL_error(l, "Invalid element"); + } + } else return luaL_error(l, "Not a function"); return 0; } -int luacon_graphicsReplacement(GRAPHICS_FUNC_ARGS) +int luacon_graphicsReplacement(GRAPHICS_FUNC_ARGS, int i) { int cache = 0, callret; lua_rawgeti(luacon_ci->l, LUA_REGISTRYINDEX, lua_gr_func[cpart->type]); - lua_pushinteger(luacon_ci->l, 0); + lua_pushinteger(luacon_ci->l, i); lua_pushinteger(luacon_ci->l, *colr); lua_pushinteger(luacon_ci->l, *colg); lua_pushinteger(luacon_ci->l, *colb); @@ -715,7 +728,20 @@ int luatpt_graphics_func(lua_State *l) { lua_gr_func[element] = function; luacon_ren->graphicscache[element].isready = 0; - luacon_sim->elements[element].Graphics = &luacon_graphicsReplacement; + return 0; + } + else + { + return luaL_error(l, "Invalid element"); + } + } + else if (lua_isnil(l, 1)) + { + int element = luaL_optint(l, 2, 0); + if(element > 0 && element < PT_NUM) + { + lua_gr_func[element] = 0; + luacon_ren->graphicscache[element].isready = 0; return 0; } else |
