Merge branch 'jartha/fix-stone-shoe-reverse-grav' into 'master'

Fix Stone Shoe in reverse gravity

See merge request kart-krew-dev/ring-racers-internal!2679
This commit is contained in:
Oni VelocitOni 2025-07-15 03:08:12 +00:00
commit 23b4b83c7c
2 changed files with 10 additions and 3 deletions

View file

@ -230,7 +230,7 @@ private:
if (P_IsObjectOnGround(this))
{
momz = 32 * mapobjectscale;
momz = flip(32 * mapobjectscale);
bouncing(true);
voice(sfx_s3k5f);
P_StartQuakeFromMobj(5, 40 * scale(), 512 * scale(), this);
@ -271,6 +271,11 @@ private:
follow()->player->stonedrag = dist > minDist();
sprzoff(30 * scale());
if (is_flipped() != follow()->is_flipped())
{
K_FlipFromObject(this, follow());
}
}
void move_chain()
@ -292,6 +297,7 @@ private:
while (Mobj::valid(node))
{
node->move_origin({p, pz});
K_FlipFromObject(node, this);
node->sprzoff(sprzoff());
// Let chain flicker like shoe does

View file

@ -1095,7 +1095,7 @@ fixed_t P_GetMobjGravity(mobj_t *mo)
wasflip = (mo->eflags & MFE_VERTICALFLIP) != 0;
if (mo->type != MT_SPINFIRE)
if (mo->type != MT_SPINFIRE && mo->type != MT_STONESHOE)
mo->eflags &= ~MFE_VERTICALFLIP;
if (mo->subsector->sector->ffloors) // Check for 3D floor gravity too.
@ -1307,7 +1307,7 @@ fixed_t P_GetMobjGravity(mobj_t *mo)
gravityadd *= 2;
break;
case MT_STONESHOE:
gravityadd *= 4;
gravityadd = -4 * abs(gravityadd) * P_MobjFlip(mo);
break;
default:
break;
@ -15514,6 +15514,7 @@ boolean P_MobjCanChangeFlip(mobj_t *mobj)
case MT_SHRINK_CHAIN:
case MT_SHRINK_LASER:
case MT_SHRINK_PARTICLE:
case MT_STONESHOE:
return false;
default: