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;
|
actor->extravalue1 = 0;
|
||||||
|
|
||||||
// de-solidify
|
// 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
|
// RF_DONTDRAW will flicker as the object's fuse gets
|
||||||
// closer to running out (see P_FuseThink)
|
// 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;
|
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);
|
K_StartItemRoulette(player, false);
|
||||||
|
special->cvmem = 1; // Lenient pickup should be ITEM
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
K_StartItemRoulette(player, true);
|
K_StartItemRoulette(player, true);
|
||||||
|
special->cvmem = 0; // Lenient pickup should be RING
|
||||||
|
}
|
||||||
|
|
||||||
P_ItemPop(special);
|
P_ItemPop(special);
|
||||||
special->fuse = TICRATE;
|
|
||||||
|
if (!special->fuse)
|
||||||
|
special->fuse = TICRATE;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
case MT_SPHEREBOX:
|
case MT_SPHEREBOX:
|
||||||
|
|
|
||||||
|
|
@ -9969,6 +9969,12 @@ static boolean P_FuseThink(mobj_t *mobj)
|
||||||
|
|
||||||
mobj->fuse--;
|
mobj->fuse--;
|
||||||
|
|
||||||
|
// Simultaneous item pickup leniency
|
||||||
|
if (mobj->type == MT_RANDOMITEM && mobj->fuse <= TICRATE-5)
|
||||||
|
{
|
||||||
|
mobj->flags |= MF_NOCLIPTHING;
|
||||||
|
}
|
||||||
|
|
||||||
if (mobj->fuse)
|
if (mobj->fuse)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue