Evil_Monochrome/include/level.h

94 lines
1.2 KiB
C

#ifndef _LEVEL_H_
#define _LEVEL_H_
#include <gint/display.h>
#include <stdbool.h>
typedef struct {
enum {Ally, Foe, Zero} side;
char * name;
char * rank;
image_t * picture;
int x;
int y;
int HP;
int MP;
int ATK;
int DEF;
}Entity;
typedef enum {
Forest,
Mountain,
Path,
Cloud,
}Tile_type;
typedef struct {
Tile_type type;
Entity * entity;
}Tile;
typedef struct {
int width;
int height;
Tile * tile;
}Map;
typedef struct {
enum {Text, Art} type;
union {
const char * text;
image_t * art;
};
}Slide;
typedef struct Engine{
Map * map;
int nb_event;
int event_pos;
struct Event{
int turn;
void (*ev_func)(struct Engine *);
char * dialog;
}*event_list;
int nb_entity;
Entity * entity_list;
int nb_ally;
int nb_foe;
int turn;
int x_cursor;
int y_cursor;
int x_view;
int y_view;
bool victory;
bool defeat;
}Engine;
typedef struct {
int turn;
void (*ev_func)(struct Engine *);
char * dialog;
}Event;
typedef struct {
int nb_pro, nb_event, nb_epi;
Slide * prologue;
Event * event_list;
Slide * epilogue;
}Script;
typedef struct {
char * name;
image_t * art;
char * description;
Map * map;
int nb_entity;
Entity * entity_list;
Script * script;
}Level;
#endif // _LEVEL_H_