fix grow on dashrings for real

This commit is contained in:
minenice55 2026-04-21 15:51:09 -04:00
parent 8a91fdfa43
commit 8a8466bae8
4 changed files with 15 additions and 1 deletions

View file

@ -72,7 +72,9 @@ typedef enum
PF_GAINAX = 1<<3,
PF_KICKSTARTACCEL = 1<<4, // Accessibility feature: Is accelerate in kickstart mode?
// free: 1<<5 and 1<<6
// free: 1<<5
PF_NOSCALEGRAVITY = 1<<6, // Don't scale gravity by player object scale (cleared when grounded)
PF_WANTSTOJOIN = 1<<7, // Spectator that wants to join

View file

@ -163,6 +163,8 @@ void Obj_DashRingTouch(mobj_t *ring, player_t *player)
player->carry = CR_DASHRING;
player->dashRingPullTics = DASHRING_PULL_TICS;
player->dashRingPushTics = 0;
player->pflags |= PF_NOSCALEGRAVITY;
}
static fixed_t GetPlayerDashRingZ(player_t *player, mobj_t *ring)

View file

@ -1195,6 +1195,11 @@ fixed_t P_GetMobjGravity(mobj_t *mo)
{
gravitymul = mapobjectscale;
}
if (mo->player->pflags & PF_NOSCALEGRAVITY)
{
gravitymul = mapobjectscale;
}
}
else
{

View file

@ -4324,6 +4324,11 @@ void P_PlayerThink(player_t *player)
player->typing_duration = 0;
}
if (P_IsObjectOnGround(player->mo) && (player->pflags & PF_NOSCALEGRAVITY))
{
player->pflags &= ~PF_NOSCALEGRAVITY;
}
player->pflags &= ~PF_HITFINISHLINE;
// experiment: process the drift input *before* player movement instead of after