New Super Mario Bros. U Headers
Loading...
Searching...
No Matches
ActorCollisionCheck.h
Go to the documentation of this file.
1#pragma once
2
3#include <prim/seadRuntimeTypeInfo.h>
4#include <system/LineNodeMgr.h>
5
6#include <container/seadSafeArray.h>
7#include <heap/seadDisposer.h>
8#include <math/seadBoundBox.h>
9#include <math/seadVector.h>
10#include <prim/seadBitFlag.h>
11
13{
14 cCcLineKind_0 = 1 << 0,
15 cCcLineKind_1 = 1 << 1,
17};
18
19class Actor;
21
22// vtbl Address: 0x10041C18
24{
25public:
26 struct Vec2 // POD variant
27 {
30 };
31 static_assert(sizeof(Vec2) == 8);
32
34 {
37 cShapeType_DaikeiUD, // Vertical Trapezoid
38 cShapeType_DaikeiLR // Horizontal Trapezoid
39 };
40 static_assert(sizeof(ShapeType) == 4);
41
61 static_assert(sizeof(Kind) == 4);
62 static_assert(cKind_Num == 15);
63
87 static_assert(sizeof(TargetKind) == 4);
88
122 static_assert(sizeof(Attack) == 4);
123
157 static_assert(sizeof(DamageFrom) == 4);
158
160 {
162 cStatus_NoSameActor = 1 << 1, // i.e., do not call this instance's callback, and the callback can be null
163 cStatus_NoPassInfo = 1 << 2, // If set, this instance does not trigger other instances
166 //
167 //
173 cStatus_MoveKill = 1 << 12, // Used by objects like thrown enemies, thwomp, grrrol, pendulum, woochan, big icicle, boom boom, final koopa fire, fliprus snowball, crasher, etc...
174
176 };
177 static_assert(sizeof(Status) == 4);
178
179 typedef void (*CallBack)(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other);
180
182 {
186 Kind kind; // Type of the owner of this instance
187 Attack attack; // Type of attack this instance performs
188 TargetKind vs_kind; // Mask of owner types to interact with
189 DamageFrom vs_damage; // Mask of attack types to receive
190 Status status; // Sets allowed interactions, such as being pick-able
192
193 // Address: 0x10041BC0
195 };
196 static_assert(sizeof(CollisionData) == 0x2C);
197
198 enum Info
199 {
201 };
202 static_assert(sizeof(Info) == 4);
203
204public:
205 // Address: 0x0219A960
207 // Address: 0x0219AB90
209
210public:
211 // Address: 0x0219AC24
213
214public:
215 // Address: 0x0219AEC0
216 void clear();
217
218 // Address: 0x0219AF1C
219 void set(Actor* owner, const CollisionData& collision_data, ActorCollisionDrcTouchCallback* drc_touch_callback = nullptr);
220 // Address: 0x0219B010
221 void set(Actor* owner, const CollisionData& collision_data, const sead::BitFlag8& collision_mask, ActorCollisionDrcTouchCallback* drc_touch_callback = nullptr);
222 // Address: 0x0219B054
223 void set(Actor* owner, const CollisionData& collision_data, const sead::BitFlag8& collision_mask, u8 layer, ActorCollisionDrcTouchCallback* drc_touch_callback = nullptr);
224
226 {
227 return mCollisionData.shape_type;
228 }
229
231 {
232 mCollisionData.shape_type = type;
233 }
234
235 bool isShapeType(ShapeType type) const
236 {
237 return mCollisionData.shape_type == type;
238 }
239
241 {
242 return mCollisionData.center_offset.x;
243 }
244
245 void setCenterOffsetX(f32 center_offset_x)
246 {
247 mCollisionData.center_offset.x = center_offset_x;
248 }
249
251 {
252 return mCollisionData.center_offset.y;
253 }
254
255 void setCenterOffsetY(f32 center_offset_y)
256 {
257 mCollisionData.center_offset.y = center_offset_y;
258 }
259
260 const Vec2& getCenterOffset() const
261 {
262 return mCollisionData.center_offset;
263 }
264
265 void setCenterOffset(const Vec2& center_offset)
266 {
267 mCollisionData.center_offset = center_offset;
268 }
269
270 void setCenterOffset(f32 center_offset_x, f32 center_offset_y)
271 {
272 mCollisionData.center_offset.x = center_offset_x;
273 mCollisionData.center_offset.y = center_offset_y;
274 }
275
276 void setCenterOffset(const sead::Vector2f& center_offset)
277 {
278 setCenterOffset(center_offset.x, center_offset.y);
279 }
280
282 {
283 return mCollisionData.half_size.x;
284 }
285
286 void setHalfSizeX(f32 half_size_x)
287 {
288 mCollisionData.half_size.x = half_size_x;
289 }
290
292 {
293 return mCollisionData.half_size.y;
294 }
295
296 void setHalfSizeY(f32 half_size_y)
297 {
298 mCollisionData.half_size.y = half_size_y;
299 }
300
301 const Vec2& getHalfSize() const
302 {
303 return mCollisionData.half_size;
304 }
305
306 void setHalfSize(const Vec2& half_size)
307 {
308 mCollisionData.half_size = half_size;
309 }
310
311 void setHalfSize(f32 half_size_x, f32 half_size_y)
312 {
313 mCollisionData.half_size.x = half_size_x;
314 mCollisionData.half_size.y = half_size_y;
315 }
316
317 void setHalfSize(const sead::Vector2f& half_size)
318 {
319 setHalfSize(half_size.x, half_size.y);
320 }
321
322 void setSizeOffset(const sead::Vector2f& half_size, const sead::Vector2f& center_offset)
323 {
324 setHalfSize(half_size);
325 setCenterOffset(center_offset);
326 }
327
328 Kind getKind() const
329 {
330 return mCollisionData.kind;
331 }
332
333 // Address: 0x0219B0A8
334 void setKind(Kind kind);
335
336 bool isKind(Kind kind) const
337 {
338 return mCollisionData.kind == kind;
339 }
340
342 {
343 return mCollisionData.vs_kind;
344 }
345
346 // Address: 0x0219B164
347 void setVsKind(TargetKind vs_kind);
348 // Address: 0x0219B250
349 void onVsKind(TargetKind vs_kind);
350 // Address: 0x0219B338
351 void offVsKind(TargetKind vs_kind);
352
353 bool hasVsKind(TargetKind vs_kind) const
354 {
355 return mCollisionData.vs_kind & vs_kind;
356 }
357
359 {
360 return mCollisionData.attack;
361 }
362
363 void setAttack(Attack attack)
364 {
365 mCollisionData.attack = attack;
366 }
367
368 bool isAttack(Attack attack) const
369 {
370 return mCollisionData.attack == attack;
371 }
372
374 {
375 return mCollisionData.vs_damage;
376 }
377
378 void setDamage(DamageFrom vs_damage)
379 {
380 mCollisionData.vs_damage = vs_damage;
381 }
382
383 void onDamage(DamageFrom vs_damage)
384 {
385 mCollisionData.vs_damage = DamageFrom(mCollisionData.vs_damage | vs_damage);
386 }
387
388 void offDamage(DamageFrom vs_damage)
389 {
390 mCollisionData.vs_damage = DamageFrom(mCollisionData.vs_damage & ~vs_damage);
391 }
392
393 bool hasDamage(DamageFrom vs_damage) const
394 {
395 return mCollisionData.vs_damage & vs_damage;
396 }
397
399 {
400 return mCollisionData.status;
401 }
402
403 void setStatus(Status status)
404 {
405 mCollisionData.status = status;
406 }
407
408 void onStatus(Status status)
409 {
410 mCollisionData.status = Status(mCollisionData.status | status);
411 }
412
413 void offStatus(Status status)
414 {
415 mCollisionData.status = Status(mCollisionData.status & ~status);
416 }
417
418 bool hasStatus(Status status)
419 {
420 return mCollisionData.status & status;
421 }
422
423 void setIndex(u32 index)
424 {
425 mIndex = index;
426 }
427
428 void setLine(const sead::BitFlag8& line_kind)
429 {
430 mCollisionMask = line_kind;
431 }
432
433 void setLayer(u8 layer)
434 {
435 mLayer = layer;
436 }
437
439 {
440 mDrcTouchCallback = drc_touch_callback;
441 }
442
443 // Address: 0x0219B434
444 f32 getTopPos() const;
445 // Address: 0x0219B450
447 // Address: 0x0219B46C
449 // Address: 0x0219B480
451 // Address: 0x0219B49C
453 // Address: 0x0219B4B8
455
457 {
458 return sead::Vector2f(getCenterPosX(), getCenterPosY());
459 }
460
462 {
463 return sead::Vector2f(
464 getLeftPos(),
465 getUnderPos()
466 );
467 }
468
470 {
471 return sead::Vector2f(
472 getRightPos(),
473 getTopPos()
474 );
475 }
476
478 {
479 return mOwner;
480 }
481
482 template <typename T>
483 T* getOwner() const
484 {
485 return sead::DynamicCast<T>(mOwner);
486 }
487
489 {
490 return mDrcTouchPos;
491 }
492
493 const sead::Vector2f& getHitPos() const
494 {
495 return mHitPos;
496 }
497
498 s32 getIndex() const
499 {
500 return static_cast<s32>(mIndex);
501 }
502
503 u8 getLayer() const
504 {
505 return mLayer;
506 }
507
508 void setCallBack(CallBack callback)
509 {
510 mCollisionData.callback = callback;
511 }
512
514 {
515 return mCollisionData.callback;
516 }
517
518 bool isDisableCallback() const
519 {
520 return mInfo & cInfo_NoHit;
521 }
522
524 {
525 mInfo &= ~cInfo_NoHit;
526 }
527
529 {
530 mInfo |= cInfo_NoHit;
531 }
532
533 bool isCollidable() const
534 {
535 return mCollisionMask.getDirect() != 0;
536 }
537
542
544 {
545 return mCollisionData;
546 }
547
548 f32 getDaikei(s32 index) const
549 {
550 return mDaikei[index];
551 }
552
553 void setDaikei(s32 index, f32 daikei)
554 {
555 mDaikei[index] = daikei;
556 }
557
559 {
560 return mMoveX[kind];
561 }
562
564 {
565 return mMoveY[kind];
566 }
567
569 {
570 return sead::BoundBox2f(
571 getMinPos(),
572 getMaxPos()
573 );
574 }
575
576 bool isOverlap(const ActorCollisionCheck& cc_other)
577 {
578 const sead::BoundBox2f& a = getBoundBox();
579 const sead::BoundBox2f& b = cc_other.getBoundBox();
580
581 const sead::Vector2f& min_a = a.getMin();
582 const sead::Vector2f& min_b = b.getMin();
583
584 const sead::Vector2f& max_a = a.getMax();
585 const sead::Vector2f& max_b = b.getMax();
586
587 return min_a.x < max_b.x && max_a.x > min_b.x &&
588 min_a.y < max_b.y && max_a.y > min_b.y;
589 }
590
591private:
593
599 Actor* mFriend; // Collisions with this are ignored
603 TargetKind mHit; // Owner types of others we've collided with
604 DamageFrom mAttacksPerformed; // Attacks performed on non-passive others
605 DamageFrom mAttacksReceived; // Attacks received from non-passive others
615};
616static_assert(sizeof(ActorCollisionCheck) == 0x128);
CcLineKind
Definition ActorCollisionCheck.h:13
@ cCcLineKind_1
Definition ActorCollisionCheck.h:15
@ cCcLineKind_0
Definition ActorCollisionCheck.h:14
@ cCcLineKind_2
Definition ActorCollisionCheck.h:16
Definition ActorCollisionCheck.h:24
const Vec2 & getCenterOffset() const
Definition ActorCollisionCheck.h:260
f32 getHalfSizeY() const
Definition ActorCollisionCheck.h:291
bool isOverlap(const ActorCollisionCheck &cc_other)
Definition ActorCollisionCheck.h:576
CollisionData mCollisionData
Definition ActorCollisionCheck.h:611
void disableCallback()
Definition ActorCollisionCheck.h:528
TargetKind getVsKind() const
Definition ActorCollisionCheck.h:341
Actor * mOwner
Definition ActorCollisionCheck.h:598
sead::BoundBox2f getBoundBox() const
Definition ActorCollisionCheck.h:568
const Vec2 & getHalfSize() const
Definition ActorCollisionCheck.h:301
void setHalfSize(const sead::Vector2f &half_size)
Definition ActorCollisionCheck.h:317
f32 getUnderPos() const
const sead::Vector2f & getDrcTouchPos() const
Definition ActorCollisionCheck.h:488
bool isShapeType(ShapeType type) const
Definition ActorCollisionCheck.h:235
void enableCallback()
Definition ActorCollisionCheck.h:523
f32 getCenterOffsetY() const
Definition ActorCollisionCheck.h:250
f32 getDaikei(s32 index) const
Definition ActorCollisionCheck.h:548
bool isAttack(Attack attack) const
Definition ActorCollisionCheck.h:368
bool hasDamage(DamageFrom vs_damage) const
Definition ActorCollisionCheck.h:393
ShapeType
Definition ActorCollisionCheck.h:34
@ cShapeType_Box
Definition ActorCollisionCheck.h:35
@ cShapeType_DaikeiLR
Definition ActorCollisionCheck.h:38
@ cShapeType_DaikeiUD
Definition ActorCollisionCheck.h:37
@ cShapeType_Circle
Definition ActorCollisionCheck.h:36
f32 getHalfSizeX() const
Definition ActorCollisionCheck.h:281
Status getStatus() const
Definition ActorCollisionCheck.h:398
void setIndex(u32 index)
Definition ActorCollisionCheck.h:423
void setCenterOffsetY(f32 center_offset_y)
Definition ActorCollisionCheck.h:255
ActorCollisionDrcTouchCallback * getDrcTouchCallback() const
Definition ActorCollisionCheck.h:538
f32 getTopPos() const
u8 getLayer() const
Definition ActorCollisionCheck.h:503
Info
Definition ActorCollisionCheck.h:199
@ cInfo_NoHit
Definition ActorCollisionCheck.h:200
void offVsKind(TargetKind vs_kind)
List::Node mExecuteNode
Definition ActorCollisionCheck.h:594
f32 getRightPos() const
void setCenterOffset(f32 center_offset_x, f32 center_offset_y)
Definition ActorCollisionCheck.h:270
void setHalfSizeY(f32 half_size_y)
Definition ActorCollisionCheck.h:296
DamageFrom mAttacksPerformed
Definition ActorCollisionCheck.h:604
void setHalfSize(f32 half_size_x, f32 half_size_y)
Definition ActorCollisionCheck.h:311
sead::Vector2f getCenterPos() const
Definition ActorCollisionCheck.h:456
List::Node mTouchDrcCheckNode
Definition ActorCollisionCheck.h:597
void setHalfSize(const Vec2 &half_size)
Definition ActorCollisionCheck.h:306
bool hasStatus(Status status)
Definition ActorCollisionCheck.h:418
void setCenterOffset(const Vec2 &center_offset)
Definition ActorCollisionCheck.h:265
void setStatus(Status status)
Definition ActorCollisionCheck.h:403
void(* CallBack)(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other)
Definition ActorCollisionCheck.h:179
ShapeType getShapeType() const
Definition ActorCollisionCheck.h:225
bool hasVsKind(TargetKind vs_kind) const
Definition ActorCollisionCheck.h:353
s32 getIndex() const
Definition ActorCollisionCheck.h:498
void onDamage(DamageFrom vs_damage)
Definition ActorCollisionCheck.h:383
f32 getRevisionY(Kind kind) const
Definition ActorCollisionCheck.h:563
void offStatus(Status status)
Definition ActorCollisionCheck.h:413
Kind getKind() const
Definition ActorCollisionCheck.h:328
void set(Actor *owner, const CollisionData &collision_data, ActorCollisionDrcTouchCallback *drc_touch_callback=nullptr)
Kind
Definition ActorCollisionCheck.h:43
@ cKind_Unk14
Definition ActorCollisionCheck.h:58
@ cKind_Item
Definition ActorCollisionCheck.h:49
@ cKind_Unk12
Definition ActorCollisionCheck.h:56
@ cKind_PlayerAttack
Definition ActorCollisionCheck.h:45
@ cKind_Yoshi
Definition ActorCollisionCheck.h:46
@ cKind_Num
Definition ActorCollisionCheck.h:59
@ cKind_PlayerBody
Definition ActorCollisionCheck.h:44
@ cKind_Balloon
Definition ActorCollisionCheck.h:48
@ cKind_Tama
Definition ActorCollisionCheck.h:50
@ cKind_DrcTouch
Definition ActorCollisionCheck.h:55
@ cKind_ChibiYoshi
Definition ActorCollisionCheck.h:53
@ cKind_GoalPole
Definition ActorCollisionCheck.h:52
@ cKind_Enemy
Definition ActorCollisionCheck.h:47
@ cKind_Unk13
Definition ActorCollisionCheck.h:57
@ cKind_Unk10
Definition ActorCollisionCheck.h:54
@ cKind_Killer
Definition ActorCollisionCheck.h:51
void setDamage(DamageFrom vs_damage)
Definition ActorCollisionCheck.h:378
u8 mInfo
Definition ActorCollisionCheck.h:609
void setLine(const sead::BitFlag8 &line_kind)
Definition ActorCollisionCheck.h:428
List::Node mTouchDrcHoldNode
Definition ActorCollisionCheck.h:596
bool isDisableCallback() const
Definition ActorCollisionCheck.h:518
u8 mLayer
Definition ActorCollisionCheck.h:608
f32 getRevisionX(Kind kind) const
Definition ActorCollisionCheck.h:558
const CollisionData & getCollisionData() const
Definition ActorCollisionCheck.h:543
void onStatus(Status status)
Definition ActorCollisionCheck.h:408
void setKind(Kind kind)
Actor * getOwner() const
Definition ActorCollisionCheck.h:477
ActorCollisionDrcTouchCallback * mDrcTouchCallback
Definition ActorCollisionCheck.h:610
void setAttack(Attack attack)
Definition ActorCollisionCheck.h:363
void setCenterOffset(const sead::Vector2f &center_offset)
Definition ActorCollisionCheck.h:276
void setDaikei(s32 index, f32 daikei)
Definition ActorCollisionCheck.h:553
void setVsKind(TargetKind vs_kind)
f32 getLeftPos() const
sead::Vector2f mDrcTouchPos
Definition ActorCollisionCheck.h:601
f32 getCenterOffsetX() const
Definition ActorCollisionCheck.h:240
sead::Vector2f getMaxPos() const
Definition ActorCollisionCheck.h:469
sead::UnsafeArray< f32, 4 > mDaikei
Definition ActorCollisionCheck.h:612
void set(Actor *owner, const CollisionData &collision_data, const sead::BitFlag8 &collision_mask, ActorCollisionDrcTouchCallback *drc_touch_callback=nullptr)
void setCenterOffsetX(f32 center_offset_x)
Definition ActorCollisionCheck.h:245
LineNodeMgr< ActorCollisionCheck > List
Definition ActorCollisionCheck.h:592
void setShapeType(ShapeType type)
Definition ActorCollisionCheck.h:230
sead::UnsafeArray< f32, cKind_Num > mMoveX
Definition ActorCollisionCheck.h:613
Attack
Definition ActorCollisionCheck.h:90
@ cAttack_ChibiYoshiAwa
Definition ActorCollisionCheck.h:115
@ cAttack_Spin
Definition ActorCollisionCheck.h:103
@ cAttack_Unk24
Definition ActorCollisionCheck.h:116
@ cAttack_YoshiFire
Definition ActorCollisionCheck.h:112
@ cAttack_Shell
Definition ActorCollisionCheck.h:101
@ cAttack_None
Definition ActorCollisionCheck.h:91
@ cAttack_Cannon
Definition ActorCollisionCheck.h:109
@ cAttack_SpinLiftUp
Definition ActorCollisionCheck.h:110
@ cAttack_PenguinSlip
Definition ActorCollisionCheck.h:102
@ cAttack_Unk27
Definition ActorCollisionCheck.h:119
@ cAttack_ChibiYoshiLight
Definition ActorCollisionCheck.h:118
@ cAttack_NetPunch
Definition ActorCollisionCheck.h:100
@ cAttack_Explode
Definition ActorCollisionCheck.h:106
@ cAttack_Intermittent
Definition ActorCollisionCheck.h:114
@ cAttack_Unk25
Definition ActorCollisionCheck.h:117
@ cAttack_IceBreak
Definition ActorCollisionCheck.h:96
@ cAttack_KoopaFire
Definition ActorCollisionCheck.h:98
@ cAttack_YoshiBullet
Definition ActorCollisionCheck.h:111
@ cAttack_Star
Definition ActorCollisionCheck.h:95
@ cAttack_YoshiEat
Definition ActorCollisionCheck.h:107
@ cAttack_Slip
Definition ActorCollisionCheck.h:97
@ cAttack_YoshiMouth
Definition ActorCollisionCheck.h:108
@ cAttack_IceBall
Definition ActorCollisionCheck.h:94
@ cAttack_FireBall
Definition ActorCollisionCheck.h:93
@ cAttack_HipAttack
Definition ActorCollisionCheck.h:99
@ cAttack_YoshiIce
Definition ActorCollisionCheck.h:113
@ cAttack_SpinFall
Definition ActorCollisionCheck.h:105
sead::Vector2f mHitPos
Definition ActorCollisionCheck.h:602
void onVsKind(TargetKind vs_kind)
DamageFrom
Definition ActorCollisionCheck.h:125
@ cDamageFrom_IceBreak
Definition ActorCollisionCheck.h:129
@ cDamageFrom_Unk27
Definition ActorCollisionCheck.h:152
@ cDamageFrom_Intermittent
Definition ActorCollisionCheck.h:147
@ cDamageFrom_SpinLiftUp
Definition ActorCollisionCheck.h:143
@ cDamageFrom_NetPunch
Definition ActorCollisionCheck.h:133
@ cDamageFrom_ChibiYoshiAwa
Definition ActorCollisionCheck.h:148
@ cDamageFrom_Cannon
Definition ActorCollisionCheck.h:142
@ cDamageFrom_Unk24
Definition ActorCollisionCheck.h:149
@ cDamageFrom_YoshiBullet
Definition ActorCollisionCheck.h:144
@ cDamageFrom_Explode
Definition ActorCollisionCheck.h:139
@ cDamageFrom_IceBall
Definition ActorCollisionCheck.h:127
@ cDamageFrom_Star
Definition ActorCollisionCheck.h:128
@ cDamageFrom_All
Definition ActorCollisionCheck.h:155
@ cDamageFrom_HipAttack
Definition ActorCollisionCheck.h:132
@ cDamageFrom_SpinFall
Definition ActorCollisionCheck.h:138
@ cDamageFrom_FireBall
Definition ActorCollisionCheck.h:126
@ cDamageFrom_Spin
Definition ActorCollisionCheck.h:136
@ cDamageFrom_PenguinSlip
Definition ActorCollisionCheck.h:135
@ cDamageFrom_YoshiEat
Definition ActorCollisionCheck.h:140
@ cDamageFrom_KoopaFire
Definition ActorCollisionCheck.h:131
@ cDamageFrom_ChibiYoshiLight
Definition ActorCollisionCheck.h:151
@ cDamageFrom_None
Definition ActorCollisionCheck.h:154
@ cDamageFrom_YoshiIce
Definition ActorCollisionCheck.h:146
@ cDamageFrom_YoshiMouth
Definition ActorCollisionCheck.h:141
@ cDamageFrom_Unk25
Definition ActorCollisionCheck.h:150
@ cDamageFrom_YoshiFire
Definition ActorCollisionCheck.h:145
@ cDamageFrom_Slip
Definition ActorCollisionCheck.h:130
@ cDamageFrom_Shell
Definition ActorCollisionCheck.h:134
Status
Definition ActorCollisionCheck.h:160
@ cStatus_NoSameActor
Definition ActorCollisionCheck.h:162
@ cStatus_NoPassInfo
Definition ActorCollisionCheck.h:163
@ cStatus_BurnerKill
Definition ActorCollisionCheck.h:170
@ cStatus_ForceGetRevision
Definition ActorCollisionCheck.h:171
@ cStatus_NoRevision
Definition ActorCollisionCheck.h:161
@ cStatus_None
Definition ActorCollisionCheck.h:175
@ cStatus_NoRevisionEnemy
Definition ActorCollisionCheck.h:172
@ cStatus_NoCheckLimit
Definition ActorCollisionCheck.h:165
@ cStatus_SlideKill
Definition ActorCollisionCheck.h:169
@ cStatus_FireKill
Definition ActorCollisionCheck.h:168
@ cStatus_MoveKill
Definition ActorCollisionCheck.h:173
@ cStatus_NoSameActorGroup
Definition ActorCollisionCheck.h:164
sead::BitFlag8 mCollisionMask
Definition ActorCollisionCheck.h:607
f32 getCenterPosX() const
TargetKind
Definition ActorCollisionCheck.h:65
@ cTargetKind_Balloon
Definition ActorCollisionCheck.h:70
@ cTargetKind_None
Definition ActorCollisionCheck.h:84
@ cTargetKind_Unk10
Definition ActorCollisionCheck.h:76
@ cTargetKind_Player
Definition ActorCollisionCheck.h:82
@ cTargetKind_Unk13
Definition ActorCollisionCheck.h:79
@ cTargetKind_Tama
Definition ActorCollisionCheck.h:72
@ cTargetKind_DrcTouch
Definition ActorCollisionCheck.h:77
@ cTargetKind_Unk14
Definition ActorCollisionCheck.h:80
@ cTargetKind_Item
Definition ActorCollisionCheck.h:71
@ cTargetKind_PlayerAttack
Definition ActorCollisionCheck.h:67
@ cTargetKind_Yoshi
Definition ActorCollisionCheck.h:68
@ cTargetKind_GoalPole
Definition ActorCollisionCheck.h:74
@ cTargetKind_ChibiYoshi
Definition ActorCollisionCheck.h:75
@ cTargetKind_Killer
Definition ActorCollisionCheck.h:73
@ cTargetKind_Enemy
Definition ActorCollisionCheck.h:69
@ cTargetKind_PlayerBody
Definition ActorCollisionCheck.h:66
@ cTargetKind_Unk12
Definition ActorCollisionCheck.h:78
@ cTargetKind_All
Definition ActorCollisionCheck.h:85
Attack getAttack() const
Definition ActorCollisionCheck.h:358
Actor * mFriend
Definition ActorCollisionCheck.h:599
T * getOwner() const
Definition ActorCollisionCheck.h:483
bool isKind(Kind kind) const
Definition ActorCollisionCheck.h:336
void setCallBack(CallBack callback)
Definition ActorCollisionCheck.h:508
const sead::Vector2f & getHitPos() const
Definition ActorCollisionCheck.h:493
TargetKind mHit
Definition ActorCollisionCheck.h:603
void setSizeOffset(const sead::Vector2f &half_size, const sead::Vector2f &center_offset)
Definition ActorCollisionCheck.h:322
f32 getCenterPosY() const
CallBack getCallBack() const
Definition ActorCollisionCheck.h:513
void setHalfSizeX(f32 half_size_x)
Definition ActorCollisionCheck.h:286
void setLayer(u8 layer)
Definition ActorCollisionCheck.h:433
DamageFrom mAttacksReceived
Definition ActorCollisionCheck.h:605
List::Node mCreateNode
Definition ActorCollisionCheck.h:595
static bool checkCollision(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other)
void offDamage(DamageFrom vs_damage)
Definition ActorCollisionCheck.h:388
sead::Vector2f getMinPos() const
Definition ActorCollisionCheck.h:461
void setDrcTouchCallback(ActorCollisionDrcTouchCallback *drc_touch_callback)
Definition ActorCollisionCheck.h:438
bool isCollidable() const
Definition ActorCollisionCheck.h:533
u32 _48
Definition ActorCollisionCheck.h:600
DamageFrom getDamage() const
Definition ActorCollisionCheck.h:373
void set(Actor *owner, const CollisionData &collision_data, const sead::BitFlag8 &collision_mask, u8 layer, ActorCollisionDrcTouchCallback *drc_touch_callback=nullptr)
u32 mIndex
Definition ActorCollisionCheck.h:606
sead::UnsafeArray< f32, cKind_Num > mMoveY
Definition ActorCollisionCheck.h:614
~ActorCollisionCheck() override
Definition ActorCollisionDrcTouchCallback.h:10
Definition Actor.h:24
Definition ActorCollisionCheck.h:182
DamageFrom vs_damage
Definition ActorCollisionCheck.h:189
Vec2 center_offset
Definition ActorCollisionCheck.h:183
Vec2 half_size
Definition ActorCollisionCheck.h:184
Kind kind
Definition ActorCollisionCheck.h:186
TargetKind vs_kind
Definition ActorCollisionCheck.h:188
static const CollisionData cDefault
Definition ActorCollisionCheck.h:194
ShapeType shape_type
Definition ActorCollisionCheck.h:185
CallBack callback
Definition ActorCollisionCheck.h:191
Attack attack
Definition ActorCollisionCheck.h:187
Status status
Definition ActorCollisionCheck.h:190
Definition ActorCollisionCheck.h:27
f32 x
Definition ActorCollisionCheck.h:28
f32 y
Definition ActorCollisionCheck.h:29