home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #6 / amigaacscoverdisc1998-061998.iso / games / descent / source / pal / iff.h < prev    next >
C/C++ Source or Header  |  1998-06-08  |  2KB  |  93 lines

  1. /*
  2. THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
  3. SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
  4. END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
  5. ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
  6. IN USING, DISPLAYING,  AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
  7. SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
  8. FREE PURPOSES.  IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
  9. CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES.  THE END-USER UNDERSTANDS
  10. AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.  
  11. COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
  12. */
  13. /*
  14.         Constants and structures for IFF routines
  15. */
  16.  
  17. #define IFF_NO_ERROR            0
  18. #define IFF_NO_MEM            1
  19. #define IFF_UNKNOWN_FORM    2
  20. #define IFF_NOT_IFF            3
  21.  
  22. #define PBM_TYPE                1
  23. #define ILBM_TYPE                2
  24.  
  25. #define cmpNone    0
  26. #define cmpByteRun1    1
  27.  
  28. #define mskNone    0
  29. #define mskHasMask    1
  30. #define mskHasTransparentColor 2
  31.  
  32. #define byte BYTE
  33.  
  34. /* structures used by IFF parser */
  35.  
  36. typedef unsigned char BYTE;
  37. typedef char SBYTE;
  38. typedef unsigned short WORD;
  39. typedef short SWORD;
  40. typedef unsigned int DWORD;
  41. typedef int SDWORD;
  42.  
  43.  
  44. struct pal_entry {BYTE r,g,b;};
  45.  
  46. // w = width, must be set
  47. // h = height, must be set
  48. // x,y ignored
  49. // transparentcolor, set this to 0
  50. // pagewidth = width of source screen, set to 320
  51. // pageheight = height of source screen, set to 200
  52. // nplanes = 8
  53. // masking = set according to constants above, set to 0
  54. // compression = 0 (cmpNone)
  55. // xaspect = 5
  56. // yaspect = 6
  57. // palette = i must set this, values get shifted up by 4x
  58. // raw_data = poSWORD to my data
  59. struct bitmap_header {
  60.     SWORD w,h,x,y;
  61.     SWORD type;
  62.     SWORD transparentcolor,pagewidth,pageheight;
  63.     SBYTE nplanes,masking,compression;
  64.     SBYTE xaspect,yaspect;
  65.     struct pal_entry palette[256]; 
  66.     BYTE  *raw_data;
  67. };
  68.  
  69. #define BM_LINEAR   0
  70. #define BM_MODEX    1
  71. #define BM_SVGA     2
  72. #define BM_RGB15    3   //5 bits each r,g,b stored at 16 bits
  73.  
  74. typedef struct  {
  75.     WORD        X, Y;
  76.     WORD        Width;
  77.     WORD        Height;
  78.     WORD        Type;
  79.     WORD        Rowsize;
  80.     DWORD       DataPtr;
  81.     WORD        Data[1];
  82. } BITMAP15;
  83.  
  84. typedef struct  {
  85.     WORD        X, Y;
  86.     WORD        Width;
  87.     WORD        Height;
  88.     WORD        Type;
  89.     WORD        Rowsize;
  90.     DWORD       DataPtr;
  91.     BYTE        Data[1];
  92. } BITMAP8;
  93.