};
typedef struct jumpnrun_shot {
+ rectangle old_box;
rectangle current_box;
vec2d inertia;
uint8_t tick;
} jumpnrun_shot;
static inline bool jumpnrun_shot_spawned(jumpnrun_shot const *shot) { return fixed_point_ne(shot->inertia.x, FIXED_INT(0)); }
+static inline void jumpnrun_shot_despawn(jumpnrun_shot *shot) { shot->inertia.x = FIXED_INT(0); }
enum {
JUMPNRUN_MAX_SHOTS = 2
uint8_t status;
int left;
+ uint8_t lives;
jumpnrun_shot shots[JUMPNRUN_MAX_SHOTS];
} jumpnrun_game_state;
-rectangle hacker_rect_current(jumpnrun_game_state const *state);
-
+vec2d hacker_extents(void);
void jumpnrun_passive_movement(vec2d *inertia);
uint8_t jumpnrun_play(char const *lvname);