typedef struct kaos Kaos;

typedef struct hyperKaos
{
  int kaosID;
  int eventType;
  SDL_Rect domain;
  Kaos* head;
} HyperKaos;

HyperKaos* newHyperKaos(int id, int type, int x, int y, int w, int h);
void deleteHyperKaos(HyperKaos* target);
void cleanHyperKaos(HyperKaos* self);

void run(HyperKaos* self);
void addKaos(HyperKaos* self, Kaos* target);
int isCompleted(int x);
int notCompleted(int x);
