diff --git a/src/k_kart.c b/src/k_kart.c index 589d0ecf7..5c39a687f 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -3401,58 +3401,64 @@ void K_SpawnWaterRunParticles(mobj_t *mobj) y2 = y2 + P_ReturnThrustY(mobj, forwardangle, playerVisualRadius); // Left - // underlay - water = P_SpawnMobj(x1, y1, - ((mobj->eflags & MFE_VERTICALFLIP) ? mobj->waterbottom - FixedMul(mobjinfo[MT_WATERTRAILUNDERLAY].height, mobj->scale) : mobj->watertop), MT_WATERTRAILUNDERLAY); - water->angle = forwardangle - ANGLE_180 - ANGLE_22h; - water->destscale = trailScale; - water->momx = mobj->momx; - water->momy = mobj->momy; - water->momz = mobj->momz; - P_SetScale(water, trailScale); - P_SetMobjState(water, curUnderlayFrame); - P_SetTarget(&water->owner, mobj); - water->renderflags |= RF_REDUCEVFX; + if (!mobj->player || mobj->player->aizdriftstrat <= 0) + { + // underlay + water = P_SpawnMobj(x1, y1, + ((mobj->eflags & MFE_VERTICALFLIP) ? mobj->waterbottom - FixedMul(mobjinfo[MT_WATERTRAILUNDERLAY].height, mobj->scale) : mobj->watertop), MT_WATERTRAILUNDERLAY); + water->angle = forwardangle - ANGLE_180 - ANGLE_22h; + water->destscale = trailScale; + water->momx = mobj->momx; + water->momy = mobj->momy; + water->momz = mobj->momz; + P_SetScale(water, trailScale); + P_SetMobjState(water, curUnderlayFrame); + P_SetTarget(&water->owner, mobj); + water->renderflags |= RF_REDUCEVFX; - // overlay - water = P_SpawnMobj(x1, y1, - ((mobj->eflags & MFE_VERTICALFLIP) ? mobj->waterbottom - FixedMul(mobjinfo[MT_WATERTRAIL].height, mobj->scale) : mobj->watertop), MT_WATERTRAIL); - water->angle = forwardangle - ANGLE_180 - ANGLE_22h; - water->destscale = trailScale; - water->momx = mobj->momx; - water->momy = mobj->momy; - water->momz = mobj->momz; - P_SetScale(water, trailScale); - P_SetMobjState(water, curOverlayFrame); - P_SetTarget(&water->owner, mobj); - water->renderflags |= RF_REDUCEVFX; + // overlay + water = P_SpawnMobj(x1, y1, + ((mobj->eflags & MFE_VERTICALFLIP) ? mobj->waterbottom - FixedMul(mobjinfo[MT_WATERTRAIL].height, mobj->scale) : mobj->watertop), MT_WATERTRAIL); + water->angle = forwardangle - ANGLE_180 - ANGLE_22h; + water->destscale = trailScale; + water->momx = mobj->momx; + water->momy = mobj->momy; + water->momz = mobj->momz; + P_SetScale(water, trailScale); + P_SetMobjState(water, curOverlayFrame); + P_SetTarget(&water->owner, mobj); + water->renderflags |= RF_REDUCEVFX; + } // Right - // Underlay - water = P_SpawnMobj(x2, y2, - ((mobj->eflags & MFE_VERTICALFLIP) ? mobj->waterbottom - FixedMul(mobjinfo[MT_WATERTRAILUNDERLAY].height, mobj->scale) : mobj->watertop), MT_WATERTRAILUNDERLAY); - water->angle = forwardangle - ANGLE_180 + ANGLE_22h; - water->destscale = trailScale; - water->momx = mobj->momx; - water->momy = mobj->momy; - water->momz = mobj->momz; - P_SetScale(water, trailScale); - P_SetMobjState(water, curUnderlayFrame); - P_SetTarget(&water->owner, mobj); - water->renderflags |= RF_REDUCEVFX; + if (!mobj->player || mobj->player->aizdriftstrat >= 0) + { + // Underlay + water = P_SpawnMobj(x2, y2, + ((mobj->eflags & MFE_VERTICALFLIP) ? mobj->waterbottom - FixedMul(mobjinfo[MT_WATERTRAILUNDERLAY].height, mobj->scale) : mobj->watertop), MT_WATERTRAILUNDERLAY); + water->angle = forwardangle - ANGLE_180 + ANGLE_22h; + water->destscale = trailScale; + water->momx = mobj->momx; + water->momy = mobj->momy; + water->momz = mobj->momz; + P_SetScale(water, trailScale); + P_SetMobjState(water, curUnderlayFrame); + P_SetTarget(&water->owner, mobj); + water->renderflags |= RF_REDUCEVFX; - // Overlay - water = P_SpawnMobj(x2, y2, - ((mobj->eflags & MFE_VERTICALFLIP) ? mobj->waterbottom - FixedMul(mobjinfo[MT_WATERTRAIL].height, mobj->scale) : mobj->watertop), MT_WATERTRAIL); - water->angle = forwardangle - ANGLE_180 + ANGLE_22h; - water->destscale = trailScale; - water->momx = mobj->momx; - water->momy = mobj->momy; - water->momz = mobj->momz; - P_SetScale(water, trailScale); - P_SetMobjState(water, curOverlayFrame); - P_SetTarget(&water->owner, mobj); - water->renderflags |= RF_REDUCEVFX; + // Overlay + water = P_SpawnMobj(x2, y2, + ((mobj->eflags & MFE_VERTICALFLIP) ? mobj->waterbottom - FixedMul(mobjinfo[MT_WATERTRAIL].height, mobj->scale) : mobj->watertop), MT_WATERTRAIL); + water->angle = forwardangle - ANGLE_180 + ANGLE_22h; + water->destscale = trailScale; + water->momx = mobj->momx; + water->momy = mobj->momy; + water->momz = mobj->momz; + P_SetScale(water, trailScale); + P_SetMobjState(water, curOverlayFrame); + P_SetTarget(&water->owner, mobj); + water->renderflags |= RF_REDUCEVFX; + } if (!S_SoundPlaying(mobj, sfx_s3kdbs)) {