diff --git a/src/lua_colorlib.c b/src/lua_colorlib.c index bf9c33886c68fc7398975bee18d0bd5efc3ef719..d334052abec8c1a86252bdc208743312f7726c20 100644 --- a/src/lua_colorlib.c +++ b/src/lua_colorlib.c @@ -116,6 +116,9 @@ static int extracolormap_get(lua_State *L) extracolormap_t *exc = *((extracolormap_t **)luaL_checkudata(L, 1, META_EXTRACOLORMAP)); enum extracolormap_e field = luaL_checkoption(L, 2, NULL, extracolormap_opt); + if (!exc) + return LUA_ErrInvalid(L, "extracolormap_t"); + switch (field) { case extracolormap_red: @@ -198,6 +201,9 @@ static int extracolormap_set(lua_State *L) extracolormap_t *exc = *((extracolormap_t **)luaL_checkudata(L, 1, META_EXTRACOLORMAP)); enum extracolormap_e field = luaL_checkoption(L, 2, NULL, extracolormap_opt); + if (!exc) + return LUA_ErrInvalid(L, "extracolormap_t"); + UINT8 r = R_GetRgbaR(exc->rgba); UINT8 g = R_GetRgbaG(exc->rgba); UINT8 b = R_GetRgbaB(exc->rgba); diff --git a/src/lua_script.c b/src/lua_script.c index b0b6eeec79654768bb7aa1815800cb1afbb30c74..c63905d047dee55f0d0d552b1bb85ddad1cb213b 100644 --- a/src/lua_script.c +++ b/src/lua_script.c @@ -892,6 +892,8 @@ void LUA_InvalidateLevel(void) LUA_InvalidateUserdata(§ors[i]); LUA_InvalidateUserdata(§ors[i].lines); LUA_InvalidateUserdata(§ors[i].tags); + if (sectors[i].extra_colormap) + LUA_InvalidateUserdata(sectors[i].extra_colormap); if (sectors[i].ffloors) { for (rover = sectors[i].ffloors; rover; rover = rover->next)