mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-02-18 03:22:35 +00:00
Allow Adventure Air Boosters to be chained with each other or dash rings
This commit is contained in:
parent
2f19582941
commit
99908c0700
3 changed files with 15 additions and 5 deletions
|
|
@ -208,6 +208,7 @@ void Obj_RainbowDashRingThink(mobj_t *mobj);
|
|||
void Obj_DashRingTouch(mobj_t *mobj, player_t *player);
|
||||
void Obj_DashRingPlayerThink(player_t *player);
|
||||
boolean Obj_DashRingPlayerHasNoGravity(player_t *player);
|
||||
boolean Obj_DashRingIsUsableByPlayer(mobj_t *mobj, player_t *player);
|
||||
|
||||
/* Adventure Dash Ring */
|
||||
void Obj_AdventureAirBoosterSetup(mobj_t *mobj, mapthing_t *mthing);
|
||||
|
|
|
|||
|
|
@ -128,7 +128,7 @@ void Obj_AdventureAirBoosterHitboxTouch(mobj_t *hitbox, player_t *player)
|
|||
fixed_t finalSpeed, playerSpeed, xPos, yPos;
|
||||
SINT8 i;
|
||||
|
||||
if (player->carry != CR_NONE || P_MobjWasRemoved(booster))
|
||||
if (P_MobjWasRemoved(booster) || !Obj_DashRingIsUsableByPlayer(booster, player))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -120,18 +120,27 @@ static boolean DashRingsAreTooClose(mobj_t *ring1, mobj_t *ring2)
|
|||
return false;
|
||||
}
|
||||
|
||||
void Obj_DashRingTouch(mobj_t *ring, player_t *player)
|
||||
boolean Obj_DashRingIsUsableByPlayer(mobj_t *ring, player_t *player)
|
||||
{
|
||||
if (player->carry != CR_NONE)
|
||||
{
|
||||
if (player->carry != CR_DASHRING) // being carried by something else
|
||||
return;
|
||||
return false;
|
||||
|
||||
if (player->dashRingPullTics > 0) // being pulled into a dash ring already
|
||||
return;
|
||||
return false;
|
||||
|
||||
if (player->dashRingPushTics > 0 && !P_MobjWasRemoved(player->mo->tracer) && DashRingsAreTooClose(player->mo->tracer, ring)) // dash ring is too close to recently used dash ring
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void Obj_DashRingTouch(mobj_t *ring, player_t *player)
|
||||
{
|
||||
if (!Obj_DashRingIsUsableByPlayer(ring, player))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
P_SetTarget(&player->mo->tracer, ring);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue