Schlüssel, verschlüsselte Dokumente.
[hackover2013-badge-firmware.git] / badge / jumpnrun / jumpnrun.h
index 598e8da..899eebc 100644 (file)
@@ -6,9 +6,8 @@
 #include "levels.h"
 #include "tiles.h"
 
-#include "../util/fixed_point.h"
-#include "../util/rectangle.h"
 #include "../ui/sprite.h"
+#include "../util/util.h"
 
 #include <stdbool.h>
 #include <stddef.h>
@@ -25,27 +24,32 @@ enum {
   JUMPNRUN_MAX_SPAWNED_ENEMIES = 10
 };
 
-typedef struct jumpnrun_game_state {
-  vec2d   current_pos;
-  vec2d   inertia;
-  vec2d   inertia_mod;
-  uint8_t status;
+typedef struct jumpnrun_shot {
+  rectangle old_box;
+  rectangle current_box;
+  vec2d     inertia;
+  uint8_t   tick;
+} jumpnrun_shot;
 
-  uint8_t tick_minor;
-  uint8_t anim_frame;
-  uint8_t anim_direction;
+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); }
 
-  int     left;
+enum {
+  JUMPNRUN_MAX_SHOTS = 2
+};
 
-  bool    touching_ground;
-  uint8_t jumpable_frames;
+typedef struct jumpnrun_game_state {
+  jumpnrun_moveable player;
 
-  size_t  spawned_enemies_counter;
-  size_t  spawned_enemies[JUMPNRUN_MAX_SPAWNED_ENEMIES];
-} jumpnrun_game_state;
+  uint8_t status;
+  int     left;
+  uint8_t lives;
+  uint8_t keys;
 
-rectangle hacker_rect_current(jumpnrun_game_state const *state);
+  jumpnrun_shot shots[JUMPNRUN_MAX_SHOTS];
+} jumpnrun_game_state;
 
+vec2d hacker_extents(void);
 void jumpnrun_passive_movement(vec2d *inertia);
 
 uint8_t jumpnrun_play(char const *lvname);
This page took 0.022953 seconds and 4 git commands to generate.