2018-09-20 01:27:47 +00:00
|
|
|
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;
|
|
|
|
|
2018-11-13 21:30:59 +00:00
|
|
|
#ifdef SOUND_ON
|
2018-09-20 01:27:47 +00:00
|
|
|
typedef struct kaos_PlaySound
|
|
|
|
{
|
|
|
|
Kaos* core;
|
|
|
|
int i;
|
|
|
|
} PlaySound;
|
2018-11-13 21:30:59 +00:00
|
|
|
#endif
|
2018-09-20 01:27:47 +00:00
|
|
|
|
|
|
|
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;
|
|
|
|
|
2018-11-13 21:08:21 +00:00
|
|
|
typedef struct kaos_Spell_Beam
|
|
|
|
{
|
|
|
|
Kaos* core;
|
|
|
|
SDL_Surface* aura;
|
|
|
|
} Spell_Beam;
|
|
|
|
|
2018-09-20 01:27:47 +00:00
|
|
|
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);
|
|
|
|
|
2018-11-13 21:30:59 +00:00
|
|
|
#ifdef SOUND_ON
|
2018-09-20 01:27:47 +00:00
|
|
|
Kaos* newPlaySound(int i);
|
|
|
|
void runPlaySound(Kaos* self);
|
|
|
|
void deletePlaySound(Kaos* target);
|
2018-11-13 21:30:59 +00:00
|
|
|
#endif
|
2018-09-20 01:27:47 +00:00
|
|
|
|
|
|
|
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);
|
2018-11-13 21:08:21 +00:00
|
|
|
|
|
|
|
Kaos* newSpell_Beam();
|
|
|
|
void runSpell_Beam(Kaos* self);
|
|
|
|
void deleteSpell_Beam(Kaos* target);
|