X-Git-Url: https://git.rohieb.name/hackover2013-badge-firmware.git/blobdiff_plain/5c7e2bec0575eedd6a1026f865c90c1bfeefcd8f..b62e04839e483eb0998029320397cc77324a4a6e:/badge/jumpnrun/jumpnrun.h?ds=sidebyside diff --git a/badge/jumpnrun/jumpnrun.h b/badge/jumpnrun/jumpnrun.h index cdbcf95..7890889 100644 --- a/badge/jumpnrun/jumpnrun.h +++ b/badge/jumpnrun/jumpnrun.h @@ -4,6 +4,7 @@ #include "enemies.h" #include "items.h" #include "levels.h" +#include "shots.h" #include "tiles.h" #include "../ui/sprite.h" @@ -14,8 +15,8 @@ enum { JUMPNRUN_PLAYING, - JUMPNRUN_DEAD, JUMPNRUN_WON, + JUMPNRUN_LOST, JUMPNRUN_ERROR }; @@ -24,33 +25,12 @@ enum { JUMPNRUN_MAX_SPAWNED_ENEMIES = 10 }; -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 -}; - -typedef struct jumpnrun_game_state { - jumpnrun_moveable player; - - uint8_t status; - int left; - - jumpnrun_shot shots[JUMPNRUN_MAX_SHOTS]; -} jumpnrun_game_state; - -rectangle hacker_rect_current(jumpnrun_game_state const *state); - +vec2d jumpnrun_player_extents(void); +void jumpnrun_apply_gravity(vec2d *inertia); void jumpnrun_passive_movement(vec2d *inertia); +badge_sprite const *jumpnrun_hacker_symbol(void); -uint8_t jumpnrun_play(char const *lvname); +uint8_t jumpnrun_play_level(char const *lvname); +void jumpnrun_play(void); #endif