diff options
Diffstat (limited to 'src/extern.h')
-rw-r--r-- | src/extern.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/extern.h b/src/extern.h new file mode 100644 index 0000000..482b9ed --- /dev/null +++ b/src/extern.h @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2019-2020, yzrh <yzrh@noema.org> + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include <SDL2/SDL.h> +#include <SDL2/SDL_ttf.h> + +#include "renderer.h" +#include "game.h" +#include "input.h" + +bool collision(int *a, int *b); +bool collision_block(int *a, int *b); +bool collision_bound(float x, float y, Snake_Text *message); + +void draw_clear(SDL_Renderer *renderer); +void draw_colour(SDL_Renderer *renderer, Snake_Colour colour); +void draw_text(SDL_Renderer *renderer, TTF_Font *font, + int text_x, int text_y, char *text, + bool centre, bool select, SDL_Color fg, SDL_Color bg, + Snake_Text *message); +void draw_wall(SDL_Renderer *renderer); +void draw_snake(SDL_Renderer *renderer, Snake_Pos **snake); +void draw_fruit(SDL_Renderer *renderer, int *fruit); +void draw_pipe(SDL_Renderer *renderer, Snake_Pos **pipe); + +void game_snake_init(Snake_Pos **snake, int dx); +void game_snake_move(Snake_Pos **snake0, Snake_Pos **snake1, + Snake_Input *head, bool lawi, int *legal); +void game_snake_grow(Snake_Pos **snake); +void game_fruit(int *fruit, Snake_Pos **snake); +void game_snake_fall(Snake_Pos **snake, bool norm, int speed); +void game_pipe_init(Snake_Pos **pipe); +void game_pipe_move(Snake_Pos **pipe); +void game_pipe_add(Snake_Pos **pipe); +void game_pipe_del(Snake_Pos **pipe); +void game_pipe_pos(Snake_Pos **pipe, int *state); +void game_pipe_bound(Snake_Pos **pipe, int *pos); + +void input_keyboard(SDL_Keycode sym, Snake_Input *code); +void input_controller(uint8_t button, Snake_Input *code); +void input_gpio(int gpio, uint8_t *button); + +#ifdef GPIO + +int gpio_export(int pin); +int gpio_unexport(int pin); +int gpio_config(int pin, int direction, int interrupt); +int gpio_write(int pin, int value); +int gpio_read(int pin); + +#endif /* GPIO */ |