cavestory_save/items/
inventory.rs

1use strum::{Display, EnumIter, FromRepr};
2
3#[derive(Clone, Copy, Default, Debug, PartialEq, Eq, Display, EnumIter, FromRepr)]
4#[strum(serialize_all = "title_case")]
5#[repr(u32)]
6pub enum Inventory {
7    #[default]
8    None,
9
10    #[strum(serialize = "Arthur's Key")]
11    ArthursKey,
12
13    MapSystem,
14
15    #[strum(serialize = "Santa's Key")]
16    SantasKey,
17
18    SilverLocket,
19
20    BeastFang,
21
22    LifeCapsule,
23
24    IDCard,
25
26    JellyfishJuice,
27
28    RustedKey,
29
30    GumKey,
31
32    GumBase,
33
34    Charcoal,
35
36    Bomb,
37
38    Dog,
39
40    LifePot,
41
42    CureAll,
43
44    ClinicKey,
45
46    #[strum(serialize = "Booster v0.8")]
47    Boosterv08,
48
49    ArmsBarrier,
50
51    Turbocharge,
52
53    #[strum(serialize = "Curly's Air Tank")]
54    AirTank,
55
56    #[strum(serialize = "290 Counter")]
57    Counter290,
58
59    #[strum(serialize = "Booster v2.0")]
60    Boosterv20,
61
62    MimigaMask,
63
64    TeleporterRoomKey,
65
66    #[strum(serialize = "Sue's Letter")]
67    SuesLetter,
68
69    Controller,
70
71    BrokenSprinkler,
72
73    Sprinkler,
74
75    TowRope,
76
77    #[strum(serialize = "Medal of the Red Ogre")]
78    MedaloftheRedOgre,
79
80    MisterLittle,
81
82    MushroomBadge,
83
84    MaPignon,
85
86    #[strum(serialize = "Curly's Panties")]
87    CurlysPanties,
88
89    AlienMedal,
90
91    ChakosRouge,
92
93    WhimsicalStar,
94
95    IronBond,
96}
97
98impl From<i32> for Inventory {
99    fn from(v: i32) -> Self {
100        Inventory::from_repr(v as u32).unwrap_or_default()
101    }
102}