mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-02-04 20:56:14 +00:00
Expose FillItemRoulette hook for Lua
This commit is contained in:
parent
a4a6c349b4
commit
44d5848918
3 changed files with 30 additions and 1 deletions
|
|
@ -1208,12 +1208,23 @@ static boolean K_TimingPermitsItem(kartitems_t item, const itemroulette_t *roule
|
|||
return true;
|
||||
}
|
||||
|
||||
static void K_LuaHookItemRoulette(player_t *player, itemroulette_t *const roulette)
|
||||
{
|
||||
// Lua can override the final result.
|
||||
LUA_HookFillItemRoulette(player, roulette);
|
||||
|
||||
// If somehow there's no items, add sad.
|
||||
if (roulette->itemList.len == 0) {
|
||||
K_AddItemToReel(player, roulette, KITEM_SAD);
|
||||
}
|
||||
}
|
||||
|
||||
/*--------------------------------------------------
|
||||
void K_FillItemRouletteData(const player_t *player, itemroulette_t *const roulette, boolean ringbox, boolean dryrun)
|
||||
|
||||
See header file for description.
|
||||
--------------------------------------------------*/
|
||||
void K_FillItemRouletteData(const player_t *player, itemroulette_t *const roulette, boolean ringbox, boolean dryrun)
|
||||
void K_FillItemRouletteData(player_t *player, itemroulette_t *const roulette, boolean ringbox, boolean dryrun)
|
||||
{
|
||||
UINT32 spawnChance[NUMKARTRESULTS] = {0};
|
||||
UINT32 totalSpawnChance = 0;
|
||||
|
|
@ -1261,6 +1272,7 @@ void K_FillItemRouletteData(const player_t *player, itemroulette_t *const roulet
|
|||
K_PushToRouletteItemList(roulette, presetlist[i]);
|
||||
}
|
||||
|
||||
K_LuaHookItemRoulette(player, roulette);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -1269,6 +1281,7 @@ void K_FillItemRouletteData(const player_t *player, itemroulette_t *const roulet
|
|||
if (cv_kartdebugitem.value != KITEM_NONE)
|
||||
{
|
||||
K_PushToRouletteItemList(roulette, cv_kartdebugitem.value);
|
||||
K_LuaHookItemRoulette(player, roulette);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -1282,6 +1295,8 @@ void K_FillItemRouletteData(const player_t *player, itemroulette_t *const roulet
|
|||
{
|
||||
K_PushToRouletteItemList(roulette, K_KartItemReelSpecialEnd[i]);
|
||||
}
|
||||
|
||||
K_LuaHookItemRoulette(player, roulette);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
@ -1292,6 +1307,7 @@ void K_FillItemRouletteData(const player_t *player, itemroulette_t *const roulet
|
|||
K_PushToRouletteItemList(roulette, K_KartItemReelBoss[i]);
|
||||
}
|
||||
|
||||
K_LuaHookItemRoulette(player, roulette);
|
||||
return;
|
||||
}
|
||||
else if (K_TimeAttackRules() == true)
|
||||
|
|
@ -1358,6 +1374,8 @@ void K_FillItemRouletteData(const player_t *player, itemroulette_t *const roulet
|
|||
}
|
||||
}
|
||||
|
||||
K_LuaHookItemRoulette(player, roulette);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -1366,6 +1384,7 @@ void K_FillItemRouletteData(const player_t *player, itemroulette_t *const roulet
|
|||
if (K_ForcedSPB(player, roulette) == true)
|
||||
{
|
||||
K_AddItemToReel(player, roulette, KITEM_SPB);
|
||||
K_LuaHookItemRoulette(player, roulette);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -1390,6 +1409,7 @@ void K_FillItemRouletteData(const player_t *player, itemroulette_t *const roulet
|
|||
// singleItem = KITEM_SAD by default,
|
||||
// so it will be used when all items are turned off.
|
||||
K_AddItemToReel(player, roulette, singleItem);
|
||||
K_LuaHookItemRoulette(player, roulette);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -1745,6 +1765,8 @@ void K_FillItemRouletteData(const player_t *player, itemroulette_t *const roulet
|
|||
|
||||
totalSpawnChance--;
|
||||
}
|
||||
|
||||
K_LuaHookItemRoulette(player, roulette);
|
||||
}
|
||||
|
||||
/*--------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -80,6 +80,7 @@ automatically.
|
|||
X (PlayerCmd),/* building the player's ticcmd struct */\
|
||||
X (VoteThinker),/* Y_VoteTicker */\
|
||||
X (PreFillItemRoulette),/* K_FillItemRouletteData, before special conditions but after roulette speed calc */\
|
||||
X (FillItemRoulette),/* K_FillItemRouletteData, right at the end */\
|
||||
|
||||
#define STRING_HOOK_LIST(X) \
|
||||
X (SpecialExecute),\
|
||||
|
|
@ -148,6 +149,7 @@ void LUA_HookPlayerQuit(player_t *, kickreason_t);
|
|||
int LUA_HookViewpointSwitch(player_t *player, player_t *newdisplayplayer, boolean forced);
|
||||
int LUA_HookSeenPlayer(player_t *player, player_t *seenfriend);
|
||||
int LUA_HookPreFillItemRoulette(player_t *player, itemroulette_t *const roulette, boolean ringbox);
|
||||
int LUA_HookFillItemRoulette(player_t *player, itemroulette_t *const roulette);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
|
|
|
|||
|
|
@ -1039,4 +1039,9 @@ int LUA_HookPreFillItemRoulette(player_t *player, itemroulette_t *const roulette
|
|||
return roulette_hook(player, roulette, ringbox, HOOK(PreFillItemRoulette), res_true);
|
||||
}
|
||||
|
||||
int LUA_HookFillItemRoulette(player_t *player, itemroulette_t *const roulette)
|
||||
{
|
||||
return roulette_hook(player, roulette, false, HOOK(FillItemRoulette), res_true);
|
||||
}
|
||||
|
||||
boolean hook_cmd_running = false;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue