all repos — hyperkaos @ 1fed6282f56e78c5e5b77a2834b9555298c6b0c0

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

Kaos.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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
typedef struct player Player;
typedef struct hyperKaos HyperKaos;

typedef struct kaos
{
  void* kType;
  void (*run)(struct kaos* self);
  void (*destroy)(struct kaos* self);
  struct kaos* next;
} Kaos;

typedef struct kaos_Conversation
{
  Kaos* core;
  int index;
} Conversation;

typedef struct kaos_Choice
{
  Kaos* core;
  SDL_Surface* question;
  SDL_Surface* answ1;
  SDL_Surface* answ2;
  HyperKaos* path1;
  HyperKaos* path2;
} Choice;

typedef struct kaos_Manip
{
  Kaos* core;
  Player* target;
  int xSpd, ySpd;
} Manip;

typedef struct kaos_Look
{
  Kaos* core;
  Player* target;
  char dir;
} Look;

typedef struct kaos_FaceEachother
{
  Kaos* core;
  Player* p1;
  Player* p2;
} FaceEachother;

#ifdef SOUND_ON
typedef struct kaos_PlaySound
{
  Kaos* core;
  int i;
} PlaySound;
#endif

typedef struct kaos_Teleport
{
  Kaos* core;
  Player* target;
  int x, y;
  int out;
  SDL_Surface* aura;
} Teleport;

typedef struct kaos_Erase
{
  Kaos* core;
  char type;
  int index;
} Erase;

typedef struct kaos_Wait
{
  Kaos* core;
  char type;
  int frames;
} Wait;

typedef struct kaos_Spell_Beam
{
  Kaos* core;
  SDL_Surface* aura;
} Spell_Beam;

Kaos* rawKaos();

Kaos* newConversation(int i);
void runConversation(Kaos* self);
void deleteConversation(Kaos* target);

Kaos* newChoice(char* q, char* a1, char* a2, HyperKaos* p1, HyperKaos* p2);
void runChoice(Kaos* self);
void deleteChoice(Kaos* target);

Kaos* newManip(Player* t, int x, int y);
void runManip(Kaos* self);
void deleteManip(Kaos* target);

Kaos* newLook(Player* t, char d);
void runLook(Kaos* self);
void deleteLook(Kaos* target);

Kaos* newTeleport(Player* p, int x, int y, int o);
void runTeleport(Kaos* self);
void deleteTeleport(Kaos* target);

Kaos* newFaceEachother(Player* p1, Player* p2);
void runFaceEachother(Kaos* self);
void deleteFaceEachother(Kaos* target);

#ifdef SOUND_ON
Kaos* newPlaySound(int i);
void runPlaySound(Kaos* self);
void deletePlaySound(Kaos* target);
#endif

Kaos* newErase(char t, int i);
void runErase(Kaos* self);
void deleteErase(Kaos* target);

Kaos* newWait(char t, int i);
void runWait(Kaos* self);
void deleteWait(Kaos* target);

Kaos* newSpell_Beam();
void runSpell_Beam(Kaos* self);
void deleteSpell_Beam(Kaos* target);