home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / x / animutil / xanim229.lha / xanim / xanim.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-01-08  |  3.8 KB  |  200 lines

  1.  
  2. /*
  3.  * xanim.h
  4.  *
  5.  * Copyright (C) 1990,1991,1992 by Mark Podlipec. 
  6.  * All rights reserved.
  7.  *
  8.  * This software may be freely copied, modified and redistributed
  9.  * without fee provided that this copyright notice is preserved 
  10.  * intact on all copies and modified copies.
  11.  * 
  12.  * There is no warranty or other guarantee of fitness of this software.
  13.  * It is provided solely "as is". The author(s) disclaim(s) all
  14.  * responsibility and liability with respect to this software's usage
  15.  * or its effect upon hardware or computer systems.
  16.  *
  17.  */
  18.  
  19. #define MIN(x,y)    ( ((x)>(y))?(y):(x) )
  20. #define MAX(x,y)    ( ((x)>(y))?(x):(y) )
  21.  
  22. #define MS_PER_60HZ 17
  23.  
  24. /* X11 variables
  25.  */ 
  26. #define PSEUDO_COLOR_8BIT  1
  27. #define TRUE_COLOR_24BIT   2
  28. extern int x11_depth;
  29. extern int x11_class;
  30. extern int x11_bytes_pixel;
  31. extern int x11_cmap_flag;
  32. extern int x11_cmap_size;
  33. extern int x11_display_type;
  34.  
  35. extern int anim_running;
  36.  
  37. extern int anim_type;
  38. #define IFF_ANIM      1
  39. #define FLI_ANIM      2
  40. #define GIF_ANIM      3
  41. #define TXT_ANIM      4
  42. #define FADE_ANIM     5
  43.  
  44. typedef struct ACTION_STRUCT
  45. {
  46.  int type;      /* type of action */
  47.  int time;      /* # of jiffies (1/60th sec) */
  48.  char *data;    /* data */
  49. } ACTION;
  50.  
  51. extern ACTION action[];
  52. extern int action_cnt;
  53. extern int action_start;
  54.  
  55. typedef struct
  56. {
  57.  int anim_type;
  58.  int imagex;
  59.  int imagey;
  60.  int imagec;
  61.  int imaged;
  62.  int anim_flags;
  63.  int loop_num;
  64.  int loop_frame;
  65.  int last_frame;
  66.  int *frame_lst;          /* array of ints which index to actions */
  67. } ANIM_HDR;
  68.  
  69. typedef struct
  70. {
  71.  int cmap_size;
  72.  UBYTE data[4];
  73. } CMAP_HDR;
  74.  
  75. #define ANIM_HAM   0x00000001
  76. #define ANIM_LACE  0x00000002
  77. #define ANIM_CYCLE 0x00000004
  78. #define ANIM_DOUBL 0x00000008
  79. #define ANIM_IFF   0x01000000
  80. #define ANIM_DEBUG 0x00010000
  81. #define ANIM_NOLOP 0x00020000
  82. #define ANIM_CYCON 0x00040000
  83.  
  84.  
  85. extern ANIM_HDR anim[];
  86. extern int anim_cnt;
  87.  
  88. typedef struct
  89. {
  90.  int imagex;
  91.  int imagey;
  92.  int xoff;
  93.  int yoff;
  94. } SIZE_HDR;
  95.  
  96. typedef struct
  97. {
  98.  int xpos;
  99.  int ypos;
  100.  int xsize;
  101.  int ysize;
  102.  UBYTE data[4];
  103. } ACT_REGION_HDR;
  104. #define ACT_FLI_LC_HDR ACT_REGION_HDR
  105.  
  106. typedef struct
  107. {
  108.  int minx;
  109.  int miny;
  110.  int maxx;
  111.  int maxy;
  112.  UBYTE data[4];
  113. } ACT_IFF_DLTA_HDR;
  114.  
  115. typedef struct
  116.  int xpos;
  117.  int ypos;
  118.  int xsize;
  119.  int ysize;
  120.  UBYTE data[4];
  121. } REGION_HDR;
  122. extern REGION_HDR reg_hdr;
  123.  
  124. #define ACT_NOP         0x0000
  125. #define ACT_DELAY       0x0001
  126. #define ACT_IMAGE       0x0002
  127. #define ACT_CMAP        0x0003
  128. #define ACT_SIZE        0x0004
  129. #define ACT_FADE        0x0005
  130. #define ACT_REGION      0x0006
  131. #define ACT_FLI_COLOR   0x100b
  132. #define ACT_FLI_LC      0x100c
  133. #define ACT_FLI_BLACK   0x100d
  134. #define ACT_FLI_BRUN    0x100f
  135. #define ACT_FLI_COPY    0x1010
  136. #define ACT_IFF_BODY    0x2000
  137. #define ACT_IFF_DLTA0   0x2100
  138. #define ACT_IFF_DLTA1   0x2101
  139. #define ACT_IFF_DLTA2   0x2102
  140. #define ACT_IFF_DLTA3   0x2103
  141. #define ACT_IFF_DLTA4   0x2104
  142. #define ACT_IFF_DLTA5   0x2105
  143. #define ACT_IFF_DLTAJ   0x2149
  144. #define ACT_IFF_DLTAl   0x216c
  145. #define ACT_IFF_HMAP    0x2200
  146. #define ACT_IFF_CRNG    0x2201
  147.  
  148.  
  149. /* flags */
  150. extern int verbose;
  151. extern int debug_flag;
  152. extern int ham_flag;
  153. extern int cycle_flag;
  154. extern int anim_flags;
  155. extern int jiffy_flag;
  156. extern int cycle_on_flag;
  157. extern int cycle_wait;
  158. extern int optimize_flag;
  159.  
  160. /* variables */
  161. extern int imagex;
  162. extern int imagey;
  163. extern int imagec;
  164. extern int imaged;
  165. extern int disp_y;
  166. extern int anim_forward_flag;
  167.  
  168. #define CMAP_SIZE 256
  169. #define HMAP_SIZE 16
  170. typedef struct
  171. {
  172.  UBYTE red,green,blue;
  173. } ColorReg;
  174. extern ColorReg *cmap;
  175. extern ColorReg ham_map[16];
  176.  
  177. typedef struct
  178. {
  179.  WORD pad1;
  180.  WORD rate;
  181.  WORD active;
  182.  UBYTE low,high;
  183. } CRNG_HDR;
  184. #define CRNG_HDR_SIZE 8
  185.  
  186. /* Range flags values */
  187. #define CRNG_ACTIVE  1
  188. #define CRNG_REVERSE 2
  189. #define CRNG_INTERVAL   (16384*16)
  190.  
  191. extern void TheEnd();
  192. extern void TheEnd1();
  193. extern ULONG GetWord();
  194. extern ULONG GetHalfWord();
  195. extern void ShowAnimation();
  196. extern void ShowAction();
  197. extern void Cycle_It();
  198.  
  199.