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