typedef struct hyperKaos HyperKaos; typedef struct synergy Synergy; typedef struct obstruction { SDL_Rect domain; int tombStone; } Obstruction; Obstruction* newObstruction(int x, int y, int w, int h); void deleteObstruction(Obstruction* target); typedef struct fgImage { int frames; int frameNow; int dualLayer; int tombStone; SDL_Rect location; SDL_Surface* spriteSheet; } FGImage; FGImage* newFGImage(int x, int y, int w, int h, int f, int dual, char* filename, int alpha); void deleteFGImage(FGImage* target); typedef struct warpZone { SDL_Rect location; enum dataChunks chunk; int destination; int x, y; int tombStone; } WarpZone; WarpZone* newWarpZone(int x, int y, int w, int h, enum dataChunks chunk, int dest, int dX, int dY); void deleteWarpZone(WarpZone* target); typedef struct room { SDL_Surface* spriteSheet; SDL_Rect clip; int frameNo; Obstruction** obstacle; int numberOfObstacles; int maxNumberOfObstacles; FGImage** fgObject; int numberOfObj; int maxNumberOfObj; int objSpeed; int objIterator; WarpZone** warps; int numberOfWarps; int maxNumberOfWarps; HyperKaos** eventTriggers; int numberOfTriggers; int maxNumberOfTriggers; Synergy** sigils; int numberOfSigils; int maxNumberOfSigils; Player** people; int numberOfPeople; int maxNumberOfPeople; } Room; void warpto(Room* destination); Room* newRoom(char* filename, int a); void deleteRoom(Room* target); void animate(Room* self); int checkCollision(Room* self, Player* player, Obstruction** box); int checkWCollision(Room* self, Player* player, WarpZone** warpBoxes, int* whichWarp); int checkKCollision(Room* self, Player* player, HyperKaos** triggers, int* whichTrigger, int* triggerType, int iType); void addObstacle(Room* self, int x, int y, int w, int h); void deleteObstacle(Room* self, int i); void addFgObj(Room* self, int x, int y, int w, int h, char* filename, int f, int dual, int alpha); void deleteFgObj(Room* self, int i); void drawFgObjects1(Room* self); void drawFgObjects2(Room* self); void addWarp(Room* self, int x, int y, int w, int h, enum dataChunks toChunk, int toRoom, int toX, int toY); void deleteWarp(Room* self, int i); void addTrigger(Room* self, HyperKaos* newTrigger); void deleteTrigger(Room* self, int i); void addSigil(Room* self, Synergy* newSigil); void deleteSigil(Room* self, int i); void addPerson(Room* self, Player* newPlayer); void deletePerson(Room* self, int i); void drawPeople(Room* self);