Cleanup itemroulette
This commit is contained in:
parent
e95faf8b55
commit
1385692e83
10 changed files with 35 additions and 42 deletions
|
|
@ -6192,7 +6192,7 @@ static void Got_Cheat(UINT8 **cp, INT32 playernum)
|
|||
K_StripItems(player);
|
||||
|
||||
// Cancel roulette if rolling
|
||||
player->itemroulette = KROULETTE_DISABLED;
|
||||
player->itemroulette = 0;
|
||||
|
||||
player->itemtype = item;
|
||||
player->itemamount = amt;
|
||||
|
|
|
|||
|
|
@ -137,17 +137,6 @@ typedef enum
|
|||
IF_HOLDREADY = 1<<3, // Hold button-style item is ready to activate
|
||||
} itemflags_t;
|
||||
|
||||
typedef enum {
|
||||
KROULETTE_DISABLED,
|
||||
KROULETTE_ACTIVE,
|
||||
} kartroulettestate_t;
|
||||
|
||||
typedef enum {
|
||||
KROULETTETYPE_NORMAL,
|
||||
KROULETTETYPE_KARMA,
|
||||
KROULETTETYPE_EGGMAN,
|
||||
} kartroulettetype_t;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
KSHIELD_NONE = 0,
|
||||
|
|
|
|||
|
|
@ -1545,11 +1545,7 @@ struct int_const_s const INT_CONST[] = {
|
|||
{"KSHIELD_FLAME",KSHIELD_FLAME},
|
||||
{"NUMKARTSHIELDS",NUMKARTSHIELDS},
|
||||
|
||||
// kartroulettestate_t
|
||||
{"KROULETTE_DISABLED",KROULETTE_DISABLED},
|
||||
{"KROULETTE_ACTIVE",KROULETTE_ACTIVE},
|
||||
|
||||
// kartroulettetype_t
|
||||
// kartroulettetype_e
|
||||
{"KROULETTETYPE_NORMAL",KROULETTETYPE_NORMAL},
|
||||
{"KROULETTETYPE_KARMA",KROULETTETYPE_KARMA},
|
||||
{"KROULETTETYPE_EGGMAN",KROULETTETYPE_EGGMAN},
|
||||
|
|
|
|||
|
|
@ -2806,8 +2806,8 @@ void G_PlayerReborn(INT32 player, boolean betweenmaps)
|
|||
// SRB2kart
|
||||
if (betweenmaps || leveltime <= starttime || spectator == true)
|
||||
{
|
||||
itemroulette = KROULETTE_DISABLED;
|
||||
previtemroulette = KROULETTE_DISABLED;
|
||||
itemroulette = 0;
|
||||
previtemroulette = 0;
|
||||
roulettetype = KROULETTETYPE_NORMAL;
|
||||
itemtype = 0;
|
||||
itemamount = 0;
|
||||
|
|
@ -2847,8 +2847,8 @@ void G_PlayerReborn(INT32 player, boolean betweenmaps)
|
|||
}
|
||||
else
|
||||
{
|
||||
itemroulette = (players[player].itemroulette > KROULETTE_DISABLED ? KROULETTE_ACTIVE : KROULETTE_DISABLED);
|
||||
previtemroulette = (players[player].previtemroulette > KROULETTE_DISABLED ? KROULETTE_ACTIVE : KROULETTE_DISABLED);
|
||||
itemroulette = players[player].itemroulette > 0 ? 1 : 0;
|
||||
previtemroulette = players[player].previtemroulette > 0 ? 1 : 0;
|
||||
roulettetype = players[player].roulettetype;
|
||||
|
||||
if (players[player].itemflags & IF_ITEMOUT)
|
||||
|
|
|
|||
|
|
@ -256,10 +256,7 @@ boolean K_EggItemCollide(mobj_t *t1, mobj_t *t2)
|
|||
}
|
||||
else
|
||||
{
|
||||
K_DropItems(t2->player); //K_StripItems(t2->player);
|
||||
//K_StripOther(t2->player);
|
||||
t2->player->itemroulette = KROULETTE_ACTIVE;
|
||||
t2->player->roulettetype = KROULETTETYPE_EGGMAN;
|
||||
K_StartRoulette(t2->player, KROULETTETYPE_EGGMAN);
|
||||
}
|
||||
|
||||
if (t2->player->flamestore && (K_GetShieldFromPlayer(t2->player) == KSHIELD_FLAME))
|
||||
|
|
|
|||
|
|
@ -337,7 +337,7 @@ void K_AwardPlayerItem(player_t *player, kartitemtype_e type, UINT8 amount, kart
|
|||
|
||||
player->itemblink = TICRATE;
|
||||
player->itemblinkmode = blink;
|
||||
player->itemroulette = KROULETTE_DISABLED; // Since we're done, clear the roulette number
|
||||
player->itemroulette = 0; // Since we're done, clear the roulette number
|
||||
player->roulettetype = KROULETTETYPE_NORMAL; // This too
|
||||
|
||||
if (P_IsDisplayPlayer(player))
|
||||
|
|
@ -1316,7 +1316,7 @@ void K_KartItemRoulette(player_t *player, ticcmd_t *cmd)
|
|||
if (player->roulettetype == KROULETTETYPE_EGGMAN)
|
||||
{
|
||||
player->eggmanexplode = 4*TICRATE;
|
||||
player->itemroulette = KROULETTE_DISABLED;
|
||||
player->itemroulette = 0;
|
||||
player->roulettetype = KROULETTETYPE_NORMAL;
|
||||
if (P_IsDisplayPlayer(player))
|
||||
S_StartSound(NULL, sfx_itrole);
|
||||
|
|
@ -1455,6 +1455,15 @@ void K_KartItemRoulette(player_t *player, ticcmd_t *cmd)
|
|||
K_AwardPlayerResult(player, result, player->roulettetype == KROULETTETYPE_KARMA ? KITEMBLINK_KARMA : mashed ? KITEMBLINK_MASHED : KITEMBLINK_NORMAL);
|
||||
}
|
||||
|
||||
void K_StartRoulette(player_t *player, kartroulettetype_e roulettetype)
|
||||
{
|
||||
if (roulettetype == KROULETTETYPE_EGGMAN)
|
||||
K_DropItems(player);
|
||||
|
||||
player->itemroulette = 1;
|
||||
player->roulettetype = roulettetype;
|
||||
}
|
||||
|
||||
void K_SetPlayerItemCooldown(player_t *player, tic_t timer, boolean force)
|
||||
{
|
||||
if ((timer >= player->itemusecooldown) || force)
|
||||
|
|
|
|||
|
|
@ -51,6 +51,13 @@ typedef enum
|
|||
KITEMBLINK_DEBUG,
|
||||
} kartitemblink_e;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
KROULETTETYPE_NORMAL,
|
||||
KROULETTETYPE_KARMA,
|
||||
KROULETTETYPE_EGGMAN,
|
||||
} kartroulettetype_e;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
ODDS_RACE,
|
||||
|
|
@ -184,6 +191,7 @@ UINT8 K_FindUseodds(const player_t *player, fixed_t mashed, UINT32 pdis, UINT8 b
|
|||
UINT32 K_ScaleItemDistance(UINT32 distance, UINT8 numPlayers, boolean spbrush);
|
||||
INT32 K_GetRollingRouletteItem(player_t *player);
|
||||
void K_KartItemRoulette(player_t *player, ticcmd_t *cmd);
|
||||
void K_StartRoulette(player_t *player, kartroulettetype_e roulettetype);
|
||||
|
||||
void K_SetPlayerItemCooldown(player_t *player, tic_t timer, boolean force);
|
||||
|
||||
|
|
|
|||
10
src/k_kart.c
10
src/k_kart.c
|
|
@ -7285,8 +7285,8 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
|
|||
K_KartItemRoulette(player, cmd);
|
||||
|
||||
// Gain rings when roulette starts.
|
||||
if (player->itemroulette > KROULETTE_DISABLED
|
||||
&& player->previtemroulette == KROULETTE_DISABLED
|
||||
if (player->itemroulette > 0
|
||||
&& player->previtemroulette == 0
|
||||
&& player->roulettetype != KROULETTETYPE_EGGMAN)
|
||||
{
|
||||
K_AwardScaledPlayerRings(player, ASR_ITEMBOX);
|
||||
|
|
@ -9669,9 +9669,9 @@ void K_StripItems(player_t *player)
|
|||
player->itemflags &= ~IF_EGGMANOUT;
|
||||
K_UnsetItemOut(player);
|
||||
|
||||
if (!player->itemroulette || player->roulettetype != 2)
|
||||
if (!player->itemroulette || player->roulettetype != KROULETTETYPE_EGGMAN)
|
||||
{
|
||||
player->itemroulette = KROULETTE_DISABLED;
|
||||
player->itemroulette = 0;
|
||||
player->roulettetype = KROULETTETYPE_NORMAL;
|
||||
}
|
||||
|
||||
|
|
@ -9690,7 +9690,7 @@ void K_StripItems(player_t *player)
|
|||
|
||||
void K_StripOther(player_t *player)
|
||||
{
|
||||
player->itemroulette = KROULETTE_DISABLED;
|
||||
player->itemroulette = 0;
|
||||
player->roulettetype = KROULETTETYPE_NORMAL;
|
||||
|
||||
player->invincibilitytimer = 0;
|
||||
|
|
|
|||
|
|
@ -10839,7 +10839,7 @@ void A_ItemPop(void *thing)
|
|||
|
||||
if (!((gametyperules & GTR_BUMPERS) && actor->target->player->bumper <= 0) && !itembreaker)
|
||||
{
|
||||
actor->target->player->itemroulette = KROULETTE_ACTIVE;
|
||||
K_StartRoulette(actor->target->player, KROULETTETYPE_NORMAL);
|
||||
}
|
||||
else if (itembreaker)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -459,8 +459,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
|
|||
|
||||
special->target->player->karmadelay = comebacktime;
|
||||
|
||||
player->itemroulette = KROULETTE_ACTIVE;
|
||||
player->roulettetype = KROULETTETYPE_KARMA;
|
||||
K_StartRoulette(player, KROULETTETYPE_KARMA);
|
||||
}
|
||||
else if (special->target->player->karmamode == 2 && P_CanPickupItem(player, 2))
|
||||
{
|
||||
|
|
@ -495,11 +494,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
|
|||
|
||||
special->target->player->karmadelay = comebacktime;
|
||||
|
||||
K_DropItems(player); //K_StripItems(player);
|
||||
//K_StripOther(player);
|
||||
|
||||
player->itemroulette = KROULETTE_ACTIVE;
|
||||
player->roulettetype = KROULETTETYPE_EGGMAN;
|
||||
K_StartRoulette(player, KROULETTETYPE_EGGMAN);
|
||||
|
||||
if (special->target->player->eggmanblame >= 0
|
||||
&& special->target->player->eggmanblame < MAXPLAYERS
|
||||
|
|
@ -591,8 +586,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
|
|||
if (special->fuse || !P_CanPickupItem(player, 1) || ((gametyperules & GTR_BUMPERS) && player->bumper <= 0))
|
||||
return;
|
||||
|
||||
player->itemroulette = KROULETTE_ACTIVE;
|
||||
player->roulettetype = KROULETTETYPE_KARMA;
|
||||
K_StartRoulette(player, KROULETTETYPE_KARMA);
|
||||
|
||||
// Karma fireworks
|
||||
for (i = 0; i < 5; i++)
|
||||
|
|
|
|||
Loading…
Reference in a new issue