aboutsummaryrefslogtreecommitdiff
path: root/src/object.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/object.h')
-rw-r--r--src/object.h181
1 files changed, 181 insertions, 0 deletions
diff --git a/src/object.h b/src/object.h
new file mode 100644
index 0000000..8da299a
--- /dev/null
+++ b/src/object.h
@@ -0,0 +1,181 @@
+#ifndef OBJECT_H
+#define OBJECT_H
+
+#include "collision.h"
+
+typedef struct {
+ void* data; //Specific object struct
+ void (*objectStep)();
+ void (*objectDraw)();
+ int type;
+} Object;
+
+void objectDestroy(int id);
+
+//Health/Ammo collectables
+typedef struct {
+ int id, type; //0 for ammo, 1 for heart
+ double x, y,
+ vsp, grav;
+
+ int blink, canLand, bounce;
+} Ammo;
+
+void spawnCollectable(int x, int y);
+void createAmmo(int x, int y, int type);
+
+//Destroyable blocks
+typedef struct {
+ int id;
+ int x, y;
+ int hp/*, invulnerable*/;
+ int secret;
+ Mask mask;
+} Destroyable;
+
+void createDestroyable(int x, int y, int secret);
+
+//Secret Trigger
+typedef struct {
+ int id, flag;
+ int type, enemyType;
+} SecretTrigger;
+
+void createSecretTrigger(int type, int enemyType, int flag);
+
+//Chest
+typedef struct {
+ int id;
+ int x, y;
+ int item, secret;
+ int visible;
+ int timer;
+
+ Mask mask;
+} Chest;
+
+void createChest(int x, int y, int item, int secret);
+
+//Save point
+typedef struct {
+ int id;
+ int x, y;
+ double imageIndex;
+
+ Mask mask;
+} SavePoint;
+
+void createSavePoint(int x, int y, int hidden);
+
+//Door
+typedef struct {
+ int id;
+ int x, y;
+ int open, secret, visible;
+
+ int warplevel, warpcoords;
+ int warpx, warpy;
+
+ Mask mask;
+} Door;
+
+void createDoor(int x, int y, int level, int coords, int warpx, int warpy, int secret);
+
+//Lock Block
+typedef struct {
+ int id, flag;
+ int x, y;
+ int tile;
+ int invincible;
+} LockBlock;
+
+void createLockBlock(int x, int y, int flag);
+
+//Light Switch
+typedef struct {
+ int id, flag;
+ int x, y;
+ int activated;
+ double imageIndex;
+} Switch;
+
+void createSwitch(int x, int y, int flag);
+
+//Blue/Red Gates
+typedef struct {
+ int id;
+ int x, y;
+ int col;
+ int timer, open;
+ //int invincible;
+ double imageIndex;
+} Gate;
+
+void createGate(int x, int y, int col);
+
+//Statue
+typedef struct {
+ int id;
+ int x, y;
+ int type;
+ int invincible;
+ int hp;
+} Statue;
+
+void createStatue(int x, int y, int type);
+
+//Button
+typedef struct {
+ int id;
+ int x, y;
+ int flag;
+ int pressed;
+} FloorPad;
+
+void createFloorPad(int x, int y, int flag);
+
+//Ladder
+typedef struct {
+ int id;
+ int x, y;
+ int flag;
+} Ladder;
+
+void createLadder(int x, int y, int flag);
+
+//Generator
+typedef struct {
+ int id;
+ int hp;
+ int blink;
+ int x, y;
+ double imageIndex;
+ int flag;
+} Generator;
+
+void createGenerator(int x, int y, int flag);
+
+//Electric gate
+typedef struct {
+ int id;
+ int x, y;
+ double imageIndex;
+ int flag;
+} Shockgate;
+
+void createShockgate(int x, int y, int flag);
+
+//Ending crown
+typedef struct {
+ int id;
+ int x, ystart;
+ double y;
+ double bobRot;
+ double imageIndex;
+ int timer;
+ char visible;
+} Crown;
+
+void createCrown(int x, int y);
+
+#endif \ No newline at end of file