Reworked the way sprites are handled under subscreen conditions

This commit is contained in:
pagefault
2005-03-25 20:41:39 +00:00
parent c6f6c48cdd
commit 0b9defee9d

View File

@@ -2552,28 +2552,31 @@ NEWSYM drawbg4linepr116b
; FillSubScr bit 0 sets to 1 if there is no subscreen present ; FillSubScr bit 0 sets to 1 if there is no subscreen present
; ms,wms,wm,ws ; ms,wms,wm,ws
; FillSubScr scadtng ; FillSubScr scadtng
NEWSYM drawsprng16b <pagefault> NEWSYM drawsprng16b
test byte[BGMS1+ebx*2],10h <pagefault> test byte[BGMS1+ebx*2],10h
jz .nosubmain <pagefault> jz .nosubmain
test byte[FillSubScr+ebx],1 <pagefault> mov edi,[CSubWinScr]
jnz near drawsprng16bt <pagefault> cmp byte[edi+ebx+4*256],0
.nosubmain <pagefault> je .nosubmain
mov ebp,[cpalval+ebx*4] <pagefault> test byte[FillSubScr+ebx],1
xor eax,eax <pagefault> jnz near drawsprng16bt
mov edi,[CMainWinScr] <pagefault> .nosubmain
test byte[FillSubScr+ebx],1 <pagefault> mov ebp,[cpalval+ebx*4]
jz .main2 <pagefault> xor eax,eax
test byte[BGMS1+ebx*2],10h <pagefault> mov edi,[CMainWinScr]
jnz .main2 <pagefault> test byte[FillSubScr+ebx],1
mov edi,[CSubWinScr] <pagefault> jz .main2
.main2 <pagefault> test byte[BGMS1+ebx*2],10h
test byte[FillSubScr+ebx],1 <pagefault> jnz .main2
jz .main <pagefault> mov edi,[CSubWinScr]
test byte[BGMS1+ebx*2],10h <pagefault> cmp byte[edi+ebx+4*256],0
jnz .main <pagefault> jne near drawsprngw16b
cmp byte[edi+ebx+4*256],0 <pagefault> .main2
jne near drawsprngw16b <pagefault> test byte[FillSubScr+ebx],1
add esi,75036*2 <pagefault> jz .main
<pagefault> test byte[BGMS1+ebx*2],10h
<pagefault> jnz .main
<pagefault> add esi,75036*2
.main .main
xor edi,edi xor edi,edi
normalsprng16b sprdrawpra16bng,sprdrawprb16bng normalsprng16b sprdrawpra16bng,sprdrawprb16bng