Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. #ifndef GAME_H
  2. #define GAME_H
  3.  
  4. #include "PHL.h"
  5. #include "enemy.h"
  6. #include "enemies/slime.h"
  7. #include "enemies/bat.h"
  8. #include "enemies/slug.h"
  9. #include "enemies/knight.h"
  10. #include "enemies/heads.h"
  11. #include "enemies/gas.h"
  12. #include "enemies/skull.h"
  13. #include "enemies/fish.h"
  14. #include "enemies/waterjumper.h"
  15. #include "enemies/podoboo.h"
  16. #include "enemies/thwomp.h"
  17. #include "enemies/dodo.h"
  18. #include "enemies/batboss.h"
  19. #include "enemies/crab.h"
  20. #include "enemies/skeleton.h"
  21. #include "enemies/ghoul.h"
  22. #include "enemies/seal.h"
  23. #include "enemies/jellyfish.h"
  24. #include "enemies/wizard.h"
  25. #include "enemies/pendulum.h"
  26. #include "enemies/gyra.h"
  27. #include "enemies/lolidra.h"
  28. #include "enemies/bee.h"
  29. #include "enemies/devil.h"
  30. #include "enemies/firewheel.h"
  31. #include "enemies/boar.h"
  32. #include "enemies/golem.h"
  33. #include "enemies/garm.h"
  34. #include "enemies/poisonknight.h"
  35. #include "enemies/dog.h"
  36. #include "enemies/boomknight.h"
  37. #include "enemies/pumpkin.h"
  38. #include "enemies/hydra.h"
  39. #include "object.h"
  40. #include "effect.h"
  41. #include "weapon.h"
  42. #include "platform.h"
  43.  
  44. #define TITLE 0
  45. #define GAME 1
  46. #define INVENTORY 2
  47. #define OPTIONS 3
  48. #define SAVING 4
  49. #define LEVELSTART 5
  50. #define GETITEM 6
  51.  
  52. //Sound channels
  53. #define CHN_MUSIC 0
  54. #define CHN_SOUND 1 //Various sounds, like menus and fanfares
  55. #define CHN_HERO 2
  56. #define CHN_WEAPONS 3
  57. #define CHN_ENEMIES 4
  58. #define CHN_EFFECTS 5
  59.  
  60. extern Door* lastDoor;
  61.  
  62. extern int secretTimer;
  63. extern int levelStartTimer;
  64. extern int saveTimer;
  65.  
  66. extern int quakeTimer;
  67.  
  68. extern int bellFlag;
  69. extern int bossFlag;
  70. extern int bossDefeatedFlag;
  71.  
  72. extern char roomDarkness;
  73.  
  74. //Used for item get message
  75. extern int itemGotX;
  76. extern int itemGotY;
  77.  
  78. extern int roomSecret;
  79.  
  80. extern int collisionTiles[16][12];
  81.  
  82. //Playtime in frames. At 60 frames per second can hold ~828 1/2 days worth of playtime if my math isn't shit
  83. extern unsigned long playTime;
  84.  
  85. //Inventory
  86. extern unsigned char hasWeapon[5];
  87. extern unsigned char hasItem[28];
  88. extern unsigned char hasKey[8];
  89.  
  90. //Save data flags
  91. extern unsigned char flags[60];
  92.  
  93. extern PHL_Background background,
  94.                            foreground;
  95.  
  96. //Game assets
  97. extern PHL_Surface images[15];
  98. extern PHL_Music        bgmMusic;
  99. extern PHL_Music        bgmSecret;
  100. extern PHL_Music        bgmGameover;
  101. extern PHL_Sound        sounds[43];
  102.  
  103. #define MAX_WEAPONS 5
  104. extern Weapon* weapons[MAX_WEAPONS];
  105.  
  106. #define MAX_OBJECTS 40
  107. extern Object* objects[MAX_OBJECTS];
  108.  
  109. #define MAX_ENEMIES 20
  110. extern Enemy* enemies[MAX_ENEMIES];
  111.  
  112. #define MAX_EFFECTS 30
  113. extern Effect* effects[MAX_EFFECTS];
  114.  
  115. #define MAX_PLATFORMS 10
  116. extern Platform* platforms[MAX_PLATFORMS];
  117.  
  118. //Graphic names
  119. #define imgTiles 0
  120. #define imgEnemies 1
  121. #define imgHud 2
  122. #define imgMisc20 3
  123. #define imgMisc32 4
  124. #define imgHero 5
  125. #define imgItems 6
  126. #define imgExplosion 7
  127. #define imgBoss 8
  128. #define imgMisc2040 9
  129. #define imgFontKana 10
  130. #define imgBoldFont 11
  131. #define imgDark 12
  132. #define imgMisc6020 13
  133. #define imgTitle01 14
  134.  
  135. //Sound names
  136. #define sndBee01 0
  137. #define sndBell01 1
  138. #define sndBom01 2
  139. #define sndBom02 3
  140. #define sndBom03 4
  141. #define sndDoor00 5
  142. #define sndFire01 6
  143. #define sndGas01 7
  144. #define sndGet01 8
  145. #define sndGet02 9
  146. #define sndHit01 10
  147. #define sndHit02 11
  148. #define sndHit03 12
  149. #define sndHit04 13
  150. #define sndHit05 14
  151. #define sndHit06 15
  152. #define sndHit07 16
  153. #define sndJump01 17
  154. #define sndJump02 18
  155. #define sndNg 19
  156. #define sndOk 20
  157. #define sndPi01 21
  158. #define sndPi02 22
  159. #define sndPi03 23
  160. #define sndPi04 24
  161. #define sndPi05 25
  162. #define sndPi06 26
  163. #define sndPi07 27
  164. #define sndPi08 28
  165. #define sndPi09 29
  166. #define sndPi10 30
  167. #define sndPower01 31
  168. #define sndPower02 32
  169. #define sndShot01 33
  170. #define sndShot02 34
  171. #define sndShot03 35
  172. #define sndShot04 36
  173. #define sndShot05 37
  174. #define sndShot06 38
  175. #define sndShot07 39
  176. #define sndStep01 40
  177. #define sndWater01 41
  178. #define sndWolf01 42
  179.  
  180. #ifdef _SDL
  181. extern char savename[4096];
  182. extern char savemap[4096];
  183. #else
  184. #define savename "data/save.tmp"
  185. #define savemap "map/018.map"
  186. #endif
  187.  
  188. #ifdef _KOLIBRI
  189. #define KOS_HCL_SAVES_PATH "/tmp0/1/.hydracastlelabyrinth"
  190. #define KOS_TMP_DIR "/tmp0/1"
  191. #endif
  192.  
  193. void loadImages();
  194. void freeImages();
  195. void loadResources();
  196. void freeResources();
  197.  
  198. void game();
  199.  
  200. void gameSetup();
  201. void gameCleanup();
  202.  
  203. void enterDoor();
  204. #ifdef EMSCRIPTEN
  205. void getItemSetup(int itemNum);
  206. int getItemEMStep();
  207. #else
  208. void getItem(int itemNum);
  209. #endif
  210. void saveScreen();
  211.  
  212. void gameEnding();
  213.  
  214. //void enterDoor(Door* d);
  215. void loadScreen();
  216.  
  217. void changeScreen(int dx, int dy);
  218.  
  219. int writeSave(char* fname);
  220. void loadSave(char* fname);
  221.  
  222. int fileExists(char* fpath);
  223.  
  224. void playSecret();
  225. void secretCountdown();
  226.  
  227. int getDrawHP();
  228. void setDrawHP(int val);
  229.  
  230. int getLevel();
  231.  
  232. void setBossRoom();
  233.  
  234. void setAutoSave(char val);
  235. char getAutoSave();
  236.  
  237. #endif