6c02ba6f25e0 — Laurens Holst 6 years ago
Edge/FaceEdge: Remove some code duplication.
2 files changed, 18 insertions(+), 36 deletions(-)

M src/Edge.asm
M src/FaceEdge.asm
M src/Edge.asm +9 -18
@@ 65,6 65,15 @@ NoSwap:
 	ld a,e
 	sub l
 	jr c,Left
+Right:
+	ld (ix + Edge.super.render),Edge_Render & 0FFH
+	ld (ix + Edge.super.render + 1),Edge_Render >> 8
+	jr Continue
+Left:
+	neg
+	ld (ix + Edge.super.render),Edge_RenderLeft & 0FFH
+	ld (ix + Edge.super.render + 1),Edge_RenderLeft >> 8
+Continue:
 	ld e,a
 	call Math_Divide8x8
 	ld (ix + Edge.stepx),a

          
@@ 73,24 82,6 @@ NoSwap:
 	srl c
 	sbc a,c
 	ld (ix + Edge.error),a
-	ld (ix + Edge.super.render),Edge_Render & 0FFH
-	ld (ix + Edge.super.render + 1),Edge_Render >> 8
-	pop iy
-	ld e,h
-	call Rasterizer_Add_IY
-	ret
-Left:
-	neg
-	ld e,a
-	call Math_Divide8x8
-	ld (ix + Edge.stepx),a
-	ld (ix + Edge.dx),b
-	xor a
-	srl c
-	sbc a,c
-	ld (ix + Edge.error),a
-	ld (ix + Edge.super.render),Edge_RenderLeft & 0FFH
-	ld (ix + Edge.super.render + 1),Edge_RenderLeft >> 8
 	pop iy
 	ld e,h
 	call Rasterizer_Add_IY

          
M src/FaceEdge.asm +9 -18
@@ 65,6 65,15 @@ NoSwap:
 	ld a,e
 	sub l
 	jr c,Left
+Right:
+	ld (ix + FaceEdge.super.render),FaceEdge_Render & 0FFH
+	ld (ix + FaceEdge.super.render + 1),FaceEdge_Render >> 8
+	jr Continue
+Left:
+	neg
+	ld (ix + FaceEdge.super.render),FaceEdge_RenderLeft & 0FFH
+	ld (ix + FaceEdge.super.render + 1),FaceEdge_RenderLeft >> 8
+Continue:
 	ld e,a
 	call Math_Divide8x8
 	ld (ix + FaceEdge.stepx),a

          
@@ 73,24 82,6 @@ NoSwap:
 	srl c
 	sbc a,c
 	ld (ix + FaceEdge.error),a
-	ld (ix + FaceEdge.super.render),FaceEdge_Render & 0FFH
-	ld (ix + FaceEdge.super.render + 1),FaceEdge_Render >> 8
-	pop iy
-	ld e,h
-	call Rasterizer_Add_IY
-	ret
-Left:
-	neg
-	ld e,a
-	call Math_Divide8x8
-	ld (ix + FaceEdge.stepx),a
-	ld (ix + FaceEdge.dx),b
-	xor a
-	srl c
-	sbc a,c
-	ld (ix + FaceEdge.error),a
-	ld (ix + FaceEdge.super.render),FaceEdge_RenderLeft & 0FFH
-	ld (ix + FaceEdge.super.render + 1),FaceEdge_RenderLeft >> 8
 	pop iy
 	ld e,h
 	call Rasterizer_Add_IY