public void DestroyMovieLua(Movie movie) { if (luaState == null) { return; } Lua.lua_State l = (Lua.lua_State)luaState; Lua.lua_getglobal(l, "LWF"); /* -1: LWF */ if (!Lua.lua_istable(l, -1)) { Lua.lua_pop(l, 1); /* 0 */ return; } Lua.lua_getfield(l, -1, "Instances"); /* -2: LWF */ /* -1: LWF.Instances */ Lua.lua_remove(l, -2); /* -1: LWF.Instances */ if (!Lua.lua_istable(l, -1)) { Lua.lua_pop(l, 1); /* 0 */ return; } Lua.lua_getfield(l, -1, instanceIdString); /* -2: LWF.Instances */ /* -1: LWF.Instances.<instanceId> */ Lua.lua_remove(l, -2); /* -1: LWF.Instances.<instanceId> */ if (!Lua.lua_istable(l, -1)) { Lua.lua_pop(l, 1); /* 0 */ return; } Lua.lua_getfield(l, -1, "Movies"); /* -2: LWF.Instances.<instanceId> */ /* -1: LWF.Instances.<instanceId>.Movies */ Lua.lua_remove(l, -2); /* -1: LWF.Instances.<instanceId>.Movies */ if (!Lua.lua_istable(l, -1)) { Lua.lua_pop(l, 1); /* 0 */ return; } Lua.lua_pushnil(l); /* -2: LWF.Instances.<instanceId>.Movies */ /* -1: nil */ Lua.lua_setfield(l, -2, movie.iObjectId.ToString()); /* LWF.Instances.<instanceId>.Movies.<iObjectId> = nil */ /* -1: LWF.Instances.<instanceId>.Movies */ Lua.lua_pop(l, 1); /* 0 */ Luna_LWF_Movie.Destroy(l, movie); return; }
public void DestroyMovieLua(Movie movie) { if (luaState == null) { return; } Lua.lua_State l = (Lua.lua_State)luaState; Lua.lua_getglobal(l, "LWF"); /* -1: LWF */ if (!Lua.lua_istable(l, -1)) { Lua.lua_pop(l, 1); /* 0 */ return; } Lua.lua_getfield(l, -1, "Script"); /* -2: LWF */ /* -1: LWF.Script */ Lua.lua_remove(l, -2); /* -1: LWF.Script */ if (!Lua.lua_istable(l, -1)) { Lua.lua_pop(l, 1); /* 0 */ return; } Lua.lua_getfield(l, -1, name); /* -2: LWF.Script */ /* -1: LWF.Script.<name> */ Lua.lua_remove(l, -2); /* -1: LWF.Script.<name> */ if (!Lua.lua_istable(l, -1)) { Lua.lua_pop(l, 1); /* 0 */ return; } Lua.lua_getfield(l, -1, "Destroy"); /* -2: LWF.Script.<name> */ /* -1: LWF.Script.<name>.Destroy */ Lua.lua_remove(l, -2); /* -1: LWF.Script.<name>.Destroy */ if (Lua.lua_isfunction(l, -1)) { Luna_LWF_LWF.push(l, this, false); /* -2: LWF.Script.<name>.Destroy */ /* -1: LWF instance */ if (Lua.lua_pcall(l, 1, 0, 0) != 0) { Lua.lua_pop(l, 1); } /* 0 */ } Lua.lua_getglobal(l, "LWF"); /* -1: LWF */ if (!Lua.lua_istable(l, -1)) { Lua.lua_pop(l, 1); /* 0 */ return; } Lua.lua_getfield(l, -1, "Instances"); /* -2: LWF */ /* -1: LWF.Instances */ Lua.lua_remove(l, -2); /* -1: LWF.Instances */ if (!Lua.lua_istable(l, -1)) { Lua.lua_pop(l, 1); /* 0 */ return; } Lua.lua_getfield(l, -1, instanceIdString); /* -2: LWF.Instances */ /* -1: LWF.Instances.<instanceId> */ Lua.lua_remove(l, -2); /* -1: LWF.Instances.<instanceId> */ if (!Lua.lua_istable(l, -1)) { Lua.lua_pop(l, 1); /* 0 */ return; } Lua.lua_getfield(l, -1, "Movies"); /* -2: LWF.Instances.<instanceId> */ /* -1: LWF.Instances.<instanceId>.Movies */ Lua.lua_remove(l, -2); /* -1: LWF.Instances.<instanceId>.Movies */ if (!Lua.lua_istable(l, -1)) { Lua.lua_pop(l, 1); /* 0 */ return; } Lua.lua_pushnil(l); /* -2: LWF.Instances.<instanceId>.Movies */ /* -1: nil */ Lua.lua_setfield(l, -2, movie.iObjectId.ToString()); /* LWF.Instances.<instanceId>.Movies.<iObjectId> = nil */ /* -1: LWF.Instances.<instanceId>.Movies */ Lua.lua_pop(l, 1); /* 0 */ Luna_LWF_Movie.Destroy(l, movie); return; }