doukutsu-rs/src/engine_constants/npcs.rs

5140 lines
198 KiB
Rust

use std::fmt::Debug;
use std::marker::PhantomData;
use std::ops::Index;
use serde::{Deserialize, Deserializer, Serialize};
use serde::de::{Error, SeqAccess, Visitor};
use crate::common::Rect;
use crate::macros::fmt::Formatter;
#[derive(Copy, Clone)]
pub struct SafeNPCRect<const T: usize>(pub [Rect<u16>; T]);
impl<const T: usize> Serialize for SafeNPCRect<T> {
#[inline]
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
self.0.serialize(serializer)
}
}
struct SafeNPCRectArrayVisitor<const T: usize>(pub PhantomData<[Rect<u16>; T]>);
impl<'de, const T: usize> Visitor<'de> for SafeNPCRectArrayVisitor<T> {
type Value = [Rect<u16>; T];
fn expecting(&self, formatter: &mut Formatter) -> crate::macros::fmt::Result {
formatter.write_str("an array of rectangles")
}
fn visit_seq<A>(self, mut seq: A) -> Result<Self::Value, A::Error>
where
A: SeqAccess<'de>,
{
let mut rects = [Rect::default(); T];
for (i, rect) in rects.iter_mut().enumerate() {
let el: Rect<u16> = seq.next_element()?.ok_or_else(|| Error::invalid_length(i, &"rectangle"))?;
*rect = el;
}
Ok(rects)
}
}
impl<'de, const T: usize> Deserialize<'de> for SafeNPCRect<T> {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
deserializer.deserialize_seq(SafeNPCRectArrayVisitor(PhantomData)).map(SafeNPCRect)
}
}
static EMPTY_RECT: Rect<u16> = Rect { left: 0, top: 0, right: 0, bottom: 0 };
impl<const T: usize> Index<usize> for SafeNPCRect<T> {
type Output = Rect<u16>;
#[inline]
fn index(&self, index: usize) -> &Self::Output {
self.0.get(index).unwrap_or(&EMPTY_RECT)
}
}
impl<const T: usize> Debug for SafeNPCRect<T> {
#[inline]
fn fmt(&self, f: &mut Formatter) -> crate::macros::fmt::Result {
self.0.fmt(f)
}
}
#[derive(Debug, Copy, Clone, Serialize, Deserialize)]
pub struct NPCConsts {
// pub n000_null: () // Defined in code
#[serde(default = "default_n001_experience")]
pub n001_experience: SafeNPCRect<6>,
#[serde(default = "default_n002_behemoth")]
pub n002_behemoth: SafeNPCRect<14>,
// pub n003_dead_enemy: () // Defined in code
#[serde(default = "default_n004_smoke")]
pub n004_smoke: SafeNPCRect<16>,
#[serde(default = "default_n005_green_critter")]
pub n005_green_critter: SafeNPCRect<6>,
#[serde(default = "default_n006_green_beetle")]
pub n006_green_beetle: SafeNPCRect<10>,
#[serde(default = "default_n007_basil")]
pub n007_basil: SafeNPCRect<6>,
#[serde(default = "default_n008_blue_beetle")]
pub n008_blue_beetle: SafeNPCRect<4>,
#[serde(default = "default_n009_balrog_falling_in")]
pub n009_balrog_falling_in: SafeNPCRect<6>,
#[serde(default = "default_n010_balrog_shooting")]
pub n010_balrog_shooting: SafeNPCRect<8>,
#[serde(default = "default_n011_balrog_energy_shot")]
pub n011_balrog_energy_shot: SafeNPCRect<3>,
#[serde(default = "default_n012_balrog_cutscene")]
pub n012_balrog_cutscene: SafeNPCRect<28>,
#[serde(default = "default_n013_forcefield")]
pub n013_forcefield: SafeNPCRect<4>,
#[serde(default = "default_n014_key")]
pub n014_key: SafeNPCRect<3>,
#[serde(default = "default_n015_closed_chest")]
pub n015_closed_chest: SafeNPCRect<3>,
#[serde(default = "default_n016_save_point")]
pub n016_save_point: SafeNPCRect<8>,
#[serde(default = "default_n017_health_refill")]
pub n017_health_refill: SafeNPCRect<2>,
#[serde(default = "default_n018_door")]
pub n018_door: SafeNPCRect<2>,
#[serde(default = "default_n019_balrog_bust_in")]
pub n019_balrog_bust_in: SafeNPCRect<8>,
#[serde(default = "default_n020_computer")]
pub n020_computer: SafeNPCRect<4>,
#[serde(default = "default_n021_chest_open")]
pub n021_chest_open: Rect<u16>,
#[serde(default = "default_n022_teleporter")]
pub n022_teleporter: SafeNPCRect<2>,
#[serde(default = "default_n023_teleporter_lights")]
pub n023_teleporter_lights: SafeNPCRect<8>,
#[serde(default = "default_n024_power_critter")]
pub n024_power_critter: SafeNPCRect<12>,
#[serde(default = "default_n025_lift")]
pub n025_lift: SafeNPCRect<2>,
#[serde(default = "default_n026_bat_flying")]
pub n026_bat_flying: SafeNPCRect<8>,
#[serde(default = "default_n027_death_trap")]
pub n027_death_trap: Rect<u16>,
#[serde(default = "default_n028_flying_critter")]
pub n028_flying_critter: SafeNPCRect<12>,
#[serde(default = "default_n029_cthulhu")]
pub n029_cthulhu: SafeNPCRect<4>,
#[serde(default = "default_n030_hermit_gunsmith")]
pub n030_hermit_gunsmith: SafeNPCRect<3>,
#[serde(default = "default_n031_bat_hanging")]
pub n031_bat_hanging: SafeNPCRect<10>,
#[serde(default = "default_n032_life_capsule")]
pub n032_life_capsule: SafeNPCRect<2>,
#[serde(default = "default_n033_balrog_bouncing_projectile")]
pub n033_balrog_bouncing_projectile: SafeNPCRect<2>,
#[serde(default = "default_n034_bed")]
pub n034_bed: SafeNPCRect<2>,
#[serde(default = "default_n035_mannan")]
pub n035_mannan: SafeNPCRect<8>,
#[serde(default = "default_n036_balrog_hover")]
pub n036_balrog_hover: SafeNPCRect<12>,
#[serde(default = "default_n037_sign")]
pub n037_sign: SafeNPCRect<2>,
#[serde(default = "default_n038_fireplace")]
pub n038_fireplace: SafeNPCRect<4>,
#[serde(default = "default_n039_save_sign")]
pub n039_save_sign: SafeNPCRect<2>,
#[serde(default = "default_n040_santa")]
pub n040_santa: SafeNPCRect<14>,
#[serde(default = "default_n041_busted_door")]
pub n041_busted_door: Rect<u16>,
#[serde(default = "default_n042_sue")]
pub n042_sue: SafeNPCRect<26>,
#[serde(default = "default_n043_chalkboard")]
pub n043_chalkboard: SafeNPCRect<2>,
#[serde(default = "default_n044_polish")]
pub n044_polish: SafeNPCRect<6>,
#[serde(default = "default_n045_baby")]
pub n045_baby: SafeNPCRect<3>,
// pub n046_hv_trigger: () // Defined in code
#[serde(default = "default_n047_sandcroc")]
pub n047_sandcroc: SafeNPCRect<5>,
#[serde(default = "default_n048_omega_projectiles")]
pub n048_omega_projectiles: SafeNPCRect<4>,
#[serde(default = "default_n049_skullhead")]
pub n049_skullhead: SafeNPCRect<6>,
#[serde(default = "default_n050_skeleton_projectile")]
pub n050_skeleton_projectile: SafeNPCRect<4>,
#[serde(default = "default_n051_crow_and_skullhead")]
pub n051_crow_and_skullhead: SafeNPCRect<10>,
#[serde(default = "default_n052_sitting_blue_robot")]
pub n052_sitting_blue_robot: Rect<u16>,
#[serde(default = "default_n053_skullstep_leg")]
pub n053_skullstep_leg: SafeNPCRect<4>,
#[serde(default = "default_n054_skullstep")]
pub n054_skullstep: SafeNPCRect<6>,
#[serde(default = "default_n055_kazuma")]
pub n055_kazuma: SafeNPCRect<12>,
#[serde(default = "default_n056_tan_beetle")]
pub n056_tan_beetle: SafeNPCRect<6>,
#[serde(default = "default_n057_crow")]
pub n057_crow: SafeNPCRect<10>,
#[serde(default = "default_n058_basu")]
pub n058_basu: SafeNPCRect<6>,
#[serde(default = "default_n059_eye_door")]
pub n059_eye_door: SafeNPCRect<4>,
#[serde(default = "default_n060_toroko")]
pub n060_toroko: SafeNPCRect<16>,
#[serde(default = "default_n061_king")]
pub n061_king: SafeNPCRect<22>,
#[serde(default = "default_n062_kazuma_computer")]
pub n062_kazuma_computer: SafeNPCRect<3>,
#[serde(default = "default_n063_toroko_stick")]
pub n063_toroko_stick: SafeNPCRect<12>,
#[serde(default = "default_n064_first_cave_critter")]
pub n064_first_cave_critter: SafeNPCRect<6>,
#[serde(default = "default_n065_first_cave_bat")]
pub n065_first_cave_bat: SafeNPCRect<8>,
#[serde(default = "default_n066_misery_bubble")]
pub n066_misery_bubble: SafeNPCRect<4>,
#[serde(default = "default_n067_misery_floating")]
pub n067_misery_floating: SafeNPCRect<16>,
#[serde(default = "default_n068_balrog_running")]
pub n068_balrog_running: SafeNPCRect<18>,
#[serde(default = "default_n069_pignon")]
pub n069_pignon: SafeNPCRect<12>,
#[serde(default = "default_n070_sparkle")]
pub n070_sparkle: SafeNPCRect<4>,
#[serde(default = "default_n071_chinfish")]
pub n071_chinfish: SafeNPCRect<6>,
#[serde(default = "default_n072_sprinkler")]
pub n072_sprinkler: SafeNPCRect<2>,
#[serde(default = "default_n073_water_droplet")]
pub n073_water_droplet: SafeNPCRect<5>,
#[serde(default = "default_n074_jack")]
pub n074_jack: SafeNPCRect<12>,
#[serde(default = "default_n075_kanpachi")]
pub n075_kanpachi: SafeNPCRect<2>,
// pub n076_flowers: () // Defined in code
#[serde(default = "default_n077_yamashita")]
pub n077_yamashita: SafeNPCRect<3>,
#[serde(default = "default_n078_pot")]
pub n078_pot: SafeNPCRect<2>,
#[serde(default = "default_n079_mahin")]
pub n079_mahin: SafeNPCRect<6>,
#[serde(default = "default_n080_gravekeeper")]
pub n080_gravekeeper: SafeNPCRect<14>,
#[serde(default = "default_n081_giant_pignon")]
pub n081_giant_pignon: SafeNPCRect<12>,
#[serde(default = "default_n082_misery_standing")]
pub n082_misery_standing: SafeNPCRect<18>,
#[serde(default = "default_n083_igor_cutscene")]
pub n083_igor_cutscene: SafeNPCRect<16>,
#[serde(default = "default_n084_basu_projectile")]
pub n084_basu_projectile: SafeNPCRect<4>,
#[serde(default = "default_n085_terminal")]
pub n085_terminal: SafeNPCRect<6>,
#[serde(default = "default_n086_missile_pickup")]
pub n086_missile_pickup: SafeNPCRect<5>,
#[serde(default = "default_n087_heart_pickup")]
pub n087_heart_pickup: SafeNPCRect<5>,
#[serde(default = "default_n088_igor_boss")]
pub n088_igor_boss: SafeNPCRect<24>,
#[serde(default = "default_n089_igor_dead")]
pub n089_igor_dead: SafeNPCRect<8>,
#[serde(default = "default_n090_background")]
pub n090_background: Rect<u16>,
#[serde(default = "default_n091_mimiga_cage")]
pub n091_mimiga_cage: Rect<u16>,
#[serde(default = "default_n092_sue_at_pc")]
pub n092_sue_at_pc: SafeNPCRect<3>,
#[serde(default = "default_n093_chaco")]
pub n093_chaco: SafeNPCRect<14>,
#[serde(default = "default_n094_kulala")]
pub n094_kulala: SafeNPCRect<5>,
#[serde(default = "default_n095_jelly")]
pub n095_jelly: SafeNPCRect<8>,
#[serde(default = "default_n096_fan_left")]
pub n096_fan_left: SafeNPCRect<3>,
#[serde(default = "default_n097_fan_up")]
pub n097_fan_up: SafeNPCRect<3>,
#[serde(default = "default_n098_fan_right")]
pub n098_fan_right: SafeNPCRect<3>,
#[serde(default = "default_n099_fan_down")]
pub n099_fan_down: SafeNPCRect<3>,
#[serde(default = "default_n100_grate")]
pub n100_grate: SafeNPCRect<2>,
#[serde(default = "default_n101_malco_screen")]
pub n101_malco_screen: SafeNPCRect<3>,
#[serde(default = "default_n102_malco_computer_wave")]
pub n102_malco_computer_wave: SafeNPCRect<4>,
#[serde(default = "default_n103_mannan_projectile")]
pub n103_mannan_projectile: SafeNPCRect<6>,
#[serde(default = "default_n104_frog")]
pub n104_frog: SafeNPCRect<6>,
#[serde(default = "default_n105_hey_bubble_low")]
pub n105_hey_bubble_low: SafeNPCRect<2>,
// pub n106_hey_bubble_high: () // Defined in code
#[serde(default = "default_n107_malco_broken")]
pub n107_malco_broken: SafeNPCRect<10>,
#[serde(default = "default_n108_balfrog_projectile")]
pub n108_balfrog_projectile: SafeNPCRect<3>,
#[serde(default = "default_n109_malco_powered_on")]
pub n109_malco_powered_on: SafeNPCRect<4>,
#[serde(default = "default_n110_puchi")]
pub n110_puchi: SafeNPCRect<6>,
#[serde(default = "default_n111_quote_teleport_out")]
pub n111_quote_teleport_out: SafeNPCRect<4>,
#[serde(default = "default_n112_quote_teleport_in")]
pub n112_quote_teleport_in: SafeNPCRect<4>,
#[serde(default = "default_n113_professor_booster")]
pub n113_professor_booster: SafeNPCRect<14>,
#[serde(default = "default_n114_press")]
pub n114_press: SafeNPCRect<3>,
#[serde(default = "default_n115_ravil")]
pub n115_ravil: SafeNPCRect<12>,
#[serde(default = "default_n116_red_petals")]
pub n116_red_petals: Rect<u16>,
#[serde(default = "default_n117_curly")]
pub n117_curly: SafeNPCRect<20>,
#[serde(default = "default_n118_curly_boss")]
pub n118_curly_boss: SafeNPCRect<18>,
#[serde(default = "default_n119_table_chair")]
pub n119_table_chair: Rect<u16>,
#[serde(default = "default_n120_colon_a")]
pub n120_colon_a: SafeNPCRect<2>,
#[serde(default = "default_n121_colon_b")]
pub n121_colon_b: SafeNPCRect<3>,
#[serde(default = "default_n122_colon_enraged")]
pub n122_colon_enraged: SafeNPCRect<20>,
#[serde(default = "default_n123_curly_boss_bullet")]
pub n123_curly_boss_bullet: SafeNPCRect<4>,
#[serde(default = "default_n124_sunstone")]
pub n124_sunstone: SafeNPCRect<2>,
#[serde(default = "default_n125_hidden_item")]
pub n125_hidden_item: SafeNPCRect<2>,
#[serde(default = "default_n126_puppy_running")]
pub n126_puppy_running: SafeNPCRect<12>,
#[serde(default = "default_n127_machine_gun_trail_l2")]
pub n127_machine_gun_trail_l2: SafeNPCRect<6>,
#[serde(default = "default_n128_machine_gun_trail_l3")]
pub n128_machine_gun_trail_l3: SafeNPCRect<20>,
#[serde(default = "default_n129_fireball_snake_trail")]
pub n129_fireball_snake_trail: SafeNPCRect<18>,
#[serde(default = "default_n130_puppy_sitting")]
pub n130_puppy_sitting: SafeNPCRect<8>,
#[serde(default = "default_n131_puppy_sleeping")]
pub n131_puppy_sleeping: SafeNPCRect<2>,
#[serde(default = "default_n132_puppy_barking")]
pub n132_puppy_barking: SafeNPCRect<10>,
#[serde(default = "default_n133_jenka")]
pub n133_jenka: SafeNPCRect<4>,
#[serde(default = "default_n134_armadillo")]
pub n134_armadillo: SafeNPCRect<6>,
#[serde(default = "default_n135_skeleton")]
pub n135_skeleton: SafeNPCRect<4>,
#[serde(default = "default_n136_puppy_carried")]
pub n136_puppy_carried: SafeNPCRect<4>,
#[serde(default = "default_n137_large_door_frame")]
pub n137_large_door_frame: Rect<u16>,
#[serde(default = "default_n138_large_door")]
pub n138_large_door: SafeNPCRect<2>,
#[serde(default = "default_n139_doctor")]
pub n139_doctor: SafeNPCRect<6>,
#[serde(default = "default_n140_toroko_frenzied")]
pub n140_toroko_frenzied: SafeNPCRect<28>,
#[serde(default = "default_n141_toroko_block_projectile")]
pub n141_toroko_block_projectile: SafeNPCRect<2>,
#[serde(default = "default_n142_flower_cub")]
pub n142_flower_cub: SafeNPCRect<5>,
#[serde(default = "default_n143_jenka_collapsed")]
pub n143_jenka_collapsed: SafeNPCRect<2>,
#[serde(default = "default_n144_toroko_teleporting_in")]
pub n144_toroko_teleporting_in: SafeNPCRect<10>,
#[serde(default = "default_n145_king_sword")]
pub n145_king_sword: SafeNPCRect<2>,
#[serde(default = "default_n146_lightning")]
pub n146_lightning: SafeNPCRect<5>,
#[serde(default = "default_n147_critter_purple")]
pub n147_critter_purple: SafeNPCRect<12>,
#[serde(default = "default_n148_critter_purple_projectile")]
pub n148_critter_purple_projectile: SafeNPCRect<2>,
#[serde(default = "default_n149_horizontal_moving_block")]
pub n149_horizontal_moving_block: Rect<u16>,
#[serde(default = "default_n150_quote")]
pub n150_quote: SafeNPCRect<20>,
#[serde(default = "default_n151_blue_robot_standing")]
pub n151_blue_robot_standing: SafeNPCRect<4>,
// pub n152_shutter_stuck: () // Defined in code
#[serde(default = "default_n153_gaudi")]
pub n153_gaudi: SafeNPCRect<14>,
#[serde(default = "default_n154_gaudi_dead")]
pub n154_gaudi_dead: SafeNPCRect<6>,
#[serde(default = "default_n155_gaudi_flying")]
pub n155_gaudi_flying: SafeNPCRect<8>,
#[serde(default = "default_n156_gaudi_projectile")]
pub n156_gaudi_projectile: SafeNPCRect<3>,
#[serde(default = "default_n157_vertical_moving_block")]
pub n157_vertical_moving_block: Rect<u16>,
#[serde(default = "default_n158_fish_missile")]
pub n158_fish_missile: SafeNPCRect<8>,
#[serde(default = "default_n159_monster_x_defeated")]
pub n159_monster_x_defeated: Rect<u16>,
#[serde(default = "default_n160_puu_black")]
pub n160_puu_black: SafeNPCRect<8>,
#[serde(default = "default_n161_puu_black_projectile")]
pub n161_puu_black_projectile: SafeNPCRect<3>,
#[serde(default = "default_n162_puu_black_dead")]
pub n162_puu_black_dead: SafeNPCRect<3>,
#[serde(default = "default_n163_dr_gero")]
pub n163_dr_gero: SafeNPCRect<4>,
#[serde(default = "default_n164_nurse_hasumi")]
pub n164_nurse_hasumi: SafeNPCRect<4>,
#[serde(default = "default_n165_curly_collapsed")]
pub n165_curly_collapsed: SafeNPCRect<3>,
#[serde(default = "default_n166_chaba")]
pub n166_chaba: SafeNPCRect<2>,
#[serde(default = "default_n167_booster_falling")]
pub n167_booster_falling: SafeNPCRect<3>,
#[serde(default = "default_n168_boulder")]
pub n168_boulder: Rect<u16>,
#[serde(default = "default_n169_balrog_shooting_missiles")]
pub n169_balrog_shooting_missiles: SafeNPCRect<18>,
#[serde(default = "default_n170_balrog_missile")]
pub n170_balrog_missile: SafeNPCRect<4>,
#[serde(default = "default_n171_fire_whirrr")]
pub n171_fire_whirrr: SafeNPCRect<4>,
#[serde(default = "default_n172_fire_whirrr_projectile")]
pub n172_fire_whirrr_projectile: SafeNPCRect<3>,
#[serde(default = "default_n173_gaudi_armored")]
pub n173_gaudi_armored: SafeNPCRect<8>,
#[serde(default = "default_n174_gaudi_armored_projectile")]
pub n174_gaudi_armored_projectile: SafeNPCRect<3>,
#[serde(default = "default_n175_gaudi_egg")]
pub n175_gaudi_egg: SafeNPCRect<4>,
#[serde(default = "default_n176_buyo_buyo_base")]
pub n176_buyo_buyo_base: SafeNPCRect<6>,
#[serde(default = "default_n177_buyo_buyo")]
pub n177_buyo_buyo: SafeNPCRect<2>,
#[serde(default = "default_n178_core_blade_projectile")]
pub n178_core_blade_projectile: SafeNPCRect<3>,
#[serde(default = "default_n179_core_wisp_projectile")]
pub n179_core_wisp_projectile: SafeNPCRect<3>,
#[serde(default = "default_n180_curly_ai")]
pub n180_curly_ai: SafeNPCRect<22>,
#[serde(default = "default_n181_curly_ai_machine_gun")]
pub n181_curly_ai_machine_gun: SafeNPCRect<4>,
#[serde(default = "default_n182_curly_ai_polar_star")]
pub n182_curly_ai_polar_star: SafeNPCRect<4>,
#[serde(default = "default_n183_curly_air_tank_bubble")]
pub n183_curly_air_tank_bubble: SafeNPCRect<2>,
#[serde(default = "default_n184_shutter")]
pub n184_shutter: SafeNPCRect<4>,
#[serde(default = "default_n185_small_shutter")]
pub n185_small_shutter: Rect<u16>,
#[serde(default = "default_n186_lift_block")]
pub n186_lift_block: SafeNPCRect<4>,
#[serde(default = "default_n187_fuzz_core")]
pub n187_fuzz_core: SafeNPCRect<4>,
#[serde(default = "default_n188_fuzz")]
pub n188_fuzz: SafeNPCRect<4>,
#[serde(default = "default_n189_homing_flame")]
pub n189_homing_flame: SafeNPCRect<3>,
#[serde(default = "default_n190_broken_robot")]
pub n190_broken_robot: SafeNPCRect<2>,
// pub n191_water_level: () // Defined in code
#[serde(default = "default_n192_scooter")]
pub n192_scooter: SafeNPCRect<4>,
#[serde(default = "default_n193_broken_scooter")]
pub n193_broken_scooter: Rect<u16>,
#[serde(default = "default_n194_broken_blue_robot")]
pub n194_broken_blue_robot: Rect<u16>,
#[serde(default = "default_n195_background_grate")]
pub n195_background_grate: Rect<u16>,
#[serde(default = "default_n196_ironhead_wall")]
pub n196_ironhead_wall: SafeNPCRect<2>,
#[serde(default = "default_n197_porcupine_fish")]
pub n197_porcupine_fish: SafeNPCRect<4>,
#[serde(default = "default_n198_ironhead_projectile")]
pub n198_ironhead_projectile: SafeNPCRect<3>,
#[serde(default = "default_n199_wind_particles")]
pub n199_wind_particles: SafeNPCRect<5>,
#[serde(default = "default_n200_zombie_dragon")]
pub n200_zombie_dragon: SafeNPCRect<12>,
#[serde(default = "default_n201_zombie_dragon_dead")]
pub n201_zombie_dragon_dead: SafeNPCRect<2>,
#[serde(default = "default_n202_zombie_dragon_projectile")]
pub n202_zombie_dragon_projectile: SafeNPCRect<3>,
#[serde(default = "default_n203_critter_destroyed_egg_corridor")]
pub n203_critter_destroyed_egg_corridor: SafeNPCRect<6>,
#[serde(default = "default_n204_small_falling_spike")]
pub n204_small_falling_spike: SafeNPCRect<2>,
#[serde(default = "default_n205_large_falling_spike")]
pub n205_large_falling_spike: SafeNPCRect<2>,
#[serde(default = "default_n206_counter_bomb")]
pub n206_counter_bomb: SafeNPCRect<3>,
#[serde(default = "default_n207_counter_bomb_countdown")]
pub n207_counter_bomb_countdown: SafeNPCRect<5>,
#[serde(default = "default_n208_basu_destroyed_egg_corridor")]
pub n208_basu_destroyed_egg_corridor: SafeNPCRect<6>,
#[serde(default = "default_n209_basu_projectile_destroyed_egg_corridor")]
pub n209_basu_projectile_destroyed_egg_corridor: SafeNPCRect<4>,
#[serde(default = "default_n210_beetle_destroyed_egg_corridor")]
pub n210_beetle_destroyed_egg_corridor: SafeNPCRect<4>,
#[serde(default = "default_n211_small_spikes")]
pub n211_small_spikes: SafeNPCRect<4>,
#[serde(default = "default_n212_sky_dragon")]
pub n212_sky_dragon: SafeNPCRect<4>,
#[serde(default = "default_n213_night_spirit")]
pub n213_night_spirit: SafeNPCRect<10>,
#[serde(default = "default_n214_night_spirit_projectile")]
pub n214_night_spirit_projectile: SafeNPCRect<3>,
#[serde(default = "default_n215_sandcroc_outer_wall")]
pub n215_sandcroc_outer_wall: SafeNPCRect<5>,
#[serde(default = "default_n216_debug_cat")]
pub n216_debug_cat: Rect<u16>,
#[serde(default = "default_n217_itoh")]
pub n217_itoh: SafeNPCRect<8>,
#[serde(default = "default_n218_core_giant_ball")]
pub n218_core_giant_ball: SafeNPCRect<2>,
// pub n219_smoke_generator: () // Defined in code
#[serde(default = "default_n220_shovel_brigade")]
pub n220_shovel_brigade: SafeNPCRect<4>,
#[serde(default = "default_n221_shovel_brigade_walking")]
pub n221_shovel_brigade_walking: SafeNPCRect<12>,
#[serde(default = "default_n222_prison_bars")]
pub n222_prison_bars: Rect<u16>,
#[serde(default = "default_n223_momorin")]
pub n223_momorin: SafeNPCRect<6>,
#[serde(default = "default_n224_chie")]
pub n224_chie: SafeNPCRect<4>,
#[serde(default = "default_n225_megane")]
pub n225_megane: SafeNPCRect<4>,
#[serde(default = "default_n226_kanpachi_plantation")]
pub n226_kanpachi_plantation: SafeNPCRect<7>,
#[serde(default = "default_n227_bucket")]
pub n227_bucket: Rect<u16>,
#[serde(default = "default_n228_droll")]
pub n228_droll: SafeNPCRect<8>,
#[serde(default = "default_n229_red_flowers_sprouts")]
pub n229_red_flowers_sprouts: SafeNPCRect<2>,
#[serde(default = "default_n230_red_flowers_blooming")]
pub n230_red_flowers_blooming: SafeNPCRect<2>,
#[serde(default = "default_n231_rocket")]
pub n231_rocket: SafeNPCRect<2>,
#[serde(default = "default_n232_orangebell")]
pub n232_orangebell: SafeNPCRect<6>,
#[serde(default = "default_n233_orangebell_bat")]
pub n233_orangebell_bat: SafeNPCRect<8>,
#[serde(default = "default_n234_red_flowers_picked")]
pub n234_red_flowers_picked: SafeNPCRect<2>,
#[serde(default = "default_n235_midorin")]
pub n235_midorin: SafeNPCRect<8>,
#[serde(default = "default_n236_gunfish")]
pub n236_gunfish: SafeNPCRect<12>,
#[serde(default = "default_n237_gunfish_projectile")]
pub n237_gunfish_projectile: Rect<u16>,
#[serde(default = "default_n238_press_sideways")]
pub n238_press_sideways: SafeNPCRect<3>,
#[serde(default = "default_n239_cage_bars")]
pub n239_cage_bars: SafeNPCRect<2>,
#[serde(default = "default_n240_mimiga_jailed")]
pub n240_mimiga_jailed: SafeNPCRect<12>,
#[serde(default = "default_n241_critter_red")]
pub n241_critter_red: SafeNPCRect<6>,
#[serde(default = "default_n242_bat_last_cave")]
pub n242_bat_last_cave: SafeNPCRect<8>,
// pub n243_bat_generator: () // Defined in code
#[serde(default = "default_n244_lava_drop")]
pub n244_lava_drop: Rect<u16>,
#[serde(default = "default_n245_lava_drop_generator")]
pub n245_lava_drop_generator: SafeNPCRect<4>,
#[serde(default = "default_n246_press_proximity")]
pub n246_press_proximity: SafeNPCRect<3>,
#[serde(default = "default_n247_misery_boss")]
pub n247_misery_boss: SafeNPCRect<18>,
#[serde(default = "default_n248_misery_boss_vanishing")]
pub n248_misery_boss_vanishing: SafeNPCRect<3>,
#[serde(default = "default_n249_misery_boss_appearing")]
pub n249_misery_boss_appearing: SafeNPCRect<2>,
#[serde(default = "default_n250_misery_boss_lightning_ball")]
pub n250_misery_boss_lightning_ball: SafeNPCRect<3>,
#[serde(default = "default_n251_misery_boss_lightning")]
pub n251_misery_boss_lightning: SafeNPCRect<2>,
#[serde(default = "default_n252_misery_boss_bats")]
pub n252_misery_boss_bats: SafeNPCRect<8>,
#[serde(default = "default_n253_experience_capsule")]
pub n253_experience_capsule: SafeNPCRect<2>,
#[serde(default = "default_n254_helicopter")]
pub n254_helicopter: SafeNPCRect<2>,
#[serde(default = "default_n255_helicopter_blades")]
pub n255_helicopter_blades: SafeNPCRect<8>,
#[serde(default = "default_n256_doctor_facing_away")]
pub n256_doctor_facing_away: SafeNPCRect<6>,
#[serde(default = "default_n257_red_crystal")]
pub n257_red_crystal: SafeNPCRect<3>,
#[serde(default = "default_n258_mimiga_sleeping")]
pub n258_mimiga_sleeping: Rect<u16>,
#[serde(default = "default_n259_curly_unconscious")]
pub n259_curly_unconscious: SafeNPCRect<2>,
#[serde(default = "default_n260_shovel_brigade_caged")]
pub n260_shovel_brigade_caged: SafeNPCRect<6>,
#[serde(default = "default_n261_chie_caged")]
pub n261_chie_caged: SafeNPCRect<4>,
#[serde(default = "default_n262_chaco_caged")]
pub n262_chaco_caged: SafeNPCRect<4>,
#[serde(default = "default_n263_doctor_boss")]
pub n263_doctor_boss: SafeNPCRect<18>,
#[serde(default = "default_n264_doctor_boss_red_projectile")]
pub n264_doctor_boss_red_projectile: Rect<u16>,
#[serde(default = "default_n265_doctor_boss_red_projectile_trail")]
pub n265_doctor_boss_red_projectile_trail: SafeNPCRect<3>,
#[serde(default = "default_n266_doctor_boss_red_projectile_bouncing")]
pub n266_doctor_boss_red_projectile_bouncing: SafeNPCRect<2>,
#[serde(default = "default_n267_muscle_doctor")]
pub n267_muscle_doctor: SafeNPCRect<20>,
#[serde(default = "default_n268_igor_enemy")]
pub n268_igor_enemy: SafeNPCRect<20>,
#[serde(default = "default_n269_red_bat_bouncing")]
pub n269_red_bat_bouncing: SafeNPCRect<6>,
#[serde(default = "default_n270_doctor_red_energy")]
pub n270_doctor_red_energy: SafeNPCRect<2>,
// pub n271_ironhead_block: () // Defined in code
// pub n272_ironhead_block_generator: () // Defined in code
#[serde(default = "default_n273_droll_projectile")]
pub n273_droll_projectile: SafeNPCRect<3>,
#[serde(default = "default_n274_droll")]
pub n274_droll: SafeNPCRect<12>,
#[serde(default = "default_n275_puppy_plantation")]
pub n275_puppy_plantation: SafeNPCRect<4>,
#[serde(default = "default_n276_red_demon")]
pub n276_red_demon: SafeNPCRect<18>,
#[serde(default = "default_n277_red_demon_projectile")]
pub n277_red_demon_projectile: SafeNPCRect<3>,
#[serde(default = "default_n278_little_family")]
pub n278_little_family: SafeNPCRect<6>,
#[serde(default = "default_n279_large_falling_block")]
pub n279_large_falling_block: SafeNPCRect<2>,
#[serde(default = "default_n280_sue_teleported")]
pub n280_sue_teleported: SafeNPCRect<4>,
// pub n281_doctor_energy_form: () // Defined in code
#[serde(default = "default_n282_mini_undead_core_active")]
pub n282_mini_undead_core_active: SafeNPCRect<3>,
#[serde(default = "default_n283_misery_possessed")]
pub n283_misery_possessed: SafeNPCRect<22>,
#[serde(default = "default_n284_sue_possessed")]
pub n284_sue_possessed: SafeNPCRect<26>,
#[serde(default = "default_n285_undead_core_spiral_projectile")]
pub n285_undead_core_spiral_projectile: Rect<u16>,
#[serde(default = "default_n286_undead_core_spiral_projectile_trail")]
pub n286_undead_core_spiral_projectile_trail: SafeNPCRect<3>,
#[serde(default = "default_n287_orange_smoke")]
pub n287_orange_smoke: SafeNPCRect<7>,
#[serde(default = "default_n288_undead_core_exploding_rock")]
pub n288_undead_core_exploding_rock: SafeNPCRect<5>,
#[serde(default = "default_n289_critter_orange")]
pub n289_critter_orange: SafeNPCRect<6>,
#[serde(default = "default_n290_bat_misery")]
pub n290_bat_misery: SafeNPCRect<6>,
#[serde(default = "default_n291_mini_undead_core_inactive")]
pub n291_mini_undead_core_inactive: SafeNPCRect<2>,
// pub n292_quake: () // Defined in code
#[serde(default = "default_n293_undead_core_energy_shot")]
pub n293_undead_core_energy_shot: SafeNPCRect<2>,
// pub n294_quake_falling_block_generator: () // Defined in code
#[serde(default = "default_n295_cloud")]
pub n295_cloud: SafeNPCRect<4>,
// pub n296_cloud_generator: () // Defined in code
#[serde(default = "default_n297_sue_dragon_mouth")]
pub n297_sue_dragon_mouth: Rect<u16>,
#[serde(default = "default_n298_intro_doctor")]
pub n298_intro_doctor: SafeNPCRect<8>,
#[serde(default = "default_n299_intro_balrog_misery")]
pub n299_intro_balrog_misery: SafeNPCRect<2>,
#[serde(default = "default_n300_intro_demon_crown")]
pub n300_intro_demon_crown: Rect<u16>,
#[serde(default = "default_n301_misery_fish_missile")]
pub n301_misery_fish_missile: SafeNPCRect<8>,
// pub n302_camera_focus_marker: () // Defined in code
#[serde(default = "default_n303_curly_machine_gun")]
pub n303_curly_machine_gun: SafeNPCRect<4>,
#[serde(default = "default_n304_gaudi_hospital")]
pub n304_gaudi_hospital: SafeNPCRect<4>,
#[serde(default = "default_n305_small_puppy")]
pub n305_small_puppy: SafeNPCRect<4>,
#[serde(default = "default_n306_balrog_nurse")]
pub n306_balrog_nurse: SafeNPCRect<4>,
#[serde(default = "default_n307_santa_caged")]
pub n307_santa_caged: SafeNPCRect<4>,
#[serde(default = "default_n308_stumpy")]
pub n308_stumpy: SafeNPCRect<4>,
#[serde(default = "default_n309_bute")]
pub n309_bute: SafeNPCRect<4>,
#[serde(default = "default_n310_bute_sword")]
pub n310_bute_sword: SafeNPCRect<10>,
#[serde(default = "default_n311_bute_archer")]
pub n311_bute_archer: SafeNPCRect<14>,
#[serde(default = "default_n312_bute_arrow_projectile")]
pub n312_bute_arrow_projectile: SafeNPCRect<10>,
#[serde(default = "default_n313_ma_pignon")]
pub n313_ma_pignon: SafeNPCRect<28>,
#[serde(default = "default_n314_ma_pignon_rock")]
pub n314_ma_pignon_rock: SafeNPCRect<3>,
#[serde(default = "default_n315_ma_pignon_clone")]
pub n315_ma_pignon_clone: SafeNPCRect<8>,
#[serde(default = "default_n316_bute_dead")]
pub n316_bute_dead: SafeNPCRect<6>,
#[serde(default = "default_n317_mesa")]
pub n317_mesa: SafeNPCRect<8>,
#[serde(default = "default_n318_mesa_dead")]
pub n318_mesa_dead: SafeNPCRect<6>,
#[serde(default = "default_n319_mesa_block")]
pub n319_mesa_block: SafeNPCRect<3>,
#[serde(default = "default_n320_curly_carried")]
pub n320_curly_carried: SafeNPCRect<6>,
#[serde(default = "default_n321_curly_nemesis")]
pub n321_curly_nemesis: SafeNPCRect<6>,
#[serde(default = "default_n322_deleet")]
pub n322_deleet: SafeNPCRect<3>,
#[serde(default = "default_n323_bute_spinning")]
pub n323_bute_spinning: SafeNPCRect<4>,
// pub n324_bute_generator: () // Defined in code
#[serde(default = "default_n325_heavy_press_lightning")]
pub n325_heavy_press_lightning: SafeNPCRect<7>,
#[serde(default = "default_n326_sue_itoh_human_transition")]
pub n326_sue_itoh_human_transition: SafeNPCRect<16>,
#[serde(default = "default_n327_sneeze")]
pub n327_sneeze: SafeNPCRect<2>,
#[serde(default = "default_n328_human_transform_machine")]
pub n328_human_transform_machine: Rect<u16>,
#[serde(default = "default_n329_laboratory_fan")]
pub n329_laboratory_fan: SafeNPCRect<2>,
#[serde(default = "default_n330_rolling")]
pub n330_rolling: SafeNPCRect<3>,
#[serde(default = "default_n331_ballos_bone_projectile")]
pub n331_ballos_bone_projectile: SafeNPCRect<4>,
#[serde(default = "default_n332_ballos_shockwave")]
pub n332_ballos_shockwave: SafeNPCRect<3>,
#[serde(default = "default_n333_ballos_lightning")]
pub n333_ballos_lightning: SafeNPCRect<2>,
#[serde(default = "default_n334_sweat")]
pub n334_sweat: SafeNPCRect<4>,
#[serde(default = "default_n335_ikachan")]
pub n335_ikachan: SafeNPCRect<3>,
// pub n336_ikachan_generator: () // Defined in code
#[serde(default = "default_n337_numahachi")]
pub n337_numahachi: SafeNPCRect<2>,
#[serde(default = "default_n338_green_devil")]
pub n338_green_devil: SafeNPCRect<4>,
// pub n339_green_devil_generator: () // Defined in code
#[serde(default = "default_n340_ballos")]
pub n340_ballos: SafeNPCRect<22>,
#[serde(default = "default_n341_ballos_1_head")]
pub n341_ballos_1_head: SafeNPCRect<3>,
#[serde(default = "default_n342_ballos_orbiting_eye")]
pub n342_ballos_orbiting_eye: SafeNPCRect<3>,
#[serde(default = "default_n343_ballos_3_cutscene")]
pub n343_ballos_3_cutscene: Rect<u16>,
#[serde(default = "default_n344_ballos_3_eyes")]
pub n344_ballos_3_eyes: SafeNPCRect<2>,
#[serde(default = "default_n345_ballos_skull_projectile")]
pub n345_ballos_skull_projectile: SafeNPCRect<4>,
#[serde(default = "default_n346_ballos_orbiting_platform")]
pub n346_ballos_orbiting_platform: Rect<u16>,
#[serde(default = "default_n347_hoppy")]
pub n347_hoppy: SafeNPCRect<4>,
#[serde(default = "default_n348_ballos_4_spikes")]
pub n348_ballos_4_spikes: SafeNPCRect<2>,
#[serde(default = "default_n349_statue")]
pub n349_statue: Rect<u16>,
#[serde(default = "default_n350_flying_bute_archer")]
pub n350_flying_bute_archer: SafeNPCRect<14>,
#[serde(default = "default_n351_statue_shootable")]
pub n351_statue_shootable: SafeNPCRect<9>,
#[serde(default = "default_n352_ending_characters")]
pub n352_ending_characters: SafeNPCRect<28>,
#[serde(default = "default_n353_bute_sword_flying")]
pub n353_bute_sword_flying: SafeNPCRect<8>,
// pub n354_invisible_deathtrap_wall: () // Defined in code
#[serde(default = "default_n355_quote_and_curly_on_balrog")]
pub n355_quote_and_curly_on_balrog: SafeNPCRect<4>,
#[serde(default = "default_n356_balrog_rescuing")]
pub n356_balrog_rescuing: SafeNPCRect<2>,
#[serde(default = "default_n357_puppy_ghost")]
pub n357_puppy_ghost: Rect<u16>,
#[serde(default = "default_n358_misery_credits")]
pub n358_misery_credits: SafeNPCRect<5>,
// pub n359_water_droplet_generator: () // Defined in code
#[serde(default = "default_n360_credits_thank_you")]
pub n360_credits_thank_you: Rect<u16>,
#[serde(default = "default_n361_flying_gaudi")]
pub n361_flying_gaudi: SafeNPCRect<4>,
#[serde(default = "default_n362_curly_clone")]
pub n362_curly_clone: SafeNPCRect<14>,
#[serde(default = "default_n363_dead_curly_clone")]
pub n363_dead_curly_clone: SafeNPCRect<2>,
#[serde(default = "default_n364_fast_bullet")]
pub n364_fast_bullet: SafeNPCRect<4>,
#[serde(default = "default_n366_zombie_curly_clone")]
pub n366_zombie_curly_clone: SafeNPCRect<6>,
#[serde(default = "default_n367_curly_clone_incubator")]
pub n367_curly_clone_incubator: Rect<u16>,
#[serde(default = "default_n368_gclone")]
pub n368_gclone: SafeNPCRect<3>,
#[serde(default = "default_n369_gclone_curly_clone")]
pub n369_gclone_curly_clone: SafeNPCRect<20>,
// pub n370_second_quote: () // Same as n150_quote
#[serde(default = "default_b01_omega")]
pub b01_omega: SafeNPCRect<10>,
#[serde(default = "default_b02_balfrog")]
pub b02_balfrog: SafeNPCRect<18>,
#[serde(default = "default_b03_monster_x")]
pub b03_monster_x: SafeNPCRect<29>,
#[serde(default = "default_b04_core")]
pub b04_core: SafeNPCRect<10>,
#[serde(default = "default_b05_ironhead")]
pub b05_ironhead: SafeNPCRect<18>,
#[serde(default = "default_b06_sisters")]
pub b06_sisters: SafeNPCRect<14>,
#[serde(default = "default_b07_undead_core")]
pub b07_undead_core: SafeNPCRect<15>,
#[serde(default = "default_b08_heavy_press")]
pub b08_heavy_press: SafeNPCRect<6>,
#[serde(default = "default_b09_ballos")]
pub b09_ballos: SafeNPCRect<14>,
}
fn default_n001_experience() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 0, top: 16, right: 16, bottom: 32 },
Rect { left: 16, top: 16, right: 32, bottom: 32 },
Rect { left: 32, top: 16, right: 48, bottom: 32 },
Rect { left: 48, top: 16, right: 64, bottom: 32 },
Rect { left: 64, top: 16, right: 80, bottom: 32 },
Rect { left: 80, top: 16, right: 96, bottom: 32 },
])
}
fn default_n002_behemoth() -> SafeNPCRect<14> {
SafeNPCRect([
Rect { left: 32, top: 0, right: 64, bottom: 24 },
Rect { left: 0, top: 0, right: 32, bottom: 24 },
Rect { left: 32, top: 0, right: 64, bottom: 24 },
Rect { left: 64, top: 0, right: 96, bottom: 24 },
Rect { left: 96, top: 0, right: 128, bottom: 24 },
Rect { left: 128, top: 0, right: 160, bottom: 24 },
Rect { left: 160, top: 0, right: 192, bottom: 24 },
Rect { left: 32, top: 24, right: 64, bottom: 48 },
Rect { left: 0, top: 24, right: 32, bottom: 48 },
Rect { left: 32, top: 24, right: 64, bottom: 48 },
Rect { left: 64, top: 24, right: 96, bottom: 48 },
Rect { left: 96, top: 24, right: 128, bottom: 48 },
Rect { left: 128, top: 24, right: 160, bottom: 48 },
Rect { left: 160, top: 24, right: 192, bottom: 48 },
])
}
fn default_n004_smoke() -> SafeNPCRect<16> {
SafeNPCRect([
Rect { left: 16, top: 0, right: 17, bottom: 1 },
Rect { left: 16, top: 0, right: 32, bottom: 16 },
Rect { left: 32, top: 0, right: 48, bottom: 16 },
Rect { left: 48, top: 0, right: 64, bottom: 16 },
Rect { left: 64, top: 0, right: 80, bottom: 16 },
Rect { left: 80, top: 0, right: 96, bottom: 16 },
Rect { left: 96, top: 0, right: 112, bottom: 16 },
Rect { left: 112, top: 0, right: 128, bottom: 16 },
Rect { left: 16, top: 0, right: 17, bottom: 1 },
Rect { left: 80, top: 48, right: 96, bottom: 64 },
Rect { left: 0, top: 128, right: 16, bottom: 144 },
Rect { left: 16, top: 128, right: 32, bottom: 144 },
Rect { left: 32, top: 128, right: 48, bottom: 144 },
Rect { left: 48, top: 128, right: 64, bottom: 144 },
Rect { left: 64, top: 128, right: 80, bottom: 144 },
Rect { left: 80, top: 128, right: 96, bottom: 144 },
])
}
fn default_n005_green_critter() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 0, top: 48, right: 16, bottom: 64 },
Rect { left: 16, top: 48, right: 32, bottom: 64 },
Rect { left: 32, top: 48, right: 48, bottom: 64 },
Rect { left: 0, top: 64, right: 16, bottom: 80 },
Rect { left: 16, top: 64, right: 32, bottom: 80 },
Rect { left: 32, top: 64, right: 48, bottom: 80 },
])
}
fn default_n006_green_beetle() -> SafeNPCRect<10> {
SafeNPCRect([
Rect { left: 0, top: 80, right: 16, bottom: 96 },
Rect { left: 16, top: 80, right: 32, bottom: 96 },
Rect { left: 32, top: 80, right: 48, bottom: 96 },
Rect { left: 48, top: 80, right: 64, bottom: 96 },
Rect { left: 64, top: 80, right: 80, bottom: 96 },
Rect { left: 0, top: 96, right: 16, bottom: 112 },
Rect { left: 16, top: 96, right: 32, bottom: 112 },
Rect { left: 32, top: 96, right: 48, bottom: 112 },
Rect { left: 48, top: 96, right: 64, bottom: 112 },
Rect { left: 64, top: 96, right: 80, bottom: 112 },
])
}
fn default_n007_basil() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 256, top: 64, right: 288, bottom: 80 },
Rect { left: 256, top: 80, right: 288, bottom: 96 },
Rect { left: 256, top: 96, right: 288, bottom: 112 },
Rect { left: 288, top: 64, right: 320, bottom: 80 },
Rect { left: 288, top: 80, right: 320, bottom: 96 },
Rect { left: 288, top: 96, right: 320, bottom: 112 },
])
}
fn default_n008_blue_beetle() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 80, top: 80, right: 96, bottom: 96 },
Rect { left: 96, top: 80, right: 112, bottom: 96 },
Rect { left: 80, top: 96, right: 96, bottom: 112 },
Rect { left: 96, top: 96, right: 112, bottom: 112 },
])
}
fn default_n009_balrog_falling_in() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 40, bottom: 24 },
Rect { left: 80, top: 0, right: 120, bottom: 24 },
Rect { left: 120, top: 0, right: 160, bottom: 24 },
Rect { left: 0, top: 24, right: 40, bottom: 48 },
Rect { left: 80, top: 24, right: 120, bottom: 48 },
Rect { left: 120, top: 24, right: 160, bottom: 48 },
])
}
fn default_n010_balrog_shooting() -> SafeNPCRect<8> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 40, bottom: 24 },
Rect { left: 40, top: 0, right: 80, bottom: 24 },
Rect { left: 80, top: 0, right: 120, bottom: 24 },
Rect { left: 120, top: 0, right: 160, bottom: 24 },
Rect { left: 0, top: 24, right: 40, bottom: 48 },
Rect { left: 40, top: 24, right: 80, bottom: 48 },
Rect { left: 80, top: 24, right: 120, bottom: 48 },
Rect { left: 120, top: 24, right: 160, bottom: 48 },
])
}
fn default_n011_balrog_energy_shot() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 208, top: 104, right: 224, bottom: 120 },
Rect { left: 224, top: 104, right: 240, bottom: 120 },
Rect { left: 240, top: 104, right: 256, bottom: 120 },
])
}
fn default_n012_balrog_cutscene() -> SafeNPCRect<28> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 40, bottom: 24 },
Rect { left: 160, top: 0, right: 200, bottom: 24 },
Rect { left: 80, top: 0, right: 120, bottom: 24 },
Rect { left: 120, top: 0, right: 160, bottom: 24 },
Rect { left: 240, top: 0, right: 280, bottom: 24 },
Rect { left: 200, top: 0, right: 240, bottom: 24 },
Rect { left: 280, top: 0, right: 320, bottom: 24 },
Rect { left: 0, top: 0, right: 0, bottom: 0 },
Rect { left: 80, top: 48, right: 120, bottom: 72 },
Rect { left: 0, top: 48, right: 40, bottom: 72 },
Rect { left: 0, top: 0, right: 40, bottom: 24 },
Rect { left: 40, top: 48, right: 80, bottom: 72 },
Rect { left: 0, top: 0, right: 40, bottom: 24 },
Rect { left: 280, top: 0, right: 320, bottom: 24 },
Rect { left: 0, top: 24, right: 40, bottom: 48 },
Rect { left: 160, top: 24, right: 200, bottom: 48 },
Rect { left: 80, top: 24, right: 120, bottom: 48 },
Rect { left: 120, top: 24, right: 160, bottom: 48 },
Rect { left: 240, top: 24, right: 280, bottom: 48 },
Rect { left: 200, top: 24, right: 240, bottom: 48 },
Rect { left: 280, top: 24, right: 320, bottom: 48 },
Rect { left: 0, top: 0, right: 0, bottom: 0 },
Rect { left: 80, top: 72, right: 120, bottom: 96 },
Rect { left: 0, top: 72, right: 40, bottom: 96 },
Rect { left: 0, top: 24, right: 40, bottom: 48 },
Rect { left: 40, top: 72, right: 80, bottom: 96 },
Rect { left: 0, top: 24, right: 40, bottom: 48 },
Rect { left: 280, top: 24, right: 320, bottom: 48 },
])
}
fn default_n013_forcefield() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 128, top: 0, right: 144, bottom: 16 },
Rect { left: 144, top: 0, right: 160, bottom: 16 },
Rect { left: 160, top: 0, right: 176, bottom: 16 },
Rect { left: 176, top: 0, right: 192, bottom: 16 },
])
}
fn default_n014_key() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 192, top: 0, right: 208, bottom: 16 },
Rect { left: 208, top: 0, right: 224, bottom: 16 },
Rect { left: 224, top: 0, right: 240, bottom: 16 },
])
}
fn default_n015_closed_chest() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 240, top: 0, right: 256, bottom: 16 },
Rect { left: 256, top: 0, right: 272, bottom: 16 },
Rect { left: 272, top: 0, right: 288, bottom: 16 },
])
}
fn default_n016_save_point() -> SafeNPCRect<8> {
SafeNPCRect([
Rect { left: 96, top: 16, right: 112, bottom: 32 },
Rect { left: 112, top: 16, right: 128, bottom: 32 },
Rect { left: 128, top: 16, right: 144, bottom: 32 },
Rect { left: 144, top: 16, right: 160, bottom: 32 },
Rect { left: 160, top: 16, right: 176, bottom: 32 },
Rect { left: 176, top: 16, right: 192, bottom: 32 },
Rect { left: 192, top: 16, right: 208, bottom: 32 },
Rect { left: 208, top: 16, right: 224, bottom: 32 },
])
}
fn default_n017_health_refill() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 288, top: 0, right: 304, bottom: 16 },
Rect { left: 304, top: 0, right: 320, bottom: 16 },
])
}
fn default_n018_door() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 224, top: 16, right: 240, bottom: 40 },
Rect { left: 192, top: 112, right: 208, bottom: 136 },
])
}
fn default_n019_balrog_bust_in() -> SafeNPCRect<8> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 40, bottom: 24 },
Rect { left: 160, top: 0, right: 200, bottom: 24 },
Rect { left: 80, top: 0, right: 120, bottom: 24 },
Rect { left: 120, top: 0, right: 160, bottom: 24 },
Rect { left: 0, top: 24, right: 40, bottom: 48 },
Rect { left: 160, top: 24, right: 200, bottom: 48 },
Rect { left: 80, top: 24, right: 120, bottom: 48 },
Rect { left: 120, top: 24, right: 160, bottom: 48 },
])
}
fn default_n020_computer() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 288, top: 16, right: 320, bottom: 40 },
Rect { left: 288, top: 40, right: 320, bottom: 64 },
Rect { left: 288, top: 40, right: 320, bottom: 64 },
Rect { left: 288, top: 64, right: 320, bottom: 88 },
])
}
fn default_n021_chest_open() -> Rect<u16> {
Rect { left: 224, top: 40, right: 240, bottom: 48 }
}
fn default_n022_teleporter() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 240, top: 16, right: 264, bottom: 48 },
Rect { left: 248, top: 152, right: 272, bottom: 184 },
])
}
fn default_n023_teleporter_lights() -> SafeNPCRect<8> {
SafeNPCRect([
Rect { left: 264, top: 16, right: 288, bottom: 20 },
Rect { left: 264, top: 20, right: 288, bottom: 24 },
Rect { left: 264, top: 24, right: 288, bottom: 28 },
Rect { left: 264, top: 28, right: 288, bottom: 32 },
Rect { left: 264, top: 32, right: 288, bottom: 36 },
Rect { left: 264, top: 36, right: 288, bottom: 40 },
Rect { left: 264, top: 40, right: 288, bottom: 44 },
Rect { left: 264, top: 44, right: 288, bottom: 48 },
])
}
fn default_n024_power_critter() -> SafeNPCRect<12> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 24, bottom: 24 },
Rect { left: 24, top: 0, right: 48, bottom: 24 },
Rect { left: 48, top: 0, right: 72, bottom: 24 },
Rect { left: 72, top: 0, right: 96, bottom: 24 },
Rect { left: 96, top: 0, right: 120, bottom: 24 },
Rect { left: 120, top: 0, right: 144, bottom: 24 },
Rect { left: 0, top: 24, right: 24, bottom: 48 },
Rect { left: 24, top: 24, right: 48, bottom: 48 },
Rect { left: 48, top: 24, right: 72, bottom: 48 },
Rect { left: 72, top: 24, right: 96, bottom: 48 },
Rect { left: 96, top: 24, right: 120, bottom: 48 },
Rect { left: 120, top: 24, right: 144, bottom: 48 },
])
}
fn default_n025_lift() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 256, top: 64, right: 288, bottom: 80 },
Rect { left: 256, top: 80, right: 288, bottom: 96 },
])
}
fn default_n026_bat_flying() -> SafeNPCRect<8> {
SafeNPCRect([
Rect { left: 32, top: 80, right: 48, bottom: 96 },
Rect { left: 48, top: 80, right: 64, bottom: 96 },
Rect { left: 64, top: 80, right: 80, bottom: 96 },
Rect { left: 80, top: 80, right: 96, bottom: 96 },
Rect { left: 32, top: 96, right: 48, bottom: 112 },
Rect { left: 48, top: 96, right: 64, bottom: 112 },
Rect { left: 64, top: 96, right: 80, bottom: 112 },
Rect { left: 80, top: 96, right: 96, bottom: 112 },
])
}
fn default_n027_death_trap() -> Rect<u16> {
Rect { left: 96, top: 64, right: 128, bottom: 88 }
}
fn default_n028_flying_critter() -> SafeNPCRect<12> {
SafeNPCRect([
Rect { left: 0, top: 48, right: 16, bottom: 64 },
Rect { left: 16, top: 48, right: 32, bottom: 64 },
Rect { left: 32, top: 48, right: 48, bottom: 64 },
Rect { left: 48, top: 48, right: 64, bottom: 64 },
Rect { left: 64, top: 48, right: 80, bottom: 64 },
Rect { left: 80, top: 48, right: 96, bottom: 64 },
Rect { left: 0, top: 64, right: 16, bottom: 80 },
Rect { left: 16, top: 64, right: 32, bottom: 80 },
Rect { left: 32, top: 64, right: 48, bottom: 80 },
Rect { left: 48, top: 64, right: 64, bottom: 80 },
Rect { left: 64, top: 64, right: 80, bottom: 80 },
Rect { left: 80, top: 64, right: 96, bottom: 80 },
])
}
fn default_n029_cthulhu() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 0, top: 192, right: 16, bottom: 216 },
Rect { left: 16, top: 192, right: 32, bottom: 216 },
Rect { left: 0, top: 216, right: 16, bottom: 240 },
Rect { left: 16, top: 216, right: 32, bottom: 240 },
])
}
fn default_n030_hermit_gunsmith() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 48, top: 0, right: 64, bottom: 16 },
Rect { left: 48, top: 16, right: 64, bottom: 32 },
Rect { left: 0, top: 32, right: 16, bottom: 48 },
])
}
fn default_n031_bat_hanging() -> SafeNPCRect<10> {
SafeNPCRect([
Rect { left: 0, top: 80, right: 16, bottom: 96 },
Rect { left: 16, top: 80, right: 32, bottom: 96 },
Rect { left: 32, top: 80, right: 48, bottom: 96 },
Rect { left: 48, top: 80, right: 64, bottom: 96 },
Rect { left: 64, top: 80, right: 80, bottom: 96 },
Rect { left: 0, top: 96, right: 16, bottom: 112 },
Rect { left: 16, top: 96, right: 32, bottom: 112 },
Rect { left: 32, top: 96, right: 48, bottom: 112 },
Rect { left: 48, top: 96, right: 64, bottom: 112 },
Rect { left: 64, top: 96, right: 80, bottom: 112 },
])
}
fn default_n032_life_capsule() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 32, top: 96, right: 48, bottom: 112 },
Rect { left: 48, top: 96, right: 64, bottom: 112 },
])
}
fn default_n033_balrog_bouncing_projectile() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 240, top: 64, right: 256, bottom: 80 },
Rect { left: 240, top: 80, right: 256, bottom: 96 },
])
}
fn default_n034_bed() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 192, top: 48, right: 224, bottom: 64 },
Rect { left: 192, top: 184, right: 224, bottom: 200 },
])
}
fn default_n035_mannan() -> SafeNPCRect<8> {
SafeNPCRect([
Rect { left: 96, top: 64, right: 120, bottom: 96 },
Rect { left: 120, top: 64, right: 144, bottom: 96 },
Rect { left: 144, top: 64, right: 168, bottom: 96 },
Rect { left: 168, top: 64, right: 192, bottom: 96 },
Rect { left: 96, top: 96, right: 120, bottom: 128 },
Rect { left: 120, top: 96, right: 144, bottom: 128 },
Rect { left: 144, top: 96, right: 168, bottom: 128 },
Rect { left: 168, top: 96, right: 192, bottom: 128 },
])
}
fn default_n036_balrog_hover() -> SafeNPCRect<12> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 40, bottom: 24 },
Rect { left: 40, top: 0, right: 80, bottom: 24 },
Rect { left: 80, top: 0, right: 120, bottom: 24 },
Rect { left: 120, top: 0, right: 160, bottom: 24 },
Rect { left: 160, top: 48, right: 200, bottom: 72 },
Rect { left: 200, top: 48, right: 240, bottom: 72 },
Rect { left: 0, top: 24, right: 40, bottom: 48 },
Rect { left: 40, top: 24, right: 80, bottom: 48 },
Rect { left: 80, top: 24, right: 120, bottom: 48 },
Rect { left: 120, top: 24, right: 160, bottom: 48 },
Rect { left: 160, top: 72, right: 200, bottom: 96 },
Rect { left: 200, top: 72, right: 240, bottom: 96 },
])
}
fn default_n037_sign() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 192, top: 64, right: 208, bottom: 80 },
Rect { left: 208, top: 64, right: 224, bottom: 80 },
])
}
fn default_n038_fireplace() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 128, top: 64, right: 144, bottom: 80 },
Rect { left: 144, top: 64, right: 160, bottom: 80 },
Rect { left: 160, top: 64, right: 176, bottom: 80 },
Rect { left: 176, top: 64, right: 192, bottom: 80 },
])
}
fn default_n039_save_sign() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 224, top: 64, right: 240, bottom: 80 },
Rect { left: 240, top: 64, right: 256, bottom: 80 },
])
}
fn default_n040_santa() -> SafeNPCRect<14> {
SafeNPCRect([
Rect { left: 0, top: 32, right: 16, bottom: 48 },
Rect { left: 16, top: 32, right: 32, bottom: 48 },
Rect { left: 32, top: 32, right: 48, bottom: 48 },
Rect { left: 0, top: 32, right: 16, bottom: 48 },
Rect { left: 48, top: 32, right: 64, bottom: 48 },
Rect { left: 0, top: 32, right: 16, bottom: 48 },
Rect { left: 64, top: 32, right: 80, bottom: 48 },
Rect { left: 0, top: 48, right: 16, bottom: 64 },
Rect { left: 16, top: 48, right: 32, bottom: 64 },
Rect { left: 32, top: 48, right: 48, bottom: 64 },
Rect { left: 0, top: 48, right: 16, bottom: 64 },
Rect { left: 48, top: 48, right: 64, bottom: 64 },
Rect { left: 0, top: 48, right: 16, bottom: 64 },
Rect { left: 64, top: 48, right: 80, bottom: 64 },
])
}
fn default_n041_busted_door() -> Rect<u16> {
Rect { left: 0, top: 80, right: 48, bottom: 112 }
}
fn default_n042_sue() -> SafeNPCRect<26> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 16, bottom: 16 },
Rect { left: 16, top: 0, right: 32, bottom: 16 },
Rect { left: 32, top: 0, right: 48, bottom: 16 },
Rect { left: 0, top: 0, right: 16, bottom: 16 },
Rect { left: 48, top: 0, right: 64, bottom: 16 },
Rect { left: 0, top: 0, right: 16, bottom: 16 },
Rect { left: 64, top: 0, right: 80, bottom: 16 },
Rect { left: 80, top: 32, right: 96, bottom: 48 },
Rect { left: 96, top: 32, right: 112, bottom: 48 },
Rect { left: 128, top: 32, right: 144, bottom: 48 },
Rect { left: 0, top: 0, right: 16, bottom: 16 },
Rect { left: 112, top: 32, right: 128, bottom: 48 },
Rect { left: 160, top: 32, right: 176, bottom: 48 },
Rect { left: 0, top: 16, right: 16, bottom: 32 },
Rect { left: 16, top: 16, right: 32, bottom: 32 },
Rect { left: 32, top: 16, right: 48, bottom: 32 },
Rect { left: 0, top: 16, right: 16, bottom: 32 },
Rect { left: 48, top: 16, right: 64, bottom: 32 },
Rect { left: 0, top: 16, right: 16, bottom: 32 },
Rect { left: 64, top: 16, right: 80, bottom: 32 },
Rect { left: 80, top: 48, right: 96, bottom: 64 },
Rect { left: 96, top: 48, right: 112, bottom: 64 },
Rect { left: 128, top: 48, right: 144, bottom: 64 },
Rect { left: 0, top: 16, right: 16, bottom: 32 },
Rect { left: 112, top: 48, right: 128, bottom: 64 },
Rect { left: 160, top: 48, right: 176, bottom: 64 },
])
}
fn default_n043_chalkboard() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 128, top: 80, right: 168, bottom: 112 },
Rect { left: 168, top: 80, right: 208, bottom: 112 },
])
}
fn default_n044_polish() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 32, bottom: 32 },
Rect { left: 96, top: 0, right: 128, bottom: 32 },
Rect { left: 128, top: 0, right: 160, bottom: 32 },
Rect { left: 0, top: 0, right: 32, bottom: 32 },
Rect { left: 32, top: 0, right: 64, bottom: 32 },
Rect { left: 64, top: 0, right: 96, bottom: 32 },
])
}
fn default_n045_baby() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 0, top: 32, right: 16, bottom: 48 },
Rect { left: 16, top: 32, right: 32, bottom: 48 },
Rect { left: 32, top: 32, right: 48, bottom: 48 },
])
}
fn default_n047_sandcroc() -> SafeNPCRect<5> {
SafeNPCRect([
Rect { left: 0, top: 48, right: 48, bottom: 80 },
Rect { left: 48, top: 48, right: 96, bottom: 80 },
Rect { left: 96, top: 48, right: 144, bottom: 80 },
Rect { left: 144, top: 48, right: 192, bottom: 80 },
Rect { left: 192, top: 48, right: 240, bottom: 80 },
])
}
fn default_n048_omega_projectiles() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 288, top: 88, right: 304, bottom: 104 },
Rect { left: 304, top: 88, right: 320, bottom: 104 },
Rect { left: 288, top: 104, right: 304, bottom: 120 },
Rect { left: 304, top: 104, right: 320, bottom: 120 },
])
}
fn default_n049_skullhead() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 0, top: 80, right: 32, bottom: 104 },
Rect { left: 32, top: 80, right: 64, bottom: 104 },
Rect { left: 64, top: 80, right: 96, bottom: 104 },
Rect { left: 0, top: 104, right: 32, bottom: 128 },
Rect { left: 32, top: 104, right: 64, bottom: 128 },
Rect { left: 64, top: 104, right: 96, bottom: 128 },
])
}
fn default_n050_skeleton_projectile() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 48, top: 32, right: 64, bottom: 48 },
Rect { left: 64, top: 32, right: 80, bottom: 48 },
Rect { left: 80, top: 32, right: 96, bottom: 48 },
Rect { left: 96, top: 32, right: 112, bottom: 48 },
])
}
fn default_n051_crow_and_skullhead() -> SafeNPCRect<10> {
SafeNPCRect([
Rect { left: 96, top: 80, right: 128, bottom: 112 },
Rect { left: 128, top: 80, right: 160, bottom: 112 },
Rect { left: 160, top: 80, right: 192, bottom: 112 },
Rect { left: 192, top: 80, right: 224, bottom: 112 },
Rect { left: 224, top: 80, right: 256, bottom: 112 },
Rect { left: 96, top: 112, right: 128, bottom: 144 },
Rect { left: 128, top: 112, right: 160, bottom: 144 },
Rect { left: 160, top: 112, right: 192, bottom: 144 },
Rect { left: 192, top: 112, right: 224, bottom: 144 },
Rect { left: 224, top: 112, right: 256, bottom: 144 },
])
}
fn default_n052_sitting_blue_robot() -> Rect<u16> {
Rect { left: 240, top: 96, right: 256, bottom: 112 }
}
fn default_n053_skullstep_leg() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 0, top: 128, right: 24, bottom: 144 },
Rect { left: 24, top: 128, right: 48, bottom: 144 },
Rect { left: 48, top: 128, right: 72, bottom: 144 },
Rect { left: 72, top: 128, right: 96, bottom: 144 },
])
}
fn default_n054_skullstep() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 0, top: 80, right: 32, bottom: 104 },
Rect { left: 32, top: 80, right: 64, bottom: 104 },
Rect { left: 64, top: 80, right: 96, bottom: 104 },
Rect { left: 0, top: 104, right: 32, bottom: 128 },
Rect { left: 32, top: 104, right: 64, bottom: 128 },
Rect { left: 64, top: 104, right: 96, bottom: 128 },
])
}
fn default_n055_kazuma() -> SafeNPCRect<12> {
SafeNPCRect([
Rect { left: 192, top: 192, right: 208, bottom: 216 },
Rect { left: 208, top: 192, right: 224, bottom: 216 },
Rect { left: 192, top: 192, right: 208, bottom: 216 },
Rect { left: 224, top: 192, right: 240, bottom: 216 },
Rect { left: 192, top: 192, right: 208, bottom: 216 },
Rect { left: 240, top: 192, right: 256, bottom: 216 },
Rect { left: 192, top: 216, right: 208, bottom: 240 },
Rect { left: 208, top: 216, right: 224, bottom: 240 },
Rect { left: 192, top: 216, right: 208, bottom: 240 },
Rect { left: 224, top: 216, right: 240, bottom: 240 },
Rect { left: 192, top: 216, right: 208, bottom: 240 },
Rect { left: 240, top: 216, right: 256, bottom: 240 },
])
}
fn default_n056_tan_beetle() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 0, top: 144, right: 16, bottom: 160 },
Rect { left: 16, top: 144, right: 32, bottom: 160 },
Rect { left: 32, top: 144, right: 48, bottom: 160 },
Rect { left: 0, top: 160, right: 16, bottom: 176 },
Rect { left: 16, top: 160, right: 32, bottom: 176 },
Rect { left: 32, top: 160, right: 48, bottom: 176 },
])
}
fn default_n057_crow() -> SafeNPCRect<10> {
SafeNPCRect([
Rect { left: 96, top: 80, right: 128, bottom: 112 },
Rect { left: 128, top: 80, right: 160, bottom: 112 },
Rect { left: 160, top: 80, right: 192, bottom: 112 },
Rect { left: 192, top: 80, right: 224, bottom: 112 },
Rect { left: 224, top: 80, right: 256, bottom: 112 },
Rect { left: 96, top: 112, right: 128, bottom: 144 },
Rect { left: 128, top: 112, right: 160, bottom: 144 },
Rect { left: 160, top: 112, right: 192, bottom: 144 },
Rect { left: 192, top: 112, right: 224, bottom: 144 },
Rect { left: 224, top: 112, right: 256, bottom: 144 },
])
}
fn default_n058_basu() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 192, top: 0, right: 216, bottom: 24 },
Rect { left: 216, top: 0, right: 240, bottom: 24 },
Rect { left: 240, top: 0, right: 264, bottom: 24 },
Rect { left: 192, top: 24, right: 216, bottom: 48 },
Rect { left: 216, top: 24, right: 240, bottom: 48 },
Rect { left: 240, top: 24, right: 264, bottom: 48 },
])
}
fn default_n059_eye_door() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 224, top: 16, right: 240, bottom: 40 },
Rect { left: 208, top: 80, right: 224, bottom: 104 },
Rect { left: 224, top: 80, right: 240, bottom: 104 },
Rect { left: 240, top: 80, right: 256, bottom: 104 },
])
}
fn default_n060_toroko() -> SafeNPCRect<16> {
SafeNPCRect([
Rect { left: 0, top: 64, right: 16, bottom: 80 },
Rect { left: 16, top: 64, right: 32, bottom: 80 },
Rect { left: 32, top: 64, right: 48, bottom: 80 },
Rect { left: 16, top: 64, right: 32, bottom: 80 },
Rect { left: 48, top: 64, right: 64, bottom: 80 },
Rect { left: 16, top: 64, right: 32, bottom: 80 },
Rect { left: 112, top: 64, right: 128, bottom: 80 },
Rect { left: 128, top: 64, right: 144, bottom: 80 },
Rect { left: 0, top: 80, right: 16, bottom: 96 },
Rect { left: 16, top: 80, right: 32, bottom: 96 },
Rect { left: 32, top: 80, right: 48, bottom: 96 },
Rect { left: 16, top: 80, right: 32, bottom: 96 },
Rect { left: 48, top: 80, right: 64, bottom: 96 },
Rect { left: 16, top: 80, right: 32, bottom: 96 },
Rect { left: 112, top: 80, right: 128, bottom: 96 },
Rect { left: 128, top: 80, right: 144, bottom: 96 },
])
}
fn default_n061_king() -> SafeNPCRect<22> {
SafeNPCRect([
Rect { left: 224, top: 32, right: 240, bottom: 48 },
Rect { left: 240, top: 32, right: 256, bottom: 48 },
Rect { left: 256, top: 32, right: 272, bottom: 48 },
Rect { left: 272, top: 32, right: 288, bottom: 48 },
Rect { left: 288, top: 32, right: 304, bottom: 48 },
Rect { left: 224, top: 32, right: 240, bottom: 48 },
Rect { left: 304, top: 32, right: 320, bottom: 48 },
Rect { left: 224, top: 32, right: 240, bottom: 48 },
Rect { left: 272, top: 32, right: 288, bottom: 48 },
Rect { left: 0, top: 0, right: 0, bottom: 0 },
Rect { left: 112, top: 32, right: 128, bottom: 48 },
Rect { left: 224, top: 48, right: 240, bottom: 64 },
Rect { left: 240, top: 48, right: 256, bottom: 64 },
Rect { left: 256, top: 48, right: 272, bottom: 64 },
Rect { left: 272, top: 48, right: 288, bottom: 64 },
Rect { left: 288, top: 48, right: 304, bottom: 64 },
Rect { left: 224, top: 48, right: 240, bottom: 64 },
Rect { left: 304, top: 48, right: 320, bottom: 64 },
Rect { left: 224, top: 48, right: 240, bottom: 64 },
Rect { left: 272, top: 48, right: 288, bottom: 64 },
Rect { left: 0, top: 0, right: 0, bottom: 0 },
Rect { left: 112, top: 32, right: 128, bottom: 48 },
])
}
fn default_n062_kazuma_computer() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 272, top: 192, right: 288, bottom: 216 },
Rect { left: 288, top: 192, right: 304, bottom: 216 },
Rect { left: 304, top: 192, right: 320, bottom: 216 },
])
}
fn default_n063_toroko_stick() -> SafeNPCRect<12> {
SafeNPCRect([
Rect { left: 64, top: 64, right: 80, bottom: 80 },
Rect { left: 80, top: 64, right: 96, bottom: 80 },
Rect { left: 64, top: 64, right: 80, bottom: 80 },
Rect { left: 96, top: 64, right: 112, bottom: 80 },
Rect { left: 112, top: 64, right: 128, bottom: 80 },
Rect { left: 128, top: 64, right: 144, bottom: 80 },
Rect { left: 64, top: 80, right: 80, bottom: 96 },
Rect { left: 80, top: 80, right: 96, bottom: 96 },
Rect { left: 64, top: 80, right: 80, bottom: 96 },
Rect { left: 96, top: 80, right: 112, bottom: 96 },
Rect { left: 112, top: 80, right: 128, bottom: 96 },
Rect { left: 128, top: 80, right: 144, bottom: 96 },
])
}
fn default_n064_first_cave_critter() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 16, bottom: 16 },
Rect { left: 16, top: 0, right: 32, bottom: 16 },
Rect { left: 32, top: 0, right: 48, bottom: 16 },
Rect { left: 0, top: 16, right: 16, bottom: 32 },
Rect { left: 16, top: 16, right: 32, bottom: 32 },
Rect { left: 32, top: 16, right: 48, bottom: 32 },
])
}
fn default_n065_first_cave_bat() -> SafeNPCRect<8> {
SafeNPCRect([
Rect { left: 32, top: 32, right: 48, bottom: 48 },
Rect { left: 48, top: 32, right: 64, bottom: 48 },
Rect { left: 64, top: 32, right: 80, bottom: 48 },
Rect { left: 80, top: 32, right: 96, bottom: 48 },
Rect { left: 32, top: 48, right: 48, bottom: 64 },
Rect { left: 48, top: 48, right: 64, bottom: 64 },
Rect { left: 64, top: 48, right: 80, bottom: 64 },
Rect { left: 80, top: 48, right: 96, bottom: 64 },
])
}
fn default_n066_misery_bubble() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 32, top: 192, right: 56, bottom: 216 },
Rect { left: 56, top: 192, right: 80, bottom: 216 },
Rect { left: 32, top: 216, right: 56, bottom: 240 },
Rect { left: 56, top: 216, right: 80, bottom: 240 },
])
}
fn default_n067_misery_floating() -> SafeNPCRect<16> {
SafeNPCRect([
Rect { left: 80, top: 0, right: 96, bottom: 16 },
Rect { left: 96, top: 0, right: 112, bottom: 16 },
Rect { left: 112, top: 0, right: 128, bottom: 16 },
Rect { left: 128, top: 0, right: 144, bottom: 16 },
Rect { left: 144, top: 0, right: 160, bottom: 16 },
Rect { left: 160, top: 0, right: 176, bottom: 16 },
Rect { left: 176, top: 0, right: 192, bottom: 16 },
Rect { left: 144, top: 0, right: 160, bottom: 16 },
Rect { left: 80, top: 16, right: 96, bottom: 32 },
Rect { left: 96, top: 16, right: 112, bottom: 32 },
Rect { left: 112, top: 16, right: 128, bottom: 32 },
Rect { left: 128, top: 16, right: 144, bottom: 32 },
Rect { left: 144, top: 16, right: 160, bottom: 32 },
Rect { left: 160, top: 16, right: 176, bottom: 32 },
Rect { left: 176, top: 16, right: 192, bottom: 32 },
Rect { left: 144, top: 16, right: 160, bottom: 32 },
])
}
fn default_n068_balrog_running() -> SafeNPCRect<18> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 40, bottom: 24 },
Rect { left: 0, top: 48, right: 40, bottom: 72 },
Rect { left: 0, top: 0, right: 40, bottom: 24 },
Rect { left: 40, top: 48, right: 80, bottom: 72 },
Rect { left: 0, top: 0, right: 40, bottom: 24 },
Rect { left: 80, top: 48, right: 120, bottom: 72 },
Rect { left: 120, top: 48, right: 160, bottom: 72 },
Rect { left: 120, top: 0, right: 160, bottom: 24 },
Rect { left: 80, top: 0, right: 120, bottom: 24 },
Rect { left: 0, top: 24, right: 40, bottom: 48 },
Rect { left: 0, top: 72, right: 40, bottom: 96 },
Rect { left: 0, top: 24, right: 40, bottom: 48 },
Rect { left: 40, top: 72, right: 80, bottom: 96 },
Rect { left: 0, top: 24, right: 40, bottom: 48 },
Rect { left: 80, top: 72, right: 120, bottom: 96 },
Rect { left: 120, top: 72, right: 160, bottom: 96 },
Rect { left: 120, top: 24, right: 160, bottom: 48 },
Rect { left: 80, top: 24, right: 120, bottom: 48 },
])
}
fn default_n069_pignon() -> SafeNPCRect<12> {
SafeNPCRect([
Rect { left: 48, top: 0, right: 64, bottom: 16 },
Rect { left: 64, top: 0, right: 80, bottom: 16 },
Rect { left: 80, top: 0, right: 96, bottom: 16 },
Rect { left: 96, top: 0, right: 112, bottom: 16 },
Rect { left: 48, top: 0, right: 64, bottom: 16 },
Rect { left: 112, top: 0, right: 128, bottom: 16 },
Rect { left: 48, top: 16, right: 64, bottom: 32 },
Rect { left: 64, top: 16, right: 80, bottom: 32 },
Rect { left: 80, top: 16, right: 96, bottom: 32 },
Rect { left: 96, top: 16, right: 112, bottom: 32 },
Rect { left: 48, top: 16, right: 64, bottom: 32 },
Rect { left: 112, top: 16, right: 128, bottom: 32 },
])
}
fn default_n070_sparkle() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 96, top: 48, right: 112, bottom: 64 },
Rect { left: 112, top: 48, right: 128, bottom: 64 },
Rect { left: 128, top: 48, right: 144, bottom: 64 },
Rect { left: 144, top: 48, right: 160, bottom: 64 },
])
}
fn default_n071_chinfish() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 64, top: 32, right: 80, bottom: 48 },
Rect { left: 80, top: 32, right: 96, bottom: 48 },
Rect { left: 96, top: 32, right: 112, bottom: 48 },
Rect { left: 64, top: 48, right: 80, bottom: 64 },
Rect { left: 80, top: 48, right: 96, bottom: 64 },
Rect { left: 96, top: 48, right: 112, bottom: 64 },
])
}
fn default_n072_sprinkler() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 224, top: 48, right: 240, bottom: 64 },
Rect { left: 240, top: 48, right: 256, bottom: 64 },
])
}
fn default_n073_water_droplet() -> SafeNPCRect<5> {
SafeNPCRect([
Rect { left: 72, top: 16, right: 74, bottom: 18 },
Rect { left: 74, top: 16, right: 76, bottom: 18 },
Rect { left: 76, top: 16, right: 78, bottom: 18 },
Rect { left: 78, top: 16, right: 80, bottom: 18 },
Rect { left: 80, top: 16, right: 82, bottom: 18 },
])
}
fn default_n074_jack() -> SafeNPCRect<12> {
SafeNPCRect([
Rect { left: 64, top: 0, right: 80, bottom: 16 },
Rect { left: 80, top: 0, right: 96, bottom: 16 },
Rect { left: 96, top: 0, right: 112, bottom: 16 },
Rect { left: 64, top: 0, right: 80, bottom: 16 },
Rect { left: 112, top: 0, right: 128, bottom: 16 },
Rect { left: 64, top: 0, right: 80, bottom: 16 },
Rect { left: 64, top: 16, right: 80, bottom: 32 },
Rect { left: 80, top: 16, right: 96, bottom: 32 },
Rect { left: 96, top: 16, right: 112, bottom: 32 },
Rect { left: 64, top: 16, right: 80, bottom: 32 },
Rect { left: 112, top: 16, right: 128, bottom: 32 },
Rect { left: 64, top: 16, right: 80, bottom: 32 },
])
}
fn default_n075_kanpachi() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 272, top: 32, right: 296, bottom: 56 },
Rect { left: 296, top: 32, right: 320, bottom: 56 },
])
}
fn default_n077_yamashita() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 0, top: 16, right: 48, bottom: 48 },
Rect { left: 48, top: 16, right: 96, bottom: 48 },
Rect { left: 96, top: 16, right: 144, bottom: 48 },
])
}
fn default_n078_pot() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 160, top: 48, right: 176, bottom: 64 },
Rect { left: 176, top: 48, right: 192, bottom: 64 },
])
}
fn default_n079_mahin() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 16, bottom: 16 },
Rect { left: 16, top: 0, right: 32, bottom: 16 },
Rect { left: 32, top: 0, right: 48, bottom: 16 },
Rect { left: 0, top: 16, right: 16, bottom: 32 },
Rect { left: 16, top: 16, right: 32, bottom: 32 },
Rect { left: 32, top: 16, right: 48, bottom: 32 },
])
}
fn default_n080_gravekeeper() -> SafeNPCRect<14> {
SafeNPCRect([
Rect { left: 0, top: 64, right: 24, bottom: 88 },
Rect { left: 24, top: 64, right: 48, bottom: 88 },
Rect { left: 0, top: 64, right: 24, bottom: 88 },
Rect { left: 48, top: 64, right: 72, bottom: 88 },
Rect { left: 72, top: 64, right: 96, bottom: 88 },
Rect { left: 96, top: 64, right: 120, bottom: 88 },
Rect { left: 120, top: 64, right: 144, bottom: 88 },
Rect { left: 0, top: 88, right: 24, bottom: 112 },
Rect { left: 24, top: 88, right: 48, bottom: 112 },
Rect { left: 0, top: 88, right: 24, bottom: 112 },
Rect { left: 48, top: 88, right: 72, bottom: 112 },
Rect { left: 72, top: 88, right: 96, bottom: 112 },
Rect { left: 96, top: 88, right: 120, bottom: 112 },
Rect { left: 120, top: 88, right: 144, bottom: 112 },
])
}
fn default_n081_giant_pignon() -> SafeNPCRect<12> {
SafeNPCRect([
Rect { left: 144, top: 64, right: 168, bottom: 88 },
Rect { left: 168, top: 64, right: 192, bottom: 88 },
Rect { left: 192, top: 64, right: 216, bottom: 88 },
Rect { left: 216, top: 64, right: 240, bottom: 88 },
Rect { left: 144, top: 64, right: 168, bottom: 88 },
Rect { left: 240, top: 64, right: 264, bottom: 88 },
Rect { left: 144, top: 88, right: 168, bottom: 112 },
Rect { left: 168, top: 88, right: 192, bottom: 112 },
Rect { left: 192, top: 88, right: 216, bottom: 112 },
Rect { left: 216, top: 88, right: 240, bottom: 112 },
Rect { left: 144, top: 88, right: 168, bottom: 112 },
Rect { left: 240, top: 88, right: 264, bottom: 112 },
])
}
fn default_n082_misery_standing() -> SafeNPCRect<18> {
SafeNPCRect([
Rect { left: 80, top: 0, right: 96, bottom: 16 },
Rect { left: 96, top: 0, right: 112, bottom: 16 },
Rect { left: 112, top: 0, right: 128, bottom: 16 },
Rect { left: 128, top: 0, right: 144, bottom: 16 },
Rect { left: 144, top: 0, right: 160, bottom: 16 },
Rect { left: 160, top: 0, right: 176, bottom: 16 },
Rect { left: 176, top: 0, right: 192, bottom: 16 },
Rect { left: 144, top: 0, right: 160, bottom: 16 },
Rect { left: 208, top: 64, right: 224, bottom: 80 },
Rect { left: 80, top: 16, right: 96, bottom: 32 },
Rect { left: 96, top: 16, right: 112, bottom: 32 },
Rect { left: 112, top: 16, right: 128, bottom: 32 },
Rect { left: 128, top: 16, right: 144, bottom: 32 },
Rect { left: 144, top: 16, right: 160, bottom: 32 },
Rect { left: 160, top: 16, right: 176, bottom: 32 },
Rect { left: 176, top: 16, right: 192, bottom: 32 },
Rect { left: 144, top: 16, right: 160, bottom: 32 },
Rect { left: 208, top: 80, right: 224, bottom: 96 },
])
}
fn default_n083_igor_cutscene() -> SafeNPCRect<16> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 40, bottom: 40 },
Rect { left: 40, top: 0, right: 80, bottom: 40 },
Rect { left: 80, top: 0, right: 120, bottom: 40 },
Rect { left: 0, top: 0, right: 40, bottom: 40 },
Rect { left: 120, top: 0, right: 160, bottom: 40 },
Rect { left: 0, top: 0, right: 40, bottom: 40 },
Rect { left: 160, top: 0, right: 200, bottom: 40 },
Rect { left: 200, top: 0, right: 240, bottom: 40 },
Rect { left: 0, top: 40, right: 40, bottom: 80 },
Rect { left: 40, top: 40, right: 80, bottom: 80 },
Rect { left: 80, top: 40, right: 120, bottom: 80 },
Rect { left: 0, top: 40, right: 40, bottom: 80 },
Rect { left: 120, top: 40, right: 160, bottom: 80 },
Rect { left: 0, top: 40, right: 40, bottom: 80 },
Rect { left: 160, top: 40, right: 200, bottom: 80 },
Rect { left: 200, top: 40, right: 240, bottom: 80 },
])
}
fn default_n084_basu_projectile() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 48, top: 48, right: 64, bottom: 64 },
Rect { left: 64, top: 48, right: 80, bottom: 64 },
Rect { left: 48, top: 64, right: 64, bottom: 80 },
Rect { left: 64, top: 64, right: 80, bottom: 80 },
])
}
fn default_n085_terminal() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 256, top: 96, right: 272, bottom: 120 },
Rect { left: 256, top: 96, right: 272, bottom: 120 },
Rect { left: 272, top: 96, right: 288, bottom: 120 },
Rect { left: 256, top: 96, right: 272, bottom: 120 },
Rect { left: 288, top: 96, right: 304, bottom: 120 },
Rect { left: 304, top: 96, right: 320, bottom: 120 },
])
}
fn default_n086_missile_pickup() -> SafeNPCRect<5> {
SafeNPCRect([
Rect { left: 0, top: 80, right: 16, bottom: 96 },
Rect { left: 16, top: 80, right: 32, bottom: 96 },
Rect { left: 0, top: 112, right: 16, bottom: 128 },
Rect { left: 16, top: 112, right: 32, bottom: 128 },
Rect { left: 16, top: 0, right: 32, bottom: 16 },
])
}
fn default_n087_heart_pickup() -> SafeNPCRect<5> {
SafeNPCRect([
Rect { left: 32, top: 80, right: 48, bottom: 96 },
Rect { left: 48, top: 80, right: 64, bottom: 96 },
Rect { left: 64, top: 80, right: 80, bottom: 96 },
Rect { left: 80, top: 80, right: 96, bottom: 96 },
Rect { left: 16, top: 0, right: 32, bottom: 16 },
])
}
fn default_n088_igor_boss() -> SafeNPCRect<24> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 40, bottom: 40 },
Rect { left: 40, top: 0, right: 80, bottom: 40 },
Rect { left: 80, top: 0, right: 120, bottom: 40 },
Rect { left: 0, top: 0, right: 40, bottom: 40 },
Rect { left: 120, top: 0, right: 160, bottom: 40 },
Rect { left: 0, top: 0, right: 40, bottom: 40 },
Rect { left: 160, top: 0, right: 200, bottom: 40 },
Rect { left: 200, top: 0, right: 240, bottom: 40 },
Rect { left: 0, top: 80, right: 40, bottom: 120 },
Rect { left: 40, top: 80, right: 80, bottom: 120 },
Rect { left: 240, top: 0, right: 280, bottom: 40 },
Rect { left: 280, top: 0, right: 320, bottom: 40 },
Rect { left: 0, top: 40, right: 40, bottom: 80 },
Rect { left: 40, top: 40, right: 80, bottom: 80 },
Rect { left: 80, top: 40, right: 120, bottom: 80 },
Rect { left: 0, top: 40, right: 40, bottom: 80 },
Rect { left: 120, top: 40, right: 160, bottom: 80 },
Rect { left: 0, top: 40, right: 40, bottom: 80 },
Rect { left: 160, top: 40, right: 200, bottom: 80 },
Rect { left: 200, top: 40, right: 240, bottom: 80 },
Rect { left: 120, top: 80, right: 160, bottom: 120 },
Rect { left: 160, top: 80, right: 200, bottom: 120 },
Rect { left: 240, top: 40, right: 280, bottom: 80 },
Rect { left: 280, top: 40, right: 320, bottom: 80 },
])
}
fn default_n089_igor_dead() -> SafeNPCRect<8> {
SafeNPCRect([
Rect { left: 80, top: 80, right: 120, bottom: 120 },
Rect { left: 240, top: 80, right: 264, bottom: 104 },
Rect { left: 264, top: 80, right: 288, bottom: 104 },
Rect { left: 288, top: 80, right: 312, bottom: 104 },
Rect { left: 200, top: 80, right: 240, bottom: 120 },
Rect { left: 240, top: 104, right: 264, bottom: 128 },
Rect { left: 264, top: 104, right: 288, bottom: 128 },
Rect { left: 288, top: 104, right: 312, bottom: 128 },
])
}
fn default_n090_background() -> Rect<u16> {
Rect { left: 280, top: 80, right: 296, bottom: 104 }
}
fn default_n091_mimiga_cage() -> Rect<u16> {
Rect { left: 96, top: 88, right: 128, bottom: 112 }
}
fn default_n092_sue_at_pc() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 272, top: 216, right: 288, bottom: 240 },
Rect { left: 288, top: 216, right: 304, bottom: 240 },
Rect { left: 304, top: 216, right: 320, bottom: 240 },
])
}
fn default_n093_chaco() -> SafeNPCRect<14> {
SafeNPCRect([
Rect { left: 128, top: 0, right: 144, bottom: 16 },
Rect { left: 144, top: 0, right: 160, bottom: 16 },
Rect { left: 160, top: 0, right: 176, bottom: 16 },
Rect { left: 128, top: 0, right: 144, bottom: 16 },
Rect { left: 176, top: 0, right: 192, bottom: 16 },
Rect { left: 128, top: 0, right: 144, bottom: 16 },
Rect { left: 32, top: 32, right: 48, bottom: 48 },
Rect { left: 128, top: 16, right: 144, bottom: 32 },
Rect { left: 144, top: 16, right: 160, bottom: 32 },
Rect { left: 160, top: 16, right: 176, bottom: 32 },
Rect { left: 128, top: 16, right: 144, bottom: 32 },
Rect { left: 176, top: 16, right: 192, bottom: 32 },
Rect { left: 128, top: 16, right: 144, bottom: 32 },
Rect { left: 32, top: 32, right: 48, bottom: 48 },
])
}
fn default_n094_kulala() -> SafeNPCRect<5> {
SafeNPCRect([
Rect { left: 272, top: 0, right: 320, bottom: 24 },
Rect { left: 272, top: 24, right: 320, bottom: 48 },
Rect { left: 272, top: 48, right: 320, bottom: 72 },
Rect { left: 272, top: 72, right: 320, bottom: 96 },
Rect { left: 272, top: 96, right: 320, bottom: 120 },
])
}
fn default_n095_jelly() -> SafeNPCRect<8> {
SafeNPCRect([
Rect { left: 208, top: 64, right: 224, bottom: 80 },
Rect { left: 224, top: 64, right: 240, bottom: 80 },
Rect { left: 240, top: 64, right: 256, bottom: 80 },
Rect { left: 256, top: 64, right: 272, bottom: 80 },
Rect { left: 208, top: 80, right: 224, bottom: 96 },
Rect { left: 224, top: 80, right: 240, bottom: 96 },
Rect { left: 240, top: 80, right: 256, bottom: 96 },
Rect { left: 256, top: 80, right: 272, bottom: 96 },
])
}
fn default_n096_fan_left() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 272, top: 120, right: 288, bottom: 136 },
Rect { left: 288, top: 120, right: 304, bottom: 136 },
Rect { left: 304, top: 120, right: 320, bottom: 136 },
])
}
fn default_n097_fan_up() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 272, top: 136, right: 288, bottom: 152 },
Rect { left: 288, top: 136, right: 304, bottom: 152 },
Rect { left: 304, top: 136, right: 320, bottom: 152 },
])
}
fn default_n098_fan_right() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 272, top: 152, right: 288, bottom: 168 },
Rect { left: 288, top: 152, right: 304, bottom: 168 },
Rect { left: 304, top: 152, right: 320, bottom: 168 },
])
}
fn default_n099_fan_down() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 272, top: 168, right: 288, bottom: 184 },
Rect { left: 288, top: 168, right: 304, bottom: 184 },
Rect { left: 304, top: 168, right: 320, bottom: 184 },
])
}
fn default_n100_grate() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 272, top: 48, right: 288, bottom: 64 },
Rect { left: 272, top: 48, right: 288, bottom: 64 },
])
}
fn default_n101_malco_screen() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 240, top: 136, right: 256, bottom: 152 },
Rect { left: 240, top: 136, right: 256, bottom: 152 },
Rect { left: 256, top: 136, right: 272, bottom: 152 },
])
}
fn default_n102_malco_computer_wave() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 208, top: 120, right: 224, bottom: 136 },
Rect { left: 224, top: 120, right: 240, bottom: 136 },
Rect { left: 240, top: 120, right: 256, bottom: 136 },
Rect { left: 256, top: 120, right: 272, bottom: 136 },
])
}
fn default_n103_mannan_projectile() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 192, top: 96, right: 208, bottom: 120 },
Rect { left: 208, top: 96, right: 224, bottom: 120 },
Rect { left: 224, top: 96, right: 240, bottom: 120 },
Rect { left: 192, top: 120, right: 208, bottom: 144 },
Rect { left: 208, top: 120, right: 224, bottom: 144 },
Rect { left: 224, top: 120, right: 240, bottom: 144 },
])
}
fn default_n104_frog() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 0, top: 112, right: 32, bottom: 144 },
Rect { left: 32, top: 112, right: 64, bottom: 144 },
Rect { left: 64, top: 112, right: 96, bottom: 144 },
Rect { left: 0, top: 144, right: 32, bottom: 176 },
Rect { left: 32, top: 144, right: 64, bottom: 176 },
Rect { left: 64, top: 144, right: 96, bottom: 176 },
])
}
fn default_n105_hey_bubble_low() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 128, top: 32, right: 144, bottom: 48 },
Rect { left: 128, top: 32, right: 128, bottom: 32 },
])
}
fn default_n107_malco_broken() -> SafeNPCRect<10> {
SafeNPCRect([
Rect { left: 144, top: 0, right: 160, bottom: 24 },
Rect { left: 160, top: 0, right: 176, bottom: 24 },
Rect { left: 176, top: 0, right: 192, bottom: 24 },
Rect { left: 192, top: 0, right: 208, bottom: 24 },
Rect { left: 208, top: 0, right: 224, bottom: 24 },
Rect { left: 224, top: 0, right: 240, bottom: 24 },
Rect { left: 176, top: 0, right: 192, bottom: 24 },
Rect { left: 192, top: 0, right: 208, bottom: 24 },
Rect { left: 208, top: 0, right: 224, bottom: 24 },
Rect { left: 192, top: 0, right: 208, bottom: 24 },
])
}
fn default_n108_balfrog_projectile() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 96, top: 48, right: 112, bottom: 64 },
Rect { left: 112, top: 48, right: 128, bottom: 64 },
Rect { left: 128, top: 48, right: 144, bottom: 64 },
])
}
fn default_n109_malco_powered_on() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 240, top: 0, right: 256, bottom: 24 },
Rect { left: 256, top: 0, right: 272, bottom: 24 },
Rect { left: 240, top: 24, right: 256, bottom: 48 },
Rect { left: 256, top: 24, right: 272, bottom: 48 },
])
}
fn default_n110_puchi() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 96, top: 128, right: 112, bottom: 144 },
Rect { left: 112, top: 128, right: 128, bottom: 144 },
Rect { left: 128, top: 128, right: 144, bottom: 144 },
Rect { left: 96, top: 144, right: 112, bottom: 160 },
Rect { left: 112, top: 144, right: 128, bottom: 160 },
Rect { left: 128, top: 144, right: 144, bottom: 160 },
])
}
fn default_n111_quote_teleport_out() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 16, bottom: 16 },
Rect { left: 16, top: 0, right: 32, bottom: 16 },
Rect { left: 0, top: 16, right: 16, bottom: 32 },
Rect { left: 16, top: 16, right: 32, bottom: 32 },
])
}
fn default_n112_quote_teleport_in() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 16, bottom: 16 },
Rect { left: 16, top: 0, right: 32, bottom: 16 },
Rect { left: 0, top: 16, right: 16, bottom: 32 },
Rect { left: 16, top: 16, right: 32, bottom: 32 },
])
}
fn default_n113_professor_booster() -> SafeNPCRect<14> {
SafeNPCRect([
Rect { left: 224, top: 0, right: 240, bottom: 16 },
Rect { left: 240, top: 0, right: 256, bottom: 16 },
Rect { left: 256, top: 0, right: 272, bottom: 16 },
Rect { left: 224, top: 0, right: 240, bottom: 16 },
Rect { left: 272, top: 0, right: 288, bottom: 16 },
Rect { left: 224, top: 0, right: 240, bottom: 16 },
Rect { left: 288, top: 0, right: 304, bottom: 16 },
Rect { left: 224, top: 16, right: 240, bottom: 32 },
Rect { left: 240, top: 16, right: 256, bottom: 32 },
Rect { left: 256, top: 16, right: 272, bottom: 32 },
Rect { left: 224, top: 16, right: 240, bottom: 32 },
Rect { left: 272, top: 16, right: 288, bottom: 32 },
Rect { left: 224, top: 16, right: 240, bottom: 32 },
Rect { left: 288, top: 16, right: 304, bottom: 32 },
])
}
fn default_n114_press() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 144, top: 112, right: 160, bottom: 136 },
Rect { left: 160, top: 112, right: 176, bottom: 136 },
Rect { left: 176, top: 112, right: 192, bottom: 136 },
])
}
fn default_n115_ravil() -> SafeNPCRect<12> {
SafeNPCRect([
Rect { left: 0, top: 120, right: 24, bottom: 144 },
Rect { left: 24, top: 120, right: 48, bottom: 144 },
Rect { left: 48, top: 120, right: 72, bottom: 144 },
Rect { left: 72, top: 120, right: 96, bottom: 144 },
Rect { left: 96, top: 120, right: 120, bottom: 144 },
Rect { left: 120, top: 120, right: 144, bottom: 144 },
Rect { left: 0, top: 144, right: 24, bottom: 168 },
Rect { left: 24, top: 144, right: 48, bottom: 168 },
Rect { left: 48, top: 144, right: 72, bottom: 168 },
Rect { left: 72, top: 144, right: 96, bottom: 168 },
Rect { left: 96, top: 144, right: 120, bottom: 168 },
Rect { left: 120, top: 144, right: 144, bottom: 168 },
])
}
fn default_n116_red_petals() -> Rect<u16> {
Rect { left: 272, top: 184, right: 320, bottom: 200 }
}
fn default_n117_curly() -> SafeNPCRect<20> {
SafeNPCRect([
Rect { left: 0, top: 96, right: 16, bottom: 112 },
Rect { left: 16, top: 96, right: 32, bottom: 112 },
Rect { left: 0, top: 96, right: 16, bottom: 112 },
Rect { left: 32, top: 96, right: 48, bottom: 112 },
Rect { left: 0, top: 96, right: 16, bottom: 112 },
Rect { left: 176, top: 96, right: 192, bottom: 112 },
Rect { left: 112, top: 96, right: 128, bottom: 112 },
Rect { left: 160, top: 96, right: 176, bottom: 112 },
Rect { left: 144, top: 96, right: 160, bottom: 112 },
Rect { left: 48, top: 96, right: 64, bottom: 112 },
Rect { left: 0, top: 112, right: 16, bottom: 128 },
Rect { left: 16, top: 112, right: 32, bottom: 128 },
Rect { left: 0, top: 112, right: 16, bottom: 128 },
Rect { left: 32, top: 112, right: 48, bottom: 128 },
Rect { left: 0, top: 112, right: 16, bottom: 128 },
Rect { left: 176, top: 112, right: 192, bottom: 128 },
Rect { left: 112, top: 112, right: 128, bottom: 128 },
Rect { left: 160, top: 112, right: 176, bottom: 128 },
Rect { left: 144, top: 112, right: 160, bottom: 128 },
Rect { left: 48, top: 112, right: 64, bottom: 128 },
])
}
fn default_n118_curly_boss() -> SafeNPCRect<18> {
SafeNPCRect([
Rect { left: 0, top: 32, right: 32, bottom: 56 },
Rect { left: 32, top: 32, right: 64, bottom: 56 },
Rect { left: 64, top: 32, right: 96, bottom: 56 },
Rect { left: 96, top: 32, right: 128, bottom: 56 },
Rect { left: 0, top: 32, right: 32, bottom: 56 },
Rect { left: 128, top: 32, right: 160, bottom: 56 },
Rect { left: 0, top: 32, right: 32, bottom: 56 },
Rect { left: 0, top: 32, right: 32, bottom: 56 },
Rect { left: 160, top: 32, right: 192, bottom: 56 },
Rect { left: 0, top: 56, right: 32, bottom: 80 },
Rect { left: 32, top: 56, right: 64, bottom: 80 },
Rect { left: 64, top: 56, right: 96, bottom: 80 },
Rect { left: 96, top: 56, right: 128, bottom: 80 },
Rect { left: 0, top: 56, right: 32, bottom: 80 },
Rect { left: 128, top: 56, right: 160, bottom: 80 },
Rect { left: 0, top: 56, right: 32, bottom: 80 },
Rect { left: 0, top: 56, right: 32, bottom: 80 },
Rect { left: 160, top: 56, right: 192, bottom: 80 },
])
}
fn default_n119_table_chair() -> Rect<u16> {
Rect { left: 248, top: 184, right: 272, bottom: 200 }
}
fn default_n120_colon_a() -> SafeNPCRect<2> {
SafeNPCRect([Rect { left: 64, top: 0, right: 80, bottom: 16 }, Rect { left: 64, top: 16, right: 80, bottom: 32 }])
}
fn default_n121_colon_b() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 16, bottom: 16 },
Rect { left: 16, top: 0, right: 32, bottom: 16 },
Rect { left: 112, top: 0, right: 128, bottom: 16 },
])
}
fn default_n122_colon_enraged() -> SafeNPCRect<20> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 16, bottom: 16 },
Rect { left: 16, top: 0, right: 32, bottom: 16 },
Rect { left: 32, top: 0, right: 48, bottom: 16 },
Rect { left: 0, top: 0, right: 16, bottom: 16 },
Rect { left: 48, top: 0, right: 64, bottom: 16 },
Rect { left: 0, top: 0, right: 16, bottom: 16 },
Rect { left: 80, top: 0, right: 96, bottom: 16 },
Rect { left: 96, top: 0, right: 112, bottom: 16 },
Rect { left: 112, top: 0, right: 128, bottom: 16 },
Rect { left: 128, top: 0, right: 144, bottom: 16 },
Rect { left: 0, top: 16, right: 16, bottom: 32 },
Rect { left: 16, top: 16, right: 32, bottom: 32 },
Rect { left: 32, top: 16, right: 48, bottom: 32 },
Rect { left: 0, top: 16, right: 16, bottom: 32 },
Rect { left: 48, top: 16, right: 64, bottom: 32 },
Rect { left: 0, top: 16, right: 16, bottom: 32 },
Rect { left: 80, top: 16, right: 96, bottom: 32 },
Rect { left: 96, top: 16, right: 112, bottom: 32 },
Rect { left: 112, top: 16, right: 128, bottom: 32 },
Rect { left: 128, top: 16, right: 144, bottom: 32 },
])
}
fn default_n123_curly_boss_bullet() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 192, top: 0, right: 208, bottom: 16 },
Rect { left: 208, top: 0, right: 224, bottom: 16 },
Rect { left: 224, top: 0, right: 240, bottom: 16 },
Rect { left: 240, top: 0, right: 256, bottom: 16 },
])
}
fn default_n124_sunstone() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 160, top: 0, right: 192, bottom: 32 },
Rect { left: 192, top: 0, right: 224, bottom: 32 },
])
}
fn default_n125_hidden_item() -> SafeNPCRect<2> {
SafeNPCRect([Rect { left: 0, top: 96, right: 16, bottom: 112 }, Rect { left: 16, top: 96, right: 32, bottom: 112 }])
}
fn default_n126_puppy_running() -> SafeNPCRect<12> {
SafeNPCRect([
Rect { left: 48, top: 144, right: 64, bottom: 160 },
Rect { left: 64, top: 144, right: 80, bottom: 160 },
Rect { left: 48, top: 144, right: 64, bottom: 160 },
Rect { left: 80, top: 144, right: 96, bottom: 160 },
Rect { left: 96, top: 144, right: 112, bottom: 160 },
Rect { left: 112, top: 144, right: 128, bottom: 160 },
Rect { left: 48, top: 160, right: 64, bottom: 176 },
Rect { left: 64, top: 160, right: 80, bottom: 176 },
Rect { left: 48, top: 160, right: 64, bottom: 176 },
Rect { left: 80, top: 160, right: 96, bottom: 176 },
Rect { left: 96, top: 160, right: 112, bottom: 176 },
Rect { left: 112, top: 160, right: 128, bottom: 176 },
])
}
fn default_n127_machine_gun_trail_l2() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 64, top: 80, right: 80, bottom: 96 },
Rect { left: 80, top: 80, right: 96, bottom: 96 },
Rect { left: 96, top: 80, right: 112, bottom: 96 },
Rect { left: 112, top: 48, right: 128, bottom: 64 },
Rect { left: 112, top: 64, right: 128, bottom: 80 },
Rect { left: 112, top: 80, right: 128, bottom: 96 },
])
}
fn default_n128_machine_gun_trail_l3() -> SafeNPCRect<20> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 0, bottom: 0 },
Rect { left: 176, top: 16, right: 184, bottom: 32 },
Rect { left: 184, top: 16, right: 192, bottom: 32 },
Rect { left: 192, top: 16, right: 200, bottom: 32 },
Rect { left: 200, top: 16, right: 208, bottom: 32 },
Rect { left: 0, top: 0, right: 0, bottom: 0 },
Rect { left: 176, top: 32, right: 192, bottom: 40 },
Rect { left: 176, top: 40, right: 192, bottom: 48 },
Rect { left: 192, top: 32, right: 208, bottom: 40 },
Rect { left: 192, top: 40, right: 208, bottom: 48 },
Rect { left: 0, top: 0, right: 0, bottom: 0 },
Rect { left: 232, top: 16, right: 240, bottom: 32 },
Rect { left: 224, top: 16, right: 232, bottom: 32 },
Rect { left: 216, top: 16, right: 224, bottom: 32 },
Rect { left: 208, top: 16, right: 216, bottom: 32 },
Rect { left: 0, top: 0, right: 0, bottom: 0 },
Rect { left: 208, top: 32, right: 224, bottom: 40 },
Rect { left: 208, top: 40, right: 224, bottom: 48 },
Rect { left: 224, top: 32, right: 232, bottom: 40 },
Rect { left: 224, top: 40, right: 232, bottom: 48 },
])
}
fn default_n129_fireball_snake_trail() -> SafeNPCRect<18> {
SafeNPCRect([
Rect { left: 128, top: 48, right: 144, bottom: 64 },
Rect { left: 144, top: 48, right: 160, bottom: 64 },
Rect { left: 160, top: 48, right: 176, bottom: 64 },
Rect { left: 128, top: 64, right: 144, bottom: 80 },
Rect { left: 144, top: 64, right: 160, bottom: 80 },
Rect { left: 160, top: 64, right: 176, bottom: 80 },
Rect { left: 128, top: 80, right: 144, bottom: 96 },
Rect { left: 144, top: 80, right: 160, bottom: 96 },
Rect { left: 160, top: 80, right: 176, bottom: 96 },
Rect { left: 176, top: 48, right: 192, bottom: 64 },
Rect { left: 192, top: 48, right: 208, bottom: 64 },
Rect { left: 208, top: 48, right: 224, bottom: 64 },
Rect { left: 176, top: 64, right: 192, bottom: 80 },
Rect { left: 192, top: 64, right: 208, bottom: 80 },
Rect { left: 208, top: 64, right: 224, bottom: 80 },
Rect { left: 176, top: 80, right: 192, bottom: 96 },
Rect { left: 192, top: 80, right: 208, bottom: 96 },
Rect { left: 208, top: 80, right: 224, bottom: 96 },
])
}
fn default_n130_puppy_sitting() -> SafeNPCRect<8> {
SafeNPCRect([
Rect { left: 48, top: 144, right: 64, bottom: 160 },
Rect { left: 64, top: 144, right: 80, bottom: 160 },
Rect { left: 48, top: 144, right: 64, bottom: 160 },
Rect { left: 80, top: 144, right: 96, bottom: 160 },
Rect { left: 48, top: 160, right: 64, bottom: 176 },
Rect { left: 64, top: 160, right: 80, bottom: 176 },
Rect { left: 48, top: 160, right: 64, bottom: 176 },
Rect { left: 80, top: 160, right: 96, bottom: 176 },
])
}
fn default_n131_puppy_sleeping() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 144, top: 144, right: 160, bottom: 160 },
Rect { left: 144, top: 160, right: 160, bottom: 176 },
])
}
fn default_n132_puppy_barking() -> SafeNPCRect<10> {
SafeNPCRect([
Rect { left: 48, top: 144, right: 64, bottom: 160 },
Rect { left: 64, top: 144, right: 80, bottom: 160 },
Rect { left: 96, top: 144, right: 112, bottom: 160 },
Rect { left: 96, top: 144, right: 112, bottom: 160 },
Rect { left: 128, top: 144, right: 144, bottom: 160 },
Rect { left: 48, top: 160, right: 64, bottom: 176 },
Rect { left: 64, top: 160, right: 80, bottom: 176 },
Rect { left: 96, top: 160, right: 112, bottom: 176 },
Rect { left: 96, top: 160, right: 112, bottom: 176 },
Rect { left: 128, top: 160, right: 144, bottom: 176 },
])
}
fn default_n133_jenka() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 176, top: 32, right: 192, bottom: 48 },
Rect { left: 192, top: 32, right: 208, bottom: 48 },
Rect { left: 176, top: 48, right: 192, bottom: 64 },
Rect { left: 192, top: 48, right: 208, bottom: 64 },
])
}
fn default_n134_armadillo() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 224, top: 0, right: 256, bottom: 16 },
Rect { left: 256, top: 0, right: 288, bottom: 16 },
Rect { left: 288, top: 0, right: 320, bottom: 16 },
Rect { left: 224, top: 16, right: 256, bottom: 32 },
Rect { left: 256, top: 16, right: 288, bottom: 32 },
Rect { left: 288, top: 16, right: 320, bottom: 32 },
])
}
fn default_n135_skeleton() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 256, top: 32, right: 288, bottom: 64 },
Rect { left: 288, top: 32, right: 320, bottom: 64 },
Rect { left: 256, top: 64, right: 288, bottom: 96 },
Rect { left: 288, top: 64, right: 320, bottom: 96 },
])
}
fn default_n136_puppy_carried() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 48, top: 144, right: 64, bottom: 160 },
Rect { left: 64, top: 144, right: 80, bottom: 160 },
Rect { left: 48, top: 160, right: 64, bottom: 176 },
Rect { left: 64, top: 160, right: 80, bottom: 176 },
])
}
fn default_n137_large_door_frame() -> Rect<u16> {
Rect { left: 96, top: 136, right: 128, bottom: 188 }
}
fn default_n138_large_door() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 96, top: 112, right: 112, bottom: 136 },
Rect { left: 112, top: 112, right: 128, bottom: 136 },
])
}
fn default_n139_doctor() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 0, top: 128, right: 24, bottom: 160 },
Rect { left: 24, top: 128, right: 48, bottom: 160 },
Rect { left: 48, top: 128, right: 72, bottom: 160 },
Rect { left: 0, top: 160, right: 24, bottom: 192 },
Rect { left: 24, top: 160, right: 48, bottom: 192 },
Rect { left: 48, top: 160, right: 72, bottom: 192 },
])
}
fn default_n140_toroko_frenzied() -> SafeNPCRect<28> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 32, bottom: 32 },
Rect { left: 32, top: 0, right: 64, bottom: 32 },
Rect { left: 64, top: 0, right: 96, bottom: 32 },
Rect { left: 96, top: 0, right: 128, bottom: 32 },
Rect { left: 128, top: 0, right: 160, bottom: 32 },
Rect { left: 160, top: 0, right: 192, bottom: 32 },
Rect { left: 192, top: 0, right: 224, bottom: 32 },
Rect { left: 224, top: 0, right: 256, bottom: 32 },
Rect { left: 0, top: 64, right: 32, bottom: 96 },
Rect { left: 32, top: 64, right: 64, bottom: 96 },
Rect { left: 64, top: 64, right: 96, bottom: 96 },
Rect { left: 96, top: 64, right: 128, bottom: 96 },
Rect { left: 128, top: 64, right: 160, bottom: 96 },
Rect { left: 0, top: 0, right: 0, bottom: 0 },
Rect { left: 0, top: 32, right: 32, bottom: 64 },
Rect { left: 32, top: 32, right: 64, bottom: 64 },
Rect { left: 64, top: 32, right: 96, bottom: 64 },
Rect { left: 96, top: 32, right: 128, bottom: 64 },
Rect { left: 128, top: 32, right: 160, bottom: 64 },
Rect { left: 160, top: 32, right: 192, bottom: 64 },
Rect { left: 192, top: 32, right: 224, bottom: 64 },
Rect { left: 224, top: 32, right: 256, bottom: 64 },
Rect { left: 0, top: 96, right: 32, bottom: 128 },
Rect { left: 32, top: 96, right: 64, bottom: 128 },
Rect { left: 64, top: 96, right: 96, bottom: 128 },
Rect { left: 96, top: 96, right: 128, bottom: 128 },
Rect { left: 128, top: 96, right: 160, bottom: 128 },
Rect { left: 0, top: 0, right: 0, bottom: 0 },
])
}
fn default_n141_toroko_block_projectile() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 288, top: 32, right: 304, bottom: 48 },
Rect { left: 304, top: 32, right: 320, bottom: 48 },
])
}
fn default_n142_flower_cub() -> SafeNPCRect<5> {
SafeNPCRect([
Rect { left: 0, top: 128, right: 16, bottom: 144 },
Rect { left: 16, top: 128, right: 32, bottom: 144 },
Rect { left: 32, top: 128, right: 48, bottom: 144 },
Rect { left: 48, top: 128, right: 64, bottom: 144 },
Rect { left: 64, top: 128, right: 80, bottom: 144 },
])
}
fn default_n143_jenka_collapsed() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 208, top: 32, right: 224, bottom: 48 },
Rect { left: 208, top: 48, right: 224, bottom: 64 },
])
}
fn default_n144_toroko_teleporting_in() -> SafeNPCRect<10> {
SafeNPCRect([
Rect { left: 0, top: 64, right: 16, bottom: 80 },
Rect { left: 16, top: 64, right: 32, bottom: 80 },
Rect { left: 32, top: 64, right: 48, bottom: 80 },
Rect { left: 16, top: 64, right: 32, bottom: 80 },
Rect { left: 128, top: 64, right: 144, bottom: 80 },
Rect { left: 0, top: 80, right: 16, bottom: 96 },
Rect { left: 16, top: 80, right: 32, bottom: 96 },
Rect { left: 32, top: 80, right: 48, bottom: 96 },
Rect { left: 16, top: 80, right: 32, bottom: 96 },
Rect { left: 128, top: 80, right: 144, bottom: 96 },
])
}
fn default_n145_king_sword() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 96, top: 32, right: 112, bottom: 48 },
Rect { left: 112, top: 32, right: 128, bottom: 48 },
])
}
fn default_n146_lightning() -> SafeNPCRect<5> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 0, bottom: 0 },
Rect { left: 256, top: 0, right: 272, bottom: 240 },
Rect { left: 272, top: 0, right: 288, bottom: 240 },
Rect { left: 288, top: 0, right: 304, bottom: 240 },
Rect { left: 304, top: 0, right: 320, bottom: 240 },
])
}
fn default_n147_critter_purple() -> SafeNPCRect<12> {
SafeNPCRect([
Rect { left: 0, top: 96, right: 16, bottom: 112 },
Rect { left: 16, top: 96, right: 32, bottom: 112 },
Rect { left: 32, top: 96, right: 48, bottom: 112 },
Rect { left: 48, top: 96, right: 64, bottom: 112 },
Rect { left: 64, top: 96, right: 80, bottom: 112 },
Rect { left: 80, top: 96, right: 96, bottom: 112 },
Rect { left: 0, top: 112, right: 16, bottom: 128 },
Rect { left: 16, top: 112, right: 32, bottom: 128 },
Rect { left: 32, top: 112, right: 48, bottom: 128 },
Rect { left: 48, top: 112, right: 64, bottom: 128 },
Rect { left: 64, top: 112, right: 80, bottom: 128 },
Rect { left: 80, top: 112, right: 96, bottom: 128 },
])
}
fn default_n148_critter_purple_projectile() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 96, top: 96, right: 104, bottom: 104 },
Rect { left: 104, top: 96, right: 112, bottom: 104 },
])
}
fn default_n149_horizontal_moving_block() -> Rect<u16> {
Rect { left: 16, top: 0, right: 48, bottom: 32 }
}
fn default_n150_quote() -> SafeNPCRect<20> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 16, bottom: 16 },
Rect { left: 48, top: 0, right: 64, bottom: 16 },
Rect { left: 144, top: 0, right: 160, bottom: 16 },
Rect { left: 16, top: 0, right: 32, bottom: 16 },
Rect { left: 0, top: 0, right: 16, bottom: 16 },
Rect { left: 32, top: 0, right: 48, bottom: 16 },
Rect { left: 0, top: 0, right: 16, bottom: 16 },
Rect { left: 160, top: 0, right: 176, bottom: 16 },
Rect { left: 112, top: 0, right: 128, bottom: 16 },
Rect { left: 96, top: 0, right: 112, bottom: 16 },
Rect { left: 0, top: 16, right: 16, bottom: 32 },
Rect { left: 48, top: 16, right: 64, bottom: 32 },
Rect { left: 144, top: 16, right: 160, bottom: 32 },
Rect { left: 16, top: 16, right: 32, bottom: 32 },
Rect { left: 0, top: 16, right: 16, bottom: 32 },
Rect { left: 32, top: 16, right: 48, bottom: 32 },
Rect { left: 0, top: 16, right: 16, bottom: 32 },
Rect { left: 160, top: 16, right: 176, bottom: 32 },
Rect { left: 112, top: 16, right: 128, bottom: 32 },
Rect { left: 96, top: 16, right: 112, bottom: 32 },
])
}
fn default_n151_blue_robot_standing() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 192, top: 0, right: 208, bottom: 16 },
Rect { left: 208, top: 0, right: 224, bottom: 16 },
Rect { left: 192, top: 16, right: 208, bottom: 32 },
Rect { left: 208, top: 16, right: 224, bottom: 32 },
])
}
fn default_n153_gaudi() -> SafeNPCRect<14> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 24, bottom: 24 }, // 0 0 // left
Rect { left: 24, top: 0, right: 48, bottom: 24 }, // 1 1
Rect { left: 48, top: 0, right: 72, bottom: 24 }, // 2 2
Rect { left: 0, top: 0, right: 24, bottom: 24 }, // 3 3
Rect { left: 72, top: 0, right: 96, bottom: 24 }, // 4 4
Rect { left: 0, top: 0, right: 24, bottom: 24 }, // 5 5
Rect { left: 96, top: 48, right: 120, bottom: 72 }, // 6 20
Rect { left: 0, top: 24, right: 24, bottom: 48 }, // 0 0 // right
Rect { left: 24, top: 24, right: 48, bottom: 48 }, // 1 1
Rect { left: 48, top: 24, right: 72, bottom: 48 }, // 2 2
Rect { left: 0, top: 24, right: 24, bottom: 48 }, // 3 3
Rect { left: 72, top: 24, right: 96, bottom: 48 }, // 4 4
Rect { left: 0, top: 24, right: 24, bottom: 48 }, // 5 5
Rect { left: 96, top: 72, right: 120, bottom: 96 }, // 6 20
])
}
fn default_n154_gaudi_dead() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 168, top: 24, right: 192, bottom: 48 },
Rect { left: 192, top: 24, right: 216, bottom: 48 },
Rect { left: 216, top: 24, right: 240, bottom: 48 },
Rect { left: 168, top: 0, right: 192, bottom: 24 },
Rect { left: 192, top: 0, right: 216, bottom: 24 },
Rect { left: 216, top: 0, right: 240, bottom: 24 },
])
}
fn default_n155_gaudi_flying() -> SafeNPCRect<8> {
SafeNPCRect([
Rect { left: 0, top: 48, right: 24, bottom: 72 }, // 0 14 // left
Rect { left: 24, top: 48, right: 48, bottom: 72 }, // 1 15
Rect { left: 288, top: 0, right: 312, bottom: 24 }, // 2 18
Rect { left: 24, top: 48, right: 48, bottom: 72 }, // 3 19
Rect { left: 0, top: 72, right: 24, bottom: 96 }, // 0 14 // right
Rect { left: 24, top: 72, right: 48, bottom: 96 }, // 1 15
Rect { left: 288, top: 24, right: 312, bottom: 48 }, // 2 18
Rect { left: 24, top: 72, right: 48, bottom: 96 }, // 3 19
])
}
fn default_n156_gaudi_projectile() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 96, top: 112, right: 112, bottom: 128 },
Rect { left: 112, top: 112, right: 128, bottom: 128 },
Rect { left: 128, top: 112, right: 144, bottom: 128 },
])
}
fn default_n157_vertical_moving_block() -> Rect<u16> {
Rect { left: 16, top: 0, right: 48, bottom: 32 }
}
fn default_n158_fish_missile() -> SafeNPCRect<8> {
SafeNPCRect([
Rect { left: 0, top: 224, right: 16, bottom: 240 },
Rect { left: 16, top: 224, right: 32, bottom: 240 },
Rect { left: 32, top: 224, right: 48, bottom: 240 },
Rect { left: 48, top: 224, right: 64, bottom: 240 },
Rect { left: 64, top: 224, right: 80, bottom: 240 },
Rect { left: 80, top: 224, right: 96, bottom: 240 },
Rect { left: 96, top: 224, right: 112, bottom: 240 },
Rect { left: 112, top: 224, right: 128, bottom: 240 },
])
}
fn default_n159_monster_x_defeated() -> Rect<u16> {
Rect { left: 144, top: 128, right: 192, bottom: 200 }
}
fn default_n160_puu_black() -> SafeNPCRect<8> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 40, bottom: 24 },
Rect { left: 40, top: 0, right: 80, bottom: 24 },
Rect { left: 80, top: 0, right: 120, bottom: 24 },
Rect { left: 120, top: 0, right: 160, bottom: 24 },
Rect { left: 0, top: 24, right: 40, bottom: 48 },
Rect { left: 40, top: 24, right: 80, bottom: 48 },
Rect { left: 80, top: 24, right: 120, bottom: 48 },
Rect { left: 120, top: 24, right: 160, bottom: 48 },
])
}
fn default_n161_puu_black_projectile() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 0, top: 48, right: 16, bottom: 64 },
Rect { left: 16, top: 48, right: 32, bottom: 64 },
Rect { left: 32, top: 48, right: 48, bottom: 64 },
])
}
fn default_n162_puu_black_dead() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 40, top: 0, right: 80, bottom: 24 },
Rect { left: 40, top: 24, right: 80, bottom: 48 },
Rect { left: 0, top: 0, right: 0, bottom: 0 },
])
}
fn default_n163_dr_gero() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 192, top: 0, right: 208, bottom: 16 },
Rect { left: 208, top: 0, right: 224, bottom: 16 },
Rect { left: 192, top: 16, right: 208, bottom: 32 },
Rect { left: 208, top: 16, right: 224, bottom: 32 },
])
}
fn default_n164_nurse_hasumi() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 224, top: 0, right: 240, bottom: 16 },
Rect { left: 240, top: 0, right: 256, bottom: 16 },
Rect { left: 224, top: 16, right: 240, bottom: 32 },
Rect { left: 240, top: 16, right: 256, bottom: 32 },
])
}
fn default_n165_curly_collapsed() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 144, top: 96, right: 160, bottom: 112 },
Rect { left: 192, top: 96, right: 208, bottom: 112 },
Rect { left: 208, top: 96, right: 224, bottom: 112 },
])
}
fn default_n166_chaba() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 144, top: 104, right: 184, bottom: 128 },
Rect { left: 184, top: 104, right: 224, bottom: 128 },
])
}
fn default_n167_booster_falling() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 304, top: 0, right: 320, bottom: 16 },
Rect { left: 304, top: 16, right: 320, bottom: 32 },
Rect { left: 0, top: 0, right: 0, bottom: 0 },
])
}
fn default_n168_boulder() -> Rect<u16> {
Rect { left: 264, top: 56, right: 320, bottom: 96 }
}
fn default_n169_balrog_shooting_missiles() -> SafeNPCRect<18> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 40, bottom: 24 },
Rect { left: 0, top: 48, right: 40, bottom: 72 },
Rect { left: 0, top: 0, right: 40, bottom: 24 },
Rect { left: 40, top: 48, right: 80, bottom: 72 },
Rect { left: 0, top: 0, right: 40, bottom: 24 },
Rect { left: 80, top: 48, right: 120, bottom: 72 },
Rect { left: 120, top: 48, right: 160, bottom: 72 },
Rect { left: 120, top: 0, right: 160, bottom: 24 },
Rect { left: 80, top: 0, right: 120, bottom: 24 },
Rect { left: 0, top: 24, right: 40, bottom: 48 },
Rect { left: 0, top: 72, right: 40, bottom: 96 },
Rect { left: 0, top: 24, right: 40, bottom: 48 },
Rect { left: 40, top: 72, right: 80, bottom: 96 },
Rect { left: 0, top: 24, right: 40, bottom: 48 },
Rect { left: 80, top: 72, right: 120, bottom: 96 },
Rect { left: 120, top: 72, right: 160, bottom: 96 },
Rect { left: 120, top: 24, right: 160, bottom: 48 },
Rect { left: 80, top: 24, right: 120, bottom: 48 },
])
}
fn default_n170_balrog_missile() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 112, top: 96, right: 128, bottom: 104 },
Rect { left: 128, top: 96, right: 144, bottom: 104 },
Rect { left: 112, top: 104, right: 128, bottom: 112 },
Rect { left: 128, top: 104, right: 144, bottom: 112 },
])
}
fn default_n171_fire_whirrr() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 120, top: 48, right: 152, bottom: 80 },
Rect { left: 152, top: 48, right: 184, bottom: 80 },
Rect { left: 184, top: 48, right: 216, bottom: 80 },
Rect { left: 216, top: 48, right: 248, bottom: 80 },
])
}
fn default_n172_fire_whirrr_projectile() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 248, top: 48, right: 264, bottom: 80 },
Rect { left: 264, top: 48, right: 280, bottom: 80 },
Rect { left: 280, top: 48, right: 296, bottom: 80 },
])
}
fn default_n173_gaudi_armored() -> SafeNPCRect<8> {
SafeNPCRect([
Rect { left: 0, top: 128, right: 24, bottom: 152 },
Rect { left: 24, top: 128, right: 48, bottom: 152 },
Rect { left: 48, top: 128, right: 72, bottom: 152 },
Rect { left: 72, top: 128, right: 96, bottom: 152 },
Rect { left: 0, top: 152, right: 24, bottom: 176 },
Rect { left: 24, top: 152, right: 48, bottom: 176 },
Rect { left: 48, top: 152, right: 72, bottom: 176 },
Rect { left: 72, top: 152, right: 96, bottom: 176 },
])
}
fn default_n174_gaudi_armored_projectile() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 120, top: 80, right: 136, bottom: 96 },
Rect { left: 136, top: 80, right: 152, bottom: 96 },
Rect { left: 152, top: 80, right: 168, bottom: 96 },
])
}
fn default_n175_gaudi_egg() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 168, top: 80, right: 192, bottom: 104 },
Rect { left: 192, top: 80, right: 216, bottom: 104 },
Rect { left: 216, top: 80, right: 240, bottom: 104 },
Rect { left: 240, top: 80, right: 264, bottom: 104 },
])
}
fn default_n176_buyo_buyo_base() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 96, top: 128, right: 128, bottom: 144 },
Rect { left: 128, top: 128, right: 160, bottom: 144 },
Rect { left: 160, top: 128, right: 192, bottom: 144 },
Rect { left: 96, top: 144, right: 128, bottom: 160 },
Rect { left: 128, top: 144, right: 160, bottom: 160 },
Rect { left: 160, top: 144, right: 192, bottom: 160 },
])
}
fn default_n177_buyo_buyo() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 192, top: 128, right: 208, bottom: 144 },
Rect { left: 208, top: 128, right: 224, bottom: 144 },
])
}
fn default_n178_core_blade_projectile() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 0, top: 224, right: 16, bottom: 240 },
Rect { left: 16, top: 224, right: 32, bottom: 240 },
Rect { left: 32, top: 224, right: 48, bottom: 240 },
])
}
fn default_n179_core_wisp_projectile() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 48, top: 224, right: 72, bottom: 240 },
Rect { left: 72, top: 224, right: 96, bottom: 240 },
Rect { left: 96, top: 224, right: 120, bottom: 240 },
])
}
fn default_n180_curly_ai() -> SafeNPCRect<22> {
SafeNPCRect([
Rect { left: 0, top: 96, right: 16, bottom: 112 },
Rect { left: 16, top: 96, right: 32, bottom: 112 },
Rect { left: 0, top: 96, right: 16, bottom: 112 },
Rect { left: 32, top: 96, right: 48, bottom: 112 },
Rect { left: 0, top: 96, right: 16, bottom: 112 },
Rect { left: 48, top: 96, right: 64, bottom: 112 },
Rect { left: 64, top: 96, right: 80, bottom: 112 },
Rect { left: 48, top: 96, right: 64, bottom: 112 },
Rect { left: 80, top: 96, right: 96, bottom: 112 },
Rect { left: 48, top: 96, right: 64, bottom: 112 },
Rect { left: 144, top: 96, right: 160, bottom: 112 },
Rect { left: 0, top: 112, right: 16, bottom: 128 },
Rect { left: 16, top: 112, right: 32, bottom: 128 },
Rect { left: 0, top: 112, right: 16, bottom: 128 },
Rect { left: 32, top: 112, right: 48, bottom: 128 },
Rect { left: 0, top: 112, right: 16, bottom: 128 },
Rect { left: 48, top: 112, right: 64, bottom: 128 },
Rect { left: 64, top: 112, right: 80, bottom: 128 },
Rect { left: 48, top: 112, right: 64, bottom: 128 },
Rect { left: 80, top: 112, right: 96, bottom: 128 },
Rect { left: 48, top: 112, right: 64, bottom: 128 },
Rect { left: 144, top: 112, right: 160, bottom: 128 },
])
}
fn default_n181_curly_ai_machine_gun() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 216, top: 152, right: 232, bottom: 168 },
Rect { left: 232, top: 152, right: 248, bottom: 168 },
Rect { left: 216, top: 168, right: 232, bottom: 184 },
Rect { left: 232, top: 168, right: 248, bottom: 184 },
])
}
fn default_n182_curly_ai_polar_star() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 184, top: 152, right: 200, bottom: 168 },
Rect { left: 200, top: 152, right: 216, bottom: 168 },
Rect { left: 184, top: 168, right: 200, bottom: 184 },
Rect { left: 200, top: 168, right: 216, bottom: 184 },
])
}
fn default_n183_curly_air_tank_bubble() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 56, top: 96, right: 80, bottom: 120 },
Rect { left: 80, top: 96, right: 104, bottom: 120 },
])
}
fn default_n184_shutter() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 0, top: 64, right: 32, bottom: 96 },
Rect { left: 32, top: 64, right: 64, bottom: 96 },
Rect { left: 64, top: 64, right: 96, bottom: 96 },
Rect { left: 32, top: 64, right: 64, bottom: 96 },
])
}
fn default_n185_small_shutter() -> Rect<u16> {
Rect { left: 96, top: 64, right: 112, bottom: 96 }
}
fn default_n186_lift_block() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 48, top: 48, right: 64, bottom: 64 },
Rect { left: 64, top: 48, right: 80, bottom: 64 },
Rect { left: 80, top: 48, right: 96, bottom: 64 },
Rect { left: 64, top: 48, right: 80, bottom: 64 },
])
}
fn default_n187_fuzz_core() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 224, top: 104, right: 256, bottom: 136 },
Rect { left: 256, top: 104, right: 288, bottom: 136 },
Rect { left: 224, top: 136, right: 256, bottom: 168 },
Rect { left: 256, top: 136, right: 288, bottom: 168 },
])
}
fn default_n188_fuzz() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 288, top: 104, right: 304, bottom: 120 },
Rect { left: 304, top: 104, right: 320, bottom: 120 },
Rect { left: 288, top: 120, right: 304, bottom: 136 },
Rect { left: 304, top: 120, right: 320, bottom: 136 },
])
}
fn default_n189_homing_flame() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 224, top: 184, right: 232, bottom: 200 },
Rect { left: 232, top: 184, right: 240, bottom: 200 },
Rect { left: 240, top: 184, right: 248, bottom: 200 },
])
}
fn default_n190_broken_robot() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 192, top: 32, right: 208, bottom: 48 },
Rect { left: 208, top: 32, right: 224, bottom: 48 },
])
}
fn default_n192_scooter() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 224, top: 64, right: 256, bottom: 80 },
Rect { left: 256, top: 64, right: 288, bottom: 96 },
Rect { left: 224, top: 80, right: 256, bottom: 96 },
Rect { left: 288, top: 64, right: 320, bottom: 96 },
])
}
fn default_n193_broken_scooter() -> Rect<u16> {
Rect { left: 256, top: 96, right: 320, bottom: 112 }
}
fn default_n194_broken_blue_robot() -> Rect<u16> {
Rect { left: 192, top: 120, right: 224, bottom: 128 }
}
fn default_n195_background_grate() -> Rect<u16> {
Rect { left: 112, top: 64, right: 128, bottom: 80 }
}
fn default_n196_ironhead_wall() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 112, top: 64, right: 144, bottom: 80 },
Rect { left: 112, top: 80, right: 144, bottom: 96 },
])
}
fn default_n197_porcupine_fish() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 16, bottom: 16 },
Rect { left: 16, top: 0, right: 32, bottom: 16 },
Rect { left: 32, top: 0, right: 48, bottom: 16 },
Rect { left: 48, top: 0, right: 64, bottom: 16 },
])
}
fn default_n198_ironhead_projectile() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 208, top: 48, right: 224, bottom: 72 },
Rect { left: 224, top: 48, right: 240, bottom: 72 },
Rect { left: 240, top: 48, right: 256, bottom: 72 },
])
}
fn default_n199_wind_particles() -> SafeNPCRect<5> {
SafeNPCRect([
Rect { left: 72, top: 16, right: 74, bottom: 18 },
Rect { left: 74, top: 16, right: 76, bottom: 18 },
Rect { left: 76, top: 16, right: 78, bottom: 18 },
Rect { left: 78, top: 16, right: 80, bottom: 18 },
Rect { left: 80, top: 16, right: 82, bottom: 18 },
])
}
fn default_n200_zombie_dragon() -> SafeNPCRect<12> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 40, bottom: 40 },
Rect { left: 40, top: 0, right: 80, bottom: 40 },
Rect { left: 80, top: 0, right: 120, bottom: 40 },
Rect { left: 120, top: 0, right: 160, bottom: 40 },
Rect { left: 160, top: 0, right: 200, bottom: 40 },
Rect { left: 200, top: 0, right: 240, bottom: 40 },
Rect { left: 0, top: 40, right: 40, bottom: 80 },
Rect { left: 40, top: 40, right: 80, bottom: 80 },
Rect { left: 80, top: 40, right: 120, bottom: 80 },
Rect { left: 120, top: 40, right: 160, bottom: 80 },
Rect { left: 160, top: 40, right: 200, bottom: 80 },
Rect { left: 200, top: 40, right: 240, bottom: 80 },
])
}
fn default_n201_zombie_dragon_dead() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 200, top: 0, right: 240, bottom: 40 },
Rect { left: 200, top: 40, right: 240, bottom: 80 },
])
}
fn default_n202_zombie_dragon_projectile() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 184, top: 216, right: 200, bottom: 240 },
Rect { left: 200, top: 216, right: 216, bottom: 240 },
Rect { left: 216, top: 216, right: 232, bottom: 240 },
])
}
fn default_n203_critter_destroyed_egg_corridor() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 0, top: 80, right: 16, bottom: 96 },
Rect { left: 16, top: 80, right: 32, bottom: 96 },
Rect { left: 32, top: 80, right: 48, bottom: 96 },
Rect { left: 0, top: 96, right: 16, bottom: 112 },
Rect { left: 16, top: 96, right: 32, bottom: 112 },
Rect { left: 32, top: 96, right: 48, bottom: 112 },
])
}
fn default_n204_small_falling_spike() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 240, top: 80, right: 256, bottom: 96 },
Rect { left: 240, top: 144, right: 256, bottom: 160 },
])
}
fn default_n205_large_falling_spike() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 112, top: 80, right: 128, bottom: 112 },
Rect { left: 128, top: 80, right: 144, bottom: 112 },
])
}
fn default_n206_counter_bomb() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 80, top: 80, right: 120, bottom: 120 },
Rect { left: 120, top: 80, right: 160, bottom: 120 },
Rect { left: 160, top: 80, right: 200, bottom: 120 },
])
}
fn default_n207_counter_bomb_countdown() -> SafeNPCRect<5> {
SafeNPCRect([
Rect { left: 0, top: 144, right: 16, bottom: 160 },
Rect { left: 16, top: 144, right: 32, bottom: 160 },
Rect { left: 32, top: 144, right: 48, bottom: 160 },
Rect { left: 48, top: 144, right: 64, bottom: 160 },
Rect { left: 64, top: 144, right: 80, bottom: 160 },
])
}
fn default_n208_basu_destroyed_egg_corridor() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 248, top: 80, right: 272, bottom: 104 },
Rect { left: 272, top: 80, right: 296, bottom: 104 },
Rect { left: 296, top: 80, right: 320, bottom: 104 },
Rect { left: 248, top: 104, right: 272, bottom: 128 },
Rect { left: 272, top: 104, right: 296, bottom: 128 },
Rect { left: 296, top: 104, right: 320, bottom: 128 },
])
}
fn default_n209_basu_projectile_destroyed_egg_corridor() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 232, top: 96, right: 248, bottom: 112 },
Rect { left: 200, top: 112, right: 216, bottom: 128 },
Rect { left: 216, top: 112, right: 232, bottom: 128 },
Rect { left: 232, top: 112, right: 248, bottom: 128 },
])
}
fn default_n210_beetle_destroyed_egg_corridor() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 0, top: 112, right: 16, bottom: 128 },
Rect { left: 16, top: 112, right: 32, bottom: 128 },
Rect { left: 32, top: 112, right: 48, bottom: 128 },
Rect { left: 48, top: 112, right: 64, bottom: 128 },
])
}
fn default_n211_small_spikes() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 256, top: 200, right: 272, bottom: 216 },
Rect { left: 272, top: 200, right: 288, bottom: 216 },
Rect { left: 288, top: 200, right: 304, bottom: 216 },
Rect { left: 304, top: 200, right: 320, bottom: 216 },
])
}
fn default_n212_sky_dragon() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 160, top: 152, right: 200, bottom: 192 },
Rect { left: 200, top: 152, right: 240, bottom: 192 },
Rect { left: 240, top: 112, right: 280, bottom: 152 },
Rect { left: 280, top: 112, right: 320, bottom: 152 },
])
}
fn default_n213_night_spirit() -> SafeNPCRect<10> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 0, bottom: 0 },
Rect { left: 0, top: 0, right: 48, bottom: 48 },
Rect { left: 48, top: 0, right: 96, bottom: 48 },
Rect { left: 96, top: 0, right: 144, bottom: 48 },
Rect { left: 144, top: 0, right: 192, bottom: 48 },
Rect { left: 192, top: 0, right: 240, bottom: 48 },
Rect { left: 240, top: 0, right: 288, bottom: 48 },
Rect { left: 0, top: 48, right: 48, bottom: 96 },
Rect { left: 48, top: 48, right: 96, bottom: 96 },
Rect { left: 96, top: 48, right: 144, bottom: 96 },
])
}
fn default_n214_night_spirit_projectile() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 144, top: 48, right: 176, bottom: 64 },
Rect { left: 176, top: 48, right: 208, bottom: 64 },
Rect { left: 208, top: 48, right: 240, bottom: 64 },
])
}
fn default_n215_sandcroc_outer_wall() -> SafeNPCRect<5> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 0, bottom: 0 },
Rect { left: 0, top: 96, right: 48, bottom: 128 },
Rect { left: 48, top: 96, right: 96, bottom: 128 },
Rect { left: 96, top: 96, right: 144, bottom: 128 },
Rect { left: 144, top: 96, right: 192, bottom: 128 },
])
}
fn default_n216_debug_cat() -> Rect<u16> {
Rect { left: 256, top: 192, right: 272, bottom: 216 }
}
fn default_n217_itoh() -> SafeNPCRect<8> {
SafeNPCRect([
Rect { left: 144, top: 64, right: 160, bottom: 80 },
Rect { left: 160, top: 64, right: 176, bottom: 80 },
Rect { left: 176, top: 64, right: 192, bottom: 80 },
Rect { left: 192, top: 64, right: 208, bottom: 80 },
Rect { left: 144, top: 80, right: 160, bottom: 96 },
Rect { left: 160, top: 80, right: 176, bottom: 96 },
Rect { left: 144, top: 80, right: 160, bottom: 96 },
Rect { left: 176, top: 80, right: 192, bottom: 96 },
])
}
fn default_n218_core_giant_ball() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 256, top: 120, right: 288, bottom: 152 },
Rect { left: 288, top: 120, right: 320, bottom: 152 },
])
}
fn default_n220_shovel_brigade() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 0, top: 64, right: 16, bottom: 80 },
Rect { left: 16, top: 64, right: 32, bottom: 80 },
Rect { left: 0, top: 80, right: 16, bottom: 96 },
Rect { left: 16, top: 80, right: 32, bottom: 96 },
])
}
fn default_n221_shovel_brigade_walking() -> SafeNPCRect<12> {
SafeNPCRect([
Rect { left: 0, top: 64, right: 16, bottom: 80 },
Rect { left: 16, top: 64, right: 32, bottom: 80 },
Rect { left: 32, top: 64, right: 48, bottom: 80 },
Rect { left: 0, top: 64, right: 16, bottom: 80 },
Rect { left: 48, top: 64, right: 64, bottom: 80 },
Rect { left: 0, top: 64, right: 16, bottom: 80 },
Rect { left: 0, top: 80, right: 16, bottom: 96 },
Rect { left: 16, top: 80, right: 32, bottom: 96 },
Rect { left: 32, top: 80, right: 48, bottom: 96 },
Rect { left: 0, top: 80, right: 16, bottom: 96 },
Rect { left: 48, top: 80, right: 64, bottom: 96 },
Rect { left: 0, top: 80, right: 16, bottom: 96 },
])
}
fn default_n222_prison_bars() -> Rect<u16> {
Rect { left: 96, top: 168, right: 112, bottom: 200 }
}
fn default_n223_momorin() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 80, top: 192, right: 96, bottom: 216 },
Rect { left: 96, top: 192, right: 112, bottom: 216 },
Rect { left: 112, top: 192, right: 128, bottom: 216 },
Rect { left: 80, top: 216, right: 96, bottom: 240 },
Rect { left: 96, top: 216, right: 112, bottom: 240 },
Rect { left: 112, top: 216, right: 128, bottom: 240 },
])
}
fn default_n224_chie() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 112, top: 32, right: 128, bottom: 48 },
Rect { left: 128, top: 32, right: 144, bottom: 48 },
Rect { left: 112, top: 48, right: 128, bottom: 64 },
Rect { left: 128, top: 48, right: 144, bottom: 64 },
])
}
fn default_n225_megane() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 64, top: 64, right: 80, bottom: 80 },
Rect { left: 80, top: 64, right: 96, bottom: 80 },
Rect { left: 64, top: 80, right: 80, bottom: 96 },
Rect { left: 80, top: 80, right: 96, bottom: 96 },
])
}
fn default_n226_kanpachi_plantation() -> SafeNPCRect<7> {
SafeNPCRect([
Rect { left: 256, top: 56, right: 272, bottom: 80 },
Rect { left: 272, top: 56, right: 288, bottom: 80 },
Rect { left: 288, top: 56, right: 304, bottom: 80 },
Rect { left: 256, top: 56, right: 272, bottom: 80 },
Rect { left: 304, top: 56, right: 320, bottom: 80 },
Rect { left: 256, top: 56, right: 272, bottom: 80 },
Rect { left: 240, top: 56, right: 256, bottom: 80 },
])
}
fn default_n227_bucket() -> Rect<u16> {
Rect { left: 208, top: 32, right: 224, bottom: 48 }
}
fn default_n228_droll() -> SafeNPCRect<8> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 32, bottom: 40 },
Rect { left: 32, top: 0, right: 64, bottom: 40 },
Rect { left: 64, top: 0, right: 96, bottom: 40 },
Rect { left: 96, top: 0, right: 128, bottom: 40 },
Rect { left: 0, top: 40, right: 32, bottom: 80 },
Rect { left: 32, top: 40, right: 64, bottom: 80 },
Rect { left: 64, top: 40, right: 96, bottom: 80 },
Rect { left: 96, top: 40, right: 128, bottom: 80 },
])
}
fn default_n229_red_flowers_sprouts() -> SafeNPCRect<2> {
SafeNPCRect([Rect { left: 0, top: 96, right: 48, bottom: 112 }, Rect { left: 0, top: 112, right: 48, bottom: 128 }])
}
fn default_n230_red_flowers_blooming() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 48, top: 96, right: 96, bottom: 128 },
Rect { left: 96, top: 96, right: 144, bottom: 128 },
])
}
fn default_n231_rocket() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 176, top: 32, right: 208, bottom: 48 },
Rect { left: 176, top: 48, right: 208, bottom: 64 },
])
}
fn default_n232_orangebell() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 128, top: 0, right: 160, bottom: 32 },
Rect { left: 160, top: 0, right: 192, bottom: 32 },
Rect { left: 192, top: 0, right: 224, bottom: 32 },
Rect { left: 128, top: 32, right: 160, bottom: 64 },
Rect { left: 160, top: 32, right: 192, bottom: 64 },
Rect { left: 192, top: 32, right: 224, bottom: 64 },
])
}
fn default_n233_orangebell_bat() -> SafeNPCRect<8> {
SafeNPCRect([
Rect { left: 256, top: 0, right: 272, bottom: 16 },
Rect { left: 272, top: 0, right: 288, bottom: 16 },
Rect { left: 288, top: 0, right: 304, bottom: 16 },
Rect { left: 304, top: 0, right: 320, bottom: 16 },
Rect { left: 256, top: 16, right: 272, bottom: 32 },
Rect { left: 272, top: 16, right: 288, bottom: 32 },
Rect { left: 288, top: 16, right: 304, bottom: 32 },
Rect { left: 304, top: 16, right: 320, bottom: 32 },
])
}
fn default_n234_red_flowers_picked() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 144, top: 96, right: 192, bottom: 112 },
Rect { left: 144, top: 112, right: 192, bottom: 128 },
])
}
fn default_n235_midorin() -> SafeNPCRect<8> {
SafeNPCRect([
Rect { left: 192, top: 96, right: 208, bottom: 112 },
Rect { left: 208, top: 96, right: 224, bottom: 112 },
Rect { left: 224, top: 96, right: 240, bottom: 112 },
Rect { left: 192, top: 96, right: 208, bottom: 112 },
Rect { left: 192, top: 112, right: 208, bottom: 128 },
Rect { left: 208, top: 112, right: 224, bottom: 128 },
Rect { left: 224, top: 112, right: 240, bottom: 128 },
Rect { left: 192, top: 112, right: 208, bottom: 128 },
])
}
fn default_n236_gunfish() -> SafeNPCRect<12> {
SafeNPCRect([
Rect { left: 128, top: 64, right: 152, bottom: 88 },
Rect { left: 152, top: 64, right: 176, bottom: 88 },
Rect { left: 176, top: 64, right: 200, bottom: 88 },
Rect { left: 200, top: 64, right: 224, bottom: 88 },
Rect { left: 224, top: 64, right: 248, bottom: 88 },
Rect { left: 248, top: 64, right: 272, bottom: 88 },
Rect { left: 128, top: 88, right: 152, bottom: 112 },
Rect { left: 152, top: 88, right: 176, bottom: 112 },
Rect { left: 176, top: 88, right: 200, bottom: 112 },
Rect { left: 200, top: 88, right: 224, bottom: 112 },
Rect { left: 224, top: 88, right: 248, bottom: 112 },
Rect { left: 248, top: 88, right: 272, bottom: 112 },
])
}
fn default_n237_gunfish_projectile() -> Rect<u16> {
Rect { left: 312, top: 32, right: 320, bottom: 40 }
}
fn default_n238_press_sideways() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 184, top: 200, right: 208, bottom: 216 },
Rect { left: 208, top: 200, right: 232, bottom: 216 },
Rect { left: 232, top: 200, right: 256, bottom: 216 },
])
}
fn default_n239_cage_bars() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 192, top: 48, right: 256, bottom: 80 },
Rect { left: 96, top: 112, right: 144, bottom: 144 },
])
}
fn default_n240_mimiga_jailed() -> SafeNPCRect<12> {
SafeNPCRect([
Rect { left: 160, top: 64, right: 176, bottom: 80 },
Rect { left: 176, top: 64, right: 192, bottom: 80 },
Rect { left: 192, top: 64, right: 208, bottom: 80 },
Rect { left: 160, top: 64, right: 176, bottom: 80 },
Rect { left: 208, top: 64, right: 224, bottom: 80 },
Rect { left: 160, top: 64, right: 176, bottom: 80 },
Rect { left: 160, top: 80, right: 176, bottom: 96 },
Rect { left: 176, top: 80, right: 192, bottom: 96 },
Rect { left: 192, top: 80, right: 208, bottom: 96 },
Rect { left: 160, top: 80, right: 176, bottom: 96 },
Rect { left: 208, top: 80, right: 224, bottom: 96 },
Rect { left: 160, top: 80, right: 176, bottom: 96 },
])
}
fn default_n241_critter_red() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 16, bottom: 16 },
Rect { left: 16, top: 0, right: 32, bottom: 16 },
Rect { left: 32, top: 0, right: 48, bottom: 16 },
Rect { left: 0, top: 16, right: 16, bottom: 32 },
Rect { left: 16, top: 16, right: 32, bottom: 32 },
Rect { left: 32, top: 16, right: 48, bottom: 32 },
])
}
fn default_n242_bat_last_cave() -> SafeNPCRect<8> {
SafeNPCRect([
Rect { left: 32, top: 32, right: 48, bottom: 48 },
Rect { left: 48, top: 32, right: 64, bottom: 48 },
Rect { left: 64, top: 32, right: 80, bottom: 48 },
Rect { left: 80, top: 32, right: 96, bottom: 48 },
Rect { left: 32, top: 48, right: 48, bottom: 64 },
Rect { left: 48, top: 48, right: 64, bottom: 64 },
Rect { left: 64, top: 48, right: 80, bottom: 64 },
Rect { left: 80, top: 48, right: 96, bottom: 64 },
])
}
fn default_n244_lava_drop() -> Rect<u16> {
Rect { left: 96, top: 0, right: 104, bottom: 16 }
}
fn default_n245_lava_drop_generator() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 0, bottom: 0 },
Rect { left: 104, top: 0, right: 112, bottom: 16 },
Rect { left: 112, top: 0, right: 120, bottom: 16 },
Rect { left: 120, top: 0, right: 128, bottom: 16 },
])
}
fn default_n246_press_proximity() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 144, top: 112, right: 160, bottom: 136 },
Rect { left: 160, top: 112, right: 176, bottom: 136 },
Rect { left: 176, top: 112, right: 192, bottom: 136 },
])
}
fn default_n247_misery_boss() -> SafeNPCRect<18> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 16, bottom: 16 },
Rect { left: 16, top: 0, right: 32, bottom: 16 },
Rect { left: 32, top: 0, right: 48, bottom: 16 },
Rect { left: 48, top: 0, right: 64, bottom: 16 },
Rect { left: 64, top: 0, right: 80, bottom: 16 },
Rect { left: 80, top: 0, right: 96, bottom: 16 },
Rect { left: 96, top: 0, right: 112, bottom: 16 },
Rect { left: 0, top: 0, right: 0, bottom: 0 },
Rect { left: 112, top: 0, right: 128, bottom: 16 },
Rect { left: 0, top: 16, right: 16, bottom: 32 },
Rect { left: 16, top: 16, right: 32, bottom: 32 },
Rect { left: 32, top: 16, right: 48, bottom: 32 },
Rect { left: 48, top: 16, right: 64, bottom: 32 },
Rect { left: 64, top: 16, right: 80, bottom: 32 },
Rect { left: 80, top: 16, right: 96, bottom: 32 },
Rect { left: 96, top: 16, right: 112, bottom: 32 },
Rect { left: 0, top: 0, right: 0, bottom: 0 },
Rect { left: 112, top: 16, right: 128, bottom: 32 },
])
}
fn default_n248_misery_boss_vanishing() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 0, top: 48, right: 16, bottom: 64 },
Rect { left: 16, top: 48, right: 32, bottom: 64 },
Rect { left: 32, top: 48, right: 48, bottom: 64 },
])
}
fn default_n249_misery_boss_appearing() -> SafeNPCRect<2> {
SafeNPCRect([Rect { left: 48, top: 48, right: 64, bottom: 64 }, Rect { left: 64, top: 48, right: 80, bottom: 64 }])
}
fn default_n250_misery_boss_lightning_ball() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 0, top: 32, right: 16, bottom: 48 },
Rect { left: 16, top: 32, right: 32, bottom: 48 },
Rect { left: 32, top: 32, right: 48, bottom: 48 },
])
}
fn default_n251_misery_boss_lightning() -> SafeNPCRect<2> {
SafeNPCRect([Rect { left: 80, top: 32, right: 96, bottom: 64 }, Rect { left: 96, top: 32, right: 112, bottom: 64 }])
}
fn default_n252_misery_boss_bats() -> SafeNPCRect<8> {
SafeNPCRect([
Rect { left: 48, top: 32, right: 64, bottom: 48 },
Rect { left: 112, top: 32, right: 128, bottom: 48 },
Rect { left: 128, top: 32, right: 144, bottom: 48 },
Rect { left: 144, top: 32, right: 160, bottom: 48 },
Rect { left: 48, top: 32, right: 64, bottom: 48 },
Rect { left: 112, top: 48, right: 128, bottom: 64 },
Rect { left: 128, top: 48, right: 144, bottom: 64 },
Rect { left: 144, top: 48, right: 160, bottom: 64 },
])
}
fn default_n253_experience_capsule() -> SafeNPCRect<2> {
SafeNPCRect([Rect { left: 0, top: 64, right: 16, bottom: 80 }, Rect { left: 16, top: 64, right: 32, bottom: 80 }])
}
fn default_n254_helicopter() -> SafeNPCRect<2> {
SafeNPCRect([Rect { left: 0, top: 0, right: 128, bottom: 64 }, Rect { left: 0, top: 64, right: 128, bottom: 128 }])
}
fn default_n255_helicopter_blades() -> SafeNPCRect<8> {
SafeNPCRect([
Rect { left: 128, top: 0, right: 240, bottom: 16 },
Rect { left: 128, top: 16, right: 240, bottom: 32 },
Rect { left: 128, top: 32, right: 240, bottom: 48 },
Rect { left: 128, top: 16, right: 240, bottom: 32 },
Rect { left: 240, top: 0, right: 320, bottom: 16 },
Rect { left: 240, top: 16, right: 320, bottom: 32 },
Rect { left: 240, top: 32, right: 320, bottom: 48 },
Rect { left: 240, top: 16, right: 320, bottom: 32 },
])
}
fn default_n256_doctor_facing_away() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 48, top: 160, right: 72, bottom: 192 },
Rect { left: 72, top: 160, right: 96, bottom: 192 },
Rect { left: 0, top: 128, right: 24, bottom: 160 },
Rect { left: 24, top: 128, right: 48, bottom: 160 },
Rect { left: 0, top: 160, right: 24, bottom: 192 },
Rect { left: 24, top: 160, right: 48, bottom: 192 },
])
}
fn default_n257_red_crystal() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 176, top: 32, right: 184, bottom: 48 },
Rect { left: 184, top: 32, right: 192, bottom: 48 },
Rect { left: 0, top: 0, right: 0, bottom: 0 },
])
}
fn default_n258_mimiga_sleeping() -> Rect<u16> {
Rect { left: 48, top: 32, right: 64, bottom: 48 }
}
fn default_n259_curly_unconscious() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 224, top: 96, right: 240, bottom: 112 },
Rect { left: 224, top: 112, right: 240, bottom: 128 },
])
}
fn default_n260_shovel_brigade_caged() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 128, top: 64, right: 144, bottom: 80 },
Rect { left: 144, top: 64, right: 160, bottom: 80 },
Rect { left: 224, top: 64, right: 240, bottom: 80 },
Rect { left: 128, top: 80, right: 144, bottom: 96 },
Rect { left: 144, top: 80, right: 160, bottom: 96 },
Rect { left: 224, top: 80, right: 240, bottom: 96 },
])
}
fn default_n261_chie_caged() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 112, top: 32, right: 128, bottom: 48 },
Rect { left: 128, top: 32, right: 144, bottom: 48 },
Rect { left: 112, top: 48, right: 128, bottom: 64 },
Rect { left: 128, top: 48, right: 144, bottom: 64 },
])
}
fn default_n262_chaco_caged() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 128, top: 0, right: 144, bottom: 16 },
Rect { left: 144, top: 0, right: 160, bottom: 16 },
Rect { left: 128, top: 16, right: 144, bottom: 32 },
Rect { left: 144, top: 16, right: 160, bottom: 32 },
])
}
fn default_n263_doctor_boss() -> SafeNPCRect<18> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 24, bottom: 32 },
Rect { left: 24, top: 0, right: 48, bottom: 32 },
Rect { left: 48, top: 0, right: 72, bottom: 32 },
Rect { left: 0, top: 0, right: 0, bottom: 0 },
Rect { left: 72, top: 0, right: 96, bottom: 32 },
Rect { left: 96, top: 0, right: 120, bottom: 32 },
Rect { left: 120, top: 0, right: 144, bottom: 32 },
Rect { left: 144, top: 0, right: 168, bottom: 32 },
Rect { left: 264, top: 0, right: 288, bottom: 32 },
Rect { left: 0, top: 32, right: 24, bottom: 64 },
Rect { left: 24, top: 32, right: 48, bottom: 64 },
Rect { left: 48, top: 32, right: 72, bottom: 64 },
Rect { left: 0, top: 0, right: 0, bottom: 0 },
Rect { left: 72, top: 32, right: 96, bottom: 64 },
Rect { left: 96, top: 32, right: 120, bottom: 64 },
Rect { left: 120, top: 32, right: 144, bottom: 64 },
Rect { left: 144, top: 32, right: 168, bottom: 64 },
Rect { left: 264, top: 32, right: 288, bottom: 64 },
])
}
fn default_n264_doctor_boss_red_projectile() -> Rect<u16> {
Rect { left: 288, top: 0, right: 304, bottom: 16 }
}
fn default_n265_doctor_boss_red_projectile_trail() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 288, top: 16, right: 304, bottom: 32 },
Rect { left: 288, top: 32, right: 304, bottom: 48 },
Rect { left: 288, top: 48, right: 304, bottom: 64 },
])
}
fn default_n266_doctor_boss_red_projectile_bouncing() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 304, top: 16, right: 320, bottom: 32 },
Rect { left: 304, top: 32, right: 320, bottom: 48 },
])
}
fn default_n267_muscle_doctor() -> SafeNPCRect<20> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 0, bottom: 0 },
Rect { left: 0, top: 64, right: 40, bottom: 112 },
Rect { left: 40, top: 64, right: 80, bottom: 112 },
Rect { left: 80, top: 64, right: 120, bottom: 112 },
Rect { left: 120, top: 64, right: 160, bottom: 112 },
Rect { left: 160, top: 64, right: 200, bottom: 112 },
Rect { left: 200, top: 64, right: 240, bottom: 112 },
Rect { left: 240, top: 64, right: 280, bottom: 112 },
Rect { left: 280, top: 64, right: 320, bottom: 112 },
Rect { left: 0, top: 160, right: 40, bottom: 208 },
Rect { left: 0, top: 0, right: 0, bottom: 0 },
Rect { left: 0, top: 112, right: 40, bottom: 160 },
Rect { left: 40, top: 112, right: 80, bottom: 160 },
Rect { left: 80, top: 112, right: 120, bottom: 160 },
Rect { left: 120, top: 112, right: 160, bottom: 160 },
Rect { left: 160, top: 112, right: 200, bottom: 160 },
Rect { left: 200, top: 112, right: 240, bottom: 160 },
Rect { left: 240, top: 112, right: 280, bottom: 160 },
Rect { left: 280, top: 112, right: 320, bottom: 160 },
Rect { left: 40, top: 160, right: 80, bottom: 208 },
])
}
fn default_n268_igor_enemy() -> SafeNPCRect<20> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 40, bottom: 40 },
Rect { left: 40, top: 0, right: 80, bottom: 40 },
Rect { left: 80, top: 0, right: 120, bottom: 40 },
Rect { left: 0, top: 0, right: 40, bottom: 40 },
Rect { left: 120, top: 0, right: 160, bottom: 40 },
Rect { left: 0, top: 0, right: 40, bottom: 40 },
Rect { left: 40, top: 80, right: 80, bottom: 120 },
Rect { left: 0, top: 80, right: 40, bottom: 120 },
Rect { left: 240, top: 0, right: 280, bottom: 40 },
Rect { left: 280, top: 0, right: 320, bottom: 40 },
Rect { left: 0, top: 40, right: 40, bottom: 80 },
Rect { left: 40, top: 40, right: 80, bottom: 80 },
Rect { left: 80, top: 40, right: 120, bottom: 80 },
Rect { left: 0, top: 40, right: 40, bottom: 80 },
Rect { left: 120, top: 40, right: 160, bottom: 80 },
Rect { left: 0, top: 40, right: 40, bottom: 80 },
Rect { left: 160, top: 80, right: 200, bottom: 120 },
Rect { left: 120, top: 80, right: 160, bottom: 120 },
Rect { left: 240, top: 40, right: 280, bottom: 80 },
Rect { left: 280, top: 40, right: 320, bottom: 80 },
])
}
fn default_n269_red_bat_bouncing() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 232, top: 0, right: 248, bottom: 16 },
Rect { left: 248, top: 0, right: 264, bottom: 16 },
Rect { left: 248, top: 16, right: 264, bottom: 32 },
Rect { left: 232, top: 32, right: 248, bottom: 48 },
Rect { left: 248, top: 32, right: 264, bottom: 48 },
Rect { left: 248, top: 48, right: 264, bottom: 64 },
])
}
fn default_n270_doctor_red_energy() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 170, top: 34, right: 174, bottom: 38 },
Rect { left: 170, top: 42, right: 174, bottom: 46 },
])
}
fn default_n273_droll_projectile() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 248, top: 40, right: 272, bottom: 64 },
Rect { left: 272, top: 40, right: 296, bottom: 64 },
Rect { left: 296, top: 40, right: 320, bottom: 64 },
])
}
fn default_n274_droll() -> SafeNPCRect<12> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 32, bottom: 40 },
Rect { left: 32, top: 0, right: 64, bottom: 40 },
Rect { left: 64, top: 0, right: 96, bottom: 40 },
Rect { left: 64, top: 80, right: 96, bottom: 120 },
Rect { left: 96, top: 80, right: 128, bottom: 120 },
Rect { left: 96, top: 0, right: 128, bottom: 40 },
Rect { left: 0, top: 40, right: 32, bottom: 80 },
Rect { left: 32, top: 40, right: 64, bottom: 80 },
Rect { left: 64, top: 40, right: 96, bottom: 80 },
Rect { left: 64, top: 120, right: 96, bottom: 160 },
Rect { left: 96, top: 120, right: 128, bottom: 160 },
Rect { left: 96, top: 40, right: 128, bottom: 80 },
])
}
fn default_n275_puppy_plantation() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 272, top: 80, right: 288, bottom: 96 },
Rect { left: 288, top: 80, right: 304, bottom: 96 },
Rect { left: 272, top: 80, right: 288, bottom: 96 },
Rect { left: 304, top: 80, right: 320, bottom: 96 },
])
}
fn default_n276_red_demon() -> SafeNPCRect<18> {
SafeNPCRect([
Rect { left: 0, top: 64, right: 32, bottom: 104 },
Rect { left: 32, top: 64, right: 64, bottom: 104 },
Rect { left: 64, top: 64, right: 96, bottom: 104 },
Rect { left: 96, top: 64, right: 128, bottom: 104 },
Rect { left: 128, top: 64, right: 160, bottom: 104 },
Rect { left: 160, top: 64, right: 192, bottom: 104 },
Rect { left: 192, top: 64, right: 224, bottom: 104 },
Rect { left: 224, top: 64, right: 256, bottom: 104 },
Rect { left: 256, top: 64, right: 288, bottom: 104 },
Rect { left: 0, top: 104, right: 32, bottom: 144 },
Rect { left: 32, top: 104, right: 64, bottom: 144 },
Rect { left: 64, top: 104, right: 96, bottom: 144 },
Rect { left: 96, top: 104, right: 128, bottom: 144 },
Rect { left: 128, top: 104, right: 160, bottom: 144 },
Rect { left: 160, top: 104, right: 192, bottom: 144 },
Rect { left: 192, top: 104, right: 224, bottom: 144 },
Rect { left: 224, top: 104, right: 256, bottom: 144 },
Rect { left: 256, top: 104, right: 288, bottom: 144 },
])
}
fn default_n277_red_demon_projectile() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 128, top: 0, right: 152, bottom: 24 },
Rect { left: 152, top: 0, right: 176, bottom: 24 },
Rect { left: 176, top: 0, right: 200, bottom: 24 },
])
}
fn default_n278_little_family() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 0, top: 120, right: 8, bottom: 128 },
Rect { left: 8, top: 120, right: 16, bottom: 128 },
Rect { left: 16, top: 120, right: 24, bottom: 128 },
Rect { left: 24, top: 120, right: 32, bottom: 128 },
Rect { left: 32, top: 120, right: 40, bottom: 128 },
Rect { left: 40, top: 120, right: 48, bottom: 128 },
])
}
fn default_n279_large_falling_block() -> SafeNPCRect<2> {
SafeNPCRect([Rect { left: 0, top: 16, right: 32, bottom: 48 }, Rect { left: 16, top: 0, right: 32, bottom: 16 }])
}
fn default_n280_sue_teleported() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 112, top: 32, right: 128, bottom: 48 },
Rect { left: 144, top: 32, right: 160, bottom: 48 },
Rect { left: 112, top: 48, right: 128, bottom: 64 },
Rect { left: 144, top: 48, right: 160, bottom: 64 },
])
}
fn default_n282_mini_undead_core_active() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 256, top: 80, right: 320, bottom: 120 },
Rect { left: 256, top: 0, right: 320, bottom: 40 },
Rect { left: 256, top: 120, right: 320, bottom: 160 },
])
}
fn default_n283_misery_possessed() -> SafeNPCRect<22> {
SafeNPCRect([
Rect { left: 0, top: 64, right: 32, bottom: 96 },
Rect { left: 32, top: 64, right: 64, bottom: 96 },
Rect { left: 64, top: 64, right: 96, bottom: 96 },
Rect { left: 96, top: 64, right: 128, bottom: 96 },
Rect { left: 128, top: 64, right: 160, bottom: 96 },
Rect { left: 160, top: 64, right: 192, bottom: 96 },
Rect { left: 192, top: 64, right: 224, bottom: 96 },
Rect { left: 224, top: 64, right: 256, bottom: 96 },
Rect { left: 0, top: 0, right: 0, bottom: 0 },
Rect { left: 256, top: 64, right: 288, bottom: 96 },
Rect { left: 288, top: 64, right: 320, bottom: 96 },
Rect { left: 0, top: 96, right: 32, bottom: 128 },
Rect { left: 32, top: 96, right: 64, bottom: 128 },
Rect { left: 64, top: 96, right: 96, bottom: 128 },
Rect { left: 96, top: 96, right: 128, bottom: 128 },
Rect { left: 128, top: 96, right: 160, bottom: 128 },
Rect { left: 160, top: 96, right: 192, bottom: 128 },
Rect { left: 192, top: 96, right: 224, bottom: 128 },
Rect { left: 224, top: 96, right: 256, bottom: 128 },
Rect { left: 0, top: 0, right: 0, bottom: 0 },
Rect { left: 256, top: 96, right: 288, bottom: 128 },
Rect { left: 288, top: 96, right: 320, bottom: 128 },
])
}
fn default_n284_sue_possessed() -> SafeNPCRect<26> {
SafeNPCRect([
Rect { left: 0, top: 128, right: 32, bottom: 160 },
Rect { left: 32, top: 128, right: 64, bottom: 160 },
Rect { left: 64, top: 128, right: 96, bottom: 160 },
Rect { left: 96, top: 128, right: 128, bottom: 160 },
Rect { left: 128, top: 128, right: 160, bottom: 160 },
Rect { left: 160, top: 128, right: 192, bottom: 160 },
Rect { left: 192, top: 128, right: 224, bottom: 160 },
Rect { left: 224, top: 128, right: 256, bottom: 160 },
Rect { left: 0, top: 0, right: 0, bottom: 0 },
Rect { left: 256, top: 128, right: 288, bottom: 160 },
Rect { left: 288, top: 128, right: 320, bottom: 160 },
Rect { left: 224, top: 64, right: 256, bottom: 96 },
Rect { left: 208, top: 32, right: 224, bottom: 48 },
Rect { left: 0, top: 160, right: 32, bottom: 192 },
Rect { left: 32, top: 160, right: 64, bottom: 192 },
Rect { left: 64, top: 160, right: 96, bottom: 192 },
Rect { left: 96, top: 160, right: 128, bottom: 192 },
Rect { left: 128, top: 160, right: 160, bottom: 192 },
Rect { left: 160, top: 160, right: 192, bottom: 192 },
Rect { left: 192, top: 160, right: 224, bottom: 192 },
Rect { left: 224, top: 160, right: 256, bottom: 192 },
Rect { left: 0, top: 0, right: 0, bottom: 0 },
Rect { left: 256, top: 160, right: 288, bottom: 192 },
Rect { left: 288, top: 160, right: 320, bottom: 192 },
Rect { left: 224, top: 96, right: 256, bottom: 128 },
Rect { left: 208, top: 48, right: 224, bottom: 64 },
])
}
fn default_n285_undead_core_spiral_projectile() -> Rect<u16> {
Rect { left: 232, top: 104, right: 248, bottom: 120 }
}
fn default_n286_undead_core_spiral_projectile_trail() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 232, top: 120, right: 248, bottom: 136 },
Rect { left: 232, top: 136, right: 248, bottom: 152 },
Rect { left: 232, top: 152, right: 248, bottom: 168 },
])
}
fn default_n287_orange_smoke() -> SafeNPCRect<7> {
SafeNPCRect([
Rect { left: 0, top: 224, right: 16, bottom: 240 },
Rect { left: 16, top: 224, right: 32, bottom: 240 },
Rect { left: 32, top: 224, right: 48, bottom: 240 },
Rect { left: 48, top: 224, right: 64, bottom: 240 },
Rect { left: 64, top: 224, right: 80, bottom: 240 },
Rect { left: 80, top: 224, right: 96, bottom: 240 },
Rect { left: 96, top: 224, right: 112, bottom: 240 },
])
}
fn default_n288_undead_core_exploding_rock() -> SafeNPCRect<5> {
SafeNPCRect([
Rect { left: 232, top: 72, right: 248, bottom: 88 },
Rect { left: 232, top: 88, right: 248, bottom: 104 },
Rect { left: 232, top: 0, right: 256, bottom: 24 },
Rect { left: 232, top: 24, right: 256, bottom: 48 },
Rect { left: 232, top: 48, right: 256, bottom: 72 },
])
}
fn default_n289_critter_orange() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 160, top: 32, right: 176, bottom: 48 },
Rect { left: 176, top: 32, right: 192, bottom: 48 },
Rect { left: 192, top: 32, right: 208, bottom: 48 },
Rect { left: 160, top: 48, right: 176, bottom: 64 },
Rect { left: 176, top: 48, right: 192, bottom: 64 },
Rect { left: 192, top: 48, right: 208, bottom: 64 },
])
}
fn default_n290_bat_misery() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 112, top: 32, right: 128, bottom: 48 },
Rect { left: 128, top: 32, right: 144, bottom: 48 },
Rect { left: 144, top: 32, right: 160, bottom: 48 },
Rect { left: 112, top: 48, right: 128, bottom: 64 },
Rect { left: 128, top: 48, right: 144, bottom: 64 },
Rect { left: 144, top: 48, right: 160, bottom: 64 },
])
}
fn default_n291_mini_undead_core_inactive() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 256, top: 80, right: 320, bottom: 120 },
Rect { left: 256, top: 0, right: 320, bottom: 40 },
])
}
fn default_n293_undead_core_energy_shot() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 240, top: 200, right: 280, bottom: 240 },
Rect { left: 280, top: 200, right: 320, bottom: 240 },
])
}
fn default_n295_cloud() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 208, bottom: 64 },
Rect { left: 32, top: 64, right: 144, bottom: 96 },
Rect { left: 32, top: 96, right: 104, bottom: 128 },
Rect { left: 104, top: 96, right: 144, bottom: 128 },
])
}
fn default_n297_sue_dragon_mouth() -> Rect<u16> {
Rect { left: 112, top: 48, right: 128, bottom: 64 }
}
fn default_n298_intro_doctor() -> SafeNPCRect<8> {
SafeNPCRect([
Rect { left: 72, top: 128, right: 88, bottom: 160 },
Rect { left: 88, top: 128, right: 104, bottom: 160 },
Rect { left: 104, top: 128, right: 120, bottom: 160 },
Rect { left: 72, top: 128, right: 88, bottom: 160 },
Rect { left: 120, top: 128, right: 136, bottom: 160 },
Rect { left: 72, top: 128, right: 88, bottom: 160 },
Rect { left: 104, top: 160, right: 120, bottom: 192 },
Rect { left: 120, top: 160, right: 136, bottom: 192 },
])
}
fn default_n299_intro_balrog_misery() -> SafeNPCRect<2> {
SafeNPCRect([Rect { left: 0, top: 0, right: 48, bottom: 48 }, Rect { left: 48, top: 0, right: 96, bottom: 48 }])
}
fn default_n300_intro_demon_crown() -> Rect<u16> {
Rect { left: 192, top: 80, right: 208, bottom: 96 }
}
fn default_n301_misery_fish_missile() -> SafeNPCRect<8> {
SafeNPCRect([
Rect { left: 144, top: 0, right: 160, bottom: 16 },
Rect { left: 160, top: 0, right: 176, bottom: 16 },
Rect { left: 176, top: 0, right: 192, bottom: 16 },
Rect { left: 192, top: 0, right: 208, bottom: 16 },
Rect { left: 144, top: 16, right: 160, bottom: 32 },
Rect { left: 160, top: 16, right: 176, bottom: 32 },
Rect { left: 176, top: 16, right: 192, bottom: 32 },
Rect { left: 192, top: 16, right: 208, bottom: 32 },
])
}
fn default_n303_curly_machine_gun() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 216, top: 152, right: 232, bottom: 168 },
Rect { left: 232, top: 152, right: 248, bottom: 168 },
Rect { left: 216, top: 168, right: 232, bottom: 184 },
Rect { left: 232, top: 168, right: 248, bottom: 184 },
])
}
fn default_n304_gaudi_hospital() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 0, top: 176, right: 24, bottom: 192 },
Rect { left: 24, top: 176, right: 48, bottom: 192 },
Rect { left: 48, top: 176, right: 72, bottom: 192 },
Rect { left: 72, top: 176, right: 96, bottom: 192 },
])
}
fn default_n305_small_puppy() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 160, top: 144, right: 176, bottom: 160 },
Rect { left: 176, top: 144, right: 192, bottom: 160 },
Rect { left: 160, top: 160, right: 176, bottom: 176 },
Rect { left: 176, top: 160, right: 192, bottom: 176 },
])
}
fn default_n306_balrog_nurse() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 240, top: 96, right: 280, bottom: 128 },
Rect { left: 280, top: 96, right: 320, bottom: 128 },
Rect { left: 160, top: 152, right: 200, bottom: 184 },
Rect { left: 200, top: 152, right: 240, bottom: 184 },
])
}
fn default_n307_santa_caged() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 0, top: 32, right: 16, bottom: 48 },
Rect { left: 16, top: 32, right: 32, bottom: 48 },
Rect { left: 0, top: 48, right: 16, bottom: 64 },
Rect { left: 16, top: 48, right: 32, bottom: 64 },
])
}
fn default_n308_stumpy() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 128, top: 112, right: 144, bottom: 128 },
Rect { left: 144, top: 112, right: 160, bottom: 128 },
Rect { left: 128, top: 128, right: 144, bottom: 144 },
Rect { left: 144, top: 128, right: 160, bottom: 144 },
])
}
fn default_n309_bute() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 16, bottom: 16 },
Rect { left: 16, top: 0, right: 32, bottom: 16 },
Rect { left: 0, top: 16, right: 16, bottom: 32 },
Rect { left: 16, top: 16, right: 32, bottom: 32 },
])
}
fn default_n310_bute_sword() -> SafeNPCRect<10> {
SafeNPCRect([
Rect { left: 32, top: 0, right: 56, bottom: 16 },
Rect { left: 56, top: 0, right: 80, bottom: 16 },
Rect { left: 80, top: 0, right: 104, bottom: 16 },
Rect { left: 104, top: 0, right: 128, bottom: 16 },
Rect { left: 128, top: 0, right: 152, bottom: 16 },
Rect { left: 32, top: 16, right: 56, bottom: 32 },
Rect { left: 56, top: 16, right: 80, bottom: 32 },
Rect { left: 80, top: 16, right: 104, bottom: 32 },
Rect { left: 104, top: 16, right: 128, bottom: 32 },
Rect { left: 128, top: 16, right: 152, bottom: 32 },
])
}
fn default_n311_bute_archer() -> SafeNPCRect<14> {
SafeNPCRect([
Rect { left: 0, top: 32, right: 24, bottom: 56 },
Rect { left: 24, top: 32, right: 48, bottom: 56 },
Rect { left: 48, top: 32, right: 72, bottom: 56 },
Rect { left: 72, top: 32, right: 96, bottom: 56 },
Rect { left: 96, top: 32, right: 120, bottom: 56 },
Rect { left: 120, top: 32, right: 144, bottom: 56 },
Rect { left: 144, top: 32, right: 168, bottom: 56 },
Rect { left: 0, top: 56, right: 24, bottom: 80 },
Rect { left: 24, top: 56, right: 48, bottom: 80 },
Rect { left: 48, top: 56, right: 72, bottom: 80 },
Rect { left: 72, top: 56, right: 96, bottom: 80 },
Rect { left: 96, top: 56, right: 120, bottom: 80 },
Rect { left: 120, top: 56, right: 144, bottom: 80 },
Rect { left: 144, top: 56, right: 168, bottom: 80 },
])
}
fn default_n312_bute_arrow_projectile() -> SafeNPCRect<10> {
SafeNPCRect([
Rect { left: 0, top: 160, right: 16, bottom: 176 },
Rect { left: 16, top: 160, right: 32, bottom: 176 },
Rect { left: 32, top: 160, right: 48, bottom: 176 },
Rect { left: 48, top: 160, right: 64, bottom: 176 },
Rect { left: 64, top: 160, right: 80, bottom: 176 },
Rect { left: 0, top: 176, right: 16, bottom: 192 },
Rect { left: 16, top: 176, right: 32, bottom: 192 },
Rect { left: 32, top: 176, right: 48, bottom: 192 },
Rect { left: 48, top: 176, right: 64, bottom: 192 },
Rect { left: 64, top: 176, right: 80, bottom: 192 },
])
}
fn default_n313_ma_pignon() -> SafeNPCRect<28> {
SafeNPCRect([
Rect { left: 128, top: 0, right: 144, bottom: 16 },
Rect { left: 144, top: 0, right: 160, bottom: 16 },
Rect { left: 160, top: 0, right: 176, bottom: 16 },
Rect { left: 176, top: 0, right: 192, bottom: 16 },
Rect { left: 192, top: 0, right: 208, bottom: 16 },
Rect { left: 208, top: 0, right: 224, bottom: 16 },
Rect { left: 224, top: 0, right: 240, bottom: 16 },
Rect { left: 240, top: 0, right: 256, bottom: 16 },
Rect { left: 256, top: 0, right: 272, bottom: 16 },
Rect { left: 272, top: 0, right: 288, bottom: 16 },
Rect { left: 288, top: 0, right: 304, bottom: 16 },
Rect { left: 128, top: 0, right: 144, bottom: 16 },
Rect { left: 176, top: 0, right: 192, bottom: 16 },
Rect { left: 304, top: 0, right: 320, bottom: 16 },
Rect { left: 128, top: 16, right: 144, bottom: 32 },
Rect { left: 144, top: 16, right: 160, bottom: 32 },
Rect { left: 160, top: 16, right: 176, bottom: 32 },
Rect { left: 176, top: 16, right: 192, bottom: 32 },
Rect { left: 192, top: 16, right: 208, bottom: 32 },
Rect { left: 208, top: 16, right: 224, bottom: 32 },
Rect { left: 224, top: 16, right: 240, bottom: 32 },
Rect { left: 240, top: 16, right: 256, bottom: 32 },
Rect { left: 256, top: 16, right: 272, bottom: 32 },
Rect { left: 272, top: 16, right: 288, bottom: 32 },
Rect { left: 288, top: 16, right: 304, bottom: 32 },
Rect { left: 128, top: 16, right: 144, bottom: 32 },
Rect { left: 176, top: 16, right: 192, bottom: 32 },
Rect { left: 304, top: 16, right: 320, bottom: 32 },
])
}
fn default_n314_ma_pignon_rock() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 64, top: 64, right: 80, bottom: 80 },
Rect { left: 80, top: 64, right: 96, bottom: 80 },
Rect { left: 96, top: 64, right: 112, bottom: 80 },
])
}
fn default_n315_ma_pignon_clone() -> SafeNPCRect<8> {
SafeNPCRect([
Rect { left: 128, top: 0, right: 144, bottom: 16 },
Rect { left: 160, top: 0, right: 176, bottom: 16 },
Rect { left: 176, top: 0, right: 192, bottom: 16 },
Rect { left: 192, top: 0, right: 208, bottom: 16 },
Rect { left: 128, top: 16, right: 144, bottom: 32 },
Rect { left: 160, top: 16, right: 176, bottom: 32 },
Rect { left: 176, top: 16, right: 192, bottom: 32 },
Rect { left: 192, top: 16, right: 208, bottom: 32 },
])
}
fn default_n316_bute_dead() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 248, top: 32, right: 272, bottom: 56 },
Rect { left: 272, top: 32, right: 296, bottom: 56 },
Rect { left: 296, top: 32, right: 320, bottom: 56 },
Rect { left: 248, top: 56, right: 272, bottom: 80 },
Rect { left: 272, top: 56, right: 296, bottom: 80 },
Rect { left: 296, top: 56, right: 320, bottom: 80 },
])
}
fn default_n317_mesa() -> SafeNPCRect<8> {
SafeNPCRect([
Rect { left: 0, top: 80, right: 32, bottom: 120 },
Rect { left: 32, top: 80, right: 64, bottom: 120 },
Rect { left: 64, top: 80, right: 96, bottom: 120 },
Rect { left: 96, top: 80, right: 128, bottom: 120 },
Rect { left: 0, top: 120, right: 32, bottom: 160 },
Rect { left: 32, top: 120, right: 64, bottom: 160 },
Rect { left: 64, top: 120, right: 96, bottom: 160 },
Rect { left: 96, top: 120, right: 128, bottom: 160 },
])
}
fn default_n318_mesa_dead() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 224, top: 80, right: 256, bottom: 120 },
Rect { left: 256, top: 80, right: 288, bottom: 120 },
Rect { left: 288, top: 80, right: 320, bottom: 120 },
Rect { left: 224, top: 120, right: 256, bottom: 160 },
Rect { left: 256, top: 120, right: 288, bottom: 160 },
Rect { left: 288, top: 120, right: 320, bottom: 160 },
])
}
fn default_n319_mesa_block() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 16, top: 0, right: 32, bottom: 16 },
Rect { left: 16, top: 0, right: 32, bottom: 16 },
Rect { left: 96, top: 80, right: 112, bottom: 96 },
])
}
fn default_n320_curly_carried() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 16, top: 96, right: 32, bottom: 112 },
Rect { left: 48, top: 96, right: 64, bottom: 112 },
Rect { left: 96, top: 96, right: 112, bottom: 112 },
Rect { left: 16, top: 112, right: 32, bottom: 128 },
Rect { left: 48, top: 112, right: 64, bottom: 128 },
Rect { left: 96, top: 112, right: 112, bottom: 128 },
])
}
fn default_n321_curly_nemesis() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 136, top: 152, right: 152, bottom: 168 },
Rect { left: 152, top: 152, right: 168, bottom: 168 },
Rect { left: 168, top: 152, right: 184, bottom: 168 },
Rect { left: 136, top: 168, right: 152, bottom: 184 },
Rect { left: 152, top: 168, right: 168, bottom: 184 },
Rect { left: 168, top: 168, right: 184, bottom: 184 },
])
}
fn default_n322_deleet() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 272, top: 216, right: 296, bottom: 240 },
Rect { left: 296, top: 216, right: 320, bottom: 240 },
Rect { left: 160, top: 216, right: 184, bottom: 240 },
])
}
fn default_n323_bute_spinning() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 216, top: 32, right: 232, bottom: 56 },
Rect { left: 232, top: 32, right: 248, bottom: 56 },
Rect { left: 216, top: 56, right: 232, bottom: 80 },
Rect { left: 232, top: 56, right: 248, bottom: 80 },
])
}
fn default_n325_heavy_press_lightning() -> SafeNPCRect<7> {
SafeNPCRect([
Rect { left: 240, top: 96, right: 272, bottom: 128 },
Rect { left: 272, top: 96, right: 304, bottom: 128 },
Rect { left: 240, top: 128, right: 272, bottom: 160 },
Rect { left: 240, top: 0, right: 256, bottom: 96 },
Rect { left: 256, top: 0, right: 272, bottom: 96 },
Rect { left: 272, top: 0, right: 288, bottom: 96 },
Rect { left: 288, top: 0, right: 304, bottom: 96 },
])
}
fn default_n326_sue_itoh_human_transition() -> SafeNPCRect<16> {
SafeNPCRect([
Rect { left: 0, top: 128, right: 16, bottom: 152 },
Rect { left: 16, top: 128, right: 32, bottom: 152 },
Rect { left: 32, top: 128, right: 48, bottom: 152 },
Rect { left: 48, top: 128, right: 64, bottom: 152 },
Rect { left: 64, top: 128, right: 80, bottom: 152 },
Rect { left: 80, top: 128, right: 96, bottom: 152 },
Rect { left: 96, top: 128, right: 112, bottom: 152 },
Rect { left: 112, top: 128, right: 128, bottom: 152 },
Rect { left: 128, top: 128, right: 144, bottom: 152 },
Rect { left: 144, top: 128, right: 160, bottom: 152 },
Rect { left: 160, top: 128, right: 176, bottom: 152 },
Rect { left: 176, top: 128, right: 192, bottom: 152 },
Rect { left: 192, top: 128, right: 208, bottom: 152 },
Rect { left: 208, top: 128, right: 224, bottom: 152 },
Rect { left: 224, top: 128, right: 240, bottom: 152 },
Rect { left: 32, top: 152, right: 48, bottom: 176 },
])
}
fn default_n327_sneeze() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 240, top: 80, right: 256, bottom: 96 },
Rect { left: 256, top: 80, right: 272, bottom: 96 },
])
}
fn default_n328_human_transform_machine() -> Rect<u16> {
Rect { left: 96, top: 0, right: 128, bottom: 48 }
}
fn default_n329_laboratory_fan() -> SafeNPCRect<2> {
SafeNPCRect([Rect { left: 48, top: 0, right: 64, bottom: 16 }, Rect { left: 64, top: 0, right: 80, bottom: 16 }])
}
fn default_n330_rolling() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 144, top: 136, right: 160, bottom: 152 },
Rect { left: 160, top: 136, right: 176, bottom: 152 },
Rect { left: 176, top: 136, right: 192, bottom: 152 },
])
}
fn default_n331_ballos_bone_projectile() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 288, top: 80, right: 304, bottom: 96 },
Rect { left: 304, top: 80, right: 320, bottom: 96 },
Rect { left: 288, top: 96, right: 304, bottom: 112 },
Rect { left: 304, top: 96, right: 320, bottom: 112 },
])
}
fn default_n332_ballos_shockwave() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 144, top: 96, right: 168, bottom: 120 },
Rect { left: 168, top: 96, right: 192, bottom: 120 },
Rect { left: 192, top: 96, right: 216, bottom: 120 },
])
}
fn default_n333_ballos_lightning() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 80, top: 120, right: 104, bottom: 144 },
Rect { left: 104, top: 120, right: 128, bottom: 144 },
])
}
fn default_n334_sweat() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 160, top: 184, right: 168, bottom: 200 },
Rect { left: 168, top: 184, right: 176, bottom: 200 },
Rect { left: 176, top: 184, right: 184, bottom: 200 },
Rect { left: 184, top: 184, right: 192, bottom: 200 },
])
}
fn default_n335_ikachan() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 0, top: 16, right: 16, bottom: 32 },
Rect { left: 16, top: 16, right: 32, bottom: 32 },
Rect { left: 32, top: 16, right: 48, bottom: 32 },
])
}
fn default_n337_numahachi() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 256, top: 112, right: 288, bottom: 152 },
Rect { left: 288, top: 112, right: 320, bottom: 152 },
])
}
fn default_n338_green_devil() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 288, top: 0, right: 304, bottom: 16 },
Rect { left: 304, top: 0, right: 320, bottom: 16 },
Rect { left: 288, top: 16, right: 304, bottom: 32 },
Rect { left: 304, top: 16, right: 320, bottom: 32 },
])
}
fn default_n340_ballos() -> SafeNPCRect<22> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 48, bottom: 40 },
Rect { left: 48, top: 0, right: 96, bottom: 40 },
Rect { left: 96, top: 0, right: 144, bottom: 40 },
Rect { left: 144, top: 0, right: 192, bottom: 40 },
Rect { left: 192, top: 0, right: 240, bottom: 40 },
Rect { left: 240, top: 0, right: 288, bottom: 40 },
Rect { left: 0, top: 80, right: 48, bottom: 120 },
Rect { left: 48, top: 80, right: 96, bottom: 120 },
Rect { left: 96, top: 80, right: 144, bottom: 120 },
Rect { left: 144, top: 80, right: 192, bottom: 120 },
Rect { left: 192, top: 80, right: 240, bottom: 120 },
Rect { left: 0, top: 40, right: 48, bottom: 80 },
Rect { left: 48, top: 40, right: 96, bottom: 80 },
Rect { left: 96, top: 40, right: 144, bottom: 80 },
Rect { left: 144, top: 40, right: 192, bottom: 80 },
Rect { left: 192, top: 40, right: 240, bottom: 80 },
Rect { left: 240, top: 40, right: 288, bottom: 80 },
Rect { left: 0, top: 120, right: 48, bottom: 160 },
Rect { left: 48, top: 120, right: 96, bottom: 160 },
Rect { left: 96, top: 120, right: 144, bottom: 160 },
Rect { left: 144, top: 120, right: 192, bottom: 160 },
Rect { left: 192, top: 120, right: 240, bottom: 160 },
])
}
fn default_n341_ballos_1_head() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 288, top: 32, right: 320, bottom: 48 },
Rect { left: 288, top: 48, right: 320, bottom: 64 },
Rect { left: 288, top: 64, right: 320, bottom: 80 },
])
}
fn default_n342_ballos_orbiting_eye() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 240, top: 48, right: 280, bottom: 88 },
Rect { left: 240, top: 88, right: 280, bottom: 128 },
Rect { left: 280, top: 48, right: 320, bottom: 88 },
])
}
fn default_n343_ballos_3_cutscene() -> Rect<u16> {
Rect { left: 0, top: 0, right: 120, bottom: 120 }
}
fn default_n344_ballos_3_eyes() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 272, top: 0, right: 296, bottom: 16 },
Rect { left: 296, top: 0, right: 320, bottom: 16 },
])
}
fn default_n345_ballos_skull_projectile() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 128, top: 176, right: 144, bottom: 192 },
Rect { left: 144, top: 176, right: 160, bottom: 192 },
Rect { left: 160, top: 176, right: 176, bottom: 192 },
Rect { left: 176, top: 176, right: 192, bottom: 192 },
])
}
fn default_n346_ballos_orbiting_platform() -> Rect<u16> {
Rect { left: 240, top: 0, right: 272, bottom: 16 }
}
fn default_n347_hoppy() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 256, top: 48, right: 272, bottom: 64 },
Rect { left: 272, top: 48, right: 288, bottom: 64 },
Rect { left: 288, top: 48, right: 304, bottom: 64 },
Rect { left: 304, top: 48, right: 320, bottom: 64 },
])
}
fn default_n348_ballos_4_spikes() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 128, top: 152, right: 160, bottom: 176 },
Rect { left: 160, top: 152, right: 192, bottom: 176 },
])
}
fn default_n349_statue() -> Rect<u16> {
Rect { left: 0, top: 0, right: 16, bottom: 16 }
}
fn default_n350_flying_bute_archer() -> SafeNPCRect<14> {
SafeNPCRect([
Rect { left: 0, top: 160, right: 24, bottom: 184 },
Rect { left: 24, top: 160, right: 48, bottom: 184 },
Rect { left: 48, top: 160, right: 72, bottom: 184 },
Rect { left: 72, top: 160, right: 96, bottom: 184 },
Rect { left: 96, top: 160, right: 120, bottom: 184 },
Rect { left: 120, top: 160, right: 144, bottom: 184 },
Rect { left: 144, top: 160, right: 168, bottom: 184 },
Rect { left: 0, top: 184, right: 24, bottom: 208 },
Rect { left: 24, top: 184, right: 48, bottom: 208 },
Rect { left: 48, top: 184, right: 72, bottom: 208 },
Rect { left: 72, top: 184, right: 96, bottom: 208 },
Rect { left: 96, top: 184, right: 120, bottom: 208 },
Rect { left: 120, top: 184, right: 144, bottom: 208 },
Rect { left: 144, top: 184, right: 168, bottom: 208 },
])
}
fn default_n351_statue_shootable() -> SafeNPCRect<9> {
SafeNPCRect([
Rect { left: 0, top: 96, right: 32, bottom: 136 },
Rect { left: 32, top: 96, right: 64, bottom: 136 },
Rect { left: 64, top: 96, right: 96, bottom: 136 },
Rect { left: 96, top: 96, right: 128, bottom: 136 },
Rect { left: 128, top: 96, right: 160, bottom: 136 },
Rect { left: 0, top: 176, right: 32, bottom: 216 },
Rect { left: 32, top: 176, right: 64, bottom: 216 },
Rect { left: 64, top: 176, right: 96, bottom: 216 },
Rect { left: 96, top: 176, right: 128, bottom: 216 },
])
}
fn default_n352_ending_characters() -> SafeNPCRect<28> {
SafeNPCRect([
Rect { left: 304, top: 48, right: 320, bottom: 64 },
Rect { left: 224, top: 48, right: 240, bottom: 64 },
Rect { left: 32, top: 80, right: 48, bottom: 96 },
Rect { left: 0, top: 80, right: 16, bottom: 96 },
Rect { left: 224, top: 216, right: 240, bottom: 240 },
Rect { left: 192, top: 216, right: 208, bottom: 240 },
Rect { left: 48, top: 16, right: 64, bottom: 32 },
Rect { left: 0, top: 16, right: 16, bottom: 32 },
Rect { left: 112, top: 192, right: 128, bottom: 216 },
Rect { left: 80, top: 192, right: 96, bottom: 216 },
Rect { left: 304, top: 0, right: 320, bottom: 16 },
Rect { left: 224, top: 0, right: 240, bottom: 16 },
Rect { left: 176, top: 32, right: 192, bottom: 48 },
Rect { left: 176, top: 32, right: 192, bottom: 48 },
Rect { left: 240, top: 16, right: 256, bottom: 32 },
Rect { left: 224, top: 16, right: 240, bottom: 32 },
Rect { left: 208, top: 16, right: 224, bottom: 32 },
Rect { left: 192, top: 16, right: 208, bottom: 32 },
Rect { left: 280, top: 128, right: 320, bottom: 152 },
Rect { left: 280, top: 152, right: 320, bottom: 176 },
Rect { left: 32, top: 112, right: 48, bottom: 128 },
Rect { left: 0, top: 112, right: 16, bottom: 128 },
Rect { left: 80, top: 0, right: 96, bottom: 16 },
Rect { left: 112, top: 0, right: 128, bottom: 16 },
Rect { left: 16, top: 152, right: 32, bottom: 176 },
Rect { left: 0, top: 152, right: 16, bottom: 176 },
Rect { left: 48, top: 16, right: 64, bottom: 32 },
Rect { left: 48, top: 0, right: 64, bottom: 16 },
])
}
fn default_n353_bute_sword_flying() -> SafeNPCRect<8> {
SafeNPCRect([
// Entering
Rect { left: 168, top: 160, right: 184, bottom: 184 },
Rect { left: 184, top: 160, right: 200, bottom: 184 },
Rect { left: 168, top: 184, right: 184, bottom: 208 },
Rect { left: 184, top: 184, right: 200, bottom: 208 },
// Flying
Rect { left: 200, top: 160, right: 216, bottom: 176 },
Rect { left: 216, top: 160, right: 232, bottom: 176 },
Rect { left: 200, top: 176, right: 216, bottom: 192 },
Rect { left: 216, top: 176, right: 232, bottom: 192 },
])
}
fn default_n355_quote_and_curly_on_balrog() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 80, top: 16, right: 96, bottom: 32 },
Rect { left: 80, top: 96, right: 96, bottom: 112 },
Rect { left: 128, top: 16, right: 144, bottom: 32 },
Rect { left: 208, top: 96, right: 224, bottom: 112 },
])
}
fn default_n356_balrog_rescuing() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 240, top: 128, right: 280, bottom: 152 },
Rect { left: 240, top: 152, right: 280, bottom: 176 },
])
}
fn default_n357_puppy_ghost() -> Rect<u16> {
Rect { left: 224, top: 136, right: 240, bottom: 152 }
}
fn default_n358_misery_credits() -> SafeNPCRect<5> {
SafeNPCRect([
Rect { left: 208, top: 8, right: 224, bottom: 32 },
Rect { left: 224, top: 8, right: 240, bottom: 32 },
Rect { left: 240, top: 8, right: 256, bottom: 32 },
Rect { left: 256, top: 8, right: 272, bottom: 32 },
Rect { left: 272, top: 8, right: 288, bottom: 32 },
])
}
fn default_n360_credits_thank_you() -> Rect<u16> {
Rect { left: 0, top: 176, right: 48, bottom: 184 }
}
fn default_n361_flying_gaudi() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 48, top: 45, right: 72, bottom: 69 },
Rect { left: 72, top: 45, right: 96, bottom: 69 },
Rect { left: 48, top: 69, right: 72, bottom: 93 },
Rect { left: 72, top: 69, right: 96, bottom: 93 },
])
}
fn default_n362_curly_clone() -> SafeNPCRect<14> {
SafeNPCRect([
Rect { left: 144, top: 0, right: 160, bottom: 16 },
Rect { left: 160, top: 0, right: 176, bottom: 16 },
Rect { left: 176, top: 0, right: 192, bottom: 16 },
Rect { left: 192, top: 0, right: 208, bottom: 16 },
Rect { left: 208, top: 0, right: 224, bottom: 16 },
Rect { left: 224, top: 0, right: 240, bottom: 16 },
Rect { left: 240, top: 0, right: 256, bottom: 16 },
Rect { left: 144, top: 16, right: 160, bottom: 32 },
Rect { left: 160, top: 16, right: 176, bottom: 32 },
Rect { left: 176, top: 16, right: 192, bottom: 32 },
Rect { left: 192, top: 16, right: 208, bottom: 32 },
Rect { left: 208, top: 16, right: 224, bottom: 32 },
Rect { left: 224, top: 16, right: 240, bottom: 32 },
Rect { left: 240, top: 16, right: 256, bottom: 32 },
])
}
fn default_n363_dead_curly_clone() -> SafeNPCRect<2> {
SafeNPCRect([
Rect { left: 96, top: 96, right: 104, bottom: 104 },
Rect { left: 104, top: 96, right: 112, bottom: 104 },
])
}
fn default_n364_fast_bullet() -> SafeNPCRect<4> {
SafeNPCRect([
Rect { left: 144, top: 32, right: 160, bottom: 48 },
Rect { left: 160, top: 32, right: 176, bottom: 48 },
Rect { left: 176, top: 32, right: 192, bottom: 48 },
Rect { left: 192, top: 32, right: 208, bottom: 48 },
])
}
fn default_n366_zombie_curly_clone() -> SafeNPCRect<6> {
SafeNPCRect([
Rect { left: 272, top: 0, right: 288, bottom: 16 },
Rect { left: 288, top: 0, right: 304, bottom: 16 },
Rect { left: 304, top: 0, right: 320, bottom: 16 },
Rect { left: 272, top: 16, right: 288, bottom: 32 },
Rect { left: 288, top: 16, right: 304, bottom: 32 },
Rect { left: 304, top: 16, right: 320, bottom: 32 },
])
}
fn default_n367_curly_clone_incubator() -> Rect<u16> {
Rect { left: 256, top: 0, right: 272, bottom: 32 }
}
fn default_n368_gclone() -> SafeNPCRect<3> {
SafeNPCRect([
Rect { left: 0, top: 144, right: 24, bottom: 176 },
Rect { left: 24, top: 144, right: 48, bottom: 176 },
Rect { left: 48, top: 144, right: 72, bottom: 176 },
])
}
fn default_n369_gclone_curly_clone() -> SafeNPCRect<20> {
SafeNPCRect([
Rect { left: 144, top: 48, right: 160, bottom: 64 },
Rect { left: 160, top: 48, right: 176, bottom: 64 },
Rect { left: 176, top: 48, right: 192, bottom: 64 },
Rect { left: 192, top: 48, right: 208, bottom: 64 },
Rect { left: 208, top: 48, right: 224, bottom: 64 },
Rect { left: 224, top: 48, right: 240, bottom: 64 },
Rect { left: 240, top: 48, right: 256, bottom: 64 },
Rect { left: 256, top: 48, right: 272, bottom: 64 },
Rect { left: 272, top: 48, right: 288, bottom: 64 },
Rect { left: 288, top: 48, right: 304, bottom: 64 },
Rect { left: 144, top: 64, right: 160, bottom: 80 },
Rect { left: 160, top: 64, right: 176, bottom: 80 },
Rect { left: 176, top: 64, right: 192, bottom: 80 },
Rect { left: 192, top: 64, right: 208, bottom: 80 },
Rect { left: 208, top: 64, right: 224, bottom: 80 },
Rect { left: 224, top: 64, right: 240, bottom: 80 },
Rect { left: 240, top: 64, right: 256, bottom: 80 },
Rect { left: 256, top: 64, right: 272, bottom: 80 },
Rect { left: 272, top: 64, right: 288, bottom: 80 },
Rect { left: 288, top: 64, right: 304, bottom: 80 },
])
}
fn default_b01_omega() -> SafeNPCRect<10> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 80, bottom: 56 },
Rect { left: 80, top: 0, right: 160, bottom: 56 },
Rect { left: 160, top: 0, right: 240, bottom: 56 },
Rect { left: 80, top: 0, right: 160, bottom: 56 },
Rect { left: 80, top: 56, right: 104, bottom: 72 },
Rect { left: 104, top: 56, right: 128, bottom: 72 },
Rect { left: 0, top: 56, right: 40, bottom: 88 },
Rect { left: 40, top: 56, right: 80, bottom: 88 },
Rect { left: 0, top: 88, right: 40, bottom: 120 },
Rect { left: 40, top: 88, right: 80, bottom: 120 },
])
}
fn default_b02_balfrog() -> SafeNPCRect<18> {
SafeNPCRect([
Rect { left: 0, top: 0, right: 0, bottom: 0 },
Rect { left: 0, top: 48, right: 80, bottom: 112 },
Rect { left: 0, top: 112, right: 80, bottom: 176 },
Rect { left: 0, top: 176, right: 80, bottom: 240 },
Rect { left: 160, top: 48, right: 240, bottom: 112 },
Rect { left: 160, top: 112, right: 240, bottom: 200 },
Rect { left: 200, top: 0, right: 240, bottom: 24 },
Rect { left: 80, top: 0, right: 120, bottom: 24 },
Rect { left: 120, top: 0, right: 160, bottom: 24 },
Rect { left: 0, top: 0, right: 0, bottom: 0 },
Rect { left: 80, top: 48, right: 160, bottom: 112 },
Rect { left: 80, top: 112, right: 160, bottom: 176 },
Rect { left: 80, top: 176, right: 160, bottom: 240 },
Rect { left: 240, top: 48, right: 320, bottom: 112 },
Rect { left: 240, top: 112, right: 320, bottom: 200 },
Rect { left: 200, top: 24, right: 240, bottom: 48 },
Rect { left: 80, top: 24, right: 120, bottom: 48 },
Rect { left: 120, top: 24, right: 160, bottom: 48 },
])
}
fn default_b03_monster_x() -> SafeNPCRect<29> {
SafeNPCRect([
// face
Rect { left: 216, top: 0, right: 320, bottom: 48 },
Rect { left: 216, top: 48, right: 320, bottom: 96 },
Rect { left: 216, top: 144, right: 320, bottom: 192 },
// tracks up
Rect { left: 0, top: 0, right: 72, bottom: 32 },
Rect { left: 0, top: 32, right: 72, bottom: 64 },
Rect { left: 72, top: 0, right: 144, bottom: 32 },
Rect { left: 144, top: 0, right: 216, bottom: 32 },
Rect { left: 72, top: 32, right: 144, bottom: 64 },
Rect { left: 144, top: 32, right: 216, bottom: 64 },
// tracks down
Rect { left: 0, top: 64, right: 72, bottom: 96 },
Rect { left: 0, top: 96, right: 72, bottom: 128 },
Rect { left: 72, top: 64, right: 144, bottom: 96 },
Rect { left: 144, top: 64, right: 216, bottom: 96 },
Rect { left: 72, top: 96, right: 144, bottom: 128 },
Rect { left: 144, top: 96, right: 216, bottom: 128 },
// frame
Rect { left: 0, top: 128, right: 72, bottom: 160 },
Rect { left: 72, top: 128, right: 144, bottom: 160 },
Rect { left: 0, top: 160, right: 72, bottom: 192 },
Rect { left: 72, top: 160, right: 144, bottom: 192 },
// shield left
Rect { left: 216, top: 96, right: 264, bottom: 144 },
// shield right
Rect { left: 264, top: 96, right: 312, bottom: 144 },
// part 4
Rect { left: 0, top: 192, right: 16, bottom: 208 },
Rect { left: 16, top: 192, right: 32, bottom: 208 },
Rect { left: 32, top: 192, right: 48, bottom: 208 },
Rect { left: 48, top: 192, right: 64, bottom: 208 },
Rect { left: 0, top: 208, right: 16, bottom: 224 },
Rect { left: 16, top: 208, right: 32, bottom: 224 },
Rect { left: 32, top: 208, right: 48, bottom: 224 },
Rect { left: 48, top: 208, right: 64, bottom: 224 },
])
}
fn default_b04_core() -> SafeNPCRect<10> {
SafeNPCRect([
// face
Rect { left: 0, top: 0, right: 72, bottom: 112 },
Rect { left: 0, top: 112, right: 72, bottom: 224 },
Rect { left: 160, top: 0, right: 232, bottom: 112 },
Rect { left: 0, top: 0, right: 0, bottom: 0 },
// tail
Rect { left: 72, top: 0, right: 160, bottom: 112 },
Rect { left: 72, top: 112, right: 160, bottom: 224 },
Rect { left: 0, top: 0, right: 0, bottom: 0 },
// small head
Rect { left: 256, top: 0, right: 320, bottom: 40 },
Rect { left: 256, top: 40, right: 320, bottom: 80 },
Rect { left: 256, top: 80, right: 320, bottom: 120 },
])
}
fn default_b05_ironhead() -> SafeNPCRect<18> {
SafeNPCRect([
// set 1
Rect { left: 0, top: 0, right: 64, bottom: 24 },
Rect { left: 64, top: 0, right: 128, bottom: 24 },
Rect { left: 128, top: 0, right: 192, bottom: 24 },
Rect { left: 64, top: 0, right: 128, bottom: 24 },
Rect { left: 0, top: 0, right: 64, bottom: 24 },
Rect { left: 192, top: 0, right: 256, bottom: 24 },
Rect { left: 256, top: 0, right: 320, bottom: 24 },
Rect { left: 192, top: 0, right: 256, bottom: 24 },
Rect { left: 256, top: 48, right: 320, bottom: 72 },
// set 2
Rect { left: 0, top: 24, right: 64, bottom: 48 },
Rect { left: 64, top: 24, right: 128, bottom: 48 },
Rect { left: 128, top: 24, right: 192, bottom: 48 },
Rect { left: 64, top: 24, right: 128, bottom: 48 },
Rect { left: 0, top: 24, right: 64, bottom: 48 },
Rect { left: 192, top: 24, right: 256, bottom: 48 },
Rect { left: 256, top: 24, right: 320, bottom: 48 },
Rect { left: 192, top: 24, right: 256, bottom: 48 },
Rect { left: 256, top: 48, right: 320, bottom: 72 },
])
}
fn default_b06_sisters() -> SafeNPCRect<14> {
SafeNPCRect([
// head
Rect { left: 0, top: 80, right: 40, bottom: 112 },
Rect { left: 40, top: 80, right: 80, bottom: 112 },
Rect { left: 80, top: 80, right: 120, bottom: 112 },
Rect { left: 120, top: 80, right: 160, bottom: 112 },
Rect { left: 0, top: 112, right: 40, bottom: 144 },
Rect { left: 40, top: 112, right: 80, bottom: 144 },
Rect { left: 80, top: 112, right: 120, bottom: 144 },
Rect { left: 120, top: 112, right: 160, bottom: 144 },
// body
Rect { left: 0, top: 0, right: 40, bottom: 40 },
Rect { left: 40, top: 0, right: 80, bottom: 40 },
Rect { left: 80, top: 0, right: 120, bottom: 40 },
Rect { left: 0, top: 40, right: 40, bottom: 80 },
Rect { left: 40, top: 40, right: 80, bottom: 80 },
Rect { left: 80, top: 40, right: 120, bottom: 80 },
])
}
fn default_b07_undead_core() -> SafeNPCRect<15> {
SafeNPCRect([
// face
Rect { left: 0, top: 0, right: 0, bottom: 0 },
Rect { left: 160, top: 112, right: 232, bottom: 152 },
Rect { left: 160, top: 152, right: 232, bottom: 192 },
Rect { left: 160, top: 192, right: 232, bottom: 232 },
Rect { left: 248, top: 160, right: 320, bottom: 200 },
// head
Rect { left: 0, top: 0, right: 72, bottom: 112 },
Rect { left: 0, top: 112, right: 72, bottom: 224 },
Rect { left: 160, top: 0, right: 232, bottom: 112 },
Rect { left: 0, top: 0, right: 0, bottom: 0 },
// tail
Rect { left: 72, top: 0, right: 160, bottom: 112 },
Rect { left: 72, top: 112, right: 160, bottom: 224 },
Rect { left: 0, top: 0, right: 0, bottom: 0 },
// small head
Rect { left: 256, top: 0, right: 320, bottom: 40 },
Rect { left: 256, top: 40, right: 320, bottom: 80 },
Rect { left: 256, top: 80, right: 320, bottom: 120 },
])
}
fn default_b08_heavy_press() -> SafeNPCRect<6> {
SafeNPCRect([
// Normal
Rect { left: 0, top: 0, right: 80, bottom: 120 },
Rect { left: 80, top: 0, right: 160, bottom: 120 },
Rect { left: 160, top: 0, right: 240, bottom: 120 },
// Hurt
Rect { left: 0, top: 120, right: 80, bottom: 240 },
Rect { left: 80, top: 120, right: 160, bottom: 240 },
Rect { left: 160, top: 120, right: 240, bottom: 240 },
])
}
fn default_b09_ballos() -> SafeNPCRect<14> {
SafeNPCRect([
// B A L L S
Rect { left: 0, top: 0, right: 120, bottom: 120 },
Rect { left: 120, top: 0, right: 240, bottom: 120 },
Rect { left: 0, top: 120, right: 120, bottom: 240 },
Rect { left: 120, top: 120, right: 240, bottom: 240 },
// Eye
Rect { left: 272, top: 0, right: 296, bottom: 16 },
Rect { left: 272, top: 16, right: 296, bottom: 32 },
Rect { left: 272, top: 32, right: 296, bottom: 48 },
Rect { left: 0, top: 0, right: 0, bottom: 0 },
Rect { left: 240, top: 16, right: 264, bottom: 32 },
Rect { left: 296, top: 0, right: 320, bottom: 16 },
Rect { left: 296, top: 16, right: 320, bottom: 32 },
Rect { left: 296, top: 32, right: 320, bottom: 48 },
Rect { left: 0, top: 0, right: 0, bottom: 0 },
Rect { left: 240, top: 32, right: 264, bottom: 48 },
])
}