all repos — hyperkaos @ 21865a49b14bbaffaebdbc9fc43b6011ad9527e2

lightweight modular puzzle/adventure game engine in C with SDL 1.2

Room.h (raw)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
typedef struct hyperKaos HyperKaos;

typedef struct fgImage
{
  int frames;
  int frameNow;
  int dualLayer;

  SDL_Rect location;
  SDL_Surface* spriteSheet;
} FGImage;


typedef struct warpZone
{
  SDL_Rect location;
  enum dataChunks chunk;
  int destination;
  int x, y;
} WarpZone;

typedef struct room
{
  SDL_Surface* spriteSheet;
  SDL_Surface* bgImage;
  int frameNo;

  SDL_Rect* obstacle;
  int numberOfObstacles;
  int maxNumberOfObstacles;

  struct fgImage* fgObject;
  int numberOfObj;
  int maxNumberOfObj;
  int objSpeed;
  int objIterator;

  WarpZone* warps;
  int numberOfWarps;
  int maxNumberOfWarps;

  HyperKaos** eventTriggers;
  int numberOfTriggers;
  int maxNumberOfTriggers;

  Player** people;
  int numberOfPeople;
  int maxNumberOfPeople;

} Room;

void warpto(Room* destination);

Room* newRoom(char* filename, int a);
void deleteRoom(Room* target);

void changeRSprite(Room* self, SDL_Rect* clip);
void animate(Room* self);

int checkCollision(Room* self, SDL_Rect* player, SDL_Rect* box);
int checkWCollision(Room* self, SDL_Rect* player, WarpZone* warpBoxes, int* whichWarp);
int checkKCollision(Room* self, SDL_Rect* player, HyperKaos** triggers, int* whichTrigger, int* triggerType);

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);
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 addPerson(Room* self, Player* newPlayer);
void deletePerson(Room* self, int i);
void drawPeople(Room* self);