-vec2d hacker_extents(void) { return (vec2d) { FIXED_INT_I(5), FIXED_INT_I(8) }; }
-static vec2d const shot_spawn_inertia = { FIXED_POINT_I(0, 800), FIXED_POINT_I(0, -800) };
-
-static badge_sprite const anim_hacker[] = {
- { 5, 8, (uint8_t const *) "\x1c\xff\xfd\x04\x04" },
- { 5, 8, (uint8_t const *) "\x1c\xff\x3d\xc4\x04" },
- { 5, 8, (uint8_t const *) "\xdc\x3f\x1d\x24\xc4" },
- { 5, 8, (uint8_t const *) "\x1c\xff\x3d\xc4\x04" }
- /*
- { 5, 8, (uint8_t const *) "\x46\xfc\x73\x8c\x31" },
- { 5, 8, (uint8_t const *) "\x46\xfc\x73\x8c\x52" },
- { 5, 8, (uint8_t const *) "\x46\xfc\x73\x94\x8c" },
- { 5, 8, (uint8_t const *) "\x46\xfc\x73\x8c\x52" }
- */
- /*
- { 6, 8, (uint8_t const *) "\x0c\xe1\x3b\x0e\xc3\x30" },
- { 6, 8, (uint8_t const *) "\x0c\xe1\x3b\x0e\x43\x51" },
- { 6, 8, (uint8_t const *) "\x0c\xe1\x3b\x0e\x35\x82" },
- { 6, 8, (uint8_t const *) "\x0c\xe1\x3b\x0e\x43\x51" }
- */
- /*
- { 6, 8, (uint8_t const *) "\xff\xff\xff\xff\xff\xff" },
- { 6, 8, (uint8_t const *) "\xff\xff\xff\xff\xff\xff" },
- { 6, 8, (uint8_t const *) "\xff\xff\xff\xff\xff\xff" },
- { 6, 8, (uint8_t const *) "\xff\xff\xff\xff\xff\xff" }
- */
-};
-
-badge_sprite const *jumpnrun_hacker_symbol(void) {
- return &anim_hacker[0];
-}
-
-static badge_sprite const anim_sickle[] = {
- { 3, 3, (uint8_t const *) "\xab\x01" },
- { 3, 3, (uint8_t const *) "\xee\x00" }
-/*
- { 3, 3, (uint8_t const *) "\x8a\x01" },
- { 3, 3, (uint8_t const *) "\x6a" },
- { 3, 3, (uint8_t const *) "\xa3" },
- { 3, 3, (uint8_t const *) "\xac" }
-*/
-};
-
-enum {
- JUMPNRUN_SHOT_EXTENT = 3,
- JUMPNRUN_SHOT_TICKS_PER_FRAME = 36
-};
-
-static void jumpnrun_shot_spawn(jumpnrun_shot *shot, jumpnrun_game_state const *state) {
- shot->tick = 0;
- shot->inertia = shot_spawn_inertia;
-
- if(state->player.anim_direction == BADGE_BLT_MIRRORED) {
- shot->current_box = rectangle_new((vec2d) { fixed_point_sub(rectangle_left(&state->player.current_box), FIXED_INT(JUMPNRUN_SHOT_EXTENT)), rectangle_top(&state->player.current_box) },
- (vec2d) { FIXED_INT(JUMPNRUN_SHOT_EXTENT), FIXED_INT(JUMPNRUN_SHOT_EXTENT) });
- shot->inertia.x = fixed_point_neg(shot->inertia.x);
- } else {
- shot->current_box = rectangle_new((vec2d) { rectangle_right(&state->player.current_box), rectangle_top(&state->player.current_box) },
- (vec2d) { FIXED_INT(JUMPNRUN_SHOT_EXTENT), FIXED_INT(JUMPNRUN_SHOT_EXTENT) });
- }
-
- shot->old_box = shot->current_box;
- shot->inertia = vec2d_add(shot->inertia, state->player.inertia);
-}
-