mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Merge branch 'race-item-pickup-leniency' into 'master'
Item pickup leniency window See merge request KartKrew/Kart!2406
This commit is contained in:
commit
d4691b6ab4
2 changed files with 27 additions and 3 deletions
|
|
@ -275,7 +275,8 @@ static void P_ItemPop(mobj_t *actor)
|
|||
actor->extravalue1 = 0;
|
||||
|
||||
// de-solidify
|
||||
actor->flags |= MF_NOCLIPTHING;
|
||||
// (Nope! Handled in fusethink for item pickup leniency)
|
||||
// actor->flags |= MF_NOCLIPTHING;
|
||||
|
||||
// RF_DONTDRAW will flicker as the object's fuse gets
|
||||
// closer to running out (see P_FuseThink)
|
||||
|
|
@ -447,12 +448,29 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
|
|||
|
||||
statenum_t specialstate = special->state - states;
|
||||
|
||||
if (specialstate >= S_RANDOMITEM1 && specialstate <= S_RANDOMITEM12)
|
||||
if (special->fuse) // This box is respawning, but was broken very recently (see P_FuseThink)
|
||||
{
|
||||
// What was this box broken as?
|
||||
if (special->cvmem)
|
||||
K_StartItemRoulette(player, false);
|
||||
else
|
||||
K_StartItemRoulette(player, true);
|
||||
}
|
||||
else if (specialstate >= S_RANDOMITEM1 && specialstate <= S_RANDOMITEM12)
|
||||
{
|
||||
K_StartItemRoulette(player, false);
|
||||
special->cvmem = 1; // Lenient pickup should be ITEM
|
||||
}
|
||||
else
|
||||
{
|
||||
K_StartItemRoulette(player, true);
|
||||
special->cvmem = 0; // Lenient pickup should be RING
|
||||
}
|
||||
|
||||
P_ItemPop(special);
|
||||
special->fuse = TICRATE;
|
||||
|
||||
if (!special->fuse)
|
||||
special->fuse = TICRATE;
|
||||
return;
|
||||
}
|
||||
case MT_SPHEREBOX:
|
||||
|
|
|
|||
|
|
@ -9969,6 +9969,12 @@ static boolean P_FuseThink(mobj_t *mobj)
|
|||
|
||||
mobj->fuse--;
|
||||
|
||||
// Simultaneous item pickup leniency
|
||||
if (mobj->type == MT_RANDOMITEM && mobj->fuse <= TICRATE-5)
|
||||
{
|
||||
mobj->flags |= MF_NOCLIPTHING;
|
||||
}
|
||||
|
||||
if (mobj->fuse)
|
||||
return true;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue