mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Merge branch 'underwater-gravity-fix' into 'master'
Fix underwater gravity for Gachabom and Battle UFO tractor beam Closes #444 and #874 See merge request KartKrew/Kart!1809
This commit is contained in:
commit
52bf348d0b
2 changed files with 34 additions and 8 deletions
|
|
@ -789,7 +789,14 @@ static BlockItReturn_t PIT_CheckThing(mobj_t *thing)
|
|||
{
|
||||
fixed_t tractorHeight = 211*mapobjectscale;
|
||||
fixed_t zRange = FixedDiv(thing->z - tm.thing->z, tractorHeight);
|
||||
P_SetObjectMomZ(tm.thing, max(zRange, FRACUNIT/16), true);
|
||||
fixed_t momZ = max(zRange, FRACUNIT/16);
|
||||
|
||||
if (tm.thing->eflags & MFE_UNDERWATER)
|
||||
{
|
||||
momZ = (117 * momZ) / 200;
|
||||
}
|
||||
|
||||
P_SetObjectMomZ(tm.thing, momZ, true);
|
||||
}
|
||||
|
||||
fixed_t friction = 33*FRACUNIT/35;
|
||||
|
|
|
|||
33
src/p_mobj.c
33
src/p_mobj.c
|
|
@ -1048,6 +1048,27 @@ static void P_PlayerFlip(mobj_t *mo)
|
|||
// Flip aiming to match!
|
||||
}
|
||||
|
||||
static boolean P_UseUnderwaterGravity(mobj_t *mo)
|
||||
{
|
||||
switch (mo->type)
|
||||
{
|
||||
case MT_BANANA:
|
||||
return false;
|
||||
|
||||
case MT_GACHABOM:
|
||||
if (Obj_GachaBomWasTossed(mo))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
//
|
||||
// P_GetMobjGravity
|
||||
//
|
||||
|
|
@ -1106,7 +1127,7 @@ fixed_t P_GetMobjGravity(mobj_t *mo)
|
|||
}
|
||||
|
||||
// Less gravity underwater.
|
||||
if ((mo->eflags & MFE_UNDERWATER) && !goopgravity)
|
||||
if ((mo->eflags & MFE_UNDERWATER) && !goopgravity && P_UseUnderwaterGravity(mo))
|
||||
{
|
||||
if (mo->momz * P_MobjFlip(mo) <= 0)
|
||||
{
|
||||
|
|
@ -1234,12 +1255,8 @@ fixed_t P_GetMobjGravity(mobj_t *mo)
|
|||
gravityadd /= 2;
|
||||
break;
|
||||
case MT_GACHABOM:
|
||||
// Use normal gravity, unless if it was tossed.
|
||||
if (!Obj_GachaBomWasTossed(mo))
|
||||
{
|
||||
break;
|
||||
}
|
||||
/*FALLTHRU*/
|
||||
gravityadd = (5*gravityadd)/2;
|
||||
break;
|
||||
case MT_BANANA:
|
||||
case MT_EGGMANITEM:
|
||||
case MT_SSMINE:
|
||||
|
|
@ -7601,6 +7618,8 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
|||
mobj->rollangle -= spin;
|
||||
}
|
||||
|
||||
P_MobjCheckWater(mobj);
|
||||
|
||||
if (mobj->threshold > 0)
|
||||
mobj->threshold--;
|
||||
break;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue