MEMSTRUC.H 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. #ifndef _MEMSTRUC_H_INCLUDED
  2. /*
  3. ÉÍÍÍÍÍÍÍÍÍÍÍÍ»
  4. º AUTOHEADER º
  5. ÌÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
  6. º Filename MEMSTRUC.H º
  7. ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
  8. º Creation 28/7/1995 º
  9. ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
  10. º º
  11. º Updated: Thu 31/8/1995 11:07 º
  12. º º
  13. º Version: 1.031 º
  14. º º
  15. ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
  16. */
  17. #ifdef __cplusplus
  18. extern "C" {
  19. #endif
  20. #define DASP_ID 'PSAD'
  21. //DASP in reverse
  22. typedef struct _DASP {
  23. char id_text[4];
  24. unsigned short int version;
  25. unsigned short int size_sprite;
  26. unsigned long int offset_sprite;
  27. unsigned long int offset_palette;
  28. unsigned long int offset_MONOcolours;
  29. unsigned long int offset_names;
  30. unsigned short int size_names;
  31. unsigned short int size_anim;
  32. unsigned long int offset_anim;
  33. unsigned short int filler00;
  34. unsigned short int skysprite;
  35. unsigned short int offset_object;
  36. } _DASP;
  37. typedef struct _DASP_SPO {
  38. unsigned long int offset;
  39. unsigned short int size;
  40. unsigned short int flags;
  41. } _DASP_SPO;
  42. #define SF2SPO_Packed 0x0001
  43. #define MaxDasImages 4096
  44. #define MaxDasObject 512
  45. typedef struct _DASP_COL {
  46. unsigned char palette[256*3];
  47. unsigned short int colblack;
  48. unsigned char shade1[256*32];
  49. unsigned char shade2[256*32];
  50. unsigned char tint[65536];
  51. unsigned char mirrorcon[256];
  52. unsigned char lightning[256];
  53. } _DASP_COL;
  54. // image structure callback
  55. // there are 5 types of structure
  56. // Test bits in (_Image.flags) in this order....
  57. //
  58. // 1) MemRef : if IF_MemRef; (ANIM,DIR,DIR16), should never bee seen in callback
  59. // 2) JANIM : if IF_JANIM; (JANIM,JDIR,JDIR16,JOINED)
  60. // 3) DAN : if IF_Dan;
  61. // 4) O3D : if IF_3dObj;
  62. // 5) normal : if none of the above
  63. //
  64. typedef struct _Image {
  65. unsigned char filler[8];
  66. unsigned short int segment; // allocated segment to refrence image
  67. unsigned short int flags;
  68. unsigned short int xsize;
  69. unsigned short int ysize;
  70. } _Image;
  71. // _Image.flags defines
  72. #define IF_ShiftMask 0x000f
  73. #define IF_Roof 0x0010
  74. #define IF_MemRef 0x0020 // structure not define here
  75. #define IF_JANIM 0x0040 // structure below
  76. #define IF_HalfPix 0x0080
  77. #define IF_Dan 0x0100 // structure below
  78. #define IF_NotTran 0x0200
  79. #define IF_Tint 0x0400
  80. #define IF_Mirror 0x0800
  81. #define IF_ImageBoost 0x6000
  82. #define IF_3dObj 0x8000 // sturucture not define here
  83. #define IF_ImageRot90 0x1000
  84. typedef struct _DAN_Image {
  85. _Image header;
  86. unsigned long int filesize;
  87. unsigned short int HeadSize; // offset to RAW sprite
  88. unsigned short int ManyFrames;
  89. signed short int CurrentFrame; // temp = CurrentFrame+2; if temp = ManyFrame then last frame in SEQ
  90. unsigned char FrameClock;
  91. unsigned char FrameSpeed;
  92. // now follows ManyFrames x dword offsets
  93. } _DAN_Image;
  94. typedef struct _JANIM_Image {
  95. _Image header;
  96. unsigned short int flags;
  97. // now follows ManyFrames x word offsets div 16
  98. } _JANIM_Image;
  99. //_JANIM_Images.flags defines
  100. #define JIF_DIR 0x8000
  101. #define JIF_JOINED 0x4000
  102. #define JIF_DIR16 0x2000
  103. #define JIF_CntMask 0x0ffe // cnt is always *2.. so add this for first frame
  104. typedef struct _Normal_Image {
  105. _Image header;
  106. // image data start here
  107. } _Normal_Image;
  108. #define _MEMSTRUC_H_INCLUDED
  109. #ifdef __cplusplus
  110. };
  111. #endif
  112. #endif
  113.