Expose K_CalculateRouletteSpeed to Lua

This commit is contained in:
JugadorXEI 2024-10-27 16:45:29 +01:00 committed by Antonio Martinez
parent 6359cf19b7
commit 501c85a7b1
3 changed files with 33 additions and 11 deletions

View file

@ -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;

View file

@ -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);

View file

@ -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},