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