+ {
+ .animation_ticks_per_frame = 18,
+ .animation_length = ARRAY_SIZE(anim_cat),
+ .animation_frames = anim_cat,
+ .hitbox = { { FIXED_INT_I(1), FIXED_INT_I(2) },
+ { FIXED_INT_I(6), FIXED_INT_I(3) } },
+ .spawn_inertia = { FIXED_POINT_I(0, -200), FIXED_INT_I(0) },
+ .collision_tiles = enemy_collision_tiles_bounce_horiz,
+ .collision_player = enemy_collision_player_jumpable,
+ .collision_shots = enemy_collision_shots_die,
+ .move_tick = enemy_tick_straight_ahead
+ }, {
+ .animation_ticks_per_frame = 12,
+ .animation_length = ARRAY_SIZE(anim_mushroom),
+ .animation_frames = anim_mushroom,
+ .hitbox = { { FIXED_INT_I(1), FIXED_INT_I(1) },
+ { FIXED_INT_I(5), FIXED_INT_I(6) } },
+ .spawn_inertia = { FIXED_POINT_I(0, -80), FIXED_INT_I(0) },
+ .collision_tiles = enemy_collision_tiles_bounce_horiz,
+ .collision_player = enemy_collision_player_jumpable,
+ .collision_shots = enemy_collision_shots_die,
+ .move_tick = enemy_tick_straight_follow
+ }, {
+ .animation_ticks_per_frame = 9,
+ .animation_length = ARRAY_SIZE(anim_bunny),
+ .animation_frames = anim_bunny,
+ .hitbox = { { FIXED_INT_I(1), FIXED_INT_I(2) },
+ { FIXED_INT_I(5), FIXED_INT_I(3) } },
+ .spawn_inertia = { FIXED_POINT_I(0, -80), FIXED_POINT_I(0, -800) },
+ .collision_tiles = enemy_collision_tiles_bounce_horiz,
+ .collision_player = enemy_collision_player_jumpable,
+ .collision_shots = enemy_collision_shots_die,
+ .move_tick = enemy_tick_jumper
+ }, {
+ .animation_ticks_per_frame = 6,
+ .animation_length = ARRAY_SIZE(anim_snake),
+ .animation_frames = anim_snake,
+ .hitbox = { { FIXED_INT_I(1), FIXED_INT_I(4) },
+ { FIXED_INT_I(8), FIXED_INT_I(2) } },
+ .spawn_inertia = { FIXED_POINT_I(0, -150), FIXED_INT_I(0) },
+ .collision_tiles = enemy_collision_tiles_bounce_horiz,
+ .collision_player = enemy_collision_player_jumpable,
+ .collision_shots = enemy_collision_shots_die,
+ .move_tick = enemy_tick_straight_ahead
+ }, {
+ .animation_ticks_per_frame = 6,
+ .animation_length = ARRAY_SIZE(anim_spiral),
+ .animation_frames = anim_spiral,
+ .hitbox = { { FIXED_INT_I(1), FIXED_INT_I(1) },
+ { FIXED_INT_I(8), FIXED_INT_I(8) } },
+ .spawn_inertia = { FIXED_INT_I(0), FIXED_POINT_I(0, -200) },
+ .collision_tiles = enemy_collision_tiles_pass_through,
+ .collision_player = enemy_collision_player_deadly,
+ .collision_shots = enemy_collision_shots_dontcare,
+ .move_tick = enemy_tick_swing_up_and_down
+ }, {
+ .animation_ticks_per_frame = 5,
+ .animation_length = ARRAY_SIZE(anim_rotor),
+ .animation_frames = anim_rotor,
+ .hitbox = { { FIXED_INT_I(1), FIXED_INT_I(1) },
+ { FIXED_INT_I(7), FIXED_INT_I(7) } },
+ .spawn_inertia = { FIXED_INT_I(0), FIXED_POINT_I(0, 0) },
+ .collision_tiles = enemy_collision_tiles_pass_through,
+ .collision_player = enemy_collision_player_deadly,
+ .collision_shots = enemy_collision_shots_dontcare,
+ .move_tick = enemy_tick_stationary
+ }, {
+ .animation_ticks_per_frame = 18,
+ .animation_length = ARRAY_SIZE(anim_dog),
+ .animation_frames = anim_dog,
+ .hitbox = { { FIXED_INT_I(1), FIXED_INT_I(1) },
+ { FIXED_INT_I(6), FIXED_INT_I(4) } },
+ .spawn_inertia = { FIXED_POINT_I(0, -200), FIXED_POINT_I(0, 0) },
+ .collision_tiles = enemy_collision_tiles_bounce_horiz,
+ .collision_player = enemy_collision_player_jumpable,
+ .collision_shots = enemy_collision_shots_die,
+ .move_tick = enemy_tick_dog
+ }, {
+ .animation_ticks_per_frame = 36,
+ .animation_length = ARRAY_SIZE(anim_giraffe),
+ .animation_frames = anim_giraffe,
+ .hitbox = { { FIXED_INT_I(2), FIXED_INT_I(1) },
+ { FIXED_INT_I(4), FIXED_INT_I(9) } },
+ .spawn_inertia = { FIXED_POINT_I(0, -150), FIXED_POINT_I(-1, -200) },
+ .collision_tiles = enemy_collision_tiles_bounce_horiz,
+ .collision_player = enemy_collision_player_jumpable,
+ .collision_shots = enemy_collision_shots_bounce,
+ .move_tick = enemy_tick_giraffe
+ }, {
+ .animation_ticks_per_frame = 24,
+ .animation_length = ARRAY_SIZE(anim_bird),
+ .animation_frames = anim_bird,
+ .hitbox = { { FIXED_INT_I(1), FIXED_INT_I(3) },
+ { FIXED_INT_I(7), FIXED_INT_I(3) } },
+ .spawn_inertia = { FIXED_POINT_I(0, -400), FIXED_POINT_I(0, -150) },
+ .collision_tiles = enemy_collision_tiles_bounce_horiz,
+ .collision_player = enemy_collision_player_jumpable,
+ .collision_shots = enemy_collision_shots_die,
+ .move_tick = enemy_tick_swing_up_and_down
+ }, {
+ .animation_ticks_per_frame = 24,
+ .animation_length = ARRAY_SIZE(anim_bird),
+ .animation_frames = anim_bird,
+ .hitbox = { { FIXED_INT_I(1), FIXED_INT_I(3) },
+ { FIXED_INT_I(7), FIXED_INT_I(3) } },
+ .spawn_inertia = { FIXED_POINT_I(0, -400), FIXED_INT_I(0) },
+ .collision_tiles = enemy_collision_tiles_bounce_horiz,
+ .collision_player = enemy_collision_player_jumpable,
+ .collision_shots = enemy_collision_shots_die,
+ .move_tick = enemy_tick_fly_straight