A reimplementation of Mario Kart Wii's physics engine in C++
Loading...
Searching...
No Matches
ObjectId.hh
1#pragma once
2
3#include <Common.hh>
4
5namespace Field {
6
7enum class ObjectId {
8 None = 0x0,
9 Itembox = 0x65,
10 DummyPole = 0x066,
11 Woodbox = 0x70,
12 SunDS = 0x72,
13 WLWallGC = 0xcb,
14 CarA1 = 0xcc,
15 KartTruck = 0xd0,
16 CarBody = 0xd1,
17 W_Woodbox = 0xd3,
18 ItemboxLine = 0xd5,
19 Boble = 0xdd,
20 Seagull = 0xe3,
21 CarA2 = 0xe7,
22 CarA3 = 0xe8,
23 DokanSFC = 0x12e,
24 CastleTree1c = 0x130,
25 MarioTreeGCc = 0x134,
26 PeachTreeGCc = 0x138,
27 ObakeBlockSFCc = 0x13c,
28 WLDokanGC = 0x13f,
29 MarioGo64c = 0x140,
30 KinokoT1 = 0x142,
31 PalmTree = 0x145,
32 Parasol = 0x146,
33 HeyhoTreeGBAc = 0x14a,
34 GardenTreeDSc = 0x151,
35 DKtreeA64c = 0x158,
36 DKTreeB64c = 0x15a,
37 TownTreeDsc = 0x15b,
38 OilSFC = 0x15d,
39 ParasolR = 0x16e,
40 ObakeBlock2SFCc = 0x16f,
41 ObakeBlock3SFCc = 0x170,
42 Kuribo = 0x191,
43 Choropu = 0x192,
44 Cow = 0x193,
45 WLFirebarGC = 0x195,
46 Sanbo = 0x199,
47 Choropu2 = 0x19a,
48 Heyho = 0x19c,
49 Press = 0x19d,
50 PressSoko = 0x19e,
51 WLFireRingGC = 0x1a1,
52 PakkunDokan = 0x1a2,
53 FireSnake = 0x1a4,
54 KoopaFirebar = 0x1a5,
55 PuchiPakkun = 0x1aa,
56 KinokoUd = 0x1f5,
57 KinokoBend = 0x1f6,
58 BulldozerL = 0x1f8,
59 BulldozerR = 0x1f9,
60 KinokoNm = 0x1fa,
61 Crane = 0x1fb,
62 TwistedWay = 0x1fe,
63 TownBridge = 0x1ff,
64 Turibashi = 0x202,
65 Aurora = 0x204,
66 Sandcone = 0x209,
67 Ami = 0x20e,
68 Mdush = 0x217,
69 BeltEasy = 0x25a,
70 BeltCrossing = 0x25b,
71 BeltCurveA = 0x25c,
72 Escalator = 0x25e,
73 EscalatorGroup = 0x260,
74};
75
76enum class BlacklistedObjectId {
77 Itembox = 0x65,
78 CastleTree2 = 0x131,
79 CastleFlower1 = 0x132,
80 MarioTreeGC = 0x133,
81 DonkyTree1GC = 0x135,
82 DonkyTree2GC = 0x136,
83 PeachTreeGC = 0x137,
84 PeachHunsuiGC = 0x141,
85 GardenTreeDS = 0x150,
86 FlagA1 = 0x152,
87 FlagA2 = 0x153,
88 FlagB1 = 0x154,
89 FlagB2 = 0x155,
90 FlagA3 = 0x156,
91 DKTreeA64 = 0x157,
92 DKTreeB64 = 0x159,
93 MiiBalloon = 0x160,
94 Windmill = 0x161,
95 TownTreeDS = 0x163,
96 Hanabi = 0x16a,
97 LightHouse = 0x16d,
98 FlagA5 = 0x180,
99 SentakuDS = 0x189,
100 FlagB3 = 0x2c4,
101 FlagB4 = 0x2c7,
102 UtsuboDokan = 0x2d6,
103 EnvSnow = 0x2ef,
104};
105
106static constexpr bool IsObjectBlacklisted(u16 id) {
107 BlacklistedObjectId objectId = static_cast<BlacklistedObjectId>(id);
108 switch (objectId) {
109 // Disabled collision
110 case BlacklistedObjectId::Itembox:
111 return true;
112
113 // No collision
114 case BlacklistedObjectId::CastleTree2:
115 case BlacklistedObjectId::CastleFlower1:
116 case BlacklistedObjectId::MarioTreeGC:
117 case BlacklistedObjectId::DonkyTree1GC:
118 case BlacklistedObjectId::DonkyTree2GC:
119 case BlacklistedObjectId::PeachTreeGC:
120 case BlacklistedObjectId::PeachHunsuiGC:
121 case BlacklistedObjectId::GardenTreeDS:
122 case BlacklistedObjectId::FlagA1:
123 case BlacklistedObjectId::FlagA2:
124 case BlacklistedObjectId::FlagB1:
125 case BlacklistedObjectId::FlagB2:
126 case BlacklistedObjectId::FlagA3:
127 case BlacklistedObjectId::DKTreeA64:
128 case BlacklistedObjectId::Windmill:
129 case BlacklistedObjectId::TownTreeDS:
130 case BlacklistedObjectId::Hanabi:
131 case BlacklistedObjectId::LightHouse:
132 case BlacklistedObjectId::FlagA5:
133 case BlacklistedObjectId::SentakuDS:
134 case BlacklistedObjectId::FlagB3:
135 case BlacklistedObjectId::FlagB4:
136 case BlacklistedObjectId::UtsuboDokan:
137 case BlacklistedObjectId::EnvSnow:
138 return true;
139
140 default:
141 return false;
142 }
143}
144
145} // namespace Field
This header houses common data types such as our integral types and enums.
Pertains to collision.