mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Fix ring counter desync when whipping/bailing while attracting rings
This commit is contained in:
parent
3d5e60241c
commit
9222bfc5dd
1 changed files with 12 additions and 2 deletions
|
|
@ -3510,9 +3510,19 @@ void A_AttractChase(mobj_t *actor)
|
|||
|
||||
if (actor->extravalue1 && actor->type != MT_EMERALD) // SRB2Kart
|
||||
{
|
||||
if (!actor->target || P_MobjWasRemoved(actor->target) || !actor->target->player
|
||||
|| actor->target->player->baildrop || actor->target->player->bailcharge || actor->target->player->defenseLockout > PUNISHWINDOW)
|
||||
// Screwed this up for staffghosts, so have a mess.
|
||||
// 1. Insta-Whip's extended punish window used to delete flingrings off you while they were attracting
|
||||
// 2. ALL conditions that deleted flingrings off you didn't decrement pickuprings, desyncing your ring count
|
||||
boolean stale = (!actor->target || P_MobjWasRemoved(actor->target) || !actor->target->player);
|
||||
|
||||
boolean legacy_blocked = (actor->target->player->baildrop || actor->target->player->bailcharge || actor->target->player->defenseLockout > PUNISHWINDOW);
|
||||
boolean new_blocked = (actor->target->player->baildrop || actor->target->player->bailcharge);
|
||||
boolean blocked = (G_CompatLevel(0x0010) ? legacy_blocked : new_blocked);
|
||||
if (stale || blocked)
|
||||
{
|
||||
if (!G_CompatLevel(0x0010) && !stale)
|
||||
actor->target->player->pickuprings--;
|
||||
|
||||
P_RemoveMobj(actor);
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue