diff --git a/src/k_roulette.c b/src/k_roulette.c index d2e10dc60..6bec64905 100644 --- a/src/k_roulette.c +++ b/src/k_roulette.c @@ -897,19 +897,11 @@ void K_AddItemToReel(const player_t *player, itemroulette_t *const roulette, kar } /*-------------------------------------------------- - static void K_CalculateRouletteSpeed(itemroulette_t *const roulette) + void K_CalculateRouletteSpeed(itemroulette_t *const roulette) - Determines the speed for the item roulette, - adjusted for progress in the race and front - running. - - Input Arguments:- - roulette - The item roulette data to modify. - - Return:- - N/A + See header file for description. --------------------------------------------------*/ -static void K_CalculateRouletteSpeed(itemroulette_t *const roulette) +void K_CalculateRouletteSpeed(itemroulette_t *const roulette) { fixed_t frontRun = 0; fixed_t progress = 0; diff --git a/src/k_roulette.h b/src/k_roulette.h index b105f1c90..e61fb7a97 100644 --- a/src/k_roulette.h +++ b/src/k_roulette.h @@ -113,6 +113,22 @@ void K_PushToRouletteItemList(itemroulette_t *const roulette, INT32 item); void K_AddItemToReel(const player_t *player, itemroulette_t *const roulette, kartitems_t item); +/*-------------------------------------------------- + void K_CalculateRouletteSpeed(itemroulette_t *const roulette) + + Determines the speed for the item roulette, + adjusted for progress in the race and front + running. + + Input Arguments:- + roulette - The item roulette data to modify. + + Return:- + N/A +--------------------------------------------------*/ + +void K_CalculateRouletteSpeed(itemroulette_t *const roulette); + /*-------------------------------------------------- INT32 K_KartGetBattleOdds(const player_t *player, itemroulette_t *const roulette, UINT8 pos, kartitems_t item); diff --git a/src/lua_baselib.c b/src/lua_baselib.c index f08435037..7070be288 100644 --- a/src/lua_baselib.c +++ b/src/lua_baselib.c @@ -4398,6 +4398,19 @@ static int lib_kGetSlotOffset(lua_State *L) return 1; } +static int lib_kCalculateRouletteSpeed(lua_State *L) +{ + player_t *player = *((player_t **)luaL_checkudata(L, 1, META_PLAYER)); + + NOHUD + INLEVEL + if (!player) + return LUA_ErrInvalid(L, "player_t"); + + K_CalculateRouletteSpeed(&player->itemRoulette); + return 0; +} + static int lib_kWipeItemsInReel(lua_State *L) { player_t *player = NULL; @@ -4850,6 +4863,7 @@ static luaL_Reg lib[] = { {"K_DenyShieldOdds", lib_kDenyShieldOdds}, {"K_GetRouletteOffset", lib_kGetRouletteOffset}, {"K_GetSlotOffset", lib_kGetSlotOffset}, + {"K_CalculateRouletteSpeed", lib_kCalculateRouletteSpeed}, // These are not real functions in k_roulette, but they allow // encapsulation on how the scripter interacts with the item reel. {"K_WipeItemsInReel", lib_kWipeItemsInReel},