]> git.lizzy.rs Git - dungeon_game.git/blobdiff - plugins/game/game.h
Fancy up score display
[dungeon_game.git] / plugins / game / game.h
index 28a7c2cfff13ef46db5860906f6d8b7e860ec292..21a94339eb0969bf680f1bd4ba4e4ac6e773b3d2 100644 (file)
@@ -2,6 +2,9 @@
 #define _GAME_H_
 
 #include <stdbool.h>
+#include <sys/ioctl.h>
+#include <stddef.h>
+#include <time.h>
 #define MAP_HEIGHT 1000
 #define MAP_WIDTH 1000
 #define LIGHT 10
@@ -34,10 +37,11 @@ struct entity_step_data
 
 struct entity
 {
-       const char *name;
+       char *name;
        int x, y;
        struct color color;
-       const char *texture;
+       bool use_color;
+       char *texture;
        bool remove;
        void *meta;
        int health;
@@ -59,8 +63,6 @@ struct list
        struct list *next;
 };
 
-typedef struct entity *render_entity_list[LIGHT * 2 + 1][LIGHT * 2 + 1];
-
 struct generator_function
 {
        int chance;
@@ -73,7 +75,19 @@ struct input_handler
        void (*callback)();
 };
 
-extern int score;
+struct globalstep
+{
+       bool run_if_dead;
+       void (*callback)(double dtime);
+};
+
+enum direction
+{
+       UP,
+       LEFT,
+       DOWN,
+       RIGHT,
+};
 
 extern struct color black;
 
@@ -88,26 +102,33 @@ extern struct list *entities;
 
 extern struct entity *entity_collision_map[MAP_WIDTH][MAP_HEIGHT];
 
-extern struct list *air_functions;
-
-extern struct input_handler *input_handlers[256];
+struct color get_color(const char *str);
+void set_color(struct color color, bool bg);
+void light_color(struct color *color, double light);
+void mix_color(struct color *color, struct color other, double ratio);
+void dir_to_xy(enum direction dir, int *x, int *y);
+struct list *add_element(struct list *list, void *element);
+int clamp(int v, int max, int min);
+int max(int a, int b);
+int min(int a, int b);
+void *make_buffer(void *ptr, size_t size);
+double calculate_dtime(struct timespec from, struct timespec to);
+void get_roman_numeral(int number, char **ptr, size_t *len);
 
 void quit();
-struct color get_color(const char *str);
-bool is_outside(int x, int y);
+bool player_dead();
+
 struct node get_node(int x, int y);
+bool is_outside(int x, int y);
 bool is_solid(int x, int y);
-bool move(struct entity *entity, int xoff, int yoff);
+
 bool spawn(struct entity def, int x, int y, void *data);
+bool move(struct entity *entity, int xoff, int yoff);
 void add_health(struct entity *entity, int health);
-void add_score(int s);
-bool player_dead();
-void set_color(struct color color, bool bg);
-void light_color(struct color *color, double light);
-void mix_color(struct color *color, struct color other, double ratio);
+
 void register_air_function(struct generator_function func);
 void register_input_handler(unsigned char c, struct input_handler handler);
-void dir_to_xy(int dir, int *x, int *y);
-struct list *add_element(struct list *list, void *element);
+void register_render_component(void (*callback)(struct winsize ws));
+void register_globalstep(struct globalstep step);
 
 #endif