Rev 1931 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log
| Rev 1931 | Rev 1934 | ||
|---|---|---|---|
| Line 414... | Line 414... | ||
| 414 | if (j >= (y+sprhgt)) break;  | 
            414 | if (j >= (y+sprhgt)) break;  | 
          
| 415 | };  | 
            415 | };  | 
          
| 416 | } | 
            416 | } | 
          
| 417 | 417 | ||
| 418 | void emitcolorspr(int xchr, int y, int sprwid8, int sprhgt, FILE * fout)  | 
            418 | void emitcolorspr(int xchr, int y, int sprwid8, int sprhgt, FILE * fout)  | 
          
| 419 | { //coloured sprite, one row of attrchrs: (antimask, ~antipixels, ...),attr  | 
            419 | { //coloured sprite, one row of attrchrs: (mask, antipixels, ...),attr  | 
          
| 420 | BYTE b; | 
            420 | BYTE b; | 
          
| 421 | int i;  | 
            421 | int i;  | 
          
| 422 | int j;  | 
            422 | int j;  | 
          
| 423 | i = xchr;  | 
            423 | i = xchr;  | 
          
| 424 | while (1) { //chrs in row  | 
            424 | while (1) { //chrs in row  | 
          
| Line 443... | Line 443... | ||
| 443 |     i++; | 
            443 |     i++; | 
          
| 444 | if (i >= (xchr+sprwid8)) break;  | 
            444 | if (i >= (xchr+sprwid8)) break;  | 
          
| 445 | };  | 
            445 | };  | 
          
| 446 | } | 
            446 | } | 
          
| 447 | 447 | ||
| - | 448 | void emitcolorline(int xchr, int y, int sprwid8, int sprhgt, FILE * fout)  | 
          |
| - | 449 | { //for coloured line: 8 lines of pixels (no attrs)  | 
          |
| - | 450 | BYTE b; | 
          |
| - | 451 | int i;  | 
          |
| - | 452 | int j;  | 
          |
| - | 453 | j = y;  | 
          |
| - | 454 | while (1) { //lines  | 
          |
| - | 455 | fputs("\tdb ", fout);  | 
          |
| - | 456 | i = xchr;  | 
          |
| - | 457 | while (1) { //chrs in row  | 
          |
| - | 458 | b = pixrow[i][j] ^ invattr;  | 
          |
| - | 459 | fprintf(fout, "0x%x%x", b>>4, b&0x0f);  | 
          |
| - | 460 |       i++; | 
          |
| - | 461 | if (i >= (xchr+sprwid8)) break;  | 
          |
| - | 462 | fputs(",", fout);  | 
          |
| - | 463 | };  | 
          |
| - | 464 | fputs("\n", fout);  | 
          |
| - | 465 |     j++; | 
          |
| - | 466 | if (j >= (y+8)) break;  | 
          |
| - | 467 | };  | 
          |
| - | 468 | } | 
          |
| - | 469 | ||
| - | 470 | void emitattrline(int xchr, int y, int sprwid8, int sprhgt, FILE * fout)  | 
          |
| - | 471 | { | 
          |
| - | 472 | BYTE b; | 
          |
| - | 473 | int i;  | 
          |
| - | 474 | fputs("\tdb ", fout);  | 
          |
| - | 475 | i = xchr;  | 
          |
| - | 476 | while (1) { //chrs in row  | 
          |
| - | 477 | b = attrrow[i]; //0x07;  | 
          |
| - | 478 | if (invattr) b = (b&0xc0) + ((b&0x07)<<3) + ((b&0x38)>>3);  | 
          |
| - | 479 | if (forceattr) b = defaultcolor;  | 
          |
| - | 480 | fprintf(fout, "0x%x%x", b>>4, b&0x0f);  | 
          |
| - | 481 |     i++; | 
          |
| - | 482 | if (i >= (xchr+sprwid8)) break;  | 
          |
| - | 483 | fputs(",", fout);  | 
          |
| - | 484 | };  | 
          |
| - | 485 | fputs("\n", fout);  | 
          |
| - | 486 | } | 
          |
| - | 487 | ||
| 448 | void emitspry(int xchr, int y, int sprwid8, int sprhgt, FILE * fout)  | 
            488 | void emitspry(int xchr, int y, int sprwid8, int sprhgt, FILE * fout)  | 
          
| 449 | { | 
            489 | { | 
          
| 450 | BYTE b; | 
            490 | BYTE b; | 
          
| 451 | int i;  | 
            491 | int i;  | 
          
| 452 | int j;  | 
            492 | int j;  | 
          
| Line 785... | Line 825... | ||
| 785 | rowhgt = sprhgt;  | 
            825 | rowhgt = sprhgt;  | 
          
| 786 | }else if (sprformat == 'P') { //DDp palette  | 
            826 | }else if (sprformat == 'P') { //DDp palette  | 
          
| 787 | fputs("\n", fout);  | 
            827 | fputs("\n", fout);  | 
          
| 788 | putlabel(labelbuf, fout);  | 
            828 | putlabel(labelbuf, fout);  | 
          
| 789 | fputs("\n", fout);  | 
            829 | fputs("\n", fout);  | 
          
| - | 830 | rowhgt = sprhgt;  | 
          |
| 790 | i = 0;  | 
            831 | i = 0;  | 
          
| 791 | while (i < 64) { //DDp palette: %grbG11RB(low),%grbG11RB(high), шэтхЁёэ√х //color = highlow  | 
            832 | while (i < 64) { //DDp palette: %grbG11RB(low),%grbG11RB(high), шэтхЁёэ√х //color = highlow  | 
          
| 792 | color = 0; //pal = ярышЄЁр (B, G, R, 0)  | 
            833 | color = 0; //pal = ярышЄЁр (B, G, R, 0)  | 
          
| 793 | if (pal[i]&0x80) color = color | 0x0100;  | 
            834 | if (pal[i]&0x80) color = color | 0x0100;  | 
          
| 794 | if (pal[i]&0x40) color = color | 0x2000;  | 
            835 | if (pal[i]&0x40) color = color | 0x2000;  | 
          
| Line 807... | Line 848... | ||
| 807 |                 i++; | 
            848 |                 i++; | 
          
| 808 | emitdw(~color, fout);  | 
            849 | emitdw(~color, fout);  | 
          
| 809 |                 i++; | 
            850 |                 i++; | 
          
| 810 | };  | 
            851 | };  | 
          
| 811 | fputs("\n", fout);  | 
            852 | fputs("\n", fout);  | 
          
| 812 | rowhgt = sprhgt;  | 
            - | |
| 813 | }else if ((sprformat == 'w')||(sprformat == 'W')||(sprformat == 'z')||(sprformat == 'Z')||(sprformat == 'y')) {  | 
            853 | }else if ((sprformat == 'w')||(sprformat == 'W')||(sprformat == 'z')||(sprformat == 'Z')||(sprformat == 'y')) {  | 
          
| 814 | putlabel(labelbuf, fout);  | 
            854 | putlabel(labelbuf, fout);  | 
          
| 815 | fputs("\n", fout);  | 
            855 | fputs("\n", fout);  | 
          
| 816 | rowhgt = sprhgt;  | 
            856 | rowhgt = sprhgt;  | 
          
| 817 | }else if (sprformat == 'c') {  | 
            857 | }else if (sprformat == 'c') {  | 
          
| Line 825... | Line 865... | ||
| 825 | emitdb((BYTE)(sprhgt), fout);  | 
            865 | emitdb((BYTE)(sprhgt), fout);  | 
          
| 826 | rowhgt = sprhgt;  | 
            866 | rowhgt = sprhgt;  | 
          
| 827 | }else if (sprformat == 'S') {  | 
            867 | }else if (sprformat == 'S') {  | 
          
| 828 | putlabel(labelbuf, fout);  | 
            868 | putlabel(labelbuf, fout);  | 
          
| 829 | fputs("\n", fout);  | 
            869 | fputs("\n", fout);  | 
          
| - | 870 | rowhgt = 8;  | 
          |
| - | 871 | }else if ((sprformat == 'A')||(sprformat == 'a')) {  | 
          |
| - | 872 | putlabel(labelbuf, fout);  | 
          |
| - | 873 | fputs("\n", fout);  | 
          |
| 830 | rowhgt = sprhgt;  | 
            874 | rowhgt = 8;  | 
          
| 831 | };  | 
            875 | };  | 
          
| 832 | 876 | ||
| 833 | //copy comment as code line | 
            877 | //copy comment as code line | 
          
| 834 | fputs(commentlabelbuf, fout);  | 
            878 | fputs(commentlabelbuf, fout);  | 
          
| 835 |               //fputs("\n", fout); | 
            879 |               //fputs("\n", fout); | 
          
| Line 909... | Line 953... | ||
| 909 | yi = yi+1;  | 
            953 | yi = yi+1;  | 
          
| 910 | };  | 
            954 | };  | 
          
| 911 | xi = xi+1;  | 
            955 | xi = xi+1;  | 
          
| 912 | };  | 
            956 | };  | 
          
| 913 |                   //fprintf(fout, "\n"); | 
            957 |                   //fprintf(fout, "\n"); | 
          
| - | 958 | }else if (sprformat == 'A') { //for coloured lines  | 
          |
| - | 959 | emitcolorline(sprx/8,y,sprwid/8,sprhgt,fout);  | 
          |
| - | 960 | }else if (sprformat == 'a') { //attr lines  | 
          |
| - | 961 | emitattrline(sprx/8,y,sprwid/8,sprhgt,fout);  | 
          |
| 914 | }else if (sprformat == 's') { //sprite  | 
            962 | }else if (sprformat == 's') { //sprite  | 
          
| 915 | emitspr(sprx/8,y,sprwid/8,sprhgt,fout);  | 
            963 | emitspr(sprx/8,y,sprwid/8,sprhgt,fout);  | 
          
| 916 | }else if (sprformat == 'S') { //coloured sprite  | 
            964 | }else if (sprformat == 'S') { //coloured sprite  | 
          
| 917 | emitcolorspr(sprx/8,y,sprwid/8,sprhgt,fout);  | 
            965 | emitcolorspr(sprx/8,y,sprwid/8,sprhgt,fout);  | 
          
| 918 | }else if (sprformat == 'y') { //spritey  | 
            966 | }else if (sprformat == 'y') { //spritey  |