Sliptide makes waterrun particles only show on the outside of your turn

This commit is contained in:
toaster 2025-08-28 19:41:03 +01:00
parent 73c381750a
commit 06390642ac

View file

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