#include extern SDL_Window *window; extern SDL_Renderer *renderer; extern unsigned input_now; extern struct entity { int (*update)(struct entity *self); int (*hurt)(struct entity *self, int damage); int (*draw)(struct entity *self, int camx, int camy); int x, y; // unsigned results in a bunch of weird edge cases struct velocity { signed x, y; } velocity; struct hitbox { unsigned left, right, top, bottom; } hitbox; unsigned state; int hp; int timer; void *texture; void *ext; } player[1];