aboutsummaryrefslogtreecommitdiff
path: root/src/game.h
diff options
context:
space:
mode:
authorptitSeb2017-11-30 22:49:38 +0100
committerptitSeb2017-11-30 22:49:38 +0100
commitde29b11a88dbdd3af0824e59b51528b91ee73c54 (patch)
treee1aabf8752043998663279fae4359a18c4b4af07 /src/game.h
parentd87f450f51372ddf013e6bac09f1ef588e6f8bea (diff)
downloadhydracastlelabyrinth-de29b11a88dbdd3af0824e59b51528b91ee73c54.tar.gz
hydracastlelabyrinth-de29b11a88dbdd3af0824e59b51528b91ee73c54.tar.bz2
hydracastlelabyrinth-de29b11a88dbdd3af0824e59b51528b91ee73c54.zip
First commit. Version works on Linux (keyboard only, not configurable)
Diffstat (limited to 'src/game.h')
-rw-r--r--src/game.h217
1 files changed, 217 insertions, 0 deletions
diff --git a/src/game.h b/src/game.h
new file mode 100644
index 0000000..c700f66
--- /dev/null
+++ b/src/game.h
@@ -0,0 +1,217 @@
+#ifndef GAME_H
+#define GAME_H
+
+#include "PHL.h"
+#include "enemy.h"
+#include "enemies/slime.h"
+#include "enemies/bat.h"
+#include "enemies/slug.h"
+#include "enemies/knight.h"
+#include "enemies/heads.h"
+#include "enemies/gas.h"
+#include "enemies/skull.h"
+#include "enemies/fish.h"
+#include "enemies/waterjumper.h"
+#include "enemies/podoboo.h"
+#include "enemies/thwomp.h"
+#include "enemies/dodo.h"
+#include "enemies/batboss.h"
+#include "enemies/crab.h"
+#include "enemies/skeleton.h"
+#include "enemies/ghoul.h"
+#include "enemies/seal.h"
+#include "enemies/jellyfish.h"
+#include "enemies/wizard.h"
+#include "enemies/pendulum.h"
+#include "enemies/gyra.h"
+#include "enemies/lolidra.h"
+#include "enemies/bee.h"
+#include "enemies/devil.h"
+#include "enemies/firewheel.h"
+#include "enemies/boar.h"
+#include "enemies/golem.h"
+#include "enemies/garm.h"
+#include "enemies/poisonknight.h"
+#include "enemies/dog.h"
+#include "enemies/boomknight.h"
+#include "enemies/pumpkin.h"
+#include "enemies/hydra.h"
+#include "object.h"
+#include "effect.h"
+#include "weapon.h"
+#include "platform.h"
+
+#define TITLE 0
+#define GAME 1
+#define INVENTORY 2
+#define OPTIONS 3
+#define SAVING 4
+#define LEVELSTART 5
+#define GETITEM 6
+
+//Sound channels
+#define CHN_MUSIC 0
+#define CHN_SOUND 1 //Various sounds, like menus and fanfares
+#define CHN_HERO 2
+#define CHN_WEAPONS 3
+#define CHN_ENEMIES 4
+#define CHN_EFFECTS 5
+
+Door* lastDoor;
+
+int secretTimer;
+int levelStartTimer;
+int saveTimer;
+
+int quakeTimer;
+
+int bellFlag;
+int bossFlag;
+int bossDefeatedFlag;
+
+char roomDarkness;
+
+//Used for item get message
+int itemGotX;
+int itemGotY;
+
+int roomSecret;
+
+int collisionTiles[16][12];
+
+//Playtime in frames. At 60 frames per second can hold ~828 1/2 days worth of playtime if my math isn't shit
+unsigned long playTime;
+
+//Inventory
+unsigned char hasWeapon[5];
+unsigned char hasItem[28];
+unsigned char hasKey[8];
+
+//Save data flags
+unsigned char flags[60];
+
+PHL_Background background,
+ foreground;
+
+//Game assets
+PHL_Surface images[15];
+PHL_Music bgmMusic;
+PHL_Music bgmSecret;
+PHL_Music bgmGameover;
+PHL_Sound sounds[43];
+
+#define MAX_WEAPONS 5
+Weapon* weapons[MAX_WEAPONS];
+
+#define MAX_OBJECTS 40
+Object* objects[MAX_OBJECTS];
+
+#define MAX_ENEMIES 20
+Enemy* enemies[MAX_ENEMIES];
+
+#define MAX_EFFECTS 30
+Effect* effects[MAX_EFFECTS];
+
+#define MAX_PLATFORMS 10
+Platform* platforms[MAX_PLATFORMS];
+
+//Graphic names
+#define imgTiles 0
+#define imgEnemies 1
+#define imgHud 2
+#define imgMisc20 3
+#define imgMisc32 4
+#define imgHero 5
+#define imgItems 6
+#define imgExplosion 7
+#define imgBoss 8
+#define imgMisc2040 9
+#define imgFontKana 10
+#define imgBoldFont 11
+#define imgDark 12
+#define imgMisc6020 13
+#define imgTitle01 14
+
+//Sound names
+#define sndBee01 0
+#define sndBell01 1
+#define sndBom01 2
+#define sndBom02 3
+#define sndBom03 4
+#define sndDoor00 5
+#define sndFire01 6
+#define sndGas01 7
+#define sndGet01 8
+#define sndGet02 9
+#define sndHit01 10
+#define sndHit02 11
+#define sndHit03 12
+#define sndHit04 13
+#define sndHit05 14
+#define sndHit06 15
+#define sndHit07 16
+#define sndJump01 17
+#define sndJump02 18
+#define sndNg 19
+#define sndOk 20
+#define sndPi01 21
+#define sndPi02 22
+#define sndPi03 23
+#define sndPi04 24
+#define sndPi05 25
+#define sndPi06 26
+#define sndPi07 27
+#define sndPi08 28
+#define sndPi09 29
+#define sndPi10 30
+#define sndPower01 31
+#define sndPower02 32
+#define sndShot01 33
+#define sndShot02 34
+#define sndShot03 35
+#define sndShot04 36
+#define sndShot05 37
+#define sndShot06 38
+#define sndShot07 39
+#define sndStep01 40
+#define sndWater01 41
+#define sndWolf01 42
+
+void loadResources();
+void freeResources();
+
+void game();
+
+void gameSetup();
+void gameCleanup();
+
+void enterDoor();
+void getItem(int itemNum);
+void saveScreen();
+
+void gameEnding();
+
+//void enterDoor(Door* d);
+void loadScreen();
+
+void changeScreen(int dx, int dy);
+
+int writeSave(char* fname);
+void loadSave(char* fname);
+
+int fileExists(char* fpath);
+
+void playSecret();
+void secretCountdown();
+
+int getDrawHP();
+void setDrawHP(int val);
+
+int getLevel();
+
+void setBossRoom();
+
+void setAutoSave(char val);
+char getAutoSave();
+
+#endif \ No newline at end of file