Subversion Repositories NedoOS

Rev

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