tend<<=1;\r
\r
// Draw tiles across screen:\r
- if (!sh)\r
+ if (!sh || !prio)\r
{\r
+ sh = (sh ? 0x80 : 0x00); // sh and low prio -> shadow\r
for (; tilex < tend; tilex++)\r
{\r
int dx, pal;\r
est->rendstatus |= PDRAW_WND_DIFF_PRIO;\r
continue;\r
}\r
- if (code==blank) continue;\r
\r
+ if (code==blank) continue;\r
dx = 8 + (tilex << 3);\r
DrawTile(~0,yshift,ymask,code,0);\r
}\r
}\r
else\r
{\r
- sh <<= 6;\r
+ sh = lflags; // sh and high prio -> no shadow (lflags to suppress warning)\r
for (; tilex < tend; tilex++)\r
{\r
int dx, pal;\r
continue;\r
}\r
\r
- if (prio) {\r
- int *zb = (int *)(est->HighCol+8+(tilex<<3));\r
- *zb++ &= 0x7f7f7f7f;\r
- *zb &= 0x7f7f7f7f;\r
- }\r
- if(code==blank) continue;\r
+ // sh and high prio -> clear shadow\r
+ int *zb = (int *)(est->HighCol+8+(tilex<<3));\r
+ *zb++ &= 0x7f7f7f7f;\r
+ *zb &= 0x7f7f7f7f;\r
\r
- sh = (sh & ~0x80) | (prio << 7);\r
+ if(code==blank) continue;\r
dx = 8 + (tilex << 3);\r
DrawTile(~0,yshift,ymask,code,0);\r
}\r
orr r4, r4, r4, lsl #16\r
mov r5, r4\r
stmia r1!, {r4,r5}\r
- b .dwloop_nor1 @ we incremeted r1 ourselves\r
+ b .dwloop_nor1 @ we incremented r1 ourselves\r
\r
.dw_shadow:\r
tst r6, #1 @ hi pri?\r