cavestory-save-lib 2.9.2

editor for profile.dat of cavestory
Documentation
use strum::{Display, EnumIter, FromRepr};

#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Display, EnumIter, FromRepr)]
#[repr(u32)]
pub enum Map {
    #[strum(serialize = "Credits")]
    Credits,
    #[strum(serialize = "Arthur's House")]
    ArthursHouse,
    #[strum(serialize = "Egg Corridor")]
    EggCorridor,
    #[strum(serialize = "Egg No. 00")]
    EggNo00,
    #[strum(serialize = "Egg No. 06")]
    EggNo06,
    #[strum(serialize = "Egg Observation Room")]
    EggObservationRoom,
    #[strum(serialize = "Grasstown")]
    Grasstown,
    #[strum(serialize = "Santa's House")]
    SantasHouse,
    #[strum(serialize = "Chaco's House")]
    ChacosHouse,
    #[strum(serialize = "Labyrinth I")]
    LabyrinthIErticalStartingRoom,
    #[strum(serialize = "Sand Zone")]
    SandZone,
    #[strum(serialize = "Mimiga Village")]
    MimigaVillage,
    #[strum(serialize = "First Cave")]
    #[default]
    FirstCave,
    #[strum(serialize = "Start Point")]
    StartPoint,
    #[strum(serialize = "Shack")]
    ShackMimigaVillage,
    #[strum(serialize = "Reservoir")]
    Reservoir,
    #[strum(serialize = "Graveyard")]
    Graveyard,
    #[strum(serialize = "Yamashita Farm")]
    YamashitaFarm,
    #[strum(serialize = "Shelter")]
    Shelter,
    #[strum(serialize = "Assembly Hall")]
    AssemblyHall,
    #[strum(serialize = "Save Point (Mimiga Village)")]
    SavePointAtMimigaVillage,
    #[strum(serialize = "Side Room")]
    SideRoom,
    #[strum(serialize = "Cthulhu's Abode")]
    CthulhusAbode,
    #[strum(serialize = "Egg No. 01")]
    EggNo01,
    #[strum(serialize = "Arthur's House - sue using computer")]
    ArthursHouseWithSueUsingComputer,
    #[strum(serialize = "Power Room")]
    PowerRoom,
    #[strum(serialize = "Save Point (Grasstown)")]
    SavePointAtGrasstown,
    #[strum(serialize = "Execution Chamber")]
    ExecutionChamber,
    #[strum(serialize = "Gum")]
    Gum,
    #[strum(serialize = "Sand Zone Residence")]
    SandZoneResidence,
    #[strum(serialize = "Grasstown Hut")]
    GrasstownHut,
    #[strum(serialize = "Main Artery")]
    MainArtery,
    #[strum(serialize = "Small Room")]
    SmallRoom,
    #[strum(serialize = "Jenka's House - before Balrog attack")]
    JenkasHouse,
    #[strum(serialize = "Deserted House")]
    DesertedHouse,
    #[strum(serialize = "Sand Zone Storehouse")]
    SandZoneStorehouse,
    #[strum(serialize = "Jenka's House - after Balrog attack")]
    JenkasHouseAfterBalrogAttack,
    #[strum(serialize = "Sand Zone - after boss fight")]
    SandZoneAfterBossFight,
    #[strum(serialize = "Labyrinth H")]
    LabyrinthH,
    #[strum(serialize = "Labyrinth W")]
    LabyrinthWMainAreaWithShopCamp,
    #[strum(serialize = "Camp")]
    Camp,
    #[strum(serialize = "Clinic Ruins")]
    ClinicRuins,
    #[strum(serialize = "Labyrinth Shop")]
    LabyrinthShop,
    #[strum(serialize = "Labyrinth B")]
    LabyrinthBroomwithbooster,
    #[strum(serialize = "Boulder Chamber")]
    BoulderChamber,
    #[strum(serialize = "Labyrinth M")]
    LabyrinthMLastAreaGaudiEggs,
    #[strum(serialize = "Dark Place")]
    DarkPlace,
    #[strum(serialize = "Core")]
    Core,
    #[strum(serialize = "Waterway")]
    Waterway,
    #[strum(serialize = "Egg Corridor?")]
    QuestionableEggCorridor,
    #[strum(serialize = "Cthulhu's Abode?")]
    QuestionableCthulhusAbode,
    #[strum(serialize = "Egg Observation Room?")]
    QuestionableEggObservationRoom,
    #[strum(serialize = "Egg No. 00?")]
    EggNo00WhenHatched,
    #[strum(serialize = "Outer Wall")]
    OuterWall,
    #[strum(serialize = "Side Room?")]
    QuestionableSideRoom,
    #[strum(serialize = "Storehouse")]
    Storehouse,
    #[strum(serialize = "Plantation")]
    Plantation,
    #[strum(serialize = "Jail No. 1")]
    JailNo1,
    #[strum(serialize = "Hideout")]
    Hideout,
    #[strum(serialize = "Rest Area")]
    RestArea,
    #[strum(serialize = "Teleporter")]
    Teleporter,
    #[strum(serialize = "Jail No. 2")]
    JailNo2,
    #[strum(serialize = "Balcony")]
    Balcony,
    #[strum(serialize = "Last Cave")]
    LastCave,
    #[strum(serialize = "Throne Room")]
    ThroneRoom,
    #[strum(serialize = "The King's Table")]
    TheKingsTable,
    #[strum(serialize = "Prefab House")]
    PrefabHouse,
    #[strum(serialize = "Last Cave Hidden")]
    LastCaveHidden,
    #[strum(serialize = "Black Space")]
    BlackSpace,
    #[strum(serialize = "Little House")]
    LittleHouse,
    #[strum(serialize = "Balcony?")]
    BalconyEscaping,
    #[strum(serialize = "Ending")]
    Ending,
    #[strum(serialize = "Attro")]
    Attro,
    #[strum(serialize = "Waterway Cabin")]
    WaterwayCabin,
    #[strum(serialize = "Credits - Labyrinth")]
    CreditsLabyrinth,
    #[strum(serialize = "Credits - Jenka's House")]
    CreditsJenkasHouse,
    #[strum(serialize = "Credits - Power Room")]
    CreditsPowerRoom,
    #[strum(serialize = "Credits - Graveyard")]
    CreditsGraveyard,
    #[strum(serialize = "Credits - Sky")]
    CreditsSky,
    #[strum(serialize = "Prefab House - entrance to hell")]
    PrefabHouseWithEntranceToHell,
    #[strum(serialize = "Sacred Ground B1")]
    SacredGroundB1,
    #[strum(serialize = "Sacred Ground B2")]
    SacredGroundB2,
    #[strum(serialize = "Sacred Ground B3")]
    SacredGroundB3,
    #[strum(serialize = "Storage")]
    Storage,
    #[strum(serialize = "Passage?")]
    Passage,
    #[strum(serialize = "Passage? - from Sacred Ground B3")]
    PassageFromSacredGroundB3,
    #[strum(serialize = "Statue Chamber")]
    StatueChamber,
    #[strum(serialize = "Seal Chamber")]
    SealChamber,
    #[strum(serialize = "Corridor")]
    CorridorSacredGrounds,
    #[strum(serialize = "Credits - Laboratory")]
    CreditsLaboratory,
    #[strum(serialize = "Hermit Gunsmith")]
    HermitGunsmith,
    #[strum(serialize = "[script loaded right before good/best endings]")]
    EmptyMap,
    #[strum(serialize = "Seal Chamber - after fight")]
    SealChamberAfterFight,
    #[strum(serialize = "Credits - Balcony")]
    CreditsBalcony,
    #[strum(serialize = "Clock Room")]
    ClockRoom,
}

impl From<i32> for Map {
    fn from(v: i32) -> Self {
        Map::from_repr(v as u32).unwrap_or_default()
    }
}