1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-07-03 06:24:30 +00:00

Colliders: change "touch, bump" to AT and AC (elems) (#1637)

* toucherFlags, bumperFlags -> atElemFlags, acElemFlags

* TOUCH_ -> ATELEM_

* BUMP_ -> ACELEM_

* ColliderElementTouch,Bump -> ColliderElementDamageInfoAT,AC

* toucher,bumper -> atDmgInfo,acDmgInfo

* Update docs and zcolchk funcs names

* run formatter

* remove the last mentions of "bump" for colliders

* Update renamed functions in disasm
This commit is contained in:
Dragorn421 2024-03-05 01:33:08 +01:00 committed by GitHub
parent bf37ad1368
commit 68a86d2d00
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
253 changed files with 1509 additions and 1509 deletions

View file

@ -36,8 +36,8 @@ static ColliderQuadInit sQuadInit = {
ELEMTYPE_UNK2,
{ 0x00000080, 0x00, 0x01 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_NEAREST | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_NEAREST | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_NONE,
},
{ { { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f } } },
@ -154,7 +154,7 @@ void ArmsHook_Shoot(ArmsHook* this, PlayState* play) {
Actor* touchedActor = this->collider.base.at;
if ((touchedActor->update != NULL) && (touchedActor->flags & (ACTOR_FLAG_9 | ACTOR_FLAG_10))) {
if (this->collider.elem.atHitElem->bumperFlags & BUMP_HOOKABLE) {
if (this->collider.elem.atHitElem->acElemFlags & ACELEM_HOOKABLE) {
ArmsHook_AttachHookToActor(this, touchedActor);
if (CHECK_FLAG_ALL(touchedActor->flags, ACTOR_FLAG_10)) {
func_80865044(this);

View file

@ -68,8 +68,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x04 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_HARD,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_HARD,
ACELEM_NONE,
OCELEM_NONE,
},
{ 0x00BB, 0x0050, 0x0000, { 0 } },

View file

@ -60,8 +60,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0xEFC1FFFE, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
},
{ 0, { { 0, 120, 0 }, 370 }, 100 },

View file

@ -26,8 +26,8 @@ static ColliderTrisElementInit sTrisElementsInit[3] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x40000048, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ { { -70.0f, 176.0f, 0.0f }, { -70.0f, -4.0f, 0.0f }, { 0.0f, -4.0f, 30.0f } } },
@ -37,8 +37,8 @@ static ColliderTrisElementInit sTrisElementsInit[3] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x40000048, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ { { 70.0f, 176.0f, 0.0f }, { -70.0f, 176.0f, 0.0f }, { 0.0f, -4.0f, 30.0f } } },
@ -48,8 +48,8 @@ static ColliderTrisElementInit sTrisElementsInit[3] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x40000048, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ { { 70.0f, -4.0f, 0.0f }, { 70.0f, 176.0f, 0.0f }, { 0.0f, -4.0f, 30.0f } } },

View file

@ -51,8 +51,8 @@ static ColliderQuadInit sQuadInit = {
ELEMTYPE_UNK0,
{ 0x00000048, 0x00, 0x00 },
{ 0x00000048, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ { { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f } } },

View file

@ -43,8 +43,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK2,
{ 0x00000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ 245, 180, -400, { 0, 0, 0 } },

View file

@ -45,8 +45,8 @@ static ColliderCylinderInit sColCylinderInitMain = {
ELEMTYPE_UNK2,
{ 0x00000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ 80, 30, 80, { 0, 0, 0 } },
@ -65,8 +65,8 @@ static ColliderCylinderInit sColCylinderInitLeftRight = {
ELEMTYPE_UNK2,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_NONE,
BUMP_NONE,
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
},
{ 50, 60, 280, { 0, 0, 0 } },

View file

@ -44,8 +44,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x00 },
{ 0x00020800, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ 50, 20, 20, { 0, 0, 0 } },

View file

@ -44,8 +44,8 @@ static ColliderTrisElementInit sTrisElementsInit[4] = {
ELEMTYPE_UNK2,
{ 0x20000000, 0x00, 0x04 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_NONE,
},
{ { { 365.0f, 45.0f, 27.0f }, { 130.0f, 45.0f, 150.0f }, { 290.0f, 45.0f, 145.0f } } },
@ -55,8 +55,8 @@ static ColliderTrisElementInit sTrisElementsInit[4] = {
ELEMTYPE_UNK2,
{ 0x20000000, 0x00, 0x04 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_NONE,
},
{ { { 250.0f, 45.0f, 90.0f }, { 50.0f, 45.0f, 80.0f }, { 160.0f, 45.0f, 160.0f } } },
@ -66,8 +66,8 @@ static ColliderTrisElementInit sTrisElementsInit[4] = {
ELEMTYPE_UNK2,
{ 0x20000000, 0x00, 0x04 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_NONE,
},
{ { { -305.0f, 33.0f, -7.0f }, { -220.0f, 33.0f, 40.0f }, { -130.0f, 33.0f, -5.0f } } },
@ -77,8 +77,8 @@ static ColliderTrisElementInit sTrisElementsInit[4] = {
ELEMTYPE_UNK2,
{ 0x20000000, 0x00, 0x04 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_NONE,
},
{ { { -190.0f, 33.0f, 40.0f }, { -30.0f, 33.0f, 15.0f }, { -70.0f, 33.0f, -30.0f } } },
@ -111,8 +111,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_NONE,
BUMP_NONE,
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
},
{ 80, 130, 0, { 0, 0, 0 } },

View file

@ -54,8 +54,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x04 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 30, 90, 0, { 0, 0, 0 } },
@ -67,8 +67,8 @@ static ColliderTrisElementInit sTrisElementsInit[2] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00020000, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ { { 1800.0f, 1200.0f, 0.0f }, { -1800.0f, 1200.0f, 0.0f }, { -1800.0f, 0.0f, 0.0f } } },
@ -78,8 +78,8 @@ static ColliderTrisElementInit sTrisElementsInit[2] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00020000, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ { { 1800.0f, 1200.0f, 0.0f }, { -1800.0f, 0.0f, 0.0f }, { 1800.0f, 0.0f, 0.0f } } },
@ -166,8 +166,8 @@ void BgHakaTrap_Init(Actor* thisx, PlayState* play) {
this->colliderCylinder.dim.radius = 18;
this->colliderCylinder.dim.height = 115;
this->colliderCylinder.elem.toucherFlags &= ~TOUCH_SFX_NORMAL;
this->colliderCylinder.elem.toucherFlags |= TOUCH_SFX_WOOD;
this->colliderCylinder.elem.atElemFlags &= ~ATELEM_SFX_NORMAL;
this->colliderCylinder.elem.atElemFlags |= ATELEM_SFX_WOOD;
this->actionFunc = func_808801B8;
}

View file

@ -43,8 +43,8 @@ static ColliderCylinderInit sPotColliderInit = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000008, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ 25, 60, 30, { 0, 0, 0 } },
@ -63,8 +63,8 @@ static ColliderCylinderInit sFlamesColliderInit = {
ELEMTYPE_UNK0,
{ 0x20000000, 0x01, 0x04 },
{ 0x00000008, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NONE,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_ON,
},
{ 60, 45, 235, { 0, 0, 0 } },

View file

@ -45,8 +45,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000008, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ 5, 60, 0, { 0, 0, 0 } },

View file

@ -42,8 +42,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK0,
{ 0x20000000, 0x01, 0x04 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NONE,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_ON,
},
{ 81, 144, 0, { 0, 0, 0 } },

View file

@ -35,8 +35,8 @@ static ColliderTrisElementInit sTrisElementInit[4] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000040, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON | BUMP_NO_AT_INFO | BUMP_NO_DAMAGE | BUMP_NO_SWORD_SFX | BUMP_NO_HITMARK,
ATELEM_NONE,
ACELEM_ON | ACELEM_NO_AT_INFO | ACELEM_NO_DAMAGE | ACELEM_NO_SWORD_SFX | ACELEM_NO_HITMARK,
OCELEM_NONE,
},
{ { { 305.0f, 0.0f, -300.0f }, { 305.0f, 600.0f, -300.0f }, { 305.0f, 600.0f, 300.0f } } },
@ -46,8 +46,8 @@ static ColliderTrisElementInit sTrisElementInit[4] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000040, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON | BUMP_NO_AT_INFO | BUMP_NO_DAMAGE | BUMP_NO_SWORD_SFX | BUMP_NO_HITMARK,
ATELEM_NONE,
ACELEM_ON | ACELEM_NO_AT_INFO | ACELEM_NO_DAMAGE | ACELEM_NO_SWORD_SFX | ACELEM_NO_HITMARK,
OCELEM_NONE,
},
{ { { 305.0f, 0.0f, -300.0f }, { 305.0f, 600.0f, 300.0f }, { 305.0f, 0.0f, 300.0f } } },
@ -57,8 +57,8 @@ static ColliderTrisElementInit sTrisElementInit[4] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000040, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON | BUMP_NO_AT_INFO | BUMP_NO_DAMAGE | BUMP_NO_SWORD_SFX | BUMP_NO_HITMARK,
ATELEM_NONE,
ACELEM_ON | ACELEM_NO_AT_INFO | ACELEM_NO_DAMAGE | ACELEM_NO_SWORD_SFX | ACELEM_NO_HITMARK,
OCELEM_NONE,
},
{ { { -305.0f, 0.0f, -300.0f }, { -305.0f, 600.0f, 300.0f }, { -305.0f, 600.0f, -300.0f } } },
@ -68,8 +68,8 @@ static ColliderTrisElementInit sTrisElementInit[4] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000040, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON | BUMP_NO_AT_INFO | BUMP_NO_DAMAGE | BUMP_NO_SWORD_SFX | BUMP_NO_HITMARK,
ATELEM_NONE,
ACELEM_ON | ACELEM_NO_AT_INFO | ACELEM_NO_DAMAGE | ACELEM_NO_SWORD_SFX | ACELEM_NO_HITMARK,
OCELEM_NONE,
},
{ { { -305.0f, 0.0f, -300.0f }, { -305.0f, 0.0f, 300.0f }, { -305.0f, 600.0f, 300.0f } } },
@ -129,8 +129,8 @@ void BgHidanDalm_Wait(BgHidanDalm* this, PlayState* play) {
(player->meleeWeaponAnimation == PLAYER_MWA_HAMMER_FORWARD ||
player->meleeWeaponAnimation == PLAYER_MWA_HAMMER_SIDE)) {
this->collider.base.acFlags &= ~AC_HIT;
if ((this->collider.elements[0].base.bumperFlags & BUMP_HIT) ||
(this->collider.elements[1].base.bumperFlags & BUMP_HIT)) {
if ((this->collider.elements[0].base.acElemFlags & ACELEM_HIT) ||
(this->collider.elements[1].base.acElemFlags & ACELEM_HIT)) {
this->dyna.actor.world.rot.y -= 0x4000;
} else {
this->dyna.actor.world.rot.y += 0x4000;

View file

@ -46,8 +46,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK0,
{ 0x20000000, 0x01, 0x04 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NONE,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_ON,
},
{ 30, 83, 0, { 0 } },

View file

@ -56,8 +56,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK0,
{ 0x20000000, 0x01, 0x04 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NONE,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_ON,
},
{ 30, 130, 0, { 0, 0, 0 } },

View file

@ -31,8 +31,8 @@ static ColliderTrisElementInit sTrisElementsInit[2] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x40000040, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ { { -20.0f, 3.0f, -20.0f }, { -20.0f, 3.0f, 20.0f }, { 20.0f, 3.0f, 20.0f } } },
@ -42,8 +42,8 @@ static ColliderTrisElementInit sTrisElementsInit[2] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x40000040, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ { { 20.0f, 3.0f, 20.0f }, { 20.0f, 3.0f, -20.0f }, { -20.0f, 3.0f, -20.0f } } },

View file

@ -36,8 +36,8 @@ static ColliderTrisElementInit sTrisElementsInit[2] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x40000040, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON | BUMP_NO_AT_INFO | BUMP_NO_DAMAGE | BUMP_NO_SWORD_SFX | BUMP_NO_HITMARK,
ATELEM_NONE,
ACELEM_ON | ACELEM_NO_AT_INFO | ACELEM_NO_DAMAGE | ACELEM_NO_SWORD_SFX | ACELEM_NO_HITMARK,
OCELEM_NONE,
},
{ { { -40.0f, 3.0f, -40.0f }, { -40.0f, 3.0f, 40.0f }, { 40.0f, 3.0f, 40.0f } } },
@ -47,8 +47,8 @@ static ColliderTrisElementInit sTrisElementsInit[2] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x40000040, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON | BUMP_NO_AT_INFO | BUMP_NO_DAMAGE | BUMP_NO_SWORD_SFX | BUMP_NO_HITMARK,
ATELEM_NONE,
ACELEM_ON | ACELEM_NO_AT_INFO | ACELEM_NO_DAMAGE | ACELEM_NO_SWORD_SFX | ACELEM_NO_HITMARK,
OCELEM_NONE,
},
{ { { 40.0f, 3.0f, 40.0f }, { 40.0f, 3.0f, -40.0f }, { -40.0f, 3.0f, -40.0f } } },

View file

@ -46,8 +46,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[1] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000008, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ 0, { { 0, 0, 0 }, 100 }, 100 },

View file

@ -54,8 +54,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK0,
{ 0x20000000, 0x01, 0x04 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NONE,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_NONE,
},
{ 45, 77, -40, { 3310, 120, 0 } },

View file

@ -32,8 +32,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = {
ELEMTYPE_UNK0,
{ 0x20000000, 0x01, 0x04 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NONE,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_NONE,
},
{ 1, { { 0, 30, 40 }, 25 }, 100 },
@ -43,8 +43,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = {
ELEMTYPE_UNK0,
{ 0x20000000, 0x01, 0x04 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NONE,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_NONE,
},
{ 1, { { -35, 32, 77 }, 32 }, 100 },
@ -54,8 +54,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = {
ELEMTYPE_UNK0,
{ 0x20000000, 0x01, 0x04 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NONE,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_NONE,
},
{ 1, { { -80, 35, 130 }, 42 }, 100 },
@ -65,8 +65,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = {
ELEMTYPE_UNK0,
{ 0x20000000, 0x01, 0x04 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NONE,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_NONE,
},
{ 1, { { 0, 30, -40 }, 25 }, 100 },
@ -76,8 +76,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = {
ELEMTYPE_UNK0,
{ 0x20000000, 0x01, 0x04 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NONE,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_NONE,
},
{ 1, { { 35, 32, -77 }, 32 }, 100 },
@ -87,8 +87,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = {
ELEMTYPE_UNK0,
{ 0x20000000, 0x01, 0x04 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NONE,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_NONE,
},
{ 1, { { 80, 35, -130 }, 42 }, 100 },

View file

@ -35,8 +35,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = {
ELEMTYPE_UNK0,
{ 0x20000000, 0x01, 0x04 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NONE,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_ON,
},
{ 1, { { 0, 30, 40 }, 23 }, 100 },
@ -46,8 +46,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = {
ELEMTYPE_UNK0,
{ 0x20000000, 0x01, 0x04 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NONE,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_ON,
},
{ 1, { { 0, 32, 87 }, 30 }, 100 },
@ -57,8 +57,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = {
ELEMTYPE_UNK0,
{ 0x20000000, 0x01, 0x04 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NONE,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_ON,
},
{ 1, { { 0, 35, 150 }, 40 }, 100 },
@ -68,8 +68,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = {
ELEMTYPE_UNK0,
{ 0x20000000, 0x01, 0x04 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NONE,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_ON,
},
{ 1, { { 0, 30, 40 }, 23 }, 100 },
@ -79,8 +79,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = {
ELEMTYPE_UNK0,
{ 0x20000000, 0x01, 0x04 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NONE,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_ON,
},
{ 1, { { 0, 32, 87 }, 30 }, 100 },
@ -90,8 +90,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = {
ELEMTYPE_UNK0,
{ 0x20000000, 0x01, 0x04 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NONE,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_ON,
},
{ 1, { { 0, 35, 150 }, 40 }, 100 },
@ -140,7 +140,7 @@ void func_8088CEC0(BgHidanSekizou* this, s32 arg1, s16 arg2) {
element->dim.worldSphere.center.y = (s16)this->dyna.actor.home.pos.y + element->dim.modelSphere.center.y;
element->dim.worldSphere.center.z = this->dyna.actor.home.pos.z - (sp30 * element->dim.modelSphere.center.x) +
(sp2C * element->dim.modelSphere.center.z);
element->base.toucherFlags |= TOUCH_ON;
element->base.atElemFlags |= ATELEM_ON;
element->base.ocElemFlags |= OCELEM_ON;
}
}
@ -211,7 +211,7 @@ void func_8088D434(BgHidanSekizou* this, PlayState* play) {
}
}
for (i = 3 * phi_s4; i < ARRAY_COUNT(this->elements); i++) {
this->collider.elements[i].base.toucherFlags &= ~TOUCH_ON;
this->collider.elements[i].base.atElemFlags &= ~ATELEM_ON;
this->collider.elements[i].base.ocElemFlags &= ~OCELEM_ON;
}
}

View file

@ -39,8 +39,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[2] = {
ELEMTYPE_UNK0,
{ 0x20000000, 0x01, 0x04 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NONE,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_NONE,
},
{ 1, { { 0, 40, 100 }, 22 }, 100 },
@ -50,8 +50,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[2] = {
ELEMTYPE_UNK0,
{ 0x20000000, 0x01, 0x04 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NONE,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_NONE,
},
{ 1, { { 0, 40, 145 }, 30 }, 100 },

View file

@ -53,8 +53,8 @@ static ColliderCylinderInit sCylinderInit1 = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
},
{ 0, 0, 0, { 0, 0, 0 } },
@ -73,8 +73,8 @@ static ColliderCylinderInit sCylinderInit2 = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x4FC1FFF6, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ 0, 0, 0, { 0, 0, 0 } },

View file

@ -33,8 +33,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x04 },
{ 0x4FC007CA, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_NONE,
},
{ 13, 120, 0, { 0, 0, 0 } },

View file

@ -50,8 +50,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_NONE,
BUMP_NONE,
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
},
{ 70, 80, -82, { 0, 0, 0 } },

View file

@ -32,8 +32,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[1] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000008, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
},
{ 0, { { -300, 0, 0 }, 40 }, 100 },

View file

@ -34,8 +34,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000008, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ 0, { { 0, 0, 0 }, 50 }, 100 },

View file

@ -41,8 +41,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = {
ELEMTYPE_UNK0,
{ 0x20000000, 0x00, 0x04 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
},
{ 0, { { 0, 0, 0 }, 58 }, 100 },

View file

@ -40,8 +40,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[1] = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x04 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_NONE,
},
{ 0, { { 0, 0, 0 }, 10 }, 100 },

View file

@ -51,8 +51,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ 30, 150, 0, { 0, 0, 0 } },

View file

@ -38,8 +38,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00200000, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ 0, { { 0, -600, -200 }, 60 }, 100 },

View file

@ -34,8 +34,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[1] = {
ELEMTYPE_UNK4,
{ 0x00000000, 0x00, 0x00 },
{ 0x0001F820, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ 1, { { 0, 0, 0 }, 14 }, 100 },

View file

@ -37,8 +37,8 @@ static ColliderTrisElementInit sTrisElementInitFloor[2] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000008, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ { { -40.0f, 0.0f, -40.0f }, { -40.0f, 0.0f, 40.0f }, { 40.0f, 0.0f, 40.0f } } },
@ -48,8 +48,8 @@ static ColliderTrisElementInit sTrisElementInitFloor[2] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000008, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ { { -40.0f, 0.0f, -40.0f }, { 40.0f, 0.0f, 40.0f }, { 40.0f, 0.0f, -40.0f } } },
@ -75,8 +75,8 @@ static ColliderTrisElementInit sTrisElementInitRutoWall[1] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000008, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ { { 0.0f, 116.0f, 0.0f }, { 0.0f, 0.0f, 70.0f }, { 0.0f, 0.0f, -70.0f } } },
@ -102,8 +102,8 @@ static ColliderTrisElementInit sTrisElementInitWall[2] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000008, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ { { 0.0f, 120.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 60.0f, 0.0f, 0.0f } } },
@ -113,8 +113,8 @@ static ColliderTrisElementInit sTrisElementInitWall[2] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000008, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ { { 0.0f, 120.0f, 0.0f }, { 60.0f, 0.0f, 0.0f }, { 60.0f, 120.0f, 0.0f } } },

View file

@ -42,8 +42,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[1] = {
ELEMTYPE_UNK4,
{ 0x00000000, 0x00, 0x00 },
{ 0x0001F820, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ 0, { { 0, 0, 0 }, 25 }, 100 },

View file

@ -46,8 +46,8 @@ static ColliderTrisElementInit sTrisElementsInit[2] = {
ELEMTYPE_UNK4,
{ 0x00000000, 0x00, 0x00 },
{ 0x0001F820, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ { { 25.0f, 33.0f, 0.0f }, { -25.0f, 33.0f, 0.0f }, { -25.0f, -33.0f, 0.0f } } },
@ -57,8 +57,8 @@ static ColliderTrisElementInit sTrisElementsInit[2] = {
ELEMTYPE_UNK4,
{ 0x00000000, 0x00, 0x00 },
{ 0x0001F820, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ { { 25.0f, 33.0f, 0.0f }, { -25.0f, -33.0f, 0.0f }, { 25.0f, -33.0f, 0.0f } } },

View file

@ -37,8 +37,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
},
{ 12, 60, 0, { 0, 0, 0 } },

View file

@ -62,8 +62,8 @@ static ColliderJntSphElementInit sJntSphItemsInit[1] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000080, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON | BUMP_HOOKABLE,
ATELEM_NONE,
ACELEM_ON | ACELEM_HOOKABLE,
OCELEM_ON,
},
{ 1, { { 0, 0, -160 }, 18 }, 100 },

View file

@ -37,8 +37,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000008, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ 0, { { 0, 50, 50 }, 70 }, 100 },
@ -48,8 +48,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000008, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ 0, { { -100, 50, 50 }, 70 }, 100 },
@ -59,8 +59,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000008, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ 0, { { 100, 50, 50 }, 70 }, 100 },

View file

@ -41,8 +41,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000008, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ 40, 80, 0, { 2259, 108, -1580 } },

View file

@ -39,8 +39,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x4FC1FFF6, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
},
{ 0, { { 0, 50, 0 }, 288 }, 100 },
@ -73,8 +73,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000008, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ 190, 80, 0, { 10, 0, 50 } },

View file

@ -40,8 +40,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[2] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_NONE,
BUMP_NONE,
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
},
{ 0, { { 0, 2040, 0 }, 54 }, 100 },
@ -51,8 +51,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[2] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000008, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ 1, { { 0, 1400, 0 }, 13 }, 100 },

View file

@ -47,8 +47,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_NONE,
BUMP_NONE,
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
},
{ 10, 70, 0, { 0 } },

View file

@ -38,8 +38,8 @@ static ColliderTrisElementInit sTrisElementsInit[2] = {
ELEMTYPE_UNK0,
{ 0x20000000, 0x00, 0x04 },
{ 0x00000004, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_WOOD,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_WOOD,
ACELEM_ON,
OCELEM_NONE,
},
{ { { 220.0f, -10.0f, 0.0f }, { 220.0f, 10.0f, 0.0f }, { -220.0f, 10.0f, 0.0f } } },
@ -49,8 +49,8 @@ static ColliderTrisElementInit sTrisElementsInit[2] = {
ELEMTYPE_UNK0,
{ 0x20000000, 0x00, 0x04 },
{ 0x00000004, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_WOOD,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_WOOD,
ACELEM_ON,
OCELEM_NONE,
},
{ { { 16.0f, 0.0f, 0.0f }, { 16.0f, 135.0f, 0.0f }, { -16.0f, 135.0f, 0.0f } } },

View file

@ -42,8 +42,8 @@ static ColliderTrisElementInit sTrisItemsInit[2] = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x00 },
{ 0x00020800, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ { { 75.0f, -8.0f, 75.0f }, { -75.0f, -8.0f, 75.0f }, { -75.0f, -8.0f, -75.0f } } },
@ -53,8 +53,8 @@ static ColliderTrisElementInit sTrisItemsInit[2] = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x00 },
{ 0x00020800, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ { { 140.0f, 288.8f, 0.0f }, { -140.0f, 288.0f, 0.0f }, { -140.0f, 0.0f, 0.0f } } },

View file

@ -1239,12 +1239,12 @@ void BossDodongo_UpdateDamage(BossDodongo* this, PlayState* play) {
if (this->unk_1C0 == 0) {
if (this->actionFunc == BossDodongo_Inhale) {
for (i = 0; i < 19; i++) {
if (this->collider.elements[i].base.bumperFlags & BUMP_HIT) {
if (this->collider.elements[i].base.acElemFlags & ACELEM_HIT) {
acHitElem = this->collider.elements[i].base.acHitElem;
if ((acHitElem->toucher.dmgFlags & DMG_BOOMERANG) ||
(acHitElem->toucher.dmgFlags & DMG_SLINGSHOT)) {
this->collider.elements[i].base.bumperFlags &= ~BUMP_HIT;
if ((acHitElem->atDmgInfo.dmgFlags & DMG_BOOMERANG) ||
(acHitElem->atDmgInfo.dmgFlags & DMG_SLINGSHOT)) {
this->collider.elements[i].base.acElemFlags &= ~ACELEM_HIT;
this->unk_1C0 = 2;
BossDodongo_SetupWalk(this);
this->unk_1DA = 0x32;
@ -1254,11 +1254,11 @@ void BossDodongo_UpdateDamage(BossDodongo* this, PlayState* play) {
}
}
if (this->collider.elements[0].base.bumperFlags & BUMP_HIT) {
this->collider.elements[0].base.bumperFlags &= ~BUMP_HIT;
if (this->collider.elements[0].base.acElemFlags & ACELEM_HIT) {
this->collider.elements[0].base.acElemFlags &= ~ACELEM_HIT;
acHitElem = this->collider.elements[0].base.acHitElem;
if ((this->actionFunc == BossDodongo_Vulnerable) || (this->actionFunc == BossDodongo_LayDown)) {
swordDamage = damage = CollisionCheck_GetSwordDamage(acHitElem->toucher.dmgFlags);
swordDamage = damage = CollisionCheck_GetSwordDamage(acHitElem->atDmgInfo.dmgFlags);
if (damage != 0) {
Actor_PlaySfx(&this->actor, NA_SE_EN_DODO_K_DAMAGE);

View file

@ -16,8 +16,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK3,
{ 0xFFCFFFFF, 0x00, 0x04 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 7, { { 8500, 1200, 0 }, 40 }, 100 },
@ -27,8 +27,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK3,
{ 0xFFCFFFFF, 0x00, 0x04 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 33, { { 2000, -2000, 0 }, 60 }, 100 },
@ -38,8 +38,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x04 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 1, { { 0, 0, 0 }, 60 }, 100 },
@ -49,8 +49,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x04 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 15, { { 0, 0, 0 }, 20 }, 100 },
@ -60,8 +60,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x04 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 16, { { 0, 0, 0 }, 30 }, 100 },
@ -71,8 +71,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x04 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 17, { { 0, 0, 0 }, 40 }, 100 },
@ -82,8 +82,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x04 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 22, { { 0, 0, 0 }, 30 }, 100 },
@ -93,8 +93,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x04 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 23, { { 0, 0, 0 }, 20 }, 100 },
@ -104,8 +104,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x04 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 24, { { 0, 0, 0 }, 30 }, 100 },
@ -115,8 +115,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x04 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 29, { { 0, 0, 0 }, 30 }, 100 },
@ -126,8 +126,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x04 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 30, { { 0, 0, 0 }, 30 }, 100 },
@ -137,8 +137,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x04 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 31, { { 0, 0, 0 }, 30 }, 100 },
@ -148,8 +148,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x04 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 32, { { 0, 0, 0 }, 50 }, 100 },
@ -159,8 +159,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x04 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 38, { { 0, 0, 0 }, 30 }, 100 },
@ -170,8 +170,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x04 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 39, { { 0, 0, 0 }, 30 }, 100 },
@ -181,8 +181,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x04 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 40, { { 0, 0, 0 }, 40 }, 100 },
@ -192,8 +192,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x04 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 45, { { 0, 0, 0 }, 30 }, 100 },
@ -203,8 +203,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x04 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 46, { { 0, 0, 0 }, 30 }, 100 },
@ -214,8 +214,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x04 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 47, { { 0, 0, 0 }, 40 }, 100 },

View file

@ -1287,11 +1287,11 @@ void BossFd_CollisionCheck(BossFd* this, PlayState* play) {
ColliderJntSphElement* headCollider = &this->collider.elements[0];
ColliderElement* acHitElem;
if (headCollider->base.bumperFlags & BUMP_HIT) {
headCollider->base.bumperFlags &= ~BUMP_HIT;
if (headCollider->base.acElemFlags & ACELEM_HIT) {
headCollider->base.acElemFlags &= ~ACELEM_HIT;
acHitElem = headCollider->base.acHitElem;
this->actor.colChkInfo.health -= 2;
if (acHitElem->toucher.dmgFlags & DMG_ARROW_ICE) {
if (acHitElem->atDmgInfo.dmgFlags & DMG_ARROW_ICE) {
this->actor.colChkInfo.health -= 2;
}
if ((s8)this->actor.colChkInfo.health <= 2) {

View file

@ -6,8 +6,8 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = {
ELEMTYPE_UNK3,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCDFFFE, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 0, { { 0, 0, 0 }, 20 }, 100 },
@ -17,8 +17,8 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCDFFFE, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
},
{ 1, { { 0, 0, 0 }, 20 }, 100 },
@ -28,8 +28,8 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCDFFFE, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
},
{ 2, { { 0, 0, 0 }, 20 }, 100 },
@ -39,8 +39,8 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCDFFFE, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
},
{ 3, { { 0, 0, 0 }, 20 }, 100 },
@ -50,8 +50,8 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCDFFFE, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
},
{ 4, { { 0, 0, 0 }, 20 }, 100 },
@ -61,8 +61,8 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCDFFFE, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
},
{ 5, { { 0, 0, 0 }, 20 }, 100 },
@ -72,8 +72,8 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCDFFFE, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
},
{ 6, { { 0, 0, 0 }, 20 }, 100 },
@ -83,8 +83,8 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCDFFFE, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
},
{ 7, { { 0, 0, 0 }, 20 }, 100 },
@ -94,8 +94,8 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCDFFFE, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
},
{ 8, { { 0, 0, 0 }, 20 }, 100 },
@ -105,8 +105,8 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCDFFFE, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
},
{ 9, { { 0, 0, 0 }, 20 }, 100 },
@ -116,8 +116,8 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCDFFFE, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
},
{ 10, { { 0, 0, 0 }, 20 }, 100 },
@ -127,8 +127,8 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCDFFFE, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
},
{ 11, { { 0, 0, 0 }, 20 }, 100 },
@ -138,8 +138,8 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCDFFFE, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
},
{ 12, { { 0, 0, 0 }, 20 }, 100 },
@ -149,8 +149,8 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCDFFFE, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
},
{ 13, { { 0, 0, 0 }, 20 }, 100 },
@ -160,8 +160,8 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCDFFFE, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
},
{ 14, { { 0, 0, 0 }, 18 }, 100 },
@ -171,8 +171,8 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCDFFFE, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
},
{ 15, { { 0, 0, 0 }, 16 }, 100 },
@ -182,8 +182,8 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCDFFFE, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
},
{ 16, { { 0, 0, 0 }, 14 }, 100 },
@ -193,8 +193,8 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCDFFFE, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
},
{ 17, { { 0, 0, 0 }, 12 }, 100 },
@ -204,8 +204,8 @@ static ColliderJntSphElementInit sJntSphItemsInit[19] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCDFFFE, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
},
{ 18, { { 0, 0, 0 }, 10 }, 100 },

View file

@ -815,8 +815,8 @@ void BossFd2_CollisionCheck(BossFd2* this, PlayState* play) {
Player* player = GET_PLAYER(play);
for (i = 0; i < ARRAY_COUNT(this->elements); i++) {
if (this->collider.elements[i].base.toucherFlags & TOUCH_HIT) {
this->collider.elements[i].base.toucherFlags &= ~TOUCH_HIT;
if (this->collider.elements[i].base.atElemFlags & ATELEM_HIT) {
this->collider.elements[i].base.atElemFlags &= ~ATELEM_HIT;
Actor_PlaySfx(&player->actor, NA_SE_PL_BODY_HIT);
}
}
@ -829,12 +829,12 @@ void BossFd2_CollisionCheck(BossFd2* this, PlayState* play) {
this->collider.base.colType = COLTYPE_HIT3;
}
if (this->collider.elements[0].base.bumperFlags & BUMP_HIT) {
this->collider.elements[0].base.bumperFlags &= ~BUMP_HIT;
if (this->collider.elements[0].base.acElemFlags & ACELEM_HIT) {
this->collider.elements[0].base.acElemFlags &= ~ACELEM_HIT;
acHitElem = this->collider.elements[0].base.acHitElem;
if (!bossFd->faceExposed) {
if (acHitElem->toucher.dmgFlags & DMG_HAMMER) {
if (acHitElem->atDmgInfo.dmgFlags & DMG_HAMMER) {
bossFd->actor.colChkInfo.health -= 2;
if ((s8)bossFd->actor.colChkInfo.health <= 2) {
bossFd->actor.colChkInfo.health = 1;
@ -865,12 +865,12 @@ void BossFd2_CollisionCheck(BossFd2* this, PlayState* play) {
u8 canKill = false;
u8 damage;
if ((damage = CollisionCheck_GetSwordDamage(acHitElem->toucher.dmgFlags)) == 0) {
damage = (acHitElem->toucher.dmgFlags & DMG_ARROW_ICE) ? 4 : 2;
if ((damage = CollisionCheck_GetSwordDamage(acHitElem->atDmgInfo.dmgFlags)) == 0) {
damage = (acHitElem->atDmgInfo.dmgFlags & DMG_ARROW_ICE) ? 4 : 2;
} else {
canKill = true;
}
if (acHitElem->toucher.dmgFlags & DMG_HOOKSHOT) {
if (acHitElem->atDmgInfo.dmgFlags & DMG_HOOKSHOT) {
damage = 0;
}
if (((s8)bossFd->actor.colChkInfo.health > 2) || canKill) {

View file

@ -6,8 +6,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[9] = {
ELEMTYPE_UNK3,
{ 0xFFCFFFFF, 0x00, 0x20 },
{ 0xFFCDFFFE, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON | BUMP_HOOKABLE,
ATELEM_NONE,
ACELEM_ON | ACELEM_HOOKABLE,
OCELEM_ON,
},
{ 35, { { 6000, 0, 0 }, 21 }, 100 },
@ -17,8 +17,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[9] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x20 },
{ 0xFFCDFFFE, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
},
{ 18, { { 4000, 0, 0 }, 13 }, 100 },
@ -28,8 +28,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[9] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x20 },
{ 0xFFCDFFFE, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
},
{ 19, { { 3000, 0, 0 }, 13 }, 100 },
@ -39,8 +39,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[9] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x20 },
{ 0xFFCDFFFE, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
},
{ 20, { { 4000, 0, 0 }, 15 }, 100 },
@ -50,8 +50,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[9] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x20 },
{ 0xFFCDFFFE, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
},
{ 24, { { 4000, 0, 0 }, 13 }, 100 },
@ -61,8 +61,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[9] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x20 },
{ 0xFFCDFFFE, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
},
{ 25, { { 3000, 0, 0 }, 13 }, 100 },
@ -72,8 +72,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[9] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x20 },
{ 0xFFCDFFFE, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
},
{ 26, { { 3500, 1500, 0 }, 15 }, 100 },
@ -83,8 +83,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[9] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x20 },
{ 0xFFCDFFFE, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
},
{ 17, { { 0, 0, 0 }, 26 }, 100 },
@ -94,8 +94,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[9] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x20 },
{ 0xFFCDFFFE, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
},
{ 30, { { 0, 0, 0 }, 17 }, 100 },

View file

@ -70,8 +70,8 @@ static ColliderCylinderInit sDorfCylinderInit = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFE, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON | BUMP_HOOKABLE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON | ACELEM_HOOKABLE,
OCELEM_ON,
},
{ 20, 80, -50, { 0, 0, 0 } },
@ -90,8 +90,8 @@ static ColliderCylinderInit sLightBallCylinderInit = {
ELEMTYPE_UNK6,
{ 0x00100700, 0x00, 0x08 },
{ 0x0D900740, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 20, 30, -15, { 0, 0, 0 } },
@ -2691,14 +2691,14 @@ void BossGanon_UpdateDamage(BossGanon* this, PlayState* play) {
acHitElem = this->collider.elem.acHitElem;
if ((this->actionFunc == BossGanon_HitByLightBall) || (this->actionFunc == BossGanon_ChargeBigMagic)) {
if (acHitElem->toucher.dmgFlags & DMG_ARROW_LIGHT) {
if (acHitElem->atDmgInfo.dmgFlags & DMG_ARROW_LIGHT) {
BossGanon_SetupVulnerable(this, play);
this->timers[2] = 0;
Actor_PlaySfx(&this->actor, NA_SE_EN_GANON_DAMAGE1);
this->unk_1A6 = 15;
}
} else if ((this->actionFunc == BossGanon_Vulnerable) && (this->unk_1C2 >= 3)) {
if (!(acHitElem->toucher.dmgFlags & DMG_HOOKSHOT)) {
if (!(acHitElem->atDmgInfo.dmgFlags & DMG_HOOKSHOT)) {
u8 hitWithSword = false;
u8 damage;
Vec3f sp50;
@ -2712,7 +2712,7 @@ void BossGanon_UpdateDamage(BossGanon* this, PlayState* play) {
0x1E);
}
damage = flags = CollisionCheck_GetSwordDamage(acHitElem->toucher.dmgFlags);
damage = flags = CollisionCheck_GetSwordDamage(acHitElem->atDmgInfo.dmgFlags);
if (flags == 0) {
damage = 2;
@ -2746,7 +2746,7 @@ void BossGanon_UpdateDamage(BossGanon* this, PlayState* play) {
sCape->tearTimer = 1;
}
}
} else if (acHitElem->toucher.dmgFlags & DMG_RANGED) {
} else if (acHitElem->atDmgInfo.dmgFlags & DMG_RANGED) {
Actor_PlaySfx(&this->actor, 0);
for (i = 0; i < ARRAY_COUNT(sCape->strands); i++) {
@ -3941,7 +3941,7 @@ void BossGanon_LightBall_Update(Actor* thisx, PlayState* play2) {
this->collider.base.acFlags &= ~AC_HIT;
if ((hitWithBottle == false) && (acHitElem->toucher.dmgFlags & DMG_SHIELD)) {
if ((hitWithBottle == false) && (acHitElem->atDmgInfo.dmgFlags & DMG_SHIELD)) {
spBA = 2;
Audio_PlaySfxGeneral(NA_SE_IT_SHIELD_REFLECT_MG, &player->actor.projectedPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
@ -4427,7 +4427,7 @@ void func_808E2544(Actor* thisx, PlayState* play) {
this->collider.base.acFlags &= ~AC_HIT;
if (!(acHitElem->toucher.dmgFlags & DMG_SHIELD) || Player_HasMirrorShieldEquipped(play)) {
if (!(acHitElem->atDmgInfo.dmgFlags & DMG_SHIELD) || Player_HasMirrorShieldEquipped(play)) {
Rumble_Request(this->actor.xyzDistToPlayerSq, 180, 20, 100);
this->unk_1C2 = 0xC;
this->actor.speed = -30.0f;

View file

@ -1842,10 +1842,10 @@ void func_80902348(BossGanon2* this, PlayState* play) {
if (this->unk_316 == 0) {
for (i = 0; i < ARRAY_COUNT(this->unk_864); i++) {
if (this->unk_444.elements[i].base.bumperFlags & BUMP_HIT) {
this->unk_444.elements[i].base.bumperFlags &= ~BUMP_HIT;
} else if (this->unk_444.elements[i].base.toucherFlags & TOUCH_HIT) {
this->unk_444.elements[i].base.toucherFlags &= ~TOUCH_HIT;
if (this->unk_444.elements[i].base.acElemFlags & ACELEM_HIT) {
this->unk_444.elements[i].base.acElemFlags &= ~ACELEM_HIT;
} else if (this->unk_444.elements[i].base.atElemFlags & ATELEM_HIT) {
this->unk_444.elements[i].base.atElemFlags &= ~ATELEM_HIT;
if (this->unk_312 == 1) {
phi_v0_2 = 0x1800;
@ -1889,23 +1889,23 @@ void BossGanon2_CollisionCheck(BossGanon2* this, PlayState* play) {
PRINTF("this->no_hit_time %d\n", this->unk_316);
if (this->unk_316 != 0 || ((this->unk_334 == 0) && (this->actionFunc == func_80900890))) {
for (i = 0; i < ARRAY_COUNT(this->unk_464); i++) {
this->unk_424.elements[i].base.bumperFlags &= ~BUMP_HIT;
this->unk_424.elements[i].base.acElemFlags &= ~ACELEM_HIT;
}
}
PRINTF("this->look_on %d\n", this->unk_313);
if (this->unk_313) {
if (this->actionFunc != func_808FFFE0) {
if (this->unk_424.elements[0].base.bumperFlags & BUMP_HIT) {
this->unk_424.elements[0].base.bumperFlags &= ~BUMP_HIT;
if (this->unk_424.elements[0].base.acElemFlags & ACELEM_HIT) {
this->unk_424.elements[0].base.acElemFlags &= ~ACELEM_HIT;
acHitElem = this->unk_424.elements[0].base.acHitElem;
if ((acHitElem->toucher.dmgFlags & DMG_ARROW_LIGHT) && (this->actionFunc != func_80900890)) {
if ((acHitElem->atDmgInfo.dmgFlags & DMG_ARROW_LIGHT) && (this->actionFunc != func_80900890)) {
func_809000A0(this, play);
Actor_PlaySfx(&this->actor, NA_SE_EN_FANTOM_HIT_THUNDER);
Actor_PlaySfx(&this->actor, NA_SE_EN_MGANON_DAMAGE);
Audio_StopSfxById(NA_SE_EN_MGANON_UNARI);
} else if ((this->actionFunc == func_80900890) &&
(acHitElem->toucher.dmgFlags & (DMG_JUMP_MASTER | DMG_SPIN_MASTER | DMG_SLASH_MASTER))) {
(acHitElem->atDmgInfo.dmgFlags & (DMG_JUMP_MASTER | DMG_SPIN_MASTER | DMG_SLASH_MASTER))) {
this->unk_316 = 60;
this->unk_342 = 5;
Actor_PlaySfx(&this->actor, NA_SE_EN_MGANON_DAMAGE);
@ -1928,8 +1928,8 @@ void BossGanon2_CollisionCheck(BossGanon2* this, PlayState* play) {
}
}
} else {
if (this->unk_424.elements[15].base.bumperFlags & BUMP_HIT) {
this->unk_424.elements[15].base.bumperFlags &= ~BUMP_HIT;
if (this->unk_424.elements[15].base.acElemFlags & ACELEM_HIT) {
this->unk_424.elements[15].base.acElemFlags &= ~ACELEM_HIT;
acHitElem = this->unk_424.elements[15].base.acHitElem;
this->unk_316 = 60;
this->unk_344 = 0x32;
@ -1937,8 +1937,8 @@ void BossGanon2_CollisionCheck(BossGanon2* this, PlayState* play) {
Actor_PlaySfx(&this->actor, NA_SE_EN_MGANON_DAMAGE);
Audio_StopSfxById(NA_SE_EN_MGANON_UNARI);
phi_v1_2 = 1;
if (acHitElem->toucher.dmgFlags & (DMG_JUMP_MASTER | DMG_SPIN_MASTER | DMG_SLASH_MASTER)) {
if (acHitElem->toucher.dmgFlags & DMG_JUMP_MASTER) {
if (acHitElem->atDmgInfo.dmgFlags & (DMG_JUMP_MASTER | DMG_SPIN_MASTER | DMG_SLASH_MASTER)) {
if (acHitElem->atDmgInfo.dmgFlags & DMG_JUMP_MASTER) {
phi_v1_2 = 4;
} else {
phi_v1_2 = 2;

View file

@ -29,8 +29,8 @@ static ColliderJntSphElementInit sJntSphItemsInit1[] = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 0, { { 0, 0, 0 }, 30 }, 100 },
@ -40,8 +40,8 @@ static ColliderJntSphElementInit sJntSphItemsInit1[] = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 1, { { 0, 0, 0 }, 30 }, 100 },
@ -51,8 +51,8 @@ static ColliderJntSphElementInit sJntSphItemsInit1[] = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 2, { { 0, 0, 0 }, 30 }, 100 },
@ -62,8 +62,8 @@ static ColliderJntSphElementInit sJntSphItemsInit1[] = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 3, { { 0, 0, 0 }, 20 }, 100 },
@ -73,8 +73,8 @@ static ColliderJntSphElementInit sJntSphItemsInit1[] = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 4, { { 0, 0, 0 }, 20 }, 100 },
@ -84,8 +84,8 @@ static ColliderJntSphElementInit sJntSphItemsInit1[] = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 5, { { 0, 0, 0 }, 20 }, 100 },
@ -95,8 +95,8 @@ static ColliderJntSphElementInit sJntSphItemsInit1[] = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 6, { { 0, 0, 0 }, 20 }, 100 },
@ -106,8 +106,8 @@ static ColliderJntSphElementInit sJntSphItemsInit1[] = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 7, { { 0, 0, 0 }, 20 }, 100 },
@ -117,8 +117,8 @@ static ColliderJntSphElementInit sJntSphItemsInit1[] = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 8, { { 0, 0, 0 }, 20 }, 100 },
@ -128,8 +128,8 @@ static ColliderJntSphElementInit sJntSphItemsInit1[] = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 9, { { 0, 0, 0 }, 20 }, 100 },
@ -139,8 +139,8 @@ static ColliderJntSphElementInit sJntSphItemsInit1[] = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 10, { { 0, 0, 0 }, 20 }, 100 },
@ -150,8 +150,8 @@ static ColliderJntSphElementInit sJntSphItemsInit1[] = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 11, { { 0, 0, 0 }, 20 }, 100 },
@ -161,8 +161,8 @@ static ColliderJntSphElementInit sJntSphItemsInit1[] = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 12, { { 0, 0, 0 }, 20 }, 100 },
@ -172,8 +172,8 @@ static ColliderJntSphElementInit sJntSphItemsInit1[] = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 13, { { 0, 0, 0 }, 20 }, 100 },
@ -183,8 +183,8 @@ static ColliderJntSphElementInit sJntSphItemsInit1[] = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 14, { { 0, 0, 0 }, 20 }, 100 },
@ -194,8 +194,8 @@ static ColliderJntSphElementInit sJntSphItemsInit1[] = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 15, { { 0, 0, 0 }, 30 }, 100 },
@ -221,8 +221,8 @@ static ColliderJntSphElementInit sJntSphItemsInit2[] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x40 },
{ 0xFFDFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 15, { { 0, 0, 0 }, 45 }, 100 },
@ -232,8 +232,8 @@ static ColliderJntSphElementInit sJntSphItemsInit2[] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x40 },
{ 0xFFDFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 16, { { 0, 0, 0 }, 45 }, 100 },

View file

@ -94,8 +94,8 @@ static ColliderCylinderInit sCylinderInitBody = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFE, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON | BUMP_HOOKABLE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON | ACELEM_HOOKABLE,
OCELEM_ON,
},
{ 30, 90, -50, { 0, 0, 0 } },
@ -114,8 +114,8 @@ static ColliderCylinderInit sCylinderInitSpear = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x30 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 20, 30, -20, { 0, 0, 0 } },
@ -1239,14 +1239,14 @@ void BossGanondrof_CollisionCheck(BossGanondrof* this, PlayState* play) {
}
if (this->flyMode != GND_FLY_PAINTING) {
if (acHit && (this->actionFunc != BossGanondrof_Stunned) &&
(acHitElem->toucher.dmgFlags & DMG_RANGED)) {
(acHitElem->atDmgInfo.dmgFlags & DMG_RANGED)) {
Actor_PlaySfx(&this->actor, NA_SE_NONE);
PRINTF("hit != 0 \n");
} else if (this->actionFunc != BossGanondrof_Charge) {
if (this->returnCount == 0) {
u8 dmg;
u8 canKill = false;
s32 dmgFlags = acHitElem->toucher.dmgFlags;
s32 dmgFlags = acHitElem->atDmgInfo.dmgFlags;
if (dmgFlags & DMG_HOOKSHOT) {
return;
@ -1273,7 +1273,7 @@ void BossGanondrof_CollisionCheck(BossGanondrof* this, PlayState* play) {
} else {
Actor_PlaySfx(&this->actor, NA_SE_NONE);
}
} else if (acHit && (acHitElem->toucher.dmgFlags & DMG_RANGED)) {
} else if (acHit && (acHitElem->atDmgInfo.dmgFlags & DMG_RANGED)) {
this->work[GND_INVINC_TIMER] = 10;
this->actor.colChkInfo.health -= 2;
horse->hitTimer = 20;

View file

@ -67,8 +67,8 @@ static ColliderJntSphElementInit sColliderJntSphElementInit[13] = {
ELEMTYPE_UNK3,
{ 0xFFCFFFFF, 0x00, 0x08 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ BOSSGOMA_LIMB_EYE, { { 0, 0, 1200 }, 20 }, 100 },
@ -78,8 +78,8 @@ static ColliderJntSphElementInit sColliderJntSphElementInit[13] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x08 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ BOSSGOMA_LIMB_TAIL4, { { 0, 0, 0 }, 20 }, 100 },
@ -89,8 +89,8 @@ static ColliderJntSphElementInit sColliderJntSphElementInit[13] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x08 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ BOSSGOMA_LIMB_TAIL3, { { 0, 0, 0 }, 15 }, 100 },
@ -100,8 +100,8 @@ static ColliderJntSphElementInit sColliderJntSphElementInit[13] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x08 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ BOSSGOMA_LIMB_TAIL2, { { 0, 0, 0 }, 12 }, 100 },
@ -111,8 +111,8 @@ static ColliderJntSphElementInit sColliderJntSphElementInit[13] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x08 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ BOSSGOMA_LIMB_TAIL1, { { 0, 0, 0 }, 25 }, 100 },
@ -122,8 +122,8 @@ static ColliderJntSphElementInit sColliderJntSphElementInit[13] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x08 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ BOSSGOMA_LIMB_R_FEET, { { 0, 0, 0 }, 30 }, 100 },
@ -133,8 +133,8 @@ static ColliderJntSphElementInit sColliderJntSphElementInit[13] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x08 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ BOSSGOMA_LIMB_R_SHIN, { { 0, 0, 0 }, 15 }, 100 },
@ -144,8 +144,8 @@ static ColliderJntSphElementInit sColliderJntSphElementInit[13] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x08 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ BOSSGOMA_LIMB_R_THIGH_SHELL, { { 0, 0, 0 }, 15 }, 100 },
@ -155,8 +155,8 @@ static ColliderJntSphElementInit sColliderJntSphElementInit[13] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x08 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ BOSSGOMA_LIMB_L_ANTENNA_CLAW, { { 0, 0, 0 }, 20 }, 100 },
@ -166,8 +166,8 @@ static ColliderJntSphElementInit sColliderJntSphElementInit[13] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x08 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ BOSSGOMA_LIMB_R_ANTENNA_CLAW, { { 0, 0, 0 }, 20 }, 100 },
@ -177,8 +177,8 @@ static ColliderJntSphElementInit sColliderJntSphElementInit[13] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x08 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ BOSSGOMA_LIMB_L_FEET, { { 0, 0, 0 }, 30 }, 100 },
@ -188,8 +188,8 @@ static ColliderJntSphElementInit sColliderJntSphElementInit[13] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x08 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ BOSSGOMA_LIMB_L_SHIN, { { 0, 0, 0 }, 15 }, 100 },
@ -199,8 +199,8 @@ static ColliderJntSphElementInit sColliderJntSphElementInit[13] = {
ELEMTYPE_UNK2,
{ 0xFFCFFFFF, 0x00, 0x08 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ BOSSGOMA_LIMB_L_THIGH_SHELL, { { 0, 0, 0 }, 15 }, 100 },
@ -1302,7 +1302,7 @@ void BossGoma_FloorAttack(BossGoma* this, PlayState* play) {
switch (this->actionState) {
case 0:
for (i = 0; i < this->collider.count; i++) {
if (this->collider.elements[i].base.toucherFlags & TOUCH_HIT) {
if (this->collider.elements[i].base.atElemFlags & ATELEM_HIT) {
this->framesUntilNextAction = 10;
break;
}
@ -1812,15 +1812,15 @@ void BossGoma_UpdateHit(BossGoma* this, PlayState* play) {
s32 damage;
if (this->eyeClosedTimer == 0 && this->actionFunc != BossGoma_CeilingSpawnGohmas &&
(this->collider.elements[0].base.bumperFlags & BUMP_HIT)) {
this->collider.elements[0].base.bumperFlags &= ~BUMP_HIT;
(this->collider.elements[0].base.acElemFlags & ACELEM_HIT)) {
this->collider.elements[0].base.acElemFlags &= ~ACELEM_HIT;
if (this->actionFunc == BossGoma_CeilingMoveToCenter || this->actionFunc == BossGoma_CeilingIdle ||
this->actionFunc == BossGoma_CeilingPrepareSpawnGohmas) {
BossGoma_SetupFallStruckDown(this);
Actor_PlaySfx(&this->actor, NA_SE_EN_GOMA_DAM2);
} else if (this->actionFunc == BossGoma_FloorStunned &&
(damage = CollisionCheck_GetSwordDamage(acHitElem->toucher.dmgFlags)) != 0) {
(damage = CollisionCheck_GetSwordDamage(acHitElem->atDmgInfo.dmgFlags)) != 0) {
this->actor.colChkInfo.health -= damage;
if ((s8)this->actor.colChkInfo.health > 0) {
@ -1834,14 +1834,14 @@ void BossGoma_UpdateHit(BossGoma* this, PlayState* play) {
this->invincibilityFrames = 10;
} else if (this->actionFunc != BossGoma_FloorStunned && this->patienceTimer != 0 &&
(acHitElem->toucher.dmgFlags & (DMG_SLINGSHOT | DMG_DEKU_NUT))) {
(acHitElem->atDmgInfo.dmgFlags & (DMG_SLINGSHOT | DMG_DEKU_NUT))) {
Actor_PlaySfx(&this->actor, NA_SE_EN_GOMA_DAM2);
Audio_StopSfxById(NA_SE_EN_GOMA_CRY1);
this->invincibilityFrames = 10;
BossGoma_SetupFloorStunned(this);
this->sfxFaintTimer = 100;
if (acHitElem->toucher.dmgFlags & DMG_DEKU_NUT) {
if (acHitElem->atDmgInfo.dmgFlags & DMG_DEKU_NUT) {
this->framesUntilNextAction = 40;
} else {
this->framesUntilNextAction = 90;

View file

@ -1146,23 +1146,23 @@ void BossMo_TentCollisionCheck(BossMo* this, PlayState* play) {
ColliderElement* acHitElem;
for (i1 = 0; i1 < ARRAY_COUNT(this->tentElements); i1++) {
if (this->tentCollider.elements[i1].base.bumperFlags & BUMP_HIT) {
if (this->tentCollider.elements[i1].base.acElemFlags & ACELEM_HIT) {
for (i2 = 0; i2 < 19; i2++) {
this->tentCollider.elements[i2].base.bumperFlags &= ~BUMP_HIT;
this->tentCollider.elements[i2].base.toucherFlags &= ~TOUCH_HIT;
this->tentCollider.elements[i2].base.acElemFlags &= ~ACELEM_HIT;
this->tentCollider.elements[i2].base.atElemFlags &= ~ATELEM_HIT;
}
acHitElem = this->tentCollider.elements[i1].base.acHitElem;
this->work[MO_TENT_INVINC_TIMER] = 5;
if (acHitElem->toucher.dmgFlags & DMG_MAGIC_FIRE) {
if (acHitElem->atDmgInfo.dmgFlags & DMG_MAGIC_FIRE) {
Sfx_PlaySfxAtPos(&this->tentTipPos, NA_SE_EN_MOFER_CUT);
this->cutIndex = 15;
this->meltIndex = this->cutIndex + 1;
this->work[MO_TENT_ACTION_STATE] = MO_TENT_CUT;
this->timers[0] = 40;
this->cutScale = 1.0f;
} else if (acHitElem->toucher.dmgFlags & (DMG_JUMP_MASTER | DMG_JUMP_GIANT | DMG_SPIN_MASTER |
DMG_SPIN_GIANT | DMG_SLASH_GIANT | DMG_SLASH_MASTER)) {
} else if (acHitElem->atDmgInfo.dmgFlags & (DMG_JUMP_MASTER | DMG_JUMP_GIANT | DMG_SPIN_MASTER |
DMG_SPIN_GIANT | DMG_SLASH_GIANT | DMG_SLASH_MASTER)) {
this->playerHitTimer = 5;
}
this->tentRippleSize = 0.2f;
@ -1180,8 +1180,8 @@ void BossMo_TentCollisionCheck(BossMo* this, PlayState* play) {
Rand_ZeroFloat(0.08f) + 0.13f);
}
break;
} else if (this->tentCollider.elements[i1].base.toucherFlags & TOUCH_HIT) {
this->tentCollider.elements[i1].base.toucherFlags &= ~TOUCH_HIT;
} else if (this->tentCollider.elements[i1].base.atElemFlags & ATELEM_HIT) {
this->tentCollider.elements[i1].base.atElemFlags &= ~ATELEM_HIT;
this->playerHitTimer = 5;
break;
}
@ -1755,13 +1755,13 @@ void BossMo_CoreCollisionCheck(BossMo* this, PlayState* play) {
// "hit!!"
PRINTF("Core_Damage_check 当り!!\n");
this->coreCollider.base.acFlags &= ~AC_HIT;
if ((acHitElem->toucher.dmgFlags & DMG_MAGIC_FIRE) && (this->work[MO_TENT_ACTION_STATE] == MO_CORE_ATTACK)) {
if ((acHitElem->atDmgInfo.dmgFlags & DMG_MAGIC_FIRE) && (this->work[MO_TENT_ACTION_STATE] == MO_CORE_ATTACK)) {
this->work[MO_TENT_ACTION_STATE] = MO_CORE_RETREAT;
}
// "hit 2 !!"
PRINTF("Core_Damage_check 当り 2 \n");
if ((this->work[MO_TENT_ACTION_STATE] != MO_CORE_UNDERWATER) && (this->work[MO_TENT_INVINC_TIMER] == 0)) {
u8 damage = CollisionCheck_GetSwordDamage(acHitElem->toucher.dmgFlags);
u8 damage = CollisionCheck_GetSwordDamage(acHitElem->atDmgInfo.dmgFlags);
if ((damage != 0) && (this->work[MO_TENT_ACTION_STATE] < MO_CORE_ATTACK)) {
// "sword hit !!"
@ -1799,7 +1799,8 @@ void BossMo_CoreCollisionCheck(BossMo* this, PlayState* play) {
}
}
this->work[MO_TENT_INVINC_TIMER] = 10;
} else if (!(acHitElem->toucher.dmgFlags & DMG_SHIELD) && (acHitElem->toucher.dmgFlags & DMG_HOOKSHOT)) {
} else if (!(acHitElem->atDmgInfo.dmgFlags & DMG_SHIELD) &&
(acHitElem->atDmgInfo.dmgFlags & DMG_HOOKSHOT)) {
if (this->work[MO_TENT_ACTION_STATE] >= MO_CORE_ATTACK) {
Sfx_PlaySfxAtPos(&sMorphaTent1->tentTipPos, NA_SE_EN_MOFER_CUT);
sMorphaTent1->cutIndex = this->work[MO_CORE_POS_IN_TENT];

View file

@ -7,8 +7,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK4,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 0, { { 0, 0, 0 }, 0 }, 100 },
@ -18,8 +18,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK4,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 1, { { 0, 0, 0 }, 0 }, 100 },
@ -29,8 +29,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK4,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 2, { { 0, 0, 0 }, 30 }, 100 },
@ -40,8 +40,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK4,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 3, { { 0, 0, 0 }, 24 }, 100 },
@ -51,8 +51,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK4,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 4, { { 0, 0, 0 }, 22 }, 100 },
@ -62,8 +62,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK4,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 5, { { 0, 0, 0 }, 20 }, 100 },
@ -73,8 +73,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK4,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 6, { { 0, 0, 0 }, 18 }, 100 },
@ -84,8 +84,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK4,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 7, { { 0, 0, 0 }, 16 }, 100 },
@ -95,8 +95,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK4,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 8, { { 0, 0, 0 }, 14 }, 100 },
@ -106,8 +106,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK4,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 9, { { 0, 0, 0 }, 12 }, 100 },
@ -117,8 +117,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK4,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 10, { { 0, 0, 0 }, 10 }, 100 },
@ -128,8 +128,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK4,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 11, { { 0, 0, 0 }, 10 }, 100 },
@ -139,8 +139,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK4,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 12, { { 0, 0, 0 }, 10 }, 100 },
@ -150,8 +150,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK4,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 13, { { 0, 0, 0 }, 10 }, 100 },
@ -161,8 +161,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK4,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 14, { { 0, 0, 0 }, 10 }, 100 },
@ -172,8 +172,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK4,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 15, { { 0, 0, 0 }, 10 }, 100 },
@ -183,8 +183,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK4,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 16, { { 0, 0, 0 }, 10 }, 100 },
@ -194,8 +194,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK4,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 17, { { 0, 0, 0 }, 10 }, 100 },
@ -205,8 +205,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
ELEMTYPE_UNK4,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 18, { { 0, 0, 0 }, 10 }, 100 },
@ -239,8 +239,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0xFFDFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON | BUMP_HOOKABLE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON | ACELEM_HOOKABLE,
OCELEM_ON,
},
{ 20, 40, -20, { 0, 0, 0 } },

View file

@ -873,10 +873,10 @@ void BossSst_HeadStunned(BossSst* this, PlayState* play) {
void BossSst_HeadSetupVulnerable(BossSst* this) {
Animation_MorphToLoop(&this->skelAnime, &gBongoHeadStunnedAnim, -5.0f);
this->colliderCyl.base.acFlags |= AC_ON;
this->colliderCyl.elem.bumper.dmgFlags = DMG_SWORD | DMG_DEKU_STICK;
this->colliderCyl.elem.acDmgInfo.dmgFlags = DMG_SWORD | DMG_DEKU_STICK;
this->actor.speed = 0.0f;
this->colliderJntSph.elements[10].base.bumperFlags |= (BUMP_ON | BUMP_HOOKABLE);
this->colliderJntSph.elements[0].base.bumperFlags &= ~BUMP_ON;
this->colliderJntSph.elements[10].base.acElemFlags |= (ACELEM_ON | ACELEM_HOOKABLE);
this->colliderJntSph.elements[0].base.acElemFlags &= ~ACELEM_ON;
if (this->actionFunc != BossSst_HeadDamage) {
this->timer = 50;
}
@ -932,9 +932,9 @@ void BossSst_HeadDamage(BossSst* this, PlayState* play) {
void BossSst_HeadSetupRecover(BossSst* this) {
Animation_MorphToPlayOnce(&this->skelAnime, &gBongoHeadRecoverAnim, -5.0f);
this->colliderCyl.base.acFlags &= ~AC_ON;
this->colliderCyl.elem.bumper.dmgFlags = DMG_DEFAULT;
this->colliderJntSph.elements[10].base.bumperFlags &= ~(BUMP_ON | BUMP_HOOKABLE);
this->colliderJntSph.elements[0].base.bumperFlags |= BUMP_ON;
this->colliderCyl.elem.acDmgInfo.dmgFlags = DMG_DEFAULT;
this->colliderJntSph.elements[10].base.acElemFlags &= ~(ACELEM_ON | ACELEM_HOOKABLE);
this->colliderJntSph.elements[0].base.acElemFlags |= ACELEM_ON;
this->vVanish = true;
this->actor.speed = 5.0f;
this->actionFunc = BossSst_HeadRecover;
@ -2500,7 +2500,7 @@ void BossSst_HandSetDamage(BossSst* this, s32 damage) {
this->colliderJntSph.base.atFlags |= AT_ON;
for (i = 0; i < 11; i++) {
this->colliderJntSph.elements[i].base.toucher.damage = damage;
this->colliderJntSph.elements[i].base.atDmgInfo.damage = damage;
}
}

View file

@ -6,8 +6,8 @@ static ColliderJntSphElementInit sJntSphItemsInitHand[11] = {
ELEMTYPE_UNK1,
{ 0x20000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 2, { { 2000, -1500, 250 }, 65 }, 100 },
@ -17,8 +17,8 @@ static ColliderJntSphElementInit sJntSphItemsInitHand[11] = {
ELEMTYPE_UNK1,
{ 0x20000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 10, { { 0, 0, 0 }, 22 }, 100 },
@ -28,8 +28,8 @@ static ColliderJntSphElementInit sJntSphItemsInitHand[11] = {
ELEMTYPE_UNK1,
{ 0x20000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 11, { { 500, 0, 0 }, 22 }, 100 },
@ -39,8 +39,8 @@ static ColliderJntSphElementInit sJntSphItemsInitHand[11] = {
ELEMTYPE_UNK1,
{ 0x20000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 15, { { -250, -250, 0 }, 25 }, 100 },
@ -50,8 +50,8 @@ static ColliderJntSphElementInit sJntSphItemsInitHand[11] = {
ELEMTYPE_UNK1,
{ 0x20000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 16, { { 500, -250, 0 }, 25 }, 100 },
@ -61,8 +61,8 @@ static ColliderJntSphElementInit sJntSphItemsInitHand[11] = {
ELEMTYPE_UNK1,
{ 0x20000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 20, { { 250, -250, 0 }, 25 }, 100 },
@ -72,8 +72,8 @@ static ColliderJntSphElementInit sJntSphItemsInitHand[11] = {
ELEMTYPE_UNK1,
{ 0x20000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 21, { { 500, -250, 0 }, 25 }, 100 },
@ -83,8 +83,8 @@ static ColliderJntSphElementInit sJntSphItemsInitHand[11] = {
ELEMTYPE_UNK1,
{ 0x20000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 25, { { 0, 0, 0 }, 27 }, 100 },
@ -94,8 +94,8 @@ static ColliderJntSphElementInit sJntSphItemsInitHand[11] = {
ELEMTYPE_UNK1,
{ 0x20000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 26, { { 750, 0, 0 }, 26 }, 100 },
@ -105,8 +105,8 @@ static ColliderJntSphElementInit sJntSphItemsInitHand[11] = {
ELEMTYPE_UNK1,
{ 0x20000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 5, { { 750, -150, 0 }, 21 }, 100 },
@ -116,8 +116,8 @@ static ColliderJntSphElementInit sJntSphItemsInitHand[11] = {
ELEMTYPE_UNK1,
{ 0x20000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 6, { { 750, 0, 0 }, 20 }, 100 },
@ -143,8 +143,8 @@ static ColliderJntSphElementInit sJntSphItemsInitHead[11] = {
ELEMTYPE_UNK1,
{ 0x20000000, 0x00, 0x30 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 7, { { 1500, 0, 0 }, 70 }, 100 },
@ -154,8 +154,8 @@ static ColliderJntSphElementInit sJntSphItemsInitHead[11] = {
ELEMTYPE_UNK1,
{ 0x20000000, 0x00, 0x30 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 6, { { 0, 0, 0 }, 75 }, 100 },
@ -165,8 +165,8 @@ static ColliderJntSphElementInit sJntSphItemsInitHead[11] = {
ELEMTYPE_UNK1,
{ 0x20000000, 0x00, 0x30 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 4, { { 5000, 0, 0 }, 120 }, 100 },
@ -176,8 +176,8 @@ static ColliderJntSphElementInit sJntSphItemsInitHead[11] = {
ELEMTYPE_UNK1,
{ 0x20000000, 0x00, 0x30 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 3, { { -2500, 0, 0 }, 150 }, 100 },
@ -187,8 +187,8 @@ static ColliderJntSphElementInit sJntSphItemsInitHead[11] = {
ELEMTYPE_UNK1,
{ 0x20000000, 0x00, 0x30 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 43, { { 1500, 0, 0 }, 80 }, 100 },
@ -198,8 +198,8 @@ static ColliderJntSphElementInit sJntSphItemsInitHead[11] = {
ELEMTYPE_UNK1,
{ 0x20000000, 0x00, 0x30 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 43, { { 7500, 0, 0 }, 70 }, 100 },
@ -209,8 +209,8 @@ static ColliderJntSphElementInit sJntSphItemsInitHead[11] = {
ELEMTYPE_UNK1,
{ 0x20000000, 0x00, 0x30 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 44, { { 3000, 0, 0 }, 60 }, 100 },
@ -220,8 +220,8 @@ static ColliderJntSphElementInit sJntSphItemsInitHead[11] = {
ELEMTYPE_UNK1,
{ 0x20000000, 0x00, 0x30 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 40, { { 1500, 0, 0 }, 80 }, 100 },
@ -231,8 +231,8 @@ static ColliderJntSphElementInit sJntSphItemsInitHead[11] = {
ELEMTYPE_UNK1,
{ 0x20000000, 0x00, 0x30 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 40, { { 7500, 0, 0 }, 70 }, 100 },
@ -242,8 +242,8 @@ static ColliderJntSphElementInit sJntSphItemsInitHead[11] = {
ELEMTYPE_UNK1,
{ 0x20000000, 0x00, 0x30 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 41, { { 3000, 0, 0 }, 60 }, 100 },
@ -253,8 +253,8 @@ static ColliderJntSphElementInit sJntSphItemsInitHead[11] = {
ELEMTYPE_UNK1,
{ 0x20000000, 0x00, 0x30 },
{ 0x00000080, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
},
{ 8, { { 1500, 0, 0 }, 70 }, 100 },
@ -287,8 +287,8 @@ static ColliderCylinderInit sCylinderInitHead = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ 85, 100, -50, { 0, 0, 0 } },
@ -307,8 +307,8 @@ static ColliderCylinderInit sCylinderInitHand = {
ELEMTYPE_UNK0,
{ 0x20000000, 0x04, 0x10 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NONE,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_NONE,
},
{ 85, 1, 0, { 0, 0, 0 } },

View file

@ -144,8 +144,8 @@ static ColliderCylinderInit sCylinderInitBlasts = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x30 },
{ 0x00100000, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 25, 35, -17, { 0, 0, 0 } },
@ -164,8 +164,8 @@ static ColliderCylinderInit sCylinderInitKoumeKotake = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x20 },
{ 0xFFCDFFFE, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 45, 120, -30, { 0, 0, 0 } },
@ -184,8 +184,8 @@ static ColliderCylinderInit sCylinderInitTwinrova = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x20 },
{ 0xFFCDFFFE, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON | BUMP_HOOKABLE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON | ACELEM_HOOKABLE,
OCELEM_ON,
},
{ 45, 120, -30, { 0, 0, 0 } },
@ -464,7 +464,7 @@ void BossTw_Init(Actor* thisx, PlayState* play2) {
if (this->actor.params == TW_FIRE_BLAST || this->actor.params == TW_FIRE_BLAST_GROUND) {
this->actionFunc = BossTw_BlastFire;
this->collider.elem.toucher.effect = 1;
this->collider.elem.atDmgInfo.effect = 1;
} else if (this->actor.params == TW_ICE_BLAST || this->actor.params == TW_ICE_BLAST_GROUND) {
this->actionFunc = BossTw_BlastIce;
} else if (this->actor.params >= TW_DEATHBALL_KOTAKE) {
@ -3097,7 +3097,7 @@ void BossTw_TwinrovaUpdate(Actor* thisx, PlayState* play2) {
ColliderElement* acHitElem = this->collider.elem.acHitElem;
this->collider.base.acFlags &= ~AC_HIT;
if (acHitElem->toucher.dmgFlags & (DMG_SLINGSHOT | DMG_ARROW)) {}
if (acHitElem->atDmgInfo.dmgFlags & (DMG_SLINGSHOT | DMG_ARROW)) {}
}
} else if (this->collider.base.acFlags & AC_HIT) {
u8 damage;
@ -3106,7 +3106,7 @@ void BossTw_TwinrovaUpdate(Actor* thisx, PlayState* play2) {
this->collider.base.acFlags &= ~AC_HIT;
swordDamage = false;
damage = CollisionCheck_GetSwordDamage(acHitElem->toucher.dmgFlags);
damage = CollisionCheck_GetSwordDamage(acHitElem->atDmgInfo.dmgFlags);
if (damage == 0) {
damage = 2;
@ -3114,7 +3114,7 @@ void BossTw_TwinrovaUpdate(Actor* thisx, PlayState* play2) {
swordDamage = true;
}
if (!(acHitElem->toucher.dmgFlags & DMG_HOOKSHOT)) {
if (!(acHitElem->atDmgInfo.dmgFlags & DMG_HOOKSHOT)) {
if (((s8)this->actor.colChkInfo.health < 3) && !swordDamage) {
damage = 0;
}
@ -4338,7 +4338,7 @@ s32 BossTw_BlastShieldCheck(BossTw* this, PlayState* play) {
this->collider.base.atFlags &= ~AT_HIT;
acHitElem = this->collider.elem.acHitElem;
if (acHitElem->toucher.dmgFlags & DMG_SHIELD) {
if (acHitElem->atDmgInfo.dmgFlags & DMG_SHIELD) {
this->work[INVINC_TIMER] = 7;
play->envCtx.lightBlend = 1.0f;
Rumble_Request(0.0f, 100, 5, 4);

View file

@ -213,8 +213,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK0,
{ 0xFFCFFFEF, 0x03, 0x08 },
{ 0x00000010, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 85, 120, 0, { 0, 0, 0 } },
@ -226,8 +226,8 @@ static ColliderJntSphElementInit sJntSphElementsInitSupport[1] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000010, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ 0, { { 0, 0, 0 }, 25 }, 100 },
@ -253,8 +253,8 @@ static ColliderJntSphElementInit sJntSphElementsInitBari[1] = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x03, 0x04 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_NONE,
},
{ 0, { { 0, 0, 0 }, 30 }, 100 },
@ -287,8 +287,8 @@ static ColliderQuadInit sQuadInit = {
ELEMTYPE_UNK0,
{ 0x20000000, 0x03, 0x04 },
{ 0x00000010, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL | TOUCH_UNK7,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL | ATELEM_UNK7,
ACELEM_ON,
OCELEM_NONE,
},
{ { { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f } } },
@ -1128,7 +1128,7 @@ void BossVa_BodyPhase2(BossVa* this, PlayState* play) {
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 255, COLORFILTER_BUFFLAG_OPA, 160);
this->actor.colorFilterTimer = this->invincibilityTimer;
} else {
this->colliderBody.elem.bumper.dmgFlags = DMG_BOOMERANG;
this->colliderBody.elem.acDmgInfo.dmgFlags = DMG_BOOMERANG;
}
}
@ -1138,7 +1138,7 @@ void BossVa_BodyPhase2(BossVa* this, PlayState* play) {
if (this->colliderBody.base.ac->id == ACTOR_EN_BOOM) {
sPhase2Timer &= 0xFE00;
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 255, COLORFILTER_BUFFLAG_OPA, 160);
this->colliderBody.elem.bumper.dmgFlags = DMG_SWORD | DMG_BOOMERANG | DMG_DEKU_STICK;
this->colliderBody.elem.acDmgInfo.dmgFlags = DMG_SWORD | DMG_BOOMERANG | DMG_DEKU_STICK;
} else {
sKillBari++;
if ((this->actor.colorFilterTimer != 0) && !(this->actor.colorFilterParams & 0x4000)) {
@ -1217,7 +1217,7 @@ void BossVa_BodyPhase2(BossVa* this, PlayState* play) {
}
void BossVa_SetupBodyPhase3(BossVa* this) {
this->colliderBody.elem.bumper.dmgFlags = DMG_BOOMERANG;
this->colliderBody.elem.acDmgInfo.dmgFlags = DMG_BOOMERANG;
this->actor.speed = 0.0f;
sPhase3StopMoving = false;
BossVa_SetupAction(this, BossVa_BodyPhase3);
@ -1421,7 +1421,7 @@ void BossVa_BodyPhase4(BossVa* this, PlayState* play) {
}
Math_SmoothStepToF(&this->actor.speed, ((sFightPhase - PHASE_4 + 1) * 1.5f) + 4.0f, 1.0f, 0.25f, 0.0f);
}
this->colliderBody.elem.bumper.dmgFlags = DMG_BOOMERANG;
this->colliderBody.elem.acDmgInfo.dmgFlags = DMG_BOOMERANG;
} else {
Math_SmoothStepToS(&this->vaBodySpinRate, 0, 1, 0x96, 0);
if (this->timer > 0) {
@ -1429,7 +1429,7 @@ void BossVa_BodyPhase4(BossVa* this, PlayState* play) {
this->timer = 35;
}
Math_SmoothStepToF(&this->actor.shape.yOffset, -480.0f, 1.0f, 30.0f, 0.0f);
this->colliderBody.elem.bumper.dmgFlags = DMG_SWORD | DMG_BOOMERANG | DMG_DEKU_STICK;
this->colliderBody.elem.acDmgInfo.dmgFlags = DMG_SWORD | DMG_BOOMERANG | DMG_DEKU_STICK;
this->timer--;
} else {
if ((player->stateFlags1 & PLAYER_STATE1_26) && (this->timer < -60)) {

View file

@ -27,8 +27,8 @@ static ColliderCylinderInitType1 sCylinderInit1 = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000008, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ 30, 100, 0, { 0, 0, 0 } },
@ -46,8 +46,8 @@ static ColliderCylinderInitType1 sCylinderInit2 = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000008, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ 25, 110, 0, { 0, 0, 0 } },
@ -65,8 +65,8 @@ static ColliderCylinderInitType1 sCylinderInit3 = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000008, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ 25, 200, 0, { 0, 0, 0 } },

View file

@ -46,8 +46,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK0,
{ 0x20000000, 0x07, 0x04 },
{ 0x00002000, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 680, 220, 120, { 0, 0, 0 } },

View file

@ -43,8 +43,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK2,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000048, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ 50, 10, 0, { 0 } },

View file

@ -54,8 +54,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x10 },
{ 0x0001FFEE, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_NONE,
},
{ 20, 100, 0, { 0, 0, 0 } },
@ -67,8 +67,8 @@ static ColliderJntSphElementInit sJntSphItemsInit[1] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000008, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ 0, { { 0, 0, 0 }, 100 }, 100 },
@ -423,10 +423,10 @@ void DoorKiller_Wait(DoorKiller* this, PlayState* play) {
if (DoorKiller_IsHit(&this->actor, play)) {
// AC cylinder: wobble if hit by most weapons, die if hit by explosives or hammer
if (this->colliderCylinder.elem.acHitElem->toucher.dmgFlags & (DMG_RANGED | DMG_SLASH | DMG_DEKU_STICK)) {
if (this->colliderCylinder.elem.acHitElem->atDmgInfo.dmgFlags & (DMG_RANGED | DMG_SLASH | DMG_DEKU_STICK)) {
this->timer = 16;
this->actionFunc = DoorKiller_Wobble;
} else if (this->colliderCylinder.elem.acHitElem->toucher.dmgFlags & (DMG_HAMMER_SWING | DMG_EXPLOSIVE)) {
} else if (this->colliderCylinder.elem.acHitElem->atDmgInfo.dmgFlags & (DMG_HAMMER_SWING | DMG_EXPLOSIVE)) {
DoorKiller_SpawnRubble(&this->actor, play);
this->actionFunc = DoorKiller_Die;
SfxSource_PlaySfxAtFixedWorldPos(play, &this->actor.world.pos, 20, NA_SE_EN_KDOOR_BREAK);

View file

@ -64,8 +64,8 @@ static ColliderCylinderInit sHurtCylinderInit = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
},
{ 15, 70, 0, { 0, 0, 0 } },
@ -84,8 +84,8 @@ static ColliderCylinderInit sBlockCylinderInit = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00400106, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ 15, 70, 0, { 0, 0, 0 } },
@ -104,8 +104,8 @@ static ColliderQuadInit sQuadInit = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x08 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_NONE,
},
{ { { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f } } },

View file

@ -51,8 +51,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
},
{ 30, 40, 0, { 0 } },

View file

@ -50,8 +50,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
},
{ 29, 103, 0, { 0, 0, 0 } },

View file

@ -44,8 +44,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x01, 0x04 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_NONE,
},
{ 0, 0, 0, { 0, 0, 0 } },
@ -113,7 +113,7 @@ void func_809B27D8(EnAnubiceFire* this, PlayState* play) {
Actor_PlaySfx(&this->actor, NA_SE_IT_SHIELD_REFLECT_SW);
this->cylinder.base.atFlags &= ~(AT_HIT | AT_BOUNCED | AT_TYPE_ENEMY);
this->cylinder.base.atFlags |= AT_TYPE_PLAYER;
this->cylinder.elem.toucher.dmgFlags = DMG_DEKU_STICK;
this->cylinder.elem.atDmgInfo.dmgFlags = DMG_DEKU_STICK;
this->unk_15A = 30;
this->actor.params = 1;
this->actor.velocity.x *= -1.0f;

View file

@ -44,8 +44,8 @@ static ColliderQuadInit sColliderInit = {
ELEMTYPE_UNK2,
{ 0x00000020, 0x00, 0x01 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_NEAREST | TOUCH_SFX_NONE,
BUMP_NONE,
ATELEM_ON | ATELEM_NEAREST | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_NONE,
},
{ { { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f } } },
@ -121,15 +121,15 @@ void EnArrow_Init(Actor* thisx, PlayState* play) {
Collider_SetQuad(play, &this->collider, &this->actor, &sColliderInit);
if (this->actor.params <= ARROW_NORMAL) {
this->collider.elem.toucherFlags &= ~TOUCH_SFX_MASK;
this->collider.elem.toucherFlags |= TOUCH_SFX_NORMAL;
this->collider.elem.atElemFlags &= ~ATELEM_SFX_MASK;
this->collider.elem.atElemFlags |= ATELEM_SFX_NORMAL;
}
if (this->actor.params < 0) {
this->collider.base.atFlags = (AT_ON | AT_TYPE_ENEMY);
} else if (this->actor.params <= ARROW_SEED) {
this->collider.elem.toucher.dmgFlags = dmgFlags[this->actor.params];
LOG_HEX("this->at_info.cl_elem.at_btl_info.at_type", this->collider.elem.toucher.dmgFlags,
this->collider.elem.atDmgInfo.dmgFlags = dmgFlags[this->actor.params];
LOG_HEX("this->at_info.cl_elem.at_btl_info.at_type", this->collider.elem.atDmgInfo.dmgFlags,
"../z_en_arrow.c", 707);
}
}
@ -298,10 +298,10 @@ void EnArrow_Fly(EnArrow* this, PlayState* play) {
this->hitFlags |= 1;
this->hitFlags |= 2;
if (this->collider.elem.atHitElem->bumperFlags & BUMP_HIT) {
this->actor.world.pos.x = this->collider.elem.atHitElem->bumper.hitPos.x;
this->actor.world.pos.y = this->collider.elem.atHitElem->bumper.hitPos.y;
this->actor.world.pos.z = this->collider.elem.atHitElem->bumper.hitPos.z;
if (this->collider.elem.atHitElem->acElemFlags & ACELEM_HIT) {
this->actor.world.pos.x = this->collider.elem.atHitElem->acDmgInfo.hitPos.x;
this->actor.world.pos.y = this->collider.elem.atHitElem->acDmgInfo.hitPos.y;
this->actor.world.pos.z = this->collider.elem.atHitElem->acDmgInfo.hitPos.z;
}
func_809B3CEC(play, this);

View file

@ -43,8 +43,8 @@ static ColliderJntSphElementInit sJntSphElementInit[2] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000010, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ 8, { { 0, 0, 0 }, 20 }, 100 },
@ -54,8 +54,8 @@ static ColliderJntSphElementInit sJntSphElementInit[2] = {
ELEMTYPE_UNK0,
{ 0x20000000, 0x00, 0x04 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_NONE,
},
{ 13, { { 0, 0, 0 }, 25 }, 100 },

View file

@ -213,8 +213,8 @@ static ColliderJntSphElementInit sJntSphElementInit[1] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
},
{ 0, { { 0, -120, 0 }, 4 }, 300 },
@ -331,9 +331,9 @@ void EnBb_Init(Actor* thisx, PlayState* play) {
this->timer = 0;
this->flameScaleY = 80.0f;
this->flameScaleX = 100.0f;
this->collider.elements[0].base.toucherFlags = TOUCH_ON | TOUCH_SFX_HARD;
this->collider.elements[0].base.toucher.dmgFlags = DMG_DEFAULT;
this->collider.elements[0].base.toucher.damage = 8;
this->collider.elements[0].base.atElemFlags = ATELEM_ON | ATELEM_SFX_HARD;
this->collider.elements[0].base.atDmgInfo.dmgFlags = DMG_DEFAULT;
this->collider.elements[0].base.atDmgInfo.damage = 8;
this->bobSize = this->actionState * 20.0f;
this->flamePrimAlpha = 255;
this->moveMode = BBMOVE_NORMAL;
@ -351,7 +351,7 @@ void EnBb_Init(Actor* thisx, PlayState* play) {
thisx->naviEnemyId = NAVI_ENEMY_RED_BUBBLE;
thisx->colChkInfo.damageTable = &sDamageTableRed;
this->flameEnvColor.r = 255;
this->collider.elements[0].base.toucher.effect = 1;
this->collider.elements[0].base.atDmgInfo.effect = 1;
EnBb_SetupRed(play, this);
break;
case ENBB_WHITE:
@ -1155,7 +1155,7 @@ void EnBb_CollisionCheck(EnBb* this, PlayState* play) {
Actor_SetDropFlag(&this->actor, &this->collider.elements[0].base, false);
switch (this->dmgEffect) {
case 7:
this->actor.freezeTimer = this->collider.elements[0].base.acHitElem->toucher.damage;
this->actor.freezeTimer = this->collider.elements[0].base.acHitElem->atDmgInfo.damage;
FALLTHROUGH;
case 5:
this->fireIceTimer = 0x30;
@ -1165,7 +1165,7 @@ void EnBb_CollisionCheck(EnBb* this, PlayState* play) {
//! Din's Fire on a white bubble will do just that. The mechanism is complex and described below.
goto block_15;
case 6:
this->actor.freezeTimer = this->collider.elements[0].base.acHitElem->toucher.damage;
this->actor.freezeTimer = this->collider.elements[0].base.acHitElem->atDmgInfo.damage;
break;
case 8:
case 9:

View file

@ -48,8 +48,8 @@ static ColliderJntSphElementInit sJntSphElementInit[1] = {
ELEMTYPE_UNK1,
{ 0x20000000, 0x00, 0x08 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_HARD,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_HARD,
ACELEM_ON,
OCELEM_ON,
},
{ 1, { { 0, 45, -30 }, 75 }, 100 },
@ -82,8 +82,8 @@ static ColliderCylinderInit sCylinderInit[] = {
ELEMTYPE_UNK1,
{ 0x20000000, 0x00, 0x08 },
{ 0xFFCFFFE7, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_HARD,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_HARD,
ACELEM_ON,
OCELEM_ON,
},
{ 50, 100, 0, { 30, 0, 12 } } },
@ -99,8 +99,8 @@ static ColliderCylinderInit sCylinderInit[] = {
ELEMTYPE_UNK1,
{ 0x20000000, 0x00, 0x08 },
{ 0xFFCFFFE7, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_HARD,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_HARD,
ACELEM_ON,
OCELEM_ON,
},
{ 50, 100, 0, { -30, 0, 12 } } },
@ -333,7 +333,7 @@ void func_809BD524(EnBigokuta* this) {
this->unk_19A = 0;
this->cylinder[0].base.atFlags |= AT_ON;
Actor_PlaySfx(&this->actor, NA_SE_EN_DAIOCTA_MAHI);
if (this->collider.elements[0].base.acHitElem->toucher.dmgFlags & DMG_DEKU_NUT) {
if (this->collider.elements[0].base.acHitElem->atDmgInfo.dmgFlags & DMG_DEKU_NUT) {
this->unk_195 = true;
this->unk_196 = 20;
} else {

View file

@ -53,8 +53,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x03, 0x08 },
{ 0xFFCFFFFF, 0x01, 0x00 },
TOUCH_ON | TOUCH_SFX_NONE,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_ON,
OCELEM_ON,
},
{ 9, 28, -20, { 0, 0, 0 } },
@ -141,7 +141,7 @@ void EnBili_Destroy(Actor* thisx, PlayState* play) {
void EnBili_SetupFloatIdle(EnBili* this) {
this->actor.speed = 0.7f;
this->collider.elem.bumper.effect = 1; // Shock?
this->collider.elem.acDmgInfo.effect = 1; // Shock?
this->timer = 32;
this->actor.home.pos.y = this->actor.world.pos.y;
this->actor.gravity = 0.0f;
@ -237,7 +237,7 @@ void EnBili_SetupDie(EnBili* this) {
*/
void EnBili_SetupStunned(EnBili* this) {
this->timer = 80;
this->collider.elem.bumper.effect = 0;
this->collider.elem.acDmgInfo.effect = 0;
this->actor.gravity = -1.0f;
this->actor.speed = 0.0f;
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 150, COLORFILTER_BUFFLAG_XLU, 80);
@ -586,7 +586,7 @@ void EnBili_UpdateDamage(EnBili* this, PlayState* play) {
EnBili_SetupBurnt(this);
}
if (this->collider.elem.acHitElem->toucher.dmgFlags & DMG_ARROW) {
if (this->collider.elem.acHitElem->atDmgInfo.dmgFlags & DMG_ARROW) {
this->actor.flags |= ACTOR_FLAG_4;
}
}

View file

@ -43,8 +43,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK2,
{ 0x00000000, 0x00, 0x00 },
{ 0x0003F828, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
},
{ 6, 11, 14, { 0, 0, 0 } },
@ -56,8 +56,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[1] = {
ELEMTYPE_UNK0,
{ 0x00000008, 0x00, 0x08 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NONE,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_NONE,
},
{ 0, { { 0, 0, 0 }, 0 }, 100 },
@ -101,7 +101,7 @@ void EnBom_Init(Actor* thisx, PlayState* play) {
Collider_InitJntSph(play, &this->explosionCollider);
Collider_SetCylinder(play, &this->bombCollider, thisx, &sCylinderInit);
Collider_SetJntSph(play, &this->explosionCollider, thisx, &sJntSphInit, &this->explosionColliderItems[0]);
this->explosionColliderItems[0].base.toucher.damage += (thisx->shape.rot.z & 0xFF00) >> 8;
this->explosionColliderItems[0].base.atDmgInfo.damage += (thisx->shape.rot.z & 0xFF00) >> 8;
thisx->shape.rot.z &= 0xFF;
if (thisx->shape.rot.z & 0x80) {
@ -241,7 +241,7 @@ void EnBom_Update(Actor* thisx, PlayState* play2) {
}
if ((thisx->xzDistToPlayer >= 20.0f) || (ABS(thisx->yDistToPlayer) >= 80.0f)) {
this->bumpOn = true;
this->colliderSetOC = true;
}
this->actionFunc(this, play);
@ -333,8 +333,8 @@ void EnBom_Update(Actor* thisx, PlayState* play2) {
if (thisx->params <= BOMB_BODY) {
Collider_UpdateCylinder(thisx, &this->bombCollider);
// if link is not holding the bomb anymore and bump conditions are met, subscribe to OC
if (!Actor_HasParent(thisx, play) && this->bumpOn) {
// if link is not holding the bomb anymore and conditions for OC are met, subscribe to OC
if (!Actor_HasParent(thisx, play) && this->colliderSetOC) {
CollisionCheck_SetOC(play, &play->colChkCtx, &this->bombCollider.base);
}

View file

@ -16,7 +16,7 @@ typedef struct EnBom {
/* 0x01F8 */ s16 timer;
/* 0x01FA */ s16 flashSpeedScale;
/* 0x01FC */ f32 flashIntensity;
/* 0x0200 */ u8 bumpOn;
/* 0x0200 */ u8 colliderSetOC;
/* 0x0204 */ EnBomActionFunc actionFunc;
} EnBom; // size = 0x0208

View file

@ -33,8 +33,8 @@ static ColliderJntSphElementInit sJntSphElemInit[] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
},
{ 1, { { 0, 0, 0 }, 12 }, 100 },

View file

@ -46,8 +46,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK2,
{ 0x00000000, 0x00, 0x00 },
{ 0x0003F828, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
},
{ 9, 18, 10, { 0, 0, 0 } },
@ -59,8 +59,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[1] = {
ELEMTYPE_UNK0,
{ 0x00000008, 0x00, 0x08 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NONE,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_NONE,
},
{ 0, { { 0, 0, 0 }, 0 }, 100 },
@ -121,7 +121,7 @@ void EnBombf_Init(Actor* thisx, PlayState* play) {
EnBombf_SetupAction(this, EnBombf_Move);
} else {
thisx->colChkInfo.mass = MASS_IMMOVABLE;
this->bumpOn = true;
this->colliderSetOC = true;
this->flowerBombScale = 1.0f;
EnBombf_SetupGrowBomb(this, thisx->params);
}
@ -320,13 +320,13 @@ void EnBombf_Update(Actor* thisx, PlayState* play) {
s32 pad[2];
EnBombf* this = (EnBombf*)thisx;
if ((this->isFuseEnabled) && (this->timer != 0)) {
if (this->isFuseEnabled && (this->timer != 0)) {
this->timer--;
}
if ((!this->bumpOn) && (!Actor_HasParent(thisx, play)) &&
if (!this->colliderSetOC && !Actor_HasParent(thisx, play) &&
((thisx->xzDistToPlayer >= 20.0f) || (ABS(thisx->yDistToPlayer) >= 80.0f))) {
this->bumpOn = true;
this->colliderSetOC = true;
}
this->actionFunc(this, play);
@ -444,7 +444,7 @@ void EnBombf_Update(Actor* thisx, PlayState* play) {
Collider_UpdateCylinder(thisx, &this->bombCollider);
if ((this->flowerBombScale >= 1.0f) && (this->bumpOn)) {
if ((this->flowerBombScale >= 1.0f) && this->colliderSetOC) {
CollisionCheck_SetOC(play, &play->colChkCtx, &this->bombCollider.base);
}

View file

@ -16,7 +16,7 @@ typedef struct EnBombf {
/* 0x01F8 */ s16 timer;
/* 0x01FC */ EnBombfActionFunc actionFunc;
/* 0x0200 */ s32 isFuseEnabled; // enables the ability to ignite and tick down to explode
/* 0x0204 */ u8 bumpOn;
/* 0x0204 */ u8 colliderSetOC;
/* 0x0206 */ s16 flashSpeedScale;
/* 0x0208 */ f32 flashIntensity;
/* 0x020C */ f32 flowerBombScale;

View file

@ -41,8 +41,8 @@ static ColliderQuadInit sQuadInit = {
ELEMTYPE_UNK2,
{ 0x00000010, 0x00, 0x01 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_NEAREST | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_NEAREST | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_NONE,
},
{ { { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f } } },

View file

@ -47,8 +47,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK1,
{ 0xFFCFFFFF, 0x03, 0x08 },
{ 0xFFCFFFFF, 0x01, 0x00 },
TOUCH_ON | TOUCH_SFX_NONE,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_ON,
OCELEM_ON,
},
{ 8000, 11000, -5000, { 0, 0, 0 } },
@ -263,8 +263,8 @@ void EnBrob_Update(Actor* thisx, PlayState* play2) {
acHits[0] = (this->colliders[0].base.acFlags & AC_HIT) != 0;
acHits[1] = (this->colliders[1].base.acFlags & AC_HIT) != 0;
if ((acHits[0] && (this->colliders[0].elem.acHitElem->toucher.dmgFlags & DMG_BOOMERANG)) ||
(acHits[1] && (this->colliders[1].elem.acHitElem->toucher.dmgFlags & DMG_BOOMERANG))) {
if ((acHits[0] && (this->colliders[0].elem.acHitElem->atDmgInfo.dmgFlags & DMG_BOOMERANG)) ||
(acHits[1] && (this->colliders[1].elem.acHitElem->atDmgInfo.dmgFlags & DMG_BOOMERANG))) {
for (i = 0; i < 2; i++) {
this->colliders[i].base.atFlags &= ~(AT_HIT | AT_BOUNCED);
@ -273,8 +273,8 @@ void EnBrob_Update(Actor* thisx, PlayState* play2) {
EnBrob_SetupStunned(this);
} else if ((this->colliders[0].base.atFlags & AT_HIT) || (this->colliders[1].base.atFlags & AT_HIT) ||
(acHits[0] && (this->colliders[0].elem.acHitElem->toucher.dmgFlags & DMG_SLASH_KOKIRI)) ||
(acHits[1] && (this->colliders[1].elem.acHitElem->toucher.dmgFlags & DMG_SLASH_KOKIRI))) {
(acHits[0] && (this->colliders[0].elem.acHitElem->atDmgInfo.dmgFlags & DMG_SLASH_KOKIRI)) ||
(acHits[1] && (this->colliders[1].elem.acHitElem->atDmgInfo.dmgFlags & DMG_SLASH_KOKIRI))) {
if (this->actionFunc == EnBrob_MoveUp && !(this->colliders[0].base.atFlags & AT_BOUNCED) &&
!(this->colliders[1].base.atFlags & AT_BOUNCED)) {

View file

@ -30,8 +30,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[2] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x04 },
{ 0xFFCFD753, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
},
{ 0, { { 0, 0, 0 }, 16 }, 100 },
@ -41,8 +41,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[2] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00002824, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON | BUMP_NO_AT_INFO | BUMP_NO_DAMAGE | BUMP_NO_SWORD_SFX | BUMP_NO_HITMARK,
ATELEM_NONE,
ACELEM_ON | ACELEM_NO_AT_INFO | ACELEM_NO_DAMAGE | ACELEM_NO_SWORD_SFX | ACELEM_NO_HITMARK,
OCELEM_NONE,
},
{ 0, { { 0, 0, 0 }, 16 }, 100 },
@ -97,10 +97,10 @@ void EnBubble_SetDimensions(EnBubble* this, f32 dim) {
u32 func_809CBCBC(EnBubble* this) {
ColliderElement* elem = &this->colliderSphere.elements[0].base;
elem->toucher.dmgFlags = DMG_EXPLOSIVE;
elem->toucher.effect = 0;
elem->toucher.damage = 4;
elem->toucherFlags = TOUCH_ON;
elem->atDmgInfo.dmgFlags = DMG_EXPLOSIVE;
elem->atDmgInfo.effect = 0;
elem->atDmgInfo.damage = 4;
elem->atElemFlags = ATELEM_ON;
this->actor.velocity.y = 0.0f;
return 6;
}
@ -112,7 +112,7 @@ u32 func_809CBCEC(EnBubble* this) {
}
void EnBubble_DamagePlayer(EnBubble* this, PlayState* play) {
s32 damage = -this->colliderSphere.elements[0].base.toucher.damage;
s32 damage = -this->colliderSphere.elements[0].base.atDmgInfo.damage;
play->damagePlayer(play, damage);
func_8002F7A0(play, &this->actor, 6.0f, this->actor.yawTowardsPlayer, 6.0f);
@ -196,7 +196,7 @@ void EnBubble_Vec3fNormalize(Vec3f* vec) {
void EnBubble_Fly(EnBubble* this, PlayState* play) {
CollisionPoly* poly;
Actor* bumpActor;
Actor* attackerActor;
Vec3f sp84;
Vec3f sp78;
Vec3f sp6C;
@ -206,21 +206,21 @@ void EnBubble_Fly(EnBubble* this, PlayState* play) {
s32 bgId;
u8 bounceCount;
if (this->colliderSphere.elements[1].base.bumperFlags & BUMP_HIT) {
bumpActor = this->colliderSphere.base.ac;
this->normalizedBumpVelocity = bumpActor->velocity;
EnBubble_Vec3fNormalize(&this->normalizedBumpVelocity);
this->velocityFromBump.x += (this->normalizedBumpVelocity.x * 3.0f);
this->velocityFromBump.y += (this->normalizedBumpVelocity.y * 3.0f);
this->velocityFromBump.z += (this->normalizedBumpVelocity.z * 3.0f);
if (this->colliderSphere.elements[1].base.acElemFlags & ACELEM_HIT) {
attackerActor = this->colliderSphere.base.ac;
this->normalizedAttackerVelocity = attackerActor->velocity;
EnBubble_Vec3fNormalize(&this->normalizedAttackerVelocity);
this->velocityFromAttack.x += (this->normalizedAttackerVelocity.x * 3.0f);
this->velocityFromAttack.y += (this->normalizedAttackerVelocity.y * 3.0f);
this->velocityFromAttack.z += (this->normalizedAttackerVelocity.z * 3.0f);
}
this->sinkSpeed -= 0.1f;
if (this->sinkSpeed < this->actor.minVelocityY) {
this->sinkSpeed = this->actor.minVelocityY;
}
sp54.x = this->velocityFromBounce.x + this->velocityFromBump.x;
sp54.y = this->velocityFromBounce.y + this->velocityFromBump.y + this->sinkSpeed;
sp54.z = this->velocityFromBounce.z + this->velocityFromBump.z;
sp54.x = this->velocityFromBounce.x + this->velocityFromAttack.x;
sp54.y = this->velocityFromBounce.y + this->velocityFromAttack.y + this->sinkSpeed;
sp54.z = this->velocityFromBounce.z + this->velocityFromAttack.z;
EnBubble_Vec3fNormalize(&sp54);
sp78.x = this->actor.world.pos.x;
@ -243,7 +243,7 @@ void EnBubble_Fly(EnBubble* this, PlayState* play) {
this->bounceCount = 0;
}
bounceSpeed = (this->bounceCount == 0) ? 3.6000001f : 3.0f;
this->velocityFromBump.x = this->velocityFromBump.y = this->velocityFromBump.z = 0.0f;
this->velocityFromAttack.x = this->velocityFromAttack.y = this->velocityFromAttack.z = 0.0f;
this->velocityFromBounce.x = (this->bounceDirection.x * bounceSpeed);
this->velocityFromBounce.y = (this->bounceDirection.y * bounceSpeed);
this->velocityFromBounce.z = (this->bounceDirection.z * bounceSpeed);
@ -262,7 +262,7 @@ void EnBubble_Fly(EnBubble* this, PlayState* play) {
this->bounceCount = 0;
}
bounceSpeed = (this->bounceCount == 0) ? 3.6000001f : 3.0f;
this->velocityFromBump.x = this->velocityFromBump.y = this->velocityFromBump.z = 0.0f;
this->velocityFromAttack.x = this->velocityFromAttack.y = this->velocityFromAttack.z = 0.0f;
this->velocityFromBounce.x = (this->bounceDirection.x * bounceSpeed);
this->velocityFromBounce.y = (this->bounceDirection.y * bounceSpeed);
this->velocityFromBounce.z = (this->bounceDirection.z * bounceSpeed);
@ -271,12 +271,12 @@ void EnBubble_Fly(EnBubble* this, PlayState* play) {
this->graphicRotSpeed = 128.0f;
this->graphicEccentricity = 0.48f;
}
this->actor.velocity.x = this->velocityFromBounce.x + this->velocityFromBump.x;
this->actor.velocity.y = this->velocityFromBounce.y + this->velocityFromBump.y + this->sinkSpeed;
this->actor.velocity.z = this->velocityFromBounce.z + this->velocityFromBump.z;
Math_ApproachF(&this->velocityFromBump.x, 0.0f, 0.3f, 0.1f);
Math_ApproachF(&this->velocityFromBump.y, 0.0f, 0.3f, 0.1f);
Math_ApproachF(&this->velocityFromBump.z, 0.0f, 0.3f, 0.1f);
this->actor.velocity.x = this->velocityFromBounce.x + this->velocityFromAttack.x;
this->actor.velocity.y = this->velocityFromBounce.y + this->velocityFromAttack.y + this->sinkSpeed;
this->actor.velocity.z = this->velocityFromBounce.z + this->velocityFromAttack.z;
Math_ApproachF(&this->velocityFromAttack.x, 0.0f, 0.3f, 0.1f);
Math_ApproachF(&this->velocityFromAttack.y, 0.0f, 0.3f, 0.1f);
Math_ApproachF(&this->velocityFromAttack.z, 0.0f, 0.3f, 0.1f);
}
u32 func_809CC648(EnBubble* this) {
@ -284,7 +284,7 @@ u32 func_809CC648(EnBubble* this) {
return false;
}
this->colliderSphere.base.acFlags &= ~AC_HIT;
if (this->colliderSphere.elements[1].base.bumperFlags & BUMP_HIT) {
if (this->colliderSphere.elements[1].base.acElemFlags & ACELEM_HIT) {
this->unk_1F0.x = this->colliderSphere.base.ac->velocity.x / 10.0f;
this->unk_1F0.y = this->colliderSphere.base.ac->velocity.y / 10.0f;
this->unk_1F0.z = this->colliderSphere.base.ac->velocity.z / 10.0f;

View file

@ -27,8 +27,8 @@ typedef struct EnBubble {
/* 0x0228 */ u8 bounceCount;
/* 0x022C */ Vec3f bounceDirection;
/* 0x0238 */ Vec3f velocityFromBounce;
/* 0x0244 */ Vec3f normalizedBumpVelocity;
/* 0x0250 */ Vec3f velocityFromBump;
/* 0x0244 */ Vec3f normalizedAttackerVelocity;
/* 0x0250 */ Vec3f velocityFromAttack;
/* 0x025C */ f32 sinkSpeed;
} EnBubble; // size = 0x0260

View file

@ -30,8 +30,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x000, 0x00 },
TOUCH_NONE,
BUMP_NONE,
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
},
{ 0, { { 0, 0, 0 }, 5 }, 100 } },

View file

@ -58,8 +58,8 @@ static ColliderCylinderInit sCylinderInit1 = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x01, 0x08 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_NONE,
},
{ 30, 65, 0, { 0, 0, 0 } },
@ -78,8 +78,8 @@ static ColliderCylinderInit sCylinderInit2 = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
},
{ 30, 35, 0, { 0, 0, 0 } },
@ -766,7 +766,7 @@ void EnBw_Update(Actor* thisx, PlayState* play2) {
func_8002836C(play, &thisx->world.pos, &velocity, &accel, &sp50, &sp4C, 0x3C, 0, 0x14);
}
if (this->unk_248 <= 0.4f) {
this->collider1.elem.toucher.effect = 0;
this->collider1.elem.atDmgInfo.effect = 0;
if (((play->gameplayFrames & 1) == 0) && (this->unk_220 < 5) && (this->unk_23C == 0)) {
accel.y = -0.1f;
velocity.x = Rand_CenteredFloat(4.0f);
@ -786,7 +786,7 @@ void EnBw_Update(Actor* thisx, PlayState* play2) {
20.0f - (this->unk_248 * 40.0f));
}
} else {
this->collider1.elem.toucher.effect = 1;
this->collider1.elem.atDmgInfo.effect = 1;
}
this->unk_234 = Actor_TestFloorInDirection(thisx, play, 50.0f, thisx->world.rot.y);

View file

@ -39,8 +39,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK1,
{ 0xFFCFFFFF, 0x03, 0x04 },
{ 0xFFCFFFFF, 0x01, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_NONE,
},
{ 60, 100, 100, { 0, 0, 0 } },
@ -59,8 +59,8 @@ static ColliderQuadInit sQuadInit = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x03, 0x04 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_NONE,
},
{ { { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f } } },

View file

@ -47,8 +47,8 @@ static ColliderCylinderInit sArwingCylinderInit = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x04 },
{ 0xFFDFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 15, 30, 10, { 0, 0, 0 } },
@ -67,8 +67,8 @@ static ColliderCylinderInit sLaserCylinderInit = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x04 },
{ 0xFFDFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_NORMAL,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
{ 15, 30, 10, { 0, 0, 0 } },

View file

@ -51,8 +51,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
},
{ 30, 40, 0, { 0, 0, 0 } },

View file

@ -36,8 +36,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[1] = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x08 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_HARD,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_HARD,
ACELEM_ON,
OCELEM_ON,
},
{ 1, { { 0, 0, 0 }, 20 }, 100 },

View file

@ -40,8 +40,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_NONE,
BUMP_NONE,
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
},
{ 18, 63, 0, { 0, 0, 0 } },

View file

@ -66,8 +66,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_NONE,
BUMP_NONE,
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
},
{ 18, 66, 0, { 0, 0, 0 } },

View file

@ -49,8 +49,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_NONE,
BUMP_NONE,
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
},
{ 18, 66, 0, { 0, 0, 0 } },

View file

@ -47,8 +47,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[7] = {
ELEMTYPE_UNK0,
{ 0xFFCFFFFF, 0x00, 0x08 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_ON | TOUCH_SFX_HARD,
BUMP_ON,
ATELEM_ON | ATELEM_SFX_HARD,
ACELEM_ON,
OCELEM_ON,
},
{ 1, { { 0, 100, 1000 }, 15 }, 100 },
@ -58,8 +58,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[7] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_NONE,
BUMP_NONE,
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
},
{ 51, { { 0, 0, 1500 }, 8 }, 100 },
@ -69,8 +69,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[7] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_NONE,
BUMP_NONE,
ATELEM_NONE,
ACELEM_NONE,
OCELEM_NONE,
},
{ 52, { { 0, 0, 500 }, 8 }, 100 },
@ -80,8 +80,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[7] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_NONE,
BUMP_NONE,
ATELEM_NONE,
ACELEM_NONE,
OCELEM_NONE,
},
{ 53, { { 0, 0, 1500 }, 8 }, 100 },
@ -91,8 +91,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[7] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_NONE,
BUMP_NONE,
ATELEM_NONE,
ACELEM_NONE,
OCELEM_NONE,
},
{ 54, { { 0, 0, 500 }, 8 }, 100 },
@ -102,8 +102,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[7] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_NONE,
BUMP_NONE,
ATELEM_NONE,
ACELEM_NONE,
OCELEM_NONE,
},
{ 55, { { 0, 0, 1500 }, 8 }, 100 },
@ -113,8 +113,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[7] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_NONE,
BUMP_NONE,
ATELEM_NONE,
ACELEM_NONE,
OCELEM_NONE,
},
{ 56, { { 0, 0, 500 }, 8 }, 100 },
@ -282,7 +282,7 @@ void EnDekubaba_DisableACColliderElems(EnDekubaba* this) {
s32 i;
for (i = 1; i < ARRAY_COUNT(this->colliderElements); i++) {
this->collider.elements[i].base.bumperFlags &= ~BUMP_ON;
this->collider.elements[i].base.acElemFlags &= ~ACELEM_ON;
}
}
@ -417,7 +417,7 @@ void EnDekubaba_SetupStunnedVertical(EnDekubaba* this) {
s32 i;
for (i = 1; i < ARRAY_COUNT(this->colliderElements); i++) {
this->collider.elements[i].base.bumperFlags |= BUMP_ON;
this->collider.elements[i].base.acElemFlags |= ACELEM_ON;
}
if (this->timer == 1) {

View file

@ -55,8 +55,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
},
{ 18, 32, 0, { 0, 0, 0 } },
@ -204,7 +204,7 @@ void EnDekunuts_SetupGasp(EnDekunuts* this) {
void EnDekunuts_SetupBeDamaged(EnDekunuts* this) {
Animation_MorphToPlayOnce(&this->skelAnime, &gDekuNutsDamageAnim, -3.0f);
if (this->collider.elem.acHitElem->toucher.dmgFlags & (DMG_ARROW | DMG_SLINGSHOT)) {
if (this->collider.elem.acHitElem->atDmgInfo.dmgFlags & (DMG_ARROW | DMG_SLINGSHOT)) {
this->actor.world.rot.y = this->collider.base.ac->world.rot.y;
} else {
this->actor.world.rot.y = Actor_WorldYawTowardActor(&this->actor, this->collider.base.ac) + 0x8000;

View file

@ -56,8 +56,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000008, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
},
{ 35, 70, 0, { 0, 0, 0 } },
@ -69,8 +69,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[1] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON | OCELEM_UNK3,
},
{ 1, { { 0, 0, 0 }, 20 }, 100 },
@ -302,8 +302,8 @@ void EnDh_Attack(EnDh* this, PlayState* play) {
Animation_Change(&this->skelAnime, &object_dh_Anim_004658, -1.0f, this->skelAnime.curFrame, 0.0f, ANIMMODE_ONCE,
-4.0f);
this->actionState = 4;
this->collider2.base.atFlags = this->collider2.elements[0].base.toucherFlags = AT_NONE; // also TOUCH_NONE
this->collider2.elements[0].base.toucher.dmgFlags = this->collider2.elements[0].base.toucher.damage = 0;
this->collider2.base.atFlags = this->collider2.elements[0].base.atElemFlags = AT_NONE; // also ATELEM_NONE
this->collider2.elements[0].base.atDmgInfo.dmgFlags = this->collider2.elements[0].base.atDmgInfo.damage = 0;
}
switch (this->actionState) {
case 1:
@ -316,16 +316,17 @@ void EnDh_Attack(EnDh* this, PlayState* play) {
break;
case 2:
if (this->skelAnime.curFrame >= 4.0f) {
this->collider2.base.atFlags = this->collider2.elements[0].base.toucherFlags =
AT_ON | AT_TYPE_ENEMY; // also TOUCH_ON | TOUCH_SFX_WOOD
this->collider2.elements[0].base.toucher.dmgFlags = DMG_DEFAULT;
this->collider2.elements[0].base.toucher.damage = 8;
this->collider2.base.atFlags = this->collider2.elements[0].base.atElemFlags =
AT_ON | AT_TYPE_ENEMY; // also ATELEM_ON | ATELEM_SFX_WOOD
this->collider2.elements[0].base.atDmgInfo.dmgFlags = DMG_DEFAULT;
this->collider2.elements[0].base.atDmgInfo.damage = 8;
}
if (this->collider2.base.atFlags & AT_BOUNCED) {
this->collider2.base.atFlags &= ~(AT_HIT | AT_BOUNCED);
this->collider2.base.atFlags = this->collider2.elements[0].base.toucherFlags =
AT_NONE; // also TOUCH_NONE
this->collider2.elements[0].base.toucher.dmgFlags = this->collider2.elements[0].base.toucher.damage = 0;
this->collider2.base.atFlags = this->collider2.elements[0].base.atElemFlags =
AT_NONE; // also ATELEM_NONE
this->collider2.elements[0].base.atDmgInfo.dmgFlags =
this->collider2.elements[0].base.atDmgInfo.damage = 0;
this->actionState++;
} else if (this->collider2.base.atFlags & AT_HIT) {
this->collider2.base.atFlags &= ~AT_HIT;
@ -343,9 +344,10 @@ void EnDh_Attack(EnDh* this, PlayState* play) {
Animation_Change(&this->skelAnime, &object_dh_Anim_004658, -1.0f,
Animation_GetLastFrame(&object_dh_Anim_004658), 0.0f, ANIMMODE_ONCE, -4.0f);
this->actionState++;
this->collider2.base.atFlags = this->collider2.elements[0].base.toucherFlags =
AT_NONE; // also TOUCH_NONE
this->collider2.elements[0].base.toucher.dmgFlags = this->collider2.elements[0].base.toucher.damage = 0;
this->collider2.base.atFlags = this->collider2.elements[0].base.atElemFlags =
AT_NONE; // also ATELEM_NONE
this->collider2.elements[0].base.atDmgInfo.dmgFlags =
this->collider2.elements[0].base.atDmgInfo.damage = 0;
}
break;
case 5:
@ -374,10 +376,10 @@ void EnDh_Burrow(EnDh* this, PlayState* play) {
case 0:
this->actionState++;
this->drawDirtWave++;
this->collider1.base.atFlags = this->collider1.elem.toucherFlags =
AT_ON | AT_TYPE_ENEMY; // also TOUCH_ON | TOUCH_SFX_WOOD
this->collider1.elem.toucher.dmgFlags = DMG_DEFAULT;
this->collider1.elem.toucher.damage = 4;
this->collider1.base.atFlags = this->collider1.elem.atElemFlags =
AT_ON | AT_TYPE_ENEMY; // also ATELEM_ON | ATELEM_SFX_WOOD
this->collider1.elem.atDmgInfo.dmgFlags = DMG_DEFAULT;
this->collider1.elem.atDmgInfo.damage = 4;
FALLTHROUGH;
case 1:
this->dirtWavePhase += 0x47E;
@ -393,8 +395,8 @@ void EnDh_Burrow(EnDh* this, PlayState* play) {
case 2:
this->drawDirtWave = false;
this->collider1.dim.radius = 35;
this->collider1.base.atFlags = this->collider1.elem.toucherFlags = AT_NONE; // Also TOUCH_NONE
this->collider1.elem.toucher.dmgFlags = this->collider1.elem.toucher.damage = 0;
this->collider1.base.atFlags = this->collider1.elem.atElemFlags = AT_NONE; // Also ATELEM_NONE
this->collider1.elem.atDmgInfo.dmgFlags = this->collider1.elem.atDmgInfo.damage = 0;
EnDh_SetupWait(this);
break;
}
@ -477,8 +479,8 @@ void EnDh_CollisionCheck(EnDh* this, PlayState* play) {
if ((this->collider2.base.acFlags & AC_HIT) && !this->retreat) {
this->collider2.base.acFlags &= ~AC_HIT;
if ((this->actor.colChkInfo.damageEffect != 0) && (this->actor.colChkInfo.damageEffect != 6)) {
this->collider2.base.atFlags = this->collider2.elements[0].base.toucherFlags = AT_NONE; // also TOUCH_NONE
this->collider2.elements[0].base.toucher.dmgFlags = this->collider2.elements[0].base.toucher.damage = 0;
this->collider2.base.atFlags = this->collider2.elements[0].base.atElemFlags = AT_NONE; // also ATELEM_NONE
this->collider2.elements[0].base.atDmgInfo.dmgFlags = this->collider2.elements[0].base.atDmgInfo.damage = 0;
if (player->unk_844 != 0) {
this->unk_258 = player->unk_845;
}

View file

@ -76,8 +76,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ 1, { { 0, 0, 0 }, 12 }, 100 },
@ -87,8 +87,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
},
{ 2, { { 3200, 0, 0 }, 10 }, 100 },
@ -98,8 +98,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
},
{ 3, { { 1200, 0, 0 }, 10 }, 100 },
@ -109,8 +109,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
{ 4, { { 2700, 0, 0 }, 10 }, 100 },
@ -120,8 +120,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
},
{ 5, { { 1200, 0, 0 }, 10 }, 100 },

View file

@ -61,8 +61,8 @@ static ColliderCylinderInit sCylinderInit = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0x00000000, 0x00, 0x00 },
TOUCH_NONE | TOUCH_SFX_NORMAL,
BUMP_NONE,
ATELEM_NONE | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
},
{ 10, 10, 0, { 0, 0, 0 } },

View file

@ -66,8 +66,8 @@ static ColliderCylinderInitType1 sCylinderInit = {
ELEMTYPE_UNK0,
{ 0x00000000, 0x00, 0x00 },
{ 0xFFCFFFFF, 0x00, 0x00 },
TOUCH_NONE,
BUMP_ON,
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
},
{ 18, 32, 0, { 0, 0, 0 } },
@ -156,7 +156,7 @@ void EnDns_Init(Actor* thisx, PlayState* play) {
Actor_SetScale(&this->actor, 0.01f);
this->actor.colChkInfo.mass = MASS_IMMOVABLE;
this->bumpOn = true;
this->isColliderEnabled = true;
this->standOnGround = true;
this->dropCollectible = false;
this->actor.speed = 0.0f;
@ -434,7 +434,7 @@ void EnDns_SetupBurrow(EnDns* this, PlayState* play) {
if ((Message_GetState(&play->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(play)) {
this->dnsItemEntry->payment(this);
this->dropCollectible = true;
this->bumpOn = false;
this->isColliderEnabled = false;
this->actor.flags &= ~ACTOR_FLAG_0;
EnDns_ChangeAnim(this, DNS_ANIM_BURROW);
this->actionFunc = EnDns_Burrow;
@ -442,7 +442,7 @@ void EnDns_SetupBurrow(EnDns* this, PlayState* play) {
} else {
this->dnsItemEntry->payment(this);
this->dropCollectible = true;
this->bumpOn = false;
this->isColliderEnabled = false;
this->actor.flags &= ~ACTOR_FLAG_0;
EnDns_ChangeAnim(this, DNS_ANIM_BURROW);
this->actionFunc = EnDns_Burrow;
@ -451,7 +451,7 @@ void EnDns_SetupBurrow(EnDns* this, PlayState* play) {
void EnDns_SetupNoSaleBurrow(EnDns* this, PlayState* play) {
if ((Message_GetState(&play->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(play)) {
this->bumpOn = false;
this->isColliderEnabled = false;
this->actor.flags &= ~ACTOR_FLAG_0;
EnDns_ChangeAnim(this, DNS_ANIM_BURROW);
this->actionFunc = EnDns_Burrow;
@ -515,7 +515,7 @@ void EnDns_Update(Actor* thisx, PlayState* play) {
Actor_UpdateBgCheckInfo(play, &this->actor, 20.0f, 20.0f, 20.0f, UPDBGCHECKINFO_FLAG_2);
}
if (this->bumpOn) {
if (this->isColliderEnabled) {
Collider_UpdateCylinder(&this->actor, &this->collider);
CollisionCheck_SetOC(play, &play->colChkCtx, &this->collider.base);
}

View file

@ -58,7 +58,7 @@ typedef struct EnDns {
/* 0x026C */ ColliderCylinder collider;
/* 0x02B8 */ s16 dustTimer;
/* 0x02BA */ u8 animIndex; // set but not read
/* 0x02BB */ u8 bumpOn;
/* 0x02BB */ u8 isColliderEnabled;
/* 0x02BC */ u8 standOnGround;
/* 0x02BD */ u8 dropCollectible;
/* 0x02C0 */ DnsItemEntry* dnsItemEntry;

Some files were not shown because too many files have changed in this diff Show more