From 7de76dc1300a8a242ea535be55b3e301a1675c96 Mon Sep 17 00:00:00 2001 From: JugadorXEI Date: Fri, 8 Aug 2025 02:52:24 +0200 Subject: [PATCH] Expose K_DebtStingPlayer to Lua --- src/k_kart.c | 2 +- src/lua_baselib.c | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/k_kart.c b/src/k_kart.c index e30e99399..63b5ed3e5 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -5008,7 +5008,7 @@ void K_DebtStingPlayer(player_t *player, mobj_t *source) { INT32 length = TICRATE; - if (source->player) + if (source && source->player) { length += (4 * (source->player->kartweight - player->kartweight)); } diff --git a/src/lua_baselib.c b/src/lua_baselib.c index e6563b14b..d66cc2553 100644 --- a/src/lua_baselib.c +++ b/src/lua_baselib.c @@ -4083,6 +4083,20 @@ static int lib_kExplodePlayer(lua_State *L) return 1; } +static int lib_kDebtStingPlayer(lua_State *L) +{ + player_t *player = *((player_t **)luaL_checkudata(L, 1, META_PLAYER)); + mobj_t *source = NULL; + NOHUD + INLEVEL + if (!player) + return LUA_ErrInvalid(L, "player_t"); + if (!lua_isnone(L, 2) && lua_isuserdata(L, 2)) + source = *((mobj_t **)luaL_checkudata(L, 2, META_MOBJ)); + K_DebtStingPlayer(player, source); + return 0; +} + static int lib_kTakeBumpersFromPlayer(lua_State *L) { player_t *player = *((player_t **)luaL_checkudata(L, 1, META_PLAYER)); @@ -5637,6 +5651,7 @@ static luaL_Reg lib[] = { {"K_StumblePlayer",lib_kStumblePlayer}, {"K_CheckStumble",lib_kCheckStumble}, {"K_ExplodePlayer",lib_kExplodePlayer}, + {"K_DebtStingPlayer",lib_kDebtStingPlayer}, {"K_TakeBumpersFromPlayer",lib_kTakeBumpersFromPlayer}, {"K_MineFlashScreen",lib_kMineFlashScreen}, {"K_SpawnMineExplosion",lib_kSpawnMineExplosion},