📄 newgfx.asm
字号:
sprdrawa sprdrawpra pop edx.nodrawspr add edx,8 mov esi,edx dec cl jnz near .loopobj rol byte[csprbit],1 cmp byte[csprbit],1 je near .clearcsprmem pop ebx pop esi ret.notprio mov esi,[esi+2] mov dl,[csprbit] sprdrawa sprdrawpra2 pop edx add edx,8 mov esi,edx dec cl jnz near .loopobj rol byte[csprbit],1 cmp byte[csprbit],1 je near .clearcsprmem pop ebx pop esi ret.drawspriteflipx mov bx,[esi] push edx mov ch,[esi+6] mov dl,[esi+7] and edx,03h cmp edx,[csprival] jne near .notpriof mov esi,[esi+2] mov dl,[csprbit] sprdrawaf sprdrawpra pop edx add edx,8 mov esi,edx dec cl jnz near .loopobj rol byte[csprbit],1 cmp byte[csprbit],1 je near .clearcsprmem.endobj pop ebx pop esi ret.notpriof mov esi,[esi+2] mov dl,[csprbit] sprdrawaf sprdrawpra2 pop edx add edx,8 mov esi,edx dec cl jnz near .loopobj rol byte[csprbit],1 cmp byte[csprbit],1 je near .clearcsprmem pop ebx pop esi ret.clearcsprmem xor eax,eax mov ecx,64 mov edi,sprpriodata+16 rep stosd pop ebx pop esi ret.drawsingle push esi push ebx mov edi,esi mov esi,[sprtbng+ebx*4] mov edx,ecx and edx,0FFh shl edx,3 sub edx,8 add edx,esi mov esi,edx xor ebx,ebx.loopobj2 test byte[esi+7],20h jnz near .drawspriteflipx2 mov bx,[esi] mov ch,[esi+6] mov esi,[esi+2] sprdrawa sprdrawprb sub edx,8 mov esi,edx dec cl jnz near .loopobj2 pop ebx pop esi ret.drawspriteflipx2 mov bx,[esi] mov ch,[esi+6] mov esi,[esi+2] sprdrawaf sprdrawprb sub edx,8 mov esi,edx dec cl jnz near .loopobj2 pop ebx pop esi retNEWSYM drawsprngm7h cmp byte[winbg1enval+ebx+4*256],0 jne near drawsprngm7w test dword[sprleftpr+ebx*4],80000000h jnz near .drawsingle push esi push ebx mov edi,esi mov esi,[sprtbng+ebx*4] mov edx,esi xor ebx,ebx.loopobj test byte[esi+7],20h jnz near .drawspriteflipx mov bx,[esi] push edx mov ch,[esi+6] mov dl,[esi+7] and edx,03h cmp edx,[csprival] jne near .notprio mov esi,[esi+2] mov dl,[csprbit] sprdrawa sprdrawpra pop edx.nodrawspr add edx,8 mov esi,edx dec cl jnz near .loopobj rol byte[csprbit],1 cmp byte[csprbit],1 je near .clearcsprmem pop ebx pop esi ret.notprio mov esi,[esi+2] mov dl,[csprbit] sprdrawa sprdrawpra2 pop edx add edx,8 mov esi,edx dec cl jnz near .loopobj rol byte[csprbit],1 cmp byte[csprbit],1 je near .clearcsprmem pop ebx pop esi ret.drawspriteflipx mov bx,[esi] push edx mov ch,[esi+6] mov dl,[esi+7] and edx,03h cmp edx,[csprival] jne near .notpriof mov esi,[esi+2] mov dl,[csprbit] sprdrawaf sprdrawpra pop edx add edx,8 mov esi,edx dec cl jnz near .loopobj rol byte[csprbit],1 cmp byte[csprbit],1 je near .clearcsprmem.endobj pop ebx pop esi ret.notpriof mov esi,[esi+2] mov dl,[csprbit] sprdrawaf sprdrawpra2 pop edx add edx,8 mov esi,edx dec cl jnz near .loopobj rol byte[csprbit],1 cmp byte[csprbit],1 je near .clearcsprmem pop ebx pop esi ret.clearcsprmem xor eax,eax mov ecx,64 mov edi,sprpriodata+16 rep stosd pop ebx pop esi ret.drawsingle push esi push ebx mov edi,esi mov esi,[sprtbng+ebx*4] mov edx,ecx and edx,0FFh shl edx,3 sub edx,8 add edx,esi mov esi,edx xor ebx,ebx.loopobj2 test byte[esi+7],20h jnz near .drawspriteflipx2 mov bx,[esi] mov ch,[esi+6] mov esi,[esi+2] sprdrawa sprdrawprb sub edx,8 mov esi,edx dec cl jnz near .loopobj2 pop ebx pop esi ret.drawspriteflipx2 mov bx,[esi] mov ch,[esi+6] mov esi,[esi+2] sprdrawaf sprdrawprb sub edx,8 mov esi,edx dec cl jnz near .loopobj2 pop ebx pop esi retSECTION .bssNEWSYM NGNumSpr, resb 1SECTION .textNEWSYM drawsprngw mov [NGNumSpr],cl mov ecx,[objclineptr+ebx*4] add ecx,[ngwinptr] test dword[sprleftpr+ebx*4],80000000h jnz near .drawsingle push esi push ebx mov edi,esi mov esi,[sprtbng+ebx*4] mov edx,esi xor ebx,ebx.loopobj test byte[esi+7],20h jnz near .drawspriteflipx mov bx,[esi] push edx mov dl,[esi+7] and edx,03h cmp edx,[csprival] jne near .notprio mov dh,[esi+6] mov esi,[esi+2] mov dl,[csprbit] sprdrawa sprdrawprawb pop edx.nodrawspr add edx,8 mov esi,edx dec byte[NGNumSpr] jnz near .loopobj rol byte[csprbit],1 cmp byte[csprbit],1 je near .clearcsprmem pop ebx pop esi xor ecx,ecx ret.notprio mov esi,[esi+2] mov dl,[csprbit] sprdrawa sprdrawpra2 pop edx add edx,8 mov esi,edx dec byte[NGNumSpr] jnz near .loopobj rol byte[csprbit],1 cmp byte[csprbit],1 je near .clearcsprmem pop ebx pop esi xor ecx,ecx ret.drawspriteflipx mov bx,[esi] push edx mov dl,[esi+7] and edx,03h cmp edx,[csprival] jne near .notpriof mov dh,[esi+6] mov esi,[esi+2] mov dl,[csprbit] sprdrawaf sprdrawprawb pop edx add edx,8 mov esi,edx dec byte[NGNumSpr] jnz near .loopobj rol byte[csprbit],1 cmp byte[csprbit],1 je near .clearcsprmem.endobj pop ebx pop esi xor ecx,ecx ret.notpriof mov esi,[esi+2] mov dl,[csprbit] sprdrawaf sprdrawpra2 pop edx add edx,8 mov esi,edx dec byte[NGNumSpr] jnz near .loopobj rol byte[csprbit],1 cmp byte[csprbit],1 je near .clearcsprmem pop ebx pop esi xor ecx,ecx xor ecx,ecx ret.clearcsprmem xor eax,eax mov ecx,64 mov edi,sprpriodata+16 rep stosd pop ebx pop esi ret.drawsingle push esi push ebx mov edi,esi mov esi,[sprtbng+ebx*4] xor edx,edx mov dl,[NGNumSpr] and edx,0FFh shl edx,3 sub edx,8 add edx,esi mov esi,edx xor ebx,ebx.loopobj2 test byte[esi+7],20h jnz near .drawspriteflipx2 push edx mov bx,[esi] mov dh,[esi+6] mov esi,[esi+2] sprdrawa sprdrawprbwb pop edx sub edx,8 mov esi,edx dec byte[NGNumSpr] jnz near .loopobj2 pop ebx pop esi xor ecx,ecx ret.drawspriteflipx2 push edx mov bx,[esi] mov dh,[esi+6] mov esi,[esi+2] sprdrawaf sprdrawprbwb pop edx sub edx,8 mov esi,edx dec byte[NGNumSpr] jnz near .loopobj2 pop ebx pop esi xor ecx,ecx retNEWSYM drawsprngm7w mov [NGNumSpr],cl mov ecx,[objclineptr+ebx*4] add ecx,[ngwinptr] test dword[sprleftpr+ebx*4],80000000h jnz near .drawsingle push esi push ebx mov edi,esi mov esi,[sprtbng+ebx*4] mov edx,esi xor ebx,ebx.loopobj test byte[esi+7],20h jnz near .drawspriteflipx mov bx,[esi] push edx mov dl,[esi+7] and edx,03h cmp edx,[csprival] jne near .notprio mov dh,[esi+6] mov esi,[esi+2] mov dl,[csprbit] sprdrawa sprdrawprawb pop edx.nodrawspr add edx,8 mov esi,edx dec byte[NGNumSpr] jnz near .loopobj rol byte[csprbit],1 cmp byte[csprbit],1 je near .clearcsprmem pop ebx pop esi xor ecx,ecx ret.notprio mov esi,[esi+2] mov dl,[csprbit] sprdrawa sprdrawpra2 pop edx add edx,8 mov esi,edx dec byte[NGNumSpr] jnz near .loopobj rol byte[csprbit],1 cmp byte[csprbit],1 je near .clearcsprmem pop ebx pop esi xor ecx,ecx ret.drawspriteflipx mov bx,[esi] push edx mov dl,[esi+7] and edx,03h cmp edx,[csprival] jne near .notpriof mov dh,[esi+6] mov esi,[esi+2] mov dl,[csprbit] sprdrawaf sprdrawprawb pop edx add edx,8 mov esi,edx dec byte[NGNumSpr] jnz near .loopobj rol byte[csprbit],1 cmp byte[csprbit],1 je near .clearcsprmem.endobj pop ebx pop esi xor ecx,ecx ret.notpriof mov esi,[esi+2] mov dl,[csprbit] sprdrawaf sprdrawpra2 pop edx add edx,8 mov esi,edx dec byte[NGNumSpr] jnz near .loopobj rol byte[csprbit],1 cmp byte[csprbit],1 je near .clearcsprmem pop ebx pop esi xor ecx,ecx ret.clearcsprmem xor eax,eax mov ecx,64 mov edi,sprpriodata+16 rep stosd pop ebx pop esi ret.drawsingle push esi push ebx mov edi,esi mov esi,[sprtbng+ebx*4] xor edx,edx mov dl,[NGNumSpr] and edx,0FFh shl edx,3 sub edx,8 add edx,esi mov esi,edx xor ebx,ebx.loopobj2 test byte[esi+7],20h jnz near .drawspriteflipx2 push edx mov bx,[esi] mov dh,[esi+6] mov esi,[esi+2] sprdrawa sprdrawprbwb pop edx sub edx,8 mov esi,edx dec byte[NGNumSpr] jnz near .loopobj2 pop ebx pop esi xor ecx,ecx ret.drawspriteflipx2 push edx mov bx,[esi] mov dh,[esi+6] mov esi,[esi+2] sprdrawaf sprdrawprbwb pop edx sub edx,8 mov esi,edx dec byte[NGNumSpr] jnz near .loopobj2 pop ebx pop esi xor ecx,ecx ret;*******************************************************; Prepare Sprite Priorities;*******************************************************NEWSYM makesprprtable retNEWSYM preparesprpr xor ebx,ebx mov bl,[curypos] mov eax,[sprleftpr+ebx*4] mov [sprclprio],eax cmp eax,00000001h je .single cmp eax,00000100h je .single cmp eax,00010000h je .single cmp eax,01000000h je .single mov dword[sprsingle],0 ret.single mov dword[sprsingle],1 retSECTION .bssNEWSYM sprclprio, resd 1NEWSYM sprsingle, resd 1SECTION .text
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -