diff --git a/src/hardware/hw_main.c b/src/hardware/hw_main.c index 67eb5d41a..25d1a93b1 100644 --- a/src/hardware/hw_main.c +++ b/src/hardware/hw_main.c @@ -687,7 +687,7 @@ static void HWR_RenderPlane(sector_t *sector, extrasubsector_t *xsub, boolean is { // Hurdler: add scrolling texture on floor/ceiling v3d->sow = (float)((pv->x / fflatsize) - flatxref + scrollx); - v3d->tow = (float)(-(pv->y / fflatsize) + flatyref - scrolly); + v3d->tow = (float)(-(pv->y / fflatsize) + flatyref + scrolly); //v3d->sow = (float)(pv->x / fflatsize); //v3d->tow = (float)(pv->y / fflatsize); diff --git a/src/p_spec.c b/src/p_spec.c index 01518d658..ef74b0ae5 100644 --- a/src/p_spec.c +++ b/src/p_spec.c @@ -5759,12 +5759,12 @@ void P_SpawnSpecials(INT32 fromnetsave) if (lines[i].flags & ML_NOKNUX) // Set offset through x and y texture offsets if NOKNUX flag is set { xoffs = sides[lines[i].sidenum[0]].textureoffset; - yoffs = sides[lines[i].sidenum[0]].rowoffset; + yoffs = -sides[lines[i].sidenum[0]].rowoffset; } else // Otherwise, set calculated offsets such that line's v1 is the apparent origin { xoffs = -lines[i].v1->x; - yoffs = -lines[i].v1->y; + yoffs = lines[i].v1->y; } for (s = -1; (s = P_FindSectorFromLineTag(lines + i, s)) >= 0 ;) diff --git a/src/r_plane.c b/src/r_plane.c index 8d24c2f7d..19bd85ad2 100644 --- a/src/r_plane.c +++ b/src/r_plane.c @@ -959,6 +959,8 @@ void R_DrawSinglePlane(visplane_t *pl) // Okay, look, don't ask me why this works, but without this setup there's a disgusting-looking misalignment with the textures. -Red const float fudge = ((1<