home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 15 / AACD15.ISO / AACD / Games / WormWars / Source / engine.h < prev    next >
Text File  |  2000-10-07  |  9KB  |  240 lines

  1. /* $Filename:    WormWars/Source/engine.h $
  2.  * $VER:         WormWars 6.4 $
  3.  * $Description: Constants for game engine $
  4.  *
  5.  * © Copyright 2000 James R. Jacobs.
  6.  */
  7.  
  8. #define ARROWX             (FIELDX + 1)
  9. #define GOATMOVE             5 // assert (GOATMOVE != 0);
  10. #define NOSE                 2 // if (NOSE > PROTECTORS) nose disabled
  11. #define NOSEDISTANCE         4
  12. #define WORMQUEUELIMIT      15
  13. #define DOGQUEUELIMIT      120
  14. #define TIMELIMIT          599
  15. #define SECONDSPERLEVEL    120 // assert (SECONDSPERLEVEL <= TIMELIMIT);
  16. #define UNDRIFT              5 // assert (UNDRIFT != 0);
  17.  
  18. // dog dormancy
  19.  
  20. #define DORMANT              0
  21. #define AWAKENING            1
  22. #define CHASING             10
  23.  
  24. // frequencies
  25.  
  26. #define FREQ_PENGUIN         1
  27. #define FREQ_DRIP            1
  28. #define FREQ_MAX            70
  29. #define FREQ_DEC             2
  30. #define FREQ_MIN            10
  31. #define FREQ_TELEPORT      240
  32.  
  33. #define BONUSPENGUINSPEED    7
  34. #define BONUSDRIPSPEED      11
  35. #define BONUSFRAGSPEED       9
  36. #define BONUSMISSILESPEED    9
  37. #define CLOUDSPEED           9
  38. #define DOGSPEED             8
  39. #define DRIPSPEED           13
  40. #define FRAGSPEED           10
  41. #define GOATSPEED           19
  42. #define MAGNETSPEED          9
  43. #define MISSILESPEED        12
  44. #define ORBSPEED            11
  45. #define PENGUINSPEED        23
  46. #define TIMEBOMBSPEED       60
  47.  
  48. // population limits
  49.  
  50. #define CREATURES           50
  51. #define MAGNETS             20
  52. #define PROTECTORS           2 // <=4!
  53.  
  54. // vampirism
  55.  
  56. #define DRIPBLOOD             1
  57. #define GOATBLOOD            1
  58. #define ORBBLOOD             1
  59. #define PENGUINBLOOD         1
  60.  
  61. // jump distances
  62.  
  63. #define FASTDISTANCE         5
  64. #define NORMALDISTANCE       4
  65. #define SLOWDISTANCE         3
  66. #define VERYSLOWDISTANCE     2
  67.  
  68. // skill points
  69.  
  70. #define EMPTYPOINT           1
  71. #define TAILBONUS            1
  72. #define TURNTOSILVER         5
  73. #define TURNTOGOLD          10
  74. #define SILVERPOINT         10
  75. #define TIMEBONUS           10
  76. #define ENCLOSUREPOINT      10
  77. #define TELPOINT            20
  78. #define GOLDPOINT           20
  79. #define HITSHOT             50
  80. #define KILLGOAT            50
  81. #define KILLPENGUIN         50
  82. #define KILLWORM           100
  83. #define BOMBOVEREDGE       100
  84. #define SKULLPOINT         100
  85. #define LETTERPOINT        100
  86. #define DRIPBONUS          100
  87. #define LEVELBONUS         100
  88.  
  89. // pain ratings
  90.  
  91. #define DOGPAIN         5
  92. #define DRIPPAIN        5
  93. #define HEADPAIN        5
  94. #define MISSILEPAIN     5
  95. #define ORBPAIN         5
  96. #define PROTECTORPAIN    5
  97. #define REMNANTPAIN     5
  98. #define TELEPORTPAIN    5
  99. #define WORMFIREPAIN    5
  100. #define WHIRLWINDPAIN   5
  101.  
  102. #define BOMBPAIN        3
  103. #define CLOUDPAIN       3
  104. #define FRAGMENTPAIN    3
  105. #define LIGHTNINGPAIN    3
  106. #define METALPAIN       3
  107. #define OTHERTAILPAIN    3
  108. #define PENGUINPAIN     3
  109. #define PENGUINPAIN     3
  110.  
  111. #define GOATPAIN        2
  112. #define SLAYERPAIN        2
  113. #define SLIMEPAIN        2
  114.  
  115. #define STONEPAIN        1
  116. #define TAILPAIN        1
  117. #define WOODPAIN        1
  118.  
  119. // objects
  120.  
  121. #define BOMBADD       5 // in squares radius
  122. #define BOMBRAND     25
  123. #define CLOCKADD     10 // in seconds
  124. #define CLOCKRAND    20
  125. #define CUTTERADD    20 // in VERYSLOWs
  126. #define CUTTERRAND   25
  127. #define FREEDOMADD   20 // in VERYSLOWs
  128. #define FREEDOMRAND  50
  129. #define ICEADD        5 // in VERYSLOWs
  130. #define ICERAND       5
  131. #define MODEADD      30 // in VERYSLOWs
  132. #define MODERAND     40
  133. #define TREASUREADD  10 // in seconds
  134. #define TREASURERAND 10
  135.  
  136. MODULE  void changefield(void);
  137. MODULE  void clearletters(void);
  138. MODULE  void death(void);
  139. MODULE  void fastloop(void);
  140. MODULE  void killall(void);
  141. MODULE  void magnetloop(void);
  142. MODULE  void newfield(void);
  143. MODULE  void newhiscores(void);
  144. MODULE  void slowloop(void);
  145.  
  146. MODULE  void bombblast(SBYTE triggerer, SBYTE player, SBYTE centrex, SBYTE centrey);
  147. MODULE  void bothcol(SBYTE player, SBYTE x, SBYTE y);
  148. MODULE  void bouncegoat(SBYTE which, SBYTE x, SBYTE y);
  149. MODULE  void __inline change(SBYTE x, SBYTE y, UBYTE image);
  150. MODULE  void cloudbullet(UBYTE which, SBYTE x, SBYTE y, SBYTE deltay);
  151. MODULE  void copyfield(SBYTE source, SBYTE destination);
  152. MODULE  void createmissile(UBYTE player, SBYTE x, SBYTE y);
  153. MODULE  void creatureloop(SBYTE which);
  154. MODULE  void dogqueue(SBYTE which, SBYTE deltax, SBYTE deltay);
  155. MODULE  void drawcause(SBYTE player, SBYTE state);
  156. MODULE  void drawletter(SBYTE player, SBYTE letter, SBYTE state);
  157. MODULE  void explosion(SBYTE x, SBYTE y, SBYTE exceptionx, SBYTE exceptiony);
  158. MODULE  void newlevel(SBYTE player);
  159. MODULE  void orbscore(SBYTE which, ULONG score);
  160. MODULE  void orbsplit(SBYTE which);
  161. MODULE  void protcol(SBYTE player, SBYTE x, SBYTE y, SBYTE thisprot);
  162. MODULE  void putletter(SBYTE player);
  163. MODULE  void ramming(SBYTE player);
  164. MODULE  void reflect(UBYTE which);
  165. MODULE  void turnworm(SBYTE player, SBYTE deltax, SBYTE deltay);
  166. MODULE  void updatearrow(SBYTE arrowy);
  167. MODULE  void wormbullet(SBYTE player);
  168. MODULE  void wormletter(SBYTE player, SBYTE c);
  169. MODULE  void wormloop(SBYTE player);
  170. MODULE  void wormcol(SBYTE player, SBYTE x, SBYTE y, ABOOL enclosed);
  171.  
  172. MODULE void dogdog(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  173. MODULE void dogdrip(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  174. MODULE void dogfrag(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  175. MODULE void dogmissile(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  176. MODULE void dogorb(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  177. MODULE void dogpenguin(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  178. MODULE void dogwhirlwind(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  179. MODULE void dripfrag(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  180. MODULE void dripmissile(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  181. MODULE void driporb(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  182. MODULE void drippenguin(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  183. MODULE void dripwhirlwind(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  184. MODULE void fragfrag(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  185. MODULE void fragorb(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  186. MODULE void fragmissile(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  187. MODULE void fragpenguin(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  188. MODULE void fragwhirlwind(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  189. MODULE void missilemissile(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  190. MODULE void missilepenguin(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  191. MODULE void missilewhirlwind(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  192. MODULE void orborb(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  193. MODULE void orbmissile(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  194. MODULE void orbpenguin(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  195. MODULE void orbwhirlwind(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  196. MODULE void penguinwhirlwind(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  197. MODULE void whirlwindwhirlwind(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  198. MODULE void wormdog(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  199. MODULE void wormdrip(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  200. MODULE void wormfrag(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  201. MODULE void wormmissile(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  202. MODULE void wormorb(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  203. MODULE void wormpenguin(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  204. MODULE void wormwhirlwind(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  205. MODULE void wormworm(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  206. MODULE void protdog(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  207. MODULE void protdrip(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  208. MODULE void protfrag(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  209. MODULE void protmissile(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  210. MODULE void protorb(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  211. MODULE void protpenguin(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  212. MODULE void protwhirlwind(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  213. MODULE void protworm(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  214. MODULE void protprot(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  215. MODULE void clouddog(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  216. MODULE void clouddrip(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  217. MODULE void cloudfrag(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  218. MODULE void cloudmissile(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  219. MODULE void cloudorb(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  220. MODULE void cloudpenguin(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  221. MODULE void cloudwhirlwind(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  222. MODULE void cloudworm(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  223. MODULE void cloudprot(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  224. MODULE void cloudcloud(SBYTE x, SBYTE y, UBYTE which1, UBYTE which2);
  225.  
  226. MODULE SWORD atleast(SWORD value, SWORD minimum);
  227. MODULE ABOOL blocked(SBYTE which, SBYTE deltax, SBYTE deltay);
  228. MODULE ABOOL bounceorb(SBYTE which, SBYTE x, SBYTE y);
  229. MODULE SBYTE bsign(SBYTE value);
  230. MODULE ABOOL findempty(SBYTE* x, SBYTE* y, SBYTE first, SBYTE last);
  231. MODULE SBYTE onlyworm(ABOOL alive);
  232. MODULE SBYTE slowdown(SBYTE speed, ABOOL nitro);
  233. MODULE SBYTE speedup(SBYTE speed, ABOOL nitro);
  234. MODULE ULONG squareblast(SBYTE type, SBYTE player, SBYTE thissy, SBYTE x, SBYTE y, ABOOL cutter);
  235. MODULE UBYTE whichcreature(SBYTE x, SBYTE y, UBYTE species, UBYTE exception);
  236. MODULE SBYTE whichteleport(SBYTE x, SBYTE y);
  237. MODULE ULONG wormobject(UBYTE player, SBYTE x, SBYTE y);
  238.  
  239. // Must have blank line at EOF.
  240.