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