hyperkaos/Kaos.h

128 lines
No EOL
2.2 KiB
C

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);