mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-11-01 01:06:33 +00:00
make_sprite: work on optimizing masks
This commit is contained in:
parent
2ca8929229
commit
62f066b46e
@ -1,5 +1,5 @@
|
|||||||
/* Grabs part of 280x192 8-bit PNG file with correct palette to */
|
/* Grabs part of 280x192 8-bit PNG file with correct palette */
|
||||||
/* Sprites suitable for Apple II HGR */
|
/* Makes "sprites" suitable for Apple II HGR */
|
||||||
|
|
||||||
#define VERSION "0.0.1"
|
#define VERSION "0.0.1"
|
||||||
|
|
||||||
@ -380,7 +380,7 @@ static unsigned char apple2_image[8192];
|
|||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
|
|
||||||
int xsize=0,ysize=0,error;
|
int xsize=0,ysize=0,error;
|
||||||
int printsize=0;
|
int printsize=0,mask_offset=0,total_bytes=0;
|
||||||
int c,x,y,z,color1;
|
int c,x,y,z,color1;
|
||||||
unsigned char *image;
|
unsigned char *image;
|
||||||
unsigned char byte1,byte2,colors[14];
|
unsigned char byte1,byte2,colors[14];
|
||||||
@ -396,7 +396,7 @@ int main(int argc, char **argv) {
|
|||||||
|
|
||||||
/* Parse command line arguments */
|
/* Parse command line arguments */
|
||||||
|
|
||||||
while ( (c=getopt(argc, argv, "hvdsl:") ) != -1) {
|
while ( (c=getopt(argc, argv, "hvdmsl:") ) != -1) {
|
||||||
|
|
||||||
switch(c) {
|
switch(c) {
|
||||||
|
|
||||||
@ -412,6 +412,9 @@ int main(int argc, char **argv) {
|
|||||||
case 's':
|
case 's':
|
||||||
printsize=1;
|
printsize=1;
|
||||||
break;
|
break;
|
||||||
|
case 'm':
|
||||||
|
mask_offset=1;
|
||||||
|
break;
|
||||||
case 'l':
|
case 'l':
|
||||||
strncpy(label_string,optarg,BUFSIZ-1);
|
strncpy(label_string,optarg,BUFSIZ-1);
|
||||||
break;
|
break;
|
||||||
@ -471,16 +474,30 @@ int main(int argc, char **argv) {
|
|||||||
fprintf(stderr,"Warning! x1 should be a multiple of 7\n");
|
fprintf(stderr,"Warning! x1 should be a multiple of 7\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
xs=(x2/7-x1/7);
|
||||||
|
if (!((x2%7==0)&&(x1%7==0))) xs++;
|
||||||
|
|
||||||
|
total_bytes=(xs*(y2-y1));
|
||||||
|
// if (printsize) total_bytes+=2;
|
||||||
|
// if (mask_offset) total_bytes+=2;
|
||||||
|
|
||||||
printf("; %d %d %d %d\n",x1,y1,x2,y2);
|
printf("; %d %d %d %d\n",x1,y1,x2,y2);
|
||||||
|
printf("; total bytes: %d\n",total_bytes);
|
||||||
printf("%s:\n",label_string);
|
printf("%s:\n",label_string);
|
||||||
|
|
||||||
|
|
||||||
if (printsize) {
|
if (printsize) {
|
||||||
xs=(x2/7-x1/7);
|
|
||||||
if (!((x2%7==0)&&(x1%7==0))) xs++;
|
|
||||||
printf("\t.byte $%02X,$%02X\n",
|
printf("\t.byte $%02X,$%02X\n",
|
||||||
xs,y2-y1);
|
xs,y2-y1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (mask_offset) {
|
||||||
|
printf("\t.byte $%02X,$%02X\n",
|
||||||
|
total_bytes&0xff,
|
||||||
|
total_bytes>>8);
|
||||||
|
}
|
||||||
|
|
||||||
for(y=y1;y<y2;y++) {
|
for(y=y1;y<y2;y++) {
|
||||||
printf("\t.byte ");
|
printf("\t.byte ");
|
||||||
for(x=x1/7;x<=x2/7;x++) {
|
for(x=x1/7;x<=x2/7;x++) {
|
||||||
|
Loading…
Reference in New Issue
Block a user