mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Merge branch 'waterstep-2' into 'master'
Waterstep 2 Closes #329 and #327 See merge request KartKrew/Kart!774
This commit is contained in:
commit
90e3d01395
2 changed files with 17 additions and 4 deletions
14
src/k_kart.c
14
src/k_kart.c
|
|
@ -3445,6 +3445,8 @@ boolean K_WaterRun(mobj_t *mobj)
|
|||
|
||||
case MT_PLAYER:
|
||||
{
|
||||
fixed_t minspeed = 0;
|
||||
|
||||
if (mobj->player == NULL)
|
||||
{
|
||||
return false;
|
||||
|
|
@ -3455,11 +3457,18 @@ boolean K_WaterRun(mobj_t *mobj)
|
|||
return K_IsHoldingDownTop(mobj->player) == false;
|
||||
}
|
||||
|
||||
minspeed = 2 * K_GetKartSpeed(mobj->player, false, false); // 200%
|
||||
|
||||
if (mobj->player->speed < minspeed / 5) // 40%
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (mobj->player->invincibilitytimer
|
||||
|| mobj->player->sneakertimer
|
||||
|| mobj->player->tiregrease
|
||||
|| mobj->player->flamedash
|
||||
|| mobj->player->speed > 2 * K_GetKartSpeed(mobj->player, false, false))
|
||||
|| mobj->player->speed > minspeed)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
|
@ -10362,6 +10371,9 @@ boolean K_FastFallBounce(player_t *player)
|
|||
}
|
||||
}
|
||||
|
||||
if (player->mo->eflags & MFE_UNDERWATER)
|
||||
bounce = (117 * bounce) / 200;
|
||||
|
||||
S_StartSound(player->mo, sfx_ffbonc);
|
||||
player->mo->momz = bounce * P_MobjFlip(player->mo);
|
||||
|
||||
|
|
|
|||
|
|
@ -3222,14 +3222,15 @@ boolean P_CanRunOnWater(mobj_t *mobj, ffloor_t *rover)
|
|||
// We start water run IF we can step onto it!
|
||||
if (surfDiff <= maxStep && surfDiff >= 0)
|
||||
{
|
||||
if (ourZAng < 0)
|
||||
pslope_t *groundSlope = (flip ? mobj->subsector->sector->c_slope : mobj->subsector->sector->f_slope);
|
||||
if (groundSlope != NULL && groundSlope->zangle != 0)
|
||||
{
|
||||
fixed_t floorheight = flip ? P_GetSectorCeilingZAt(mobj->subsector->sector, mobj->x, mobj->y) : P_GetSectorFloorZAt(mobj->subsector->sector, mobj->x, mobj->y);
|
||||
fixed_t floorDiff = flip ? (floorheight - mobjbottom) : (mobjbottom - floorheight);
|
||||
if (floorDiff <= maxStep && floorDiff >= -maxStep)
|
||||
{
|
||||
// ... but NOT if going down and real floor is in range.
|
||||
// FIXME: Count solid FOFs in this check
|
||||
// ... but NOT if downward-sloping real floor is in range.
|
||||
// FIXME: Count solid FOFs in these checks
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue