#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