all repos — hyperkaos @ main

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
129
130
131
132
133
134
135
136
137
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;
  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;

typedef struct kaos_Spell_Flash
{
  Kaos* core;
  SDL_Surface* aura;
} Spell_Flash;

Kaos* rawKaos();

Kaos* newConversation(char* args);
void runConversation(Kaos* self);
void deleteConversation(Kaos* target);

Kaos* newChoice(char* args);
void runChoice(Kaos* self);
void deleteChoice(Kaos* target);

Kaos* newManip(char* args);
void runManip(Kaos* self);
void deleteManip(Kaos* target);

Kaos* newLook(char* args);
void runLook(Kaos* self);
void deleteLook(Kaos* target);

Kaos* newTeleport(char* args);
void runTeleport(Kaos* self);
void deleteTeleport(Kaos* target);

Kaos* newFaceEachother(char* args);
void runFaceEachother(Kaos* self);
void deleteFaceEachother(Kaos* target);

#ifdef SOUND_ON
Kaos* newPlaySound(char* args);
void runPlaySound(Kaos* self);
void deletePlaySound(Kaos* target);
#endif

Kaos* newErase(char* args);
void runErase(Kaos* self);
void deleteErase(Kaos* target);

Kaos* newWait(char* args);
void runWait(Kaos* self);
void deleteWait(Kaos* target);

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

Kaos* newSpell_Flash();
void runSpell_Flash(Kaos* self);
void deleteSpell_Flash(Kaos* target);