home *** CD-ROM | disk | FTP | other *** search
- /* */
- /* Iff2C - Converts an Iff ILBM file to C source */
- /* */
- /* Last updates: */
- /* v0.30, 89.0512, fixed minor output bug, -ghg- */
- /* v0.29, 89.0501, plane pick option now works, -ghg- */
- /* v0.28, 89.0430, -lsdh options added, jm Forgeas */
- /* v0.27, 88.1113, original coding by Gauthier Groult */
- /* */
-
- #include <stdio.h>
- #include <exec/types.h>
- #include <graphics/gfx.h>
- #include <libraries/dos.h>
- #include <iff/ilbm.h>
- #include <iff/readpict.h>
- #include <iff/remalloc.h>
- #include "iff2c.h"
-
- struct GfxBase *GfxBase;
-
- VOID
- main(argc, argv)
- UBYTE argc, **argv;
- {
- UBYTE arg=1,
- flags = PRINT_COMMENTS | PRINT_IMAGE | COMPUTE_ONOFF |
- STATIC_DATA | PRINT_DATA | LATTICE_CHIP;
- LONG file;
- IFFP iffp = NO_FILE;
- ILBMFrame iFrame;
- struct BitMap bitmap;
-
- if (!(GfxBase = (struct GfxBase *)OpenLibrary("graphics.library", 0))) exit(1);
-
- if (argc==1)
- {
- fputs("Usage: Iff2C [-cidpslh] <file> [<file>...]\n", stderr);
- fputs(" -c: switches comment output, default on\n", stderr);
- fputs(" -i: switches image structure output, default on\n", stderr);
- fputs(" -d: switches data words output, default on\n", stderr);
- fputs(" -p: plane on/off computation, default on\n", stderr);
- fputs(" -s: switches 'static' image data, default on\n", stderr);
- fputs(" -l: switches Lattice keyword 'chip', default on\n", stderr);
- fputs(" -h: header and trailer words (sprite), default off\n", stderr);
- fputs("Iff2C v0.30, by Gauthier Groult & Jm Forgeas, 89.0512, pd\n", stderr);
- goto CLEANUP;
- }
-
- while (arg<argc)
- {
- switch(argv[arg][0])
- {
- case '-':
- if (argc==2)
- {
- fputs("Iff2c: input file name not specified\n", stderr);
- goto CLEANUP;
- }
-
- switch(argv[arg][1])
- {
- case 'c': flags &= ~PRINT_COMMENTS; break;
- case 'i': flags &= ~PRINT_IMAGE; break;
- case 'd': flags &= ~PRINT_DATA; break;
- case 'p': flags &= ~COMPUTE_ONOFF; break;
- case 's': flags ^= STATIC_DATA; break;
- case 'h': flags ^= SPRITE_HEADER; break;
- case 'l': flags ^= LATTICE_CHIP; break;
- default:
- fputs("Iff2c: invalid arguments, try Iff2c for help\n", stderr);
- goto CLEANUP;
- }
- break;
-
- default:
- if (file = Open(argv[arg], MODE_OLDFILE))
- {
- iffp = ReadPicture(file, &bitmap, &iFrame, ChipAlloc);
- Close(file);
- }
- else
- {
- fprintf(stderr, "Iff2c: wrong file name %s\n", argv[arg]);
- goto CLEANUP;
- }
- if (iffp != IFF_DONE)
- {
- fprintf(stderr, "Iff2c: wrong file format %s\n", argv[arg]);
- goto CLEANUP;
- }
-
- BMap2C( stdout, argv[arg], bitmap.Planes[0],
- iFrame.bmHdr.x, iFrame.bmHdr.y,
- iFrame.bmHdr.w, iFrame.bmHdr.h,
- bitmap.Depth, flags );
-
- if (bitmap.Planes[0]) RemFree(bitmap.Planes[0]);
- break;
- }
- arg++;
- }
-
- CLEANUP:
- CloseLibrary(GfxBase);
- exit(0);
- }
-
-
-