Browse code

(screen.c) Blending 00 only clears in accordance to sprite at addr

Devine Lu Linvega authored on 24/07/2023 02:32:41
Showing 2 changed files
... ...
@@ -307,10 +307,10 @@ JMP2r
307 307
 @update-cursor ( color addr* -- )
308 308
 
309 309
 	[ LIT2 00 -Screen/auto ] DEO
310
+	.Screen/addr DEO2
310 311
 	#40 draw-cursor
311 312
 	.Mouse/x DEI2 ,draw-cursor/x STR2
312 313
 	.Mouse/y DEI2 ,draw-cursor/y STR2
313
-	.Screen/addr DEO2
314 314
 
315 315
 @draw-cursor ( color -- )
316 316
 
... ...
@@ -49,7 +49,7 @@ screen_fill(Uint8 *layer, int x1, int y1, int x2, int y2, int color)
49 49
 static void
50 50
 screen_blit(Uint8 *layer, Uint8 *ram, Uint16 addr, int x1, int y1, int color, int flipx, int flipy, int twobpp)
51 51
 {
52
-	int v, h, width = uxn_screen.width, height = uxn_screen.height, opaque = (color % 5) || !color;
52
+	int v, h, width = uxn_screen.width, height = uxn_screen.height, opaque = (color % 5);
53 53
 	for(v = 0; v < 8; v++) {
54 54
 		Uint16 c = ram[(addr + v) & 0xffff] | (twobpp ? (ram[(addr + v + 8) & 0xffff] << 8) : 0);
55 55
 		Uint16 y = y1 + (flipy ? 7 - v : v);