From 1897fdab73d189ca4e3e96983a1e5f389ad42df9 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Fri, 28 Nov 2025 11:20:56 -0500 Subject: [PATCH] expose some item throwing related functions to lua --- src/lua_baselib.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/lua_baselib.c b/src/lua_baselib.c index 29e41d0ec..44c561de9 100644 --- a/src/lua_baselib.c +++ b/src/lua_baselib.c @@ -3880,6 +3880,25 @@ static int lib_kDriftDustHandling(lua_State *L) return 0; } +static int lib_kThrowKartItem(lua_State *L) +{ + player_t *player = *((player_t **)luaL_checkudata(L, 1, META_PLAYER)); + boolean missile = luaL_checkboolean(L, 2); + mobjtype_t thingtype = luaL_checkinteger(L, 3); + INT32 defaultdir = luaL_optinteger(L, 4, 0); + INT32 altthrow = luaL_optinteger(L, 5, 0); + NOHUD + if (!player) + return LUA_ErrInvalid(L, "player_t"); + mobj_t *mo = K_ThrowKartItem(player, missile, thingtype, defaultdir, altthrow); + if (mo) + LUA_PushUserdata(L, mo, META_MOBJ); + else + lua_pushnil(L); + + return 1; +} + static int lib_kDoSneaker(lua_State *L) { player_t *player = *((player_t **)luaL_checkudata(L, 1, META_PLAYER)); @@ -3962,6 +3981,17 @@ static int lib_kKartUpdatePosition(lua_State *L) return 0; } +static int lib_kUpdateHnextList(lua_State *L) +{ + player_t *player = *((player_t **)luaL_checkudata(L, 1, META_PLAYER)); + boolean clean = lua_optboolean(L, 2); + NOHUD + if (!player) + return LUA_ErrInvalid(L, "player_t"); + K_UpdateHnextList(player, clean); + return 0; +} + static int lib_kDropItems(lua_State *L) { player_t *player = *((player_t **)luaL_checkudata(L, 1, META_PLAYER)); @@ -5433,6 +5463,7 @@ static luaL_Reg lib[] = { {"K_SpawnSparkleTrail",lib_kSpawnSparkleTrail}, {"K_SpawnWipeoutTrail",lib_kSpawnWipeoutTrail}, {"K_DriftDustHandling",lib_kDriftDustHandling}, + {"K_ThrowKartItem",lib_kThrowKartItem}, {"K_DoSneaker",lib_kDoSneaker}, {"K_DoPogoSpring",lib_kDoPogoSpring}, {"K_KillBananaChain",lib_kKillBananaChain}, @@ -5440,6 +5471,7 @@ static luaL_Reg lib[] = { {"K_FindJawzTarget",lib_kFindJawzTarget}, {"K_GetKartDriftSparkValue",lib_kGetKartDriftSparkValue}, {"K_KartUpdatePosition",lib_kKartUpdatePosition}, + {"K_UpdateHnextList",lib_kUpdateHnextList}, {"K_DropItems",lib_kDropItems}, {"K_StripItems",lib_kStripItems}, {"K_StripOther",lib_kStripOther},