1use strum::{Display, EnumIter, FromRepr};
2
3#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Display, EnumIter, FromRepr)]
4#[repr(u32)]
5pub enum Map {
6 #[strum(serialize = "Credits")]
7 Credits,
8 #[strum(serialize = "Arthur's House")]
9 ArthursHouse,
10 #[strum(serialize = "Egg Corridor")]
11 EggCorridor,
12 #[strum(serialize = "Egg No. 00")]
13 EggNo00,
14 #[strum(serialize = "Egg No. 06")]
15 EggNo06,
16 #[strum(serialize = "Egg Observation Room")]
17 EggObservationRoom,
18 #[strum(serialize = "Grasstown")]
19 Grasstown,
20 #[strum(serialize = "Santa's House")]
21 SantasHouse,
22 #[strum(serialize = "Chaco's House")]
23 ChacosHouse,
24 #[strum(serialize = "Labyrinth I")]
25 LabyrinthIErticalStartingRoom,
26 #[strum(serialize = "Sand Zone")]
27 SandZone,
28 #[strum(serialize = "Mimiga Village")]
29 MimigaVillage,
30 #[strum(serialize = "First Cave")]
31 #[default]
32 FirstCave,
33 #[strum(serialize = "Start Point")]
34 StartPoint,
35 #[strum(serialize = "Shack")]
36 ShackMimigaVillage,
37 #[strum(serialize = "Reservoir")]
38 Reservoir,
39 #[strum(serialize = "Graveyard")]
40 Graveyard,
41 #[strum(serialize = "Yamashita Farm")]
42 YamashitaFarm,
43 #[strum(serialize = "Shelter")]
44 Shelter,
45 #[strum(serialize = "Assembly Hall")]
46 AssemblyHall,
47 #[strum(serialize = "Save Point (Mimiga Village)")]
48 SavePointAtMimigaVillage,
49 #[strum(serialize = "Side Room")]
50 SideRoom,
51 #[strum(serialize = "Cthulhu's Abode")]
52 CthulhusAbode,
53 #[strum(serialize = "Egg No. 01")]
54 EggNo01,
55 #[strum(serialize = "Arthur's House - sue using computer")]
56 ArthursHouseWithSueUsingComputer,
57 #[strum(serialize = "Power Room")]
58 PowerRoom,
59 #[strum(serialize = "Save Point (Grasstown)")]
60 SavePointAtGrasstown,
61 #[strum(serialize = "Execution Chamber")]
62 ExecutionChamber,
63 #[strum(serialize = "Gum")]
64 Gum,
65 #[strum(serialize = "Sand Zone Residence")]
66 SandZoneResidence,
67 #[strum(serialize = "Grasstown Hut")]
68 GrasstownHut,
69 #[strum(serialize = "Main Artery")]
70 MainArtery,
71 #[strum(serialize = "Small Room")]
72 SmallRoom,
73 #[strum(serialize = "Jenka's House - before Balrog attack")]
74 JenkasHouse,
75 #[strum(serialize = "Deserted House")]
76 DesertedHouse,
77 #[strum(serialize = "Sand Zone Storehouse")]
78 SandZoneStorehouse,
79 #[strum(serialize = "Jenka's House - after Balrog attack")]
80 JenkasHouseAfterBalrogAttack,
81 #[strum(serialize = "Sand Zone - after boss fight")]
82 SandZoneAfterBossFight,
83 #[strum(serialize = "Labyrinth H")]
84 LabyrinthH,
85 #[strum(serialize = "Labyrinth W")]
86 LabyrinthWMainAreaWithShopCamp,
87 #[strum(serialize = "Camp")]
88 Camp,
89 #[strum(serialize = "Clinic Ruins")]
90 ClinicRuins,
91 #[strum(serialize = "Labyrinth Shop")]
92 LabyrinthShop,
93 #[strum(serialize = "Labyrinth B")]
94 LabyrinthBroomwithbooster,
95 #[strum(serialize = "Boulder Chamber")]
96 BoulderChamber,
97 #[strum(serialize = "Labyrinth M")]
98 LabyrinthMLastAreaGaudiEggs,
99 #[strum(serialize = "Dark Place")]
100 DarkPlace,
101 #[strum(serialize = "Core")]
102 Core,
103 #[strum(serialize = "Waterway")]
104 Waterway,
105 #[strum(serialize = "Egg Corridor?")]
106 QuestionableEggCorridor,
107 #[strum(serialize = "Cthulhu's Abode?")]
108 QuestionableCthulhusAbode,
109 #[strum(serialize = "Egg Observation Room?")]
110 QuestionableEggObservationRoom,
111 #[strum(serialize = "Egg No. 00?")]
112 EggNo00WhenHatched,
113 #[strum(serialize = "Outer Wall")]
114 OuterWall,
115 #[strum(serialize = "Side Room?")]
116 QuestionableSideRoom,
117 #[strum(serialize = "Storehouse")]
118 Storehouse,
119 #[strum(serialize = "Plantation")]
120 Plantation,
121 #[strum(serialize = "Jail No. 1")]
122 JailNo1,
123 #[strum(serialize = "Hideout")]
124 Hideout,
125 #[strum(serialize = "Rest Area")]
126 RestArea,
127 #[strum(serialize = "Teleporter")]
128 Teleporter,
129 #[strum(serialize = "Jail No. 2")]
130 JailNo2,
131 #[strum(serialize = "Balcony")]
132 Balcony,
133 #[strum(serialize = "Last Cave")]
134 LastCave,
135 #[strum(serialize = "Throne Room")]
136 ThroneRoom,
137 #[strum(serialize = "The King's Table")]
138 TheKingsTable,
139 #[strum(serialize = "Prefab House")]
140 PrefabHouse,
141 #[strum(serialize = "Last Cave Hidden")]
142 LastCaveHidden,
143 #[strum(serialize = "Black Space")]
144 BlackSpace,
145 #[strum(serialize = "Little House")]
146 LittleHouse,
147 #[strum(serialize = "Balcony?")]
148 BalconyEscaping,
149 #[strum(serialize = "Ending")]
150 Ending,
151 #[strum(serialize = "Attro")]
152 Attro,
153 #[strum(serialize = "Waterway Cabin")]
154 WaterwayCabin,
155 #[strum(serialize = "Credits - Labyrinth")]
156 CreditsLabyrinth,
157 #[strum(serialize = "Credits - Jenka's House")]
158 CreditsJenkasHouse,
159 #[strum(serialize = "Credits - Power Room")]
160 CreditsPowerRoom,
161 #[strum(serialize = "Credits - Graveyard")]
162 CreditsGraveyard,
163 #[strum(serialize = "Credits - Sky")]
164 CreditsSky,
165 #[strum(serialize = "Prefab House - entrance to hell")]
166 PrefabHouseWithEntranceToHell,
167 #[strum(serialize = "Sacred Ground B1")]
168 SacredGroundB1,
169 #[strum(serialize = "Sacred Ground B2")]
170 SacredGroundB2,
171 #[strum(serialize = "Sacred Ground B3")]
172 SacredGroundB3,
173 #[strum(serialize = "Storage")]
174 Storage,
175 #[strum(serialize = "Passage?")]
176 Passage,
177 #[strum(serialize = "Passage? - from Sacred Ground B3")]
178 PassageFromSacredGroundB3,
179 #[strum(serialize = "Statue Chamber")]
180 StatueChamber,
181 #[strum(serialize = "Seal Chamber")]
182 SealChamber,
183 #[strum(serialize = "Corridor")]
184 CorridorSacredGrounds,
185 #[strum(serialize = "Credits - Laboratory")]
186 CreditsLaboratory,
187 #[strum(serialize = "Hermit Gunsmith")]
188 HermitGunsmith,
189 #[strum(serialize = "[script loaded right before good/best endings]")]
190 EmptyMap,
191 #[strum(serialize = "Seal Chamber - after fight")]
192 SealChamberAfterFight,
193 #[strum(serialize = "Credits - Balcony")]
194 CreditsBalcony,
195 #[strum(serialize = "Clock Room")]
196 ClockRoom,
197}
198
199impl From<i32> for Map {
200 fn from(v: i32) -> Self {
201 Map::from_repr(v as u32).unwrap_or_default()
202 }
203}