diff --git a/src/p_mobj.c b/src/p_mobj.c index 49d5d16b6..75d10d99f 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -3862,7 +3862,7 @@ void P_PrecipThinker(precipmobj_t *mobj) // Reset to ceiling! P_SetPrecipMobjState(mobj, mobj->info->spawnstate); mobj->z = (flip) ? (mobj->floorz) : (mobj->ceilingz); - mobj->momz = -mobj->info->speed; + mobj->momz = FixedMul(-mobj->info->speed, mapobjectscale); mobj->precipflags &= ~PCF_SPLASH; R_ResetPrecipitationMobjInterpolationState(mobj); } @@ -10411,7 +10411,7 @@ static precipmobj_t *P_SpawnPrecipMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype mobj->ceilingrover = NULL; mobj->z = z; - mobj->momz = -info->speed; + mobj->momz = FixedMul(-info->speed, mapobjectscale); if (info->speed < 0) { diff --git a/src/p_spec.c b/src/p_spec.c index 2ca329052..0302f7519 100644 --- a/src/p_spec.c +++ b/src/p_spec.c @@ -1854,7 +1854,7 @@ void P_SwitchWeather(preciptype_t newWeather) precipmobj->sprite = precipmobj->state->sprite; precipmobj->frame = precipmobj->state->frame; - precipmobj->momz = -mobjinfo[swap].speed; + precipmobj->momz = FixedMul(-mobjinfo[swap].speed, mapobjectscale); precipmobj->precipflags &= ~(PCF_INVISIBLE|PCF_FLIP); if (precipmobj->momz > 0)