69382a95f775 — Laurens Holst 6 years ago
Face/FaceEdge: More precise pixel alignment.

So that for adjacent polygons we never draw a pixel twice.
2 files changed, 7 insertions(+), 7 deletions(-)

M src/Face.asm
M src/FaceEdge.asm
M src/Face.asm +2 -2
@@ 96,12 96,12 @@ Face_Render: PROC
 	bit 0,(ix + Face.hasX)
 	jr nz,HasX
 	set 0,(ix + Face.hasX)
-	ld (ix + Face.x),d
+	ld (ix + Face.x),e
 	ld (ix + Face.z),b
 	ret
 HasX:
 	res 0,(ix + Face.hasX)
-	ld e,(ix + Face.x)
+	ld d,(ix + Face.x)
 	ld a,(ix + Face.z)
 	add a,b
 	rr a

          
M src/FaceEdge.asm +5 -5
@@ 178,19 178,19 @@ NoOverflow:
 ; hl = span buffer (l is insignificant, assumed 0)
 ; iy = this
 FaceEdge_RenderLeft: PROC
-	ld d,(ix + FaceEdge.x)
+	ld e,(ix + FaceEdge.x)
 	ld b,(ix + FaceEdge.z)
-	ld a,d
+	ld a,e
 	sub (ix + FaceEdge.stepx)
-	ld e,a
+	ld d,a
 	ld a,(ix + FaceEdge.error)
 	add a,(ix + FaceEdge.dx)
 	jr nc,NoOverflow
-	dec e
+	dec d
 	sub (ix + FaceEdge.dy)
 NoOverflow:
 	ld (ix + FaceEdge.error),a
-	ld (ix + FaceEdge.x),e
+	ld (ix + FaceEdge.x),d
 	push ix
 	ld a,(ix + FaceEdge.face)
 	ld c,(ix + FaceEdge.face + 1)