home *** CD-ROM | disk | FTP | other *** search
/ RISCWORLD 7 / RISCWORLD_VOL7.iso / Software / Issue4 / IYONIX / MANICMINER / SOURCE.ZIP / manicminer-1.6.3 / h / manic < prev   
Encoding:
Text File  |  2000-12-09  |  4.2 KB  |  292 lines

  1. #undef EXTERN
  2. #ifdef __DEFINE_VARS
  3. # define EXTERN
  4. #else
  5. # define EXTERN extern
  6. #endif
  7.  
  8. #ifdef __riscos
  9. # include "systems/riscos/stdint.h"
  10. #else
  11. # include "systems/msdos/stdint.h"
  12. #endif
  13. #include <stdio.h>
  14.  
  15. #ifdef __riscos
  16. # define CONFIGREAD    "Choices:ManicMiner"
  17. # define CONFIGWRITE    "<Choices$Write>.ManicMiner"
  18. # define DATANAME    "<Manic$Dir>.set0/lev"
  19. # define GFXDATA    "<Manic$Dir>.gfxdata."
  20. #else
  21. # define CONFIGREAD    "mm-conf.cfg"
  22. # define CONFIGWRITE    "mm-conf.cfg"
  23. # define DATANAME    "set0.lev"
  24. # define GFXDATA    "gfxdata/"
  25. # define MUSIC_MOD    "snddata/manic.xm"
  26. # define DIE_WAV    "snddata/die.wav"
  27. # define PICK_WAV    "snddata/pick.wav"
  28. # define JUMP_WAV    "snddata/jump.wav"
  29. #endif
  30.  
  31. #ifdef __riscos
  32. typedef unsigned int WORD;
  33. typedef signed int SWORD;
  34. #else
  35. typedef unsigned short WORD;
  36. typedef signed short SWORD;
  37. #endif
  38. typedef unsigned char BYTE;
  39.  
  40. #define UNDEF 0xFF00
  41.  
  42. typedef struct
  43. {
  44.   WORD x, y;
  45. }
  46. coords_t;
  47.  
  48. typedef struct
  49. {
  50.   BYTE ink, paper, gfx;
  51. }
  52. scenery_t;
  53.  
  54. typedef struct
  55. {
  56.   BYTE ink, paper;
  57. }
  58. colour_t;
  59.  
  60. typedef struct
  61. {
  62.   colour_t colour;
  63.   BYTE d, s;
  64.   coords_t pos;
  65.   WORD min, max;
  66.   WORD gfx;
  67.   BYTE flip, anim;
  68.   coords_t old[2];
  69. }
  70. robo_t;
  71.  
  72. typedef struct
  73. {
  74.   coords_t pos;
  75.   BYTE s;
  76. } switch_t;
  77.  
  78. EXTERN int_fast16_t xoffset, yoffset;
  79. EXTERN int_fast16_t scrnwidth, scrnheight;
  80. EXTERN int_fast8_t gfxpage;
  81.  
  82.  
  83. /* from globals */
  84.  
  85. EXTERN const char *dataname;
  86. EXTERN unsigned long Old_Isr;
  87.  
  88. #define XMIN        1
  89. #define X320x200    1
  90. #define X320x240    2
  91. #define X320x400    3
  92. #define X360x240    4
  93. #define XMAX        4
  94.  
  95. EXTERN int SCXOFF;
  96. EXTERN int SCYOFF;
  97.  
  98. EXTERN BYTE VidMode;
  99. EXTERN BYTE ResetHigh;
  100. EXTERN BYTE DoubleSize;
  101. EXTERN BYTE VS;
  102. #ifdef __riscos
  103. extern BYTE VidMode;
  104. extern int hires_ok; /* rename me */
  105. #endif
  106. extern const char VERSION[10];
  107.  
  108. EXTERN char LEVELSNAME[16];
  109.  
  110. #define    KONGPAUSE    8
  111.  
  112. EXTERN BYTE PALwhite[768];
  113. EXTERN BYTE PALblack[768];
  114. EXTERN BYTE PALfade[768];
  115. EXTERN BYTE PALover[768];
  116.  
  117. EXTERN BYTE bMAP[512];
  118. EXTERN BYTE bCRUMB[512];
  119. EXTERN char bTITLE[33];
  120.  
  121. EXTERN colour_t cBG;
  122. EXTERN scenery_t sPLAT1;
  123. EXTERN scenery_t sPLAT2;
  124. EXTERN scenery_t sWALL;
  125. EXTERN scenery_t sCRUMB;
  126. EXTERN scenery_t sKILL1;
  127. EXTERN scenery_t sKILL2;
  128. EXTERN scenery_t sCONV;
  129.  
  130. EXTERN BYTE cBORDER;
  131.  
  132.  
  133. EXTERN struct
  134. {
  135.   coords_t pos, old[2];
  136.   WORD f;
  137.   BYTE d, m, j;
  138.   BYTE buff[2][256];
  139.   SWORD fall, jp;
  140. }
  141. cWILLY;
  142.  
  143. EXTERN struct
  144. {
  145.   coords_t pos;
  146.   BYTE d, l, f, m, one;
  147. }
  148. cCONV;
  149.  
  150. EXTERN struct
  151. {
  152.   coords_t pos;
  153.   BYTE b, s;
  154. }
  155. cKEY[5];
  156.  
  157. EXTERN BYTE cKEYgfx;
  158.  
  159. EXTERN switch_t cSWITCH[2];
  160.  
  161. EXTERN struct
  162. {
  163.   coords_t pos;
  164.   BYTE b, m, gfx;
  165. }
  166. cEXIT;
  167.  
  168. EXTERN BYTE cAIR;
  169. EXTERN BYTE cAIRp;
  170.  
  171. EXTERN robo_t cHROBO[4], cVROBO[4];
  172.  
  173. EXTERN struct
  174. {
  175.   coords_t pos, old[2];
  176.   WORD min, max;
  177.   BYTE d, m, c;
  178. }
  179. EUGENE;
  180.  
  181. EXTERN BYTE SWITCHm[2];
  182.  
  183. EXTERN WORD HOLEy;
  184. EXTERN BYTE HOLEl;
  185.  
  186. EXTERN struct
  187. {
  188.   coords_t pos, old[2];
  189.   WORD max;
  190.   BYTE m, c, f, p;
  191. }
  192. KONG;
  193.  
  194. EXTERN struct
  195. {
  196.   coords_t pos, old[2];
  197.   WORD max;
  198.   BYTE s, m, c, f, p;
  199. }
  200. SKY[3];
  201.  
  202. EXTERN BYTE DEATHm;
  203. EXTERN WORD DEATHc;
  204.  
  205. EXTERN WORD BOOTy;
  206.  
  207. EXTERN struct
  208. {
  209.   WORD y, yold[2];
  210.   BYTE m, h, hold[2];
  211.   BYTE buff[2][384];
  212. }
  213. SUN;
  214.  
  215. EXTERN coords_t SPG[64][2];
  216.  
  217. EXTERN unsigned long SCORE;
  218. EXTERN unsigned long HISCORE;
  219. EXTERN unsigned long EXTRA;
  220. EXTERN unsigned long EXTRAdelta;
  221. EXTERN BYTE EXTRAm;
  222. EXTERN BYTE EXTRAc;
  223.  
  224. EXTERN WORD LIVES;
  225. EXTERN BYTE LIVESf;
  226. EXTERN BYTE LIVESp;
  227. EXTERN BYTE LEVEL;
  228.  
  229. EXTERN BYTE MUSICon;
  230. EXTERN BYTE PAUSEtype;
  231.  
  232. EXTERN BYTE old;
  233.  
  234. EXTERN BYTE SPEED;
  235.  
  236. EXTERN BYTE MODE;
  237. EXTERN BYTE GAMEm;
  238.  
  239. EXTERN BYTE DEMOm;
  240. EXTERN BYTE DEMOp;
  241.  
  242. EXTERN BYTE TITLEm;
  243. EXTERN BYTE TITLEwf;
  244. EXTERN BYTE TITLEwp;
  245.  
  246. EXTERN BYTE OVERm;
  247. EXTERN BYTE OVERink;
  248. EXTERN BYTE OVERp;
  249.  
  250. EXTERN BYTE INK;
  251. EXTERN BYTE PAPER;
  252.  
  253. EXTERN BYTE CHEAT;
  254. EXTERN BYTE CHEATp;
  255. EXTERN BYTE CHEATh;
  256. EXTERN BYTE CHEATkey[6];
  257.  
  258. EXTERN BYTE PAUSE;
  259. EXTERN BYTE LASTm;
  260. EXTERN WORD LASTc;
  261. EXTERN BYTE LASTp;
  262. EXTERN WORD WINDOW[16];
  263.  
  264. EXTERN struct
  265. {
  266.   BYTE m, point, ink, fade;
  267.   WORD pause;
  268. }
  269. TEXT;
  270.  
  271. EXTERN BYTE LOADm;
  272. EXTERN BYTE LOADp;
  273.  
  274. EXTERN BYTE CHAN[9];
  275.  
  276. EXTERN BYTE TONKS;
  277.  
  278. #define    INGAMEpc    0x00
  279. #define    INGAMEspec    0x09
  280. #define    TITLEmusic    0x0d
  281. #define    OPTIONSmusic    0x12
  282. #define    FINALcavern    0x16
  283. #define    ENDsequence    0x20
  284. #define STOPmusic    0x11
  285.  
  286. EXTERN BYTE MUSICtype;
  287. EXTERN BYTE VOL;
  288.  
  289. EXTERN BYTE MUSICh;
  290.  
  291. EXTERN BYTE FORCE;
  292.