cavestory_save/items/
inventory.rs1use 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}