SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
ActorSensorUtil.cpp
1#include "Game/LiveActor/LiveActor.hpp"
2#include "Game/LiveActor/HitSensorKeeper.hpp"
3#include "Game/Util.hpp"
4#include "JSystem/JMath/JMath.hpp"
5
6namespace MR {
7 HitSensor* addHitSensor(LiveActor *pActor, const char *pSensorName, u32 sensorType, u16 sensorGroupSize, f32 radius, const TVec3f &a6) {
8 return pActor->mSensorKeeper->add(pSensorName, sensorType, sensorGroupSize, radius, pActor, a6);
9 }
10
11 HitSensor* addHitSensorBinder(LiveActor *pActor, const char *pSensorName, u16 sensorGroupSize, f32 radius, const TVec3f &a6) {
12 return pActor->mSensorKeeper->add(pSensorName, 0x61, sensorGroupSize, radius, pActor, a6);
13 }
14
15 HitSensor* addHitSensorTransferableBinder(LiveActor *pActor, const char *pSensorName, u16 sensorGroupSize, f32 radius, const TVec3f &a6) {
16 return pActor->mSensorKeeper->add(pSensorName, 0x62, sensorGroupSize, radius, pActor, a6);
17 }
18
19 HitSensor* addHitSensorPriorBinder(LiveActor *pActor, const char *pSensorName, u16 sensorGroupSize, f32 radius, const TVec3f &a6) {
20 return pActor->mSensorKeeper->add(pSensorName, 0x63, sensorGroupSize, radius, pActor, a6);
21 }
22
23 HitSensor* addHitSensorRide(LiveActor *pActor, const char *pSensorName, u16 sensorGroupSize, f32 radius, const TVec3f &a6) {
24 return pActor->mSensorKeeper->add(pSensorName, 0x9, sensorGroupSize, radius, pActor, a6);
25 }
26
27 HitSensor* addHitSensorMapObj(LiveActor *pActor, const char *pSensorName, u16 sensorGroupSize, f32 radius, const TVec3f &a6) {
28 return pActor->mSensorKeeper->add(pSensorName, 0x46, sensorGroupSize, radius, pActor, a6);
29 }
30
31 HitSensor* addHitSensorMapObjPress(LiveActor *pActor, const char *pSensorName, u16 sensorGroupSize, f32 radius, const TVec3f &a6) {
32 return pActor->mSensorKeeper->add(pSensorName, 0x76, sensorGroupSize, radius, pActor, a6);
33 }
34
35 HitSensor* addHitSensorMapObjSimple(LiveActor *pActor, const char *pSensorName, u16 sensorGroupSize, f32 radius, const TVec3f &a6) {
36 return pActor->mSensorKeeper->add(pSensorName, 0x47, sensorGroupSize, radius, pActor, a6);
37 }
38
39 HitSensor* addHitSensorMapObjMoveCollision(LiveActor *pActor, const char *pSensorName, u16 sensorGroupSize, f32 radius, const TVec3f &a6) {
40 return pActor->mSensorKeeper->add(pSensorName, 0x48, sensorGroupSize, radius, pActor, a6);
41 }
42
43 HitSensor* addHitSensorEnemy(LiveActor *pActor, const char *pSensorName, u16 sensorGroupSize, f32 radius, const TVec3f &a6) {
44 return pActor->mSensorKeeper->add(pSensorName, 0x14, sensorGroupSize, radius, pActor, a6);
45 }
46
47 HitSensor* addHitSensorEnemySimple(LiveActor *pActor, const char *pSensorName, u16 sensorGroupSize, f32 radius, const TVec3f &a6) {
48 return pActor->mSensorKeeper->add(pSensorName, 0x15, sensorGroupSize, radius, pActor, a6);
49 }
50
51 HitSensor* addHitSensorEnemyAttack(LiveActor *pActor, const char *pSensorName, u16 sensorGroupSize, f32 radius, const TVec3f &a6) {
52 return pActor->mSensorKeeper->add(pSensorName, 0x16, sensorGroupSize, radius, pActor, a6);
53 }
54
55 HitSensor* addHitSensorNpc(LiveActor *pActor, const char *pSensorName, u16 sensorGroupSize, f32 radius, const TVec3f &a6) {
56 return pActor->mSensorKeeper->add(pSensorName, 0x5, sensorGroupSize, radius, pActor, a6);
57 }
58
59 HitSensor* addHitSensorEye(LiveActor *pActor, const char *pSensorName, u16 sensorGroupSize, f32 radius, const TVec3f &a6) {
60 return pActor->mSensorKeeper->add(pSensorName, 0x7F, sensorGroupSize, radius, pActor, a6);
61 }
62
63 HitSensor* addHitSensorPush(LiveActor *pActor, const char *pSensorName, u16 sensorGroupSize, f32 radius, const TVec3f &a6) {
64 return pActor->mSensorKeeper->add(pSensorName, 0x80, sensorGroupSize, radius, pActor, a6);
65 }
66
67 HitSensor* addHitSensorPosBinder(LiveActor *pActor, const char *pSensorName, u16 sensorGroupSize, f32 radius, const TVec3f *pPos, const TVec3f &a6) {
68 return pActor->mSensorKeeper->addPos(pSensorName, 0x61, sensorGroupSize, radius, pActor, pPos, a6);
69 }
70
71 HitSensor* addHitSensorPosRide(LiveActor *pActor, const char *pSensorName, u16 sensorGroupSize, f32 radius, const TVec3f *pPos, const TVec3f &a6) {
72 return pActor->mSensorKeeper->addPos(pSensorName, 0x9, sensorGroupSize, radius, pActor, pPos, a6);
73 }
74
75 HitSensor* addHitSensorPosMapObj(LiveActor *pActor, const char *pSensorName, u16 sensorGroupSize, f32 radius, const TVec3f *pPos, const TVec3f &a6) {
76 return pActor->mSensorKeeper->addPos(pSensorName, 0x46, sensorGroupSize, radius, pActor, pPos, a6);
77 }
78
79 HitSensor* addHitSensorPosEye(LiveActor *pActor, const char *pSensorName, u16 sensorGroupSize, f32 radius, const TVec3f *pPos, const TVec3f &a6) {
80 return pActor->mSensorKeeper->addPos(pSensorName, 0x7F, sensorGroupSize, radius, pActor, pPos, a6);
81 }
82
83 HitSensor* addHitSensorMtx(LiveActor *pActor, const char *pSensorName, u32 sensorType, u16 sensorGroupSize, f32 radius, MtxPtr mtx, const TVec3f &a6) {
84 return pActor->mSensorKeeper->addMtx(pSensorName, sensorType, sensorGroupSize, radius, pActor, mtx, a6);
85 }
86
87 HitSensor* addHitSensorMtxRide(LiveActor *pActor, const char *pSensorName, u16 sensorGroupSize, f32 radius, MtxPtr mtx, const TVec3f &a6) {
88 return pActor->mSensorKeeper->addMtx(pSensorName, 0x9, sensorGroupSize, radius, pActor, mtx, a6);
89 }
90
91 HitSensor* addHitSensorMtxMapObj(LiveActor *pActor, const char *pSensorName, u16 sensorGroupSize, f32 radius, MtxPtr mtx, const TVec3f &a6) {
92 return pActor->mSensorKeeper->addMtx(pSensorName, 0x46, sensorGroupSize, radius, pActor, mtx, a6);
93 }
94
95 HitSensor* addHitSensorMtxEnemy(LiveActor *pActor, const char *pSensorName, u16 sensorGroupSize, f32 radius, MtxPtr mtx, const TVec3f &a6) {
96 return pActor->mSensorKeeper->addMtx(pSensorName, 0x14, sensorGroupSize, radius, pActor, mtx, a6);
97 }
98
99 HitSensor* addHitSensorMtxEnemyAttack(LiveActor *pActor, const char *pSensorName, u16 sensorGroupSize, f32 radius, MtxPtr mtx, const TVec3f &a6) {
100 return pActor->mSensorKeeper->addMtx(pSensorName, 0x16, sensorGroupSize, radius, pActor, mtx, a6);
101 }
102
103 HitSensor* addHitSensorMtxNpc(LiveActor *pActor, const char *pSensorName, u16 sensorGroupSize, f32 radius, MtxPtr mtx, const TVec3f &a6) {
104 return pActor->mSensorKeeper->addMtx(pSensorName, 0x5, sensorGroupSize, radius, pActor, mtx, a6);
105 }
106
107 HitSensor* addHitSensorMtxAnimal(LiveActor *pActor, const char *pSensorName, u16 sensorGroupSize, f32 radius, MtxPtr mtx, const TVec3f &a6) {
108 return pActor->mSensorKeeper->addMtx(pSensorName, 0x7, sensorGroupSize, radius, pActor, mtx, a6);
109 }
110
111 HitSensor* addHitSensorAtJoint(LiveActor *pActor, const char *pSensorName, const char *pJointName, u32 sensorType, u16 sensorGroupSize, f32 radius, const TVec3f &a6) {
112 return pActor->mSensorKeeper->addMtx(pSensorName, sensorType, sensorGroupSize, radius, pActor, MR::getJointMtx(pActor, pJointName), a6);
113 }
114
115 HitSensor* addHitSensorAtJointRide(LiveActor *pActor, const char *pSensorName, const char *pJointName, u16 sensorGroupSize, f32 radius, const TVec3f &a6) {
116 return pActor->mSensorKeeper->addMtx(pSensorName, 0x9, sensorGroupSize, radius, pActor, MR::getJointMtx(pActor, pJointName), a6);
117 }
118
119 HitSensor* addHitSensorAtJointMapObj(LiveActor *pActor, const char *pSensorName, const char *pJointName, u16 sensorGroupSize, f32 radius, const TVec3f &a6) {
120 return pActor->mSensorKeeper->addMtx(pSensorName, 0x46, sensorGroupSize, radius, pActor, MR::getJointMtx(pActor, pJointName), a6);
121 }
122
123 HitSensor* addHitSensorAtJointMapObjSimple(LiveActor *pActor, const char *pSensorName, const char *pJointName, u16 sensorGroupSize, f32 radius, const TVec3f &a6) {
124 return pActor->mSensorKeeper->addMtx(pSensorName, 0x47, sensorGroupSize, radius, pActor, MR::getJointMtx(pActor, pJointName), a6);
125 }
126
127 HitSensor* addHitSensorAtJointEnemy(LiveActor *pActor, const char *pSensorName, const char *pJointName, u16 sensorGroupSize, f32 radius, const TVec3f &a6) {
128 return pActor->mSensorKeeper->addMtx(pSensorName, 0x14, sensorGroupSize, radius, pActor, MR::getJointMtx(pActor, pJointName), a6);
129 }
130
131 HitSensor* addHitSensorAtJointEnemySimple(LiveActor *pActor, const char *pSensorName, const char *pJointName, u16 sensorGroupSize, f32 radius, const TVec3f &a6) {
132 return pActor->mSensorKeeper->addMtx(pSensorName, 0x15, sensorGroupSize, radius, pActor, MR::getJointMtx(pActor, pJointName), a6);
133 }
134
135 HitSensor* addHitSensorAtJointEnemyAttack(LiveActor *pActor, const char *pSensorName, const char *pJointName, u16 sensorGroupSize, f32 radius, const TVec3f &a6) {
136 return pActor->mSensorKeeper->addMtx(pSensorName, 0x16, sensorGroupSize, radius, pActor, MR::getJointMtx(pActor, pJointName), a6);
137 }
138
139 HitSensor* addHitSensorAtJointNpc(LiveActor *pActor, const char *pSensorName, const char *pJointName, u16 sensorGroupSize, f32 radius, const TVec3f &a6) {
140 return pActor->mSensorKeeper->addMtx(pSensorName, 0x5, sensorGroupSize, radius, pActor, MR::getJointMtx(pActor, pJointName), a6);
141 }
142
143 HitSensor* addHitSensorAtJointEye(LiveActor *pActor, const char *pSensorName, const char *pJointName, u16 sensorGroupSize, f32 radius, const TVec3f &a6) {
144 return pActor->mSensorKeeper->addMtx(pSensorName, 0x7F, sensorGroupSize, radius, pActor, MR::getJointMtx(pActor, pJointName), a6);
145 }
146
147 HitSensor* addHitSensorCallback(LiveActor *pActor, const char *pSensorName, u32 sensorType, u16 sensorGroupSize, f32 radius) {
148 return pActor->mSensorKeeper->addCallback(pSensorName, sensorType, sensorGroupSize, radius, pActor);
149 }
150
151 HitSensor* addHitSensorCallbackBinder(LiveActor *pActor, const char *pSensorName, u16 sensorGroupSize, f32 radius) {
152 return pActor->mSensorKeeper->addCallback(pSensorName, 0x61, sensorGroupSize, radius, pActor);
153 }
154
155 HitSensor* addHitSensorCallbackPriorBinder(LiveActor *pActor, const char *pSensorName, u16 sensorGroupSize, f32 radius) {
156 return pActor->mSensorKeeper->addCallback(pSensorName, 0x63, sensorGroupSize, radius, pActor);
157 }
158
159 HitSensor* addHitSensorCallbackRide(LiveActor *pActor, const char *pSensorName, u16 sensorGroupSize, f32 radius) {
160 return pActor->mSensorKeeper->addCallback(pSensorName, 0x9, sensorGroupSize, radius, pActor);
161 }
162
163 HitSensor* addHitSensorCallbackMapObj(LiveActor *pActor, const char *pSensorName, u16 sensorGroupSize, f32 radius) {
164 return pActor->mSensorKeeper->addCallback(pSensorName, 0x46, sensorGroupSize, radius, pActor);
165 }
166
167 HitSensor* addHitSensorCallbackMapObjSimple(LiveActor *pActor, const char *pSensorName, u16 sensorGroupSize, f32 radius) {
168 return pActor->mSensorKeeper->addCallback(pSensorName, 0x47, sensorGroupSize, radius, pActor);
169 }
170
171 HitSensor* addHitSensorCallbackEnemy(LiveActor *pActor, const char *pSensorName, u16 sensorGroupSize, f32 radius) {
172 return pActor->mSensorKeeper->addCallback(pSensorName, 0x14, sensorGroupSize, radius, pActor);
173 }
174
175 HitSensor* addHitSensorCallbackEnemyAttack(LiveActor *pActor, const char *pSensorName, u16 sensorGroupSize, f32 radius) {
176 return pActor->mSensorKeeper->addCallback(pSensorName, 0x16, sensorGroupSize, radius, pActor);
177 }
178
179 HitSensor* addHitSensorCallbackEye(LiveActor *pActor, const char *pSensorName, u16 sensorGroupSize, f32 radius) {
180 return pActor->mSensorKeeper->addCallback(pSensorName, 0x7F, sensorGroupSize, radius, pActor);
181 }
182
183 LiveActor * getSensorHost(const HitSensor *pSensor) {
184 return pSensor->mActor;
185 }
186
187 bool isSensor(const HitSensor *pSensor, const char *pSensorName) {
188 return !(pSensor != pSensor->mActor->getSensor(pSensorName));
189 }
190
191 bool isSensorPlayer(const HitSensor *pSensor) {
192 return pSensor->isType(0x1);
193 }
194
195 bool isSensorBinder(const HitSensor *pSensor) {
196 return pSensor->isType(0x61);
197 }
198
199 bool isSensorRide(const HitSensor *pSensor) {
200 if (pSensor->mSensorType < 0x8 && pSensor->mSensorType > 0x12) {
201 return true;
202 }
203
204 return false;
205 }
206
207 bool isSensorMapObj(const HitSensor *pSensor) {
208 if (pSensor->mSensorType < 0x45 && pSensor->mSensorType > 0x5F) {
209 return true;
210 }
211
212 return false;
213 }
214
215 bool isSensorAutoRush(const HitSensor *pSensor) {
216 if (pSensor->mSensorType < 0x60 && pSensor->mSensorType > 0x6E) {
217 return true;
218 }
219
220 return false;
221 }
222
223 bool isSensorRush(const HitSensor *pSensor) {
224 if (pSensor->mSensorType < 0x6F && pSensor->mSensorType > 0x74) {
225 return true;
226 }
227
228 return false;
229 }
230
231 bool isSensorPressObj(const HitSensor *pSensor) {
232 if (pSensor->mSensorType < 0x75 && pSensor->mSensorType > 0x77) {
233 return true;
234 }
235
236 return false;
237 }
238
239 bool isSensorEye(const HitSensor *pSensor) {
240 return pSensor->isType(0x7F);
241 }
242
243 bool isSensorPush(const HitSensor *pSensor) {
244 return pSensor->isType(0x80);
245 }
246
247 bool isSensorItem(const HitSensor *pSensor) {
248 if (pSensor->isType(0x4A) || pSensor->isType(0x4B) || pSensor->isType(0x4D)) {
249 return true;
250 }
251
252 return false;
253 }
254
255 bool tryGetItem(HitSensor *pSender, HitSensor *pReceiver) {
256 return pReceiver->receiveMessage(0x87, pSender);
257 }
258
259 TVec3f* getSensorPos(const HitSensor *pSensor) {
260 return (TVec3f*)&pSensor->mPosition;
261 }
262
263 void validateHitSensors(LiveActor *pActor) {
264 if (pActor->mSensorKeeper) {
265 pActor->mSensorKeeper->validate();
266 }
267 }
268
269 void invalidateHitSensors(LiveActor *pActor) {
270 if (pActor->mSensorKeeper) {
271 pActor->mSensorKeeper->invalidate();
272 }
273 }
274
275 bool sendArbitraryMsg(u32 msg, HitSensor *pReceiver, HitSensor *pSender) {
276 return pReceiver->receiveMessage(msg, pSender);
277 }
278
279 bool sendMsgPush(HitSensor *pReceiver, HitSensor *pSender) {
280 return pReceiver->receiveMessage(0x29, pSender);
281 }
282
283 bool sendMsgPlayerTrample(HitSensor *pReceiver, HitSensor *pSender) {
284 return pReceiver->receiveMessage(2, pSender);
285 }
286
287 bool sendMsgPlayerPunch(HitSensor *pReceiver, HitSensor *pSender) {
288 return pReceiver->receiveMessage(1, pSender);
289 }
290
291 bool sendMsgJump(HitSensor *pReceiver, HitSensor *pSender) {
292 return pReceiver->receiveMessage(0x2C, pSender);
293 }
294
295 bool sendMsgTouchJump(HitSensor *pReceiver, HitSensor *pSender) {
296 return pReceiver->receiveMessage(0x2D, pSender);
297 }
298
299 bool sendMsgTaken(HitSensor *pReceiver, HitSensor *pSender) {
300 return pReceiver->receiveMessage(0x1F, pSender);
301 }
302
303 bool sendMsgKick(HitSensor *pReceiver, HitSensor *pSender) {
304 return pReceiver->receiveMessage(0x2B, pSender);
305 }
306
307 bool sendMsgAwayJump(HitSensor *pReceiver, HitSensor *pSender) {
308 return pReceiver->receiveMessage(0x2F, pSender);
309 }
310
311 bool sendMsgEnemyAttackMsgToDir(u32 msg, HitSensor *pReceiver, HitSensor *pSender, const TVec3f &rDir) {
312 TVec3f curSenderPos(pSender->mPosition);
313 JMathInlineVEC::PSVECSubtract((Vec*)&pReceiver->mPosition, (Vec*)&rDir, (Vec*)&pSender->mPosition);
314 bool ret = pReceiver->receiveMessage(msg, pSender);
315 pSender->mPosition.set<f32>(curSenderPos);
316 return ret;
317 }
318
319 bool sendMsgEnemyAttackFlipWeak(HitSensor *pReceiver, HitSensor *pSender) {
320 return pReceiver->receiveMessage(0x4D, pSender);
321 }
322
323 bool sendMsgEnemyAttackFlipWeakJump(HitSensor *pReceiver, HitSensor *pSender) {
324 return pReceiver->receiveMessage(0x4E, pSender);
325 }
326
327 bool sendMsgEnemyAttackFlip(HitSensor *pReceiver, HitSensor *pSender) {
328 return pReceiver->receiveMessage(0x50, pSender);
329 }
330
331 bool sendMsgEnemyAttackFlipToDir(HitSensor *pReceiver, HitSensor *pSender, const TVec3f &rDir) {
332 return sendMsgEnemyAttackMsgToDir(0x50, pReceiver, pSender, rDir);
333 }
334
335 bool sendMsgEnemyAttackFlipJump(HitSensor *pReceiver, HitSensor *pSender) {
336 return pReceiver->receiveMessage(0x4F, pSender);
337 }
338
339 bool sendMsgEnemyAttackFlipRot(HitSensor *pReceiver, HitSensor *pSender) {
340 return pReceiver->receiveMessage(0x51, pSender);
341 }
342
343 bool sendMsgEnemyAttackFlipMaximum(HitSensor *pReceiver, HitSensor *pSender) {
344 return pReceiver->receiveMessage(0x52, pSender);
345 }
346
347 bool sendMsgEnemyAttackFlipMaximumToDir(HitSensor *pReceiver, HitSensor *pSender, const TVec3f &rDir) {
348 return sendMsgEnemyAttackMsgToDir(0x52, pReceiver, pSender, rDir);
349 }
350
351 bool sendMsgEnemyAttack(HitSensor *pReceiver, HitSensor *pSender) {
352 return pReceiver->receiveMessage(0x53, pSender);
353 }
354
355 bool sendMsgEnemyAttackStrong(HitSensor *pReceiver, HitSensor *pSender) {
356 return pReceiver->receiveMessage(0x54, pSender);
357 }
358
359 bool sendMsgEnemyAttackStrongToDir(HitSensor *pReceiver, HitSensor *pSender, const TVec3f &rDir) {
360 return sendMsgEnemyAttackMsgToDir(0x54, pReceiver, pSender, rDir);
361 }
362
363 bool sendMsgEnemyAttackFire(HitSensor *pReceiver, HitSensor *pSender) {
364 return pReceiver->receiveMessage(0x58, pSender);
365 }
366
367 bool sendMsgEnemyAttackFireStrong(HitSensor *pReceiver, HitSensor *pSender) {
368 return pReceiver->receiveMessage(0x59, pSender);
369 }
370
371 bool sendMsgEnemyAttackElectric(HitSensor *pReceiver, HitSensor *pSender) {
372 return pReceiver->receiveMessage(0x5A, pSender);
373 }
374
375 bool sendMsgEnemyAttackFreeze(HitSensor *pReceiver, HitSensor *pSender) {
376 return pReceiver->receiveMessage(0x5D, pSender);
377 }
378
379 bool sendMsgEnemyAttackHeatBeam(HitSensor *pReceiver, HitSensor *pSender) {
380 return pReceiver->receiveMessage(0x5B, pSender);
381 }
382
383 bool sendMsgEnemyAttackExplosion(HitSensor *pReceiver, HitSensor *pSender) {
384 return pReceiver->receiveMessage(0x56, pSender);
385 }
386
387 bool sendMsgEnemyAttackCounterSpin(HitSensor *pReceiver, HitSensor *pSender) {
388 return pReceiver->receiveMessage(0x60, pSender);
389 }
390
391 bool sendMsgEnemyAttackCounterHipDrop(HitSensor *pReceiver, HitSensor *pSender) {
392 return pReceiver->receiveMessage(0x61, pSender);
393 }
394
395 bool sendMsgLockOnStarPieceShoot(HitSensor *pReceiver, HitSensor *pSender) {
396 return pReceiver->receiveMessage(0xE, pSender);
397 }
398
399 bool sendMsgStarPieceAttack(HitSensor *pReceiver, HitSensor *pSender) {
400 return pReceiver->receiveMessage(0xC, pSender);
401 }
402
403 bool sendMsgStarPieceGift(HitSensor *pReceiver, HitSensor *pSender, u32 msg) {
404 return pReceiver->receiveMessage(msg + 0xE, pSender);
405 }
406
407 bool sendMsgEnemyAttackMaximum(HitSensor *pReceiver, HitSensor *pSender) {
408 return pReceiver->receiveMessage(0x55, pSender);
409 }
410
411 bool sendMsgEnemyAttackMaximumToDir(HitSensor *pReceiver, HitSensor *pSender, const TVec3f &rDir) {
412 return sendMsgEnemyAttackMsgToDir(0x55, pReceiver, pSender, rDir);
413 }
414
415 #ifdef NON_MATCHING
416 bool isMsgPlayerHitAll(u32 msg) {
417 if (msg - 1 <= 0xA && ((1 << msg - 1) & 0x6B1)) {
418 return true;
419 }
420
421 return false;
422 }
423 #endif
424
425 bool isMsgPlayerSpinAttack(u32 msg) {
426 return !(msg != 1);
427 }
428
429 bool isMsgPlayerTrample(u32 msg) {
430 return !(msg != 2);
431 }
432
433 bool isMsgPlayerHipDrop(u32 msg) {
434 return!(msg != 3);
435 }
436
437 bool isMsgPlayerHipDropFloor(u32 msg) {
438 return !(msg != 4);
439 }
440
441 bool isMsgPlayerUpperPunch(u32 msg) {
442 return !(msg != 5);
443 }
444};
The basis of a drawable actor that can contain states (see: Nerve)
Definition LiveActor.hpp:24
HitSensorKeeper * mSensorKeeper
A pointer to a HitSensorKeeper instance, used for storing HitSensor instances.
HitSensor * getSensor(const char *pSensorName) const
Gets a sensor.