From b4d6c3921f4ce8d5847dda195881516a80c453a3 Mon Sep 17 00:00:00 2001 From: Derek Hensley Date: Fri, 27 Sep 2024 22:00:54 -0700 Subject: [PATCH] Colliders Sync ColliderElement (#1698) --- include/functions.h | 2 +- include/z64collision_check.h | 74 ++--- src/code/z_actor.c | 26 +- src/code/z_collision_check.c | 307 +++++++++--------- src/code/z_fireobj.c | 2 +- .../actors/ovl_Arms_Hook/z_arms_hook.c | 4 +- .../z_bg_dblue_waterfall.c | 4 +- .../z_bg_hakugin_bombwall.c | 2 +- .../actors/ovl_Bg_Ikninside/z_bg_ikninside.c | 2 +- .../actors/ovl_Bg_Spdweb/z_bg_spdweb.c | 2 +- src/overlays/actors/ovl_Boss_01/z_boss_01.c | 10 +- src/overlays/actors/ovl_Boss_03/z_boss_03.c | 14 +- src/overlays/actors/ovl_Boss_05/z_boss_05.c | 6 +- .../actors/ovl_Boss_Hakugin/z_boss_hakugin.c | 14 +- src/overlays/actors/ovl_En_Arrow/z_en_arrow.c | 4 +- src/overlays/actors/ovl_En_Bb/z_en_bb.c | 2 +- .../actors/ovl_En_Bbfall/z_en_bbfall.c | 2 +- .../actors/ovl_En_Bigokuta/z_en_bigokuta.c | 4 +- .../actors/ovl_En_Bigslime/z_en_bigslime.c | 2 +- src/overlays/actors/ovl_En_Bombf/z_en_bombf.c | 4 +- .../actors/ovl_En_Bubble/z_en_bubble.c | 10 +- .../actors/ovl_En_Dekubaba/z_en_dekubaba.c | 2 +- .../actors/ovl_En_Dekunuts/z_en_dekunuts.c | 2 +- .../actors/ovl_En_Dinofos/z_en_dinofos.c | 2 +- .../actors/ovl_En_Dodongo/z_en_dodongo.c | 4 +- .../actors/ovl_En_Floormas/z_en_floormas.c | 2 +- src/overlays/actors/ovl_En_Ge2/z_en_ge2.c | 4 +- .../actors/ovl_En_Goroiwa/z_en_goroiwa.c | 8 +- src/overlays/actors/ovl_En_Ik/z_en_ik.c | 2 +- src/overlays/actors/ovl_En_Ishi/z_en_ishi.c | 2 +- src/overlays/actors/ovl_En_Kame/z_en_kame.c | 2 +- .../actors/ovl_En_Kanban/z_en_kanban.c | 12 +- .../actors/ovl_En_Knight/z_en_knight.c | 6 +- src/overlays/actors/ovl_En_Kusa2/z_en_kusa2.c | 2 +- src/overlays/actors/ovl_En_Okuta/z_en_okuta.c | 2 +- .../actors/ovl_En_Pametfrog/z_en_pametfrog.c | 2 +- .../actors/ovl_En_Peehat/z_en_peehat.c | 4 +- src/overlays/actors/ovl_En_Rr/z_en_rr.c | 2 +- src/overlays/actors/ovl_En_Slime/z_en_slime.c | 2 +- src/overlays/actors/ovl_En_Ssh/z_en_ssh.c | 6 +- .../actors/ovl_En_Tanron2/z_en_tanron2.c | 8 +- .../actors/ovl_En_Tanron5/z_en_tanron5.c | 12 +- src/overlays/actors/ovl_En_Tite/z_en_tite.c | 2 +- .../actors/ovl_En_Wallmas/z_en_wallmas.c | 2 +- src/overlays/actors/ovl_En_Wf/z_en_wf.c | 2 +- .../actors/ovl_En_Wiz_Fire/z_en_wiz_fire.c | 6 +- .../ovl_Obj_Bigicicle/z_obj_bigicicle.c | 2 +- .../actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c | 10 +- src/overlays/actors/ovl_Obj_Chan/z_obj_chan.c | 4 +- src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c | 4 +- .../ovl_Obj_Flowerpot/z_obj_flowerpot.c | 2 +- .../actors/ovl_Obj_Hamishi/z_obj_hamishi.c | 6 +- .../ovl_Obj_Hugebombiwa/z_obj_hugebombiwa.c | 2 +- .../actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c | 4 +- .../actors/ovl_Obj_Iceblock/z_obj_iceblock.c | 2 +- .../actors/ovl_Obj_Kibako2/z_obj_kibako2.c | 6 +- .../ovl_Obj_Lightblock/z_obj_lightblock.c | 2 +- .../ovl_Obj_Lightswitch/z_obj_lightswitch.c | 2 +- src/overlays/actors/ovl_Obj_Mine/z_obj_mine.c | 4 +- .../actors/ovl_Obj_Snowball/z_obj_snowball.c | 10 +- .../ovl_Obj_Snowball2/z_obj_snowball2.c | 4 +- .../actors/ovl_Obj_Syokudai/z_obj_syokudai.c | 4 +- src/overlays/actors/ovl_Obj_Taru/z_obj_taru.c | 6 +- src/overlays/actors/ovl_Obj_Toge/z_obj_toge.c | 2 +- .../actors/ovl_Obj_Tsubo/z_obj_tsubo.c | 2 +- .../actors/ovl_player_actor/z_player.c | 4 +- tools/disasm/functions.txt | 14 +- tools/sizes/code_functions.csv | 14 +- 68 files changed, 354 insertions(+), 353 deletions(-) diff --git a/include/functions.h b/include/functions.h index ea15b64b81..d5d14b86ae 100644 --- a/include/functions.h +++ b/include/functions.h @@ -177,7 +177,7 @@ void Actor_Noop(Actor* actor, PlayState* play); Actor* Actor_FindNearby(PlayState* play, Actor* inActor, s16 actorId, u8 actorCategory, f32 distance); s32 func_800BE184(PlayState* play, Actor* actor, f32 xzDist, s16 arg3, s16 arg4, s16 arg5); u8 Actor_ApplyDamage(Actor* actor); -void Actor_SetDropFlag(Actor* actor, ColliderInfo* colInfo); +void Actor_SetDropFlag(Actor* actor, ColliderElement* elem); void Actor_SetDropFlagJntSph(Actor* actor, ColliderJntSph* jntSphere); void func_800BE33C(Vec3f* arg0, Vec3f* arg1, Vec3s* dst, s32 arg3); void func_800BE3D0(Actor* actor, s16 angle, Vec3s* arg2); diff --git a/include/z64collision_check.h b/include/z64collision_check.h index a7027c6b59..11833d66d1 100644 --- a/include/z64collision_check.h +++ b/include/z64collision_check.h @@ -71,7 +71,7 @@ typedef struct { /* 0x5 */ u8 defense; // Damage Resistance } ColliderBumpInit; // size = 0x8 -typedef struct ColliderInfo { +typedef struct ColliderElement { /* 0x00 */ ColliderTouch toucher; // Damage properties when acting as an AT collider /* 0x08 */ ColliderBump bumper; // Damage properties when acting as an AC collider /* 0x14 */ u8 elemType; // Affects sfx reaction when attacked by Link and hookability. Full purpose unknown. @@ -80,9 +80,9 @@ typedef struct ColliderInfo { /* 0x17 */ u8 ocElemFlags; // Information flags for OC collisions /* 0x18 */ Collider* atHit; // object touching this element's AT collider /* 0x1C */ Collider* acHit; // object touching this element's AC collider - /* 0x20 */ struct ColliderInfo* atHitInfo; // element that hit the AT collider - /* 0x24 */ struct ColliderInfo* acHitInfo; // element that hit the AC collider -} ColliderInfo; // size = 0x28 + /* 0x20 */ struct ColliderElement* atHitElem; // element that hit the AT collider + /* 0x24 */ struct ColliderElement* acHitElem; // element that hit the AC collider +} ColliderElement; // size = 0x28 typedef struct { /* 0x00 */ u8 elemType; // Affects sfx reaction when attacked by Link and hookability. Full purpose unknown. @@ -91,7 +91,7 @@ typedef struct { /* 0x14 */ u8 toucherFlags; // Information flags for AT collisions /* 0x15 */ u8 bumperFlags; // Information flags for AC collisions /* 0x16 */ u8 ocElemFlags; // Information flags for OC collisions -} ColliderInfoInit; // size = 0x18 +} ColliderElementInit; // size = 0x18 typedef struct { /* 0x00 */ Sphere16 modelSphere; // model space sphere @@ -107,12 +107,12 @@ typedef struct { } ColliderJntSphElementDimInit; // size = 0xC typedef struct { - /* 0x00 */ ColliderInfo info; + /* 0x00 */ ColliderElement info; /* 0x28 */ ColliderJntSphElementDim dim; } ColliderJntSphElement; // size = 0x40 typedef struct { - /* 0x00 */ ColliderInfoInit info; + /* 0x00 */ ColliderElementInit info; /* 0x18 */ ColliderJntSphElementDimInit dim; } ColliderJntSphElementInit; // size = 0x24 @@ -142,25 +142,25 @@ typedef struct { typedef struct { /* 0x00 */ Collider base; - /* 0x18 */ ColliderInfo info; + /* 0x18 */ ColliderElement info; /* 0x40 */ Cylinder16 dim; } ColliderCylinder; // size = 0x4C typedef struct { /* 0x00 */ ColliderInit base; - /* 0x08 */ ColliderInfoInit info; + /* 0x08 */ ColliderElementInit info; /* 0x20 */ Cylinder16 dim; } ColliderCylinderInit; // size = 0x2C typedef struct { /* 0x00 */ ColliderInitType1 base; - /* 0x08 */ ColliderInfoInit info; + /* 0x08 */ ColliderElementInit info; /* 0x20 */ Cylinder16 dim; } ColliderCylinderInitType1; // size = 0x2C typedef struct { /* 0x00 */ ColliderInitToActor base; - /* 0x08 */ ColliderInfoInit info; + /* 0x08 */ ColliderElementInit info; /* 0x20 */ Cylinder16 dim; } ColliderCylinderInitToActor; // size = 0x2C @@ -169,12 +169,12 @@ typedef struct { } ColliderTrisElementDimInit; // size = 0x24 typedef struct { - /* 0x00 */ ColliderInfo info; + /* 0x00 */ ColliderElement info; /* 0x28 */ TriNorm dim; } ColliderTrisElement; // size = 0x5C typedef struct { - /* 0x00 */ ColliderInfoInit info; + /* 0x00 */ ColliderElementInit info; /* 0x18 */ ColliderTrisElementDimInit dim; } ColliderTrisElementInit; // size = 0x3C @@ -209,31 +209,31 @@ typedef struct { typedef struct { /* 0x00 */ Collider base; - /* 0x18 */ ColliderInfo info; + /* 0x18 */ ColliderElement info; /* 0x40 */ ColliderQuadDim dim; } ColliderQuad; // size = 0x80 typedef struct { /* 0x00 */ ColliderInit base; - /* 0x08 */ ColliderInfoInit info; + /* 0x08 */ ColliderElementInit info; /* 0x20 */ ColliderQuadDimInit dim; } ColliderQuadInit; // size = 0x50 typedef struct { /* 0x00 */ ColliderInitType1 base; - /* 0x08 */ ColliderInfoInit info; + /* 0x08 */ ColliderElementInit info; /* 0x20 */ ColliderQuadDimInit dim; } ColliderQuadInitType1; // size = 0x50 typedef struct { /* 0x00 */ Collider base; - /* 0x18 */ ColliderInfo info; + /* 0x18 */ ColliderElement info; /* 0x40 */ ColliderJntSphElementDim dim; } ColliderSphere; // size = 0x58 typedef struct { /* 0x00 */ ColliderInit base; - /* 0x08 */ ColliderInfoInit info; + /* 0x08 */ ColliderElementInit info; /* 0x20 */ ColliderJntSphElementDimInit dim; } ColliderSphereInit; // size = 0x2C @@ -465,9 +465,9 @@ typedef struct CollisionCheckInfo { DamageTable* DamageTable_Get(s32 index); void DamageTable_Clear(DamageTable* damageTable); -f32 CollisionCheck_GetDamageAndEffectOnBumper(Collider* atCol, ColliderInfo* atInfo, Collider* acCol, ColliderInfo* acInfo, u32* effect); -f32 CollisionCheck_ApplyBumperDefense(f32 damage, ColliderInfo* ac); -s32 CollisionCheck_GetToucherDamage(Collider* atCol, ColliderInfo* atInfo, Collider* acCol, ColliderInfo* acInfo); +f32 CollisionCheck_GetDamageAndEffectOnBumper(Collider* atCol, ColliderElement* atElem, Collider* acCol, ColliderElement* acElem, u32* effect); +f32 CollisionCheck_ApplyBumperDefense(f32 damage, ColliderElement* acElem); +s32 CollisionCheck_GetToucherDamage(Collider* atCol, ColliderElement* atElem, Collider* acCol, ColliderElement* acElem); s32 Collider_InitBase(struct PlayState* play, Collider* col); s32 Collider_DestroyBase(struct PlayState* play, Collider* collider); s32 Collider_SetBaseToActor(struct PlayState* play, Collider* col, ColliderInitToActor* src); @@ -479,16 +479,16 @@ void Collider_ResetOCBase(struct PlayState* play, Collider* col); s32 Collider_InitTouch(struct PlayState* play, ColliderTouch* touch); s32 Collider_DestroyTouch(struct PlayState* play, ColliderTouch* touch); s32 Collider_SetTouch(struct PlayState* play, ColliderTouch* touch, ColliderTouchInit* src); -void Collider_ResetATInfoUnk(struct PlayState* play, ColliderInfo* info); +void Collider_ResetATElementUnk(struct PlayState* play, ColliderElement* elem); s32 Collider_InitBump(struct PlayState* play, ColliderBump* bump); s32 Collider_DestroyBump(struct PlayState* play, ColliderBump* bump); s32 Collider_SetBump(struct PlayState* play, ColliderBump* bump, ColliderBumpInit* src); -s32 Collider_InitInfo(struct PlayState* play, ColliderInfo* info); -s32 Collider_DestroyInfo(struct PlayState* play, ColliderInfo* info); -s32 Collider_SetInfo(struct PlayState* play, ColliderInfo* info, ColliderInfoInit* src); -void Collider_ResetATInfo(struct PlayState* play, ColliderInfo* info); -void Collider_ResetACInfo(struct PlayState* play, ColliderInfo* info); -void Collider_ResetOCInfo(struct PlayState* play, ColliderInfo* info); +s32 Collider_InitElement(struct PlayState* play, ColliderElement* elem); +s32 Collider_DestroyElement(struct PlayState* play, ColliderElement* elem); +s32 Collider_SetElement(struct PlayState* play, ColliderElement* elem, ColliderElementInit* elemInit); +void Collider_ResetATElement(struct PlayState* play, ColliderElement* elem); +void Collider_ResetACElement(struct PlayState* play, ColliderElement* elem); +void Collider_ResetOCElement(struct PlayState* play, ColliderElement* elem); s32 Collider_InitJntSphElementDim(struct PlayState* play, ColliderJntSphElementDim* dim); s32 Collider_DestroyJntSphElementDim(struct PlayState* play, ColliderJntSphElementDim* dim); s32 Collider_SetJntSphElementDim(struct PlayState* play, ColliderJntSphElementDim* dest, ColliderJntSphElementDimInit* src); @@ -576,20 +576,20 @@ s32 CollisionCheck_SetAC_SAC(struct PlayState* play, CollisionCheckContext* colC s32 CollisionCheck_SetOC(struct PlayState* play, CollisionCheckContext* colChkCtx, Collider* col); s32 CollisionCheck_SetOC_SAC(struct PlayState* play, CollisionCheckContext* colChkCtx, Collider* col, s32 index); s32 CollisionCheck_SetOCLine(struct PlayState* play, CollisionCheckContext* colChkCtx, OcLine* line); -s32 CollisionCheck_SkipTouch(ColliderInfo* info); -s32 CollisionCheck_SkipBump(ColliderInfo* info); -s32 CollisionCheck_NoSharedFlags(ColliderInfo* toucher, ColliderInfo* bumper); +s32 CollisionCheck_SkipTouch(ColliderElement* elem); +s32 CollisionCheck_SkipBump(ColliderElement* elem); +s32 CollisionCheck_NoSharedFlags(ColliderElement* atElem, ColliderElement* acElem); void CollisionCheck_NoBlood(struct PlayState* play, Collider* collider, Vec3f* v); void CollisionCheck_BlueBlood(struct PlayState* play, Collider* collider, Vec3f* v); void CollisionCheck_GreenBlood(struct PlayState* play, Collider* collider, Vec3f* v); void CollisionCheck_WaterBurst(struct PlayState* play, Collider* collider, Vec3f* v); void CollisionCheck_RedBlood(struct PlayState* play, Collider* collider, Vec3f* v); void CollisionCheck_RedBloodUnused(struct PlayState* play, Collider* collider, Vec3f* v); -void CollisionCheck_HitSolid(struct PlayState* play, ColliderInfo* info, Collider* col, Vec3f* hitPos); -s32 CollisionCheck_SwordHitAudio(Collider* at, ColliderInfo* acInfo); -void CollisionCheck_HitEffects(struct PlayState* play, Collider* at, ColliderInfo* atInfo, Collider* ac, ColliderInfo* acInfo, Vec3f* hitPos); +void CollisionCheck_HitSolid(struct PlayState* play, ColliderElement* elem, Collider* col, Vec3f* hitPos); +s32 CollisionCheck_SwordHitAudio(Collider* at, ColliderElement* acElem); +void CollisionCheck_HitEffects(struct PlayState* play, Collider* at, ColliderElement* atElem, Collider* ac, ColliderElement* acElem, Vec3f* hitPos); void CollisionCheck_SetBounce(Collider* at, Collider* ac); -s32 CollisionCheck_SetATvsAC(struct PlayState* play, Collider* atCol, ColliderInfo* atInfo, Vec3f* atPos, Collider* acCol, ColliderInfo* acInfo, Vec3f* acPos, Vec3f* hitPos); +s32 CollisionCheck_SetATvsAC(struct PlayState* play, Collider* atCol, ColliderElement* atElem, Vec3f* atPos, Collider* acCol, ColliderElement* acElem, Vec3f* acPos, Vec3f* hitPos); void CollisionCheck_TrisAvgPoint(ColliderTrisElement* tri, Vec3f* avg); void CollisionCheck_QuadAvgPoint(ColliderQuad* quad, Vec3f* avg); void CollisionCheck_AC_JntSphVsJntSph(struct PlayState* play, CollisionCheckContext* colCtxt, Collider* atCol, Collider* acCol); @@ -626,7 +626,7 @@ void CollisionCheck_SetHitEffects(struct PlayState* play, CollisionCheckContext* void CollisionCheck_AC(struct PlayState* play, CollisionCheckContext* colChkCtx, Collider* atCol); void CollisionCheck_AT(struct PlayState* play, CollisionCheckContext* colChkCtx); s32 CollisionCheck_GetMassType(u8 mass); -void CollisionCheck_SetOCvsOC(struct PlayState* play, Collider* leftCol, ColliderInfo* leftInfo, Vec3f* leftPos, Collider* rightCol, ColliderInfo* rightInfo, Vec3f* rightPos, f32 overlapSize); +void CollisionCheck_SetOCvsOC(struct PlayState* play, Collider* leftCol, ColliderElement* leftElem, Vec3f* leftPos, Collider* rightCol, ColliderElement* rightElem, Vec3f* rightPos, f32 overlapSize); void CollisionCheck_OC_JntSphVsJntSph(struct PlayState* play, CollisionCheckContext* colCtxt, Collider* leftCol, Collider* rightCol); void CollisionCheck_OC_JntSphVsCyl(struct PlayState* play, CollisionCheckContext* colCtxt, Collider* leftCol, Collider* rightCol); void CollisionCheck_OC_JntSphVsSphere(struct PlayState* play, CollisionCheckContext* colCtxt, Collider* leftCol, Collider* rightCol); @@ -645,7 +645,7 @@ void CollisionCheck_SetInfoNoDamageTable(CollisionCheckInfo* info, CollisionChec void CollisionCheck_SetInfo(CollisionCheckInfo* info, DamageTable* damageTable, CollisionCheckInfoInit* init); void CollisionCheck_SetInfo2(CollisionCheckInfo* info, DamageTable* damageTable, CollisionCheckInfoInit2* init); void CollisionCheck_SetInfoGetDamageTable(CollisionCheckInfo* info, s32 index, CollisionCheckInfoInit2* init); -void CollisionCheck_ApplyDamage(struct PlayState* play, CollisionCheckContext* colCtxt, Collider* col, ColliderInfo* info); +void CollisionCheck_ApplyDamage(struct PlayState* play, CollisionCheckContext* colCtxt, Collider* col, ColliderElement* elem); void CollisionCheck_ApplyDamageJntSph(struct PlayState* play, CollisionCheckContext* colChkCtx, Collider* col); void CollisionCheck_ApplyDamageCyl(struct PlayState* play, CollisionCheckContext* colChkCtx, Collider* col); void CollisionCheck_ApplyDamageTris(struct PlayState* play, CollisionCheckContext* colChkCtx, Collider* col); diff --git a/src/code/z_actor.c b/src/code/z_actor.c index de6f2a38a4..3e503664c0 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -4707,16 +4707,16 @@ u8 Actor_ApplyDamage(Actor* actor) { return actor->colChkInfo.health; } -void Actor_SetDropFlag(Actor* actor, ColliderInfo* colInfo) { - ColliderInfo* acHitInfo = colInfo->acHitInfo; +void Actor_SetDropFlag(Actor* actor, ColliderElement* elem) { + ColliderElement* acHitElem = elem->acHitElem; - if (acHitInfo == NULL) { + if (acHitElem == NULL) { actor->dropFlag = DROPFLAG_NONE; - } else if (acHitInfo->toucher.dmgFlags & DMG_FIRE_ARROW) { + } else if (acHitElem->toucher.dmgFlags & DMG_FIRE_ARROW) { actor->dropFlag = DROPFLAG_1; - } else if (acHitInfo->toucher.dmgFlags & DMG_ICE_ARROW) { + } else if (acHitElem->toucher.dmgFlags & DMG_ICE_ARROW) { actor->dropFlag = DROPFLAG_2; - } else if (acHitInfo->toucher.dmgFlags & DMG_LIGHT_ARROW) { + } else if (acHitElem->toucher.dmgFlags & DMG_LIGHT_ARROW) { actor->dropFlag = DROPFLAG_20; } else { actor->dropFlag = DROPFLAG_NONE; @@ -4726,19 +4726,19 @@ void Actor_SetDropFlag(Actor* actor, ColliderInfo* colInfo) { void Actor_SetDropFlagJntSph(Actor* actor, ColliderJntSph* jntSphere) { s32 i; ColliderJntSphElement* jntElement; - ColliderInfo* acHitInfo; + ColliderElement* acHitElem; s32 flag; actor->dropFlag = DROPFLAG_NONE; for (i = jntSphere->count - 1; i >= 0; i--) { jntElement = &jntSphere->elements[i]; - acHitInfo = jntElement->info.acHitInfo; + acHitElem = jntElement->info.acHitElem; - if (acHitInfo == NULL) { + if (acHitElem == NULL) { flag = DROPFLAG_NONE; } else { - s32 dmgFlags = acHitInfo->toucher.dmgFlags; + s32 dmgFlags = acHitElem->toucher.dmgFlags; if (dmgFlags & DMG_FIRE_ARROW) { flag = DROPFLAG_1; @@ -4791,7 +4791,7 @@ void func_800BE3D0(Actor* actor, s16 angle, Vec3s* arg2) { void func_800BE504(Actor* actor, ColliderCylinder* collider) { // Checks if was hit by either DMG_NORMAL_ARROW, DMG_FIRE_ARROW, DMG_ICE_ARROW, DMG_LIGHT_ARROW or DMG_DEKU_BUBBLE - if ((collider->info.acHitInfo->toucher.dmgFlags & (0x10000 | 0x2000 | 0x1000 | 0x800 | 0x20))) { + if ((collider->info.acHitElem->toucher.dmgFlags & (0x10000 | 0x2000 | 0x1000 | 0x800 | 0x20))) { actor->world.rot.y = collider->base.ac->shape.rot.y; } else { actor->world.rot.y = Actor_WorldYawTowardActor(collider->base.ac, actor); @@ -4799,7 +4799,7 @@ void func_800BE504(Actor* actor, ColliderCylinder* collider) { } void func_800BE568(Actor* actor, ColliderSphere* collider) { - if (collider->info.acHitInfo->toucher.dmgFlags & (0x10000 | 0x2000 | 0x1000 | 0x800 | 0x20)) { + if (collider->info.acHitElem->toucher.dmgFlags & (0x10000 | 0x2000 | 0x1000 | 0x800 | 0x20)) { actor->world.rot.y = collider->base.ac->shape.rot.y; } else { actor->world.rot.y = Actor_WorldYawTowardActor(collider->base.ac, actor); @@ -4807,7 +4807,7 @@ void func_800BE568(Actor* actor, ColliderSphere* collider) { } void func_800BE5CC(Actor* actor, ColliderJntSph* collider, s32 colliderIndex) { - if (collider->elements[colliderIndex].info.acHitInfo->toucher.dmgFlags & + if (collider->elements[colliderIndex].info.acHitElem->toucher.dmgFlags & (0x10000 | 0x2000 | 0x1000 | 0x800 | 0x20)) { actor->world.rot.y = collider->base.ac->shape.rot.y; } else { diff --git a/src/code/z_collision_check.c b/src/code/z_collision_check.c index 1c29854b8e..255a9d5a60 100644 --- a/src/code/z_collision_check.c +++ b/src/code/z_collision_check.c @@ -109,8 +109,8 @@ TriNorm D_801EE188; * Gets the damage and effect that should be applied for the collision between * `at` and `ac`, referring to the ac actor's damage chart if applicable. */ -f32 CollisionCheck_GetDamageAndEffectOnBumper(Collider* atCol, ColliderInfo* atInfo, Collider* acCol, - ColliderInfo* acInfo, u32* effect) { +f32 CollisionCheck_GetDamageAndEffectOnBumper(Collider* atCol, ColliderElement* atElem, Collider* acCol, + ColliderElement* acElem, u32* effect) { static f32 sDamageMultipliers[] = { 0.0f, 1.0f, 2.0f, 0.5f, 0.25f, 3.0f, 4.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, }; @@ -119,10 +119,10 @@ f32 CollisionCheck_GetDamageAndEffectOnBumper(Collider* atCol, ColliderInfo* atI f32 damage; *effect = 0; - damage = CollisionCheck_GetToucherDamage(atCol, atInfo, acCol, acInfo); + damage = CollisionCheck_GetToucherDamage(atCol, atElem, acCol, acElem); if (acCol->actor->colChkInfo.damageTable != NULL) { - dmgFlags = atInfo->toucher.dmgFlags; + dmgFlags = atElem->toucher.dmgFlags; for (i = 0; i < ARRAY_COUNT(acCol->actor->colChkInfo.damageTable->attack); i++) { if (dmgFlags == 1) { @@ -140,8 +140,8 @@ f32 CollisionCheck_GetDamageAndEffectOnBumper(Collider* atCol, ColliderInfo* atI /** * Calculates damage after factoring in the ac collider's defense */ -f32 CollisionCheck_ApplyBumperDefense(f32 damage, ColliderInfo* ac) { - f32 finalDamage = damage - ac->bumper.defense; +f32 CollisionCheck_ApplyBumperDefense(f32 damage, ColliderElement* acElem) { + f32 finalDamage = damage - acElem->bumper.defense; return finalDamage; } @@ -150,12 +150,13 @@ f32 CollisionCheck_ApplyBumperDefense(f32 damage, ColliderInfo* ac) { * Gets the damage to be inflicted by `at` on `ac`, before applying other * factors such as the ac collider's defense. */ -s32 CollisionCheck_GetToucherDamage(Collider* atCol, ColliderInfo* atInfo, Collider* acCol, ColliderInfo* acInfo) { +s32 CollisionCheck_GetToucherDamage(Collider* atCol, ColliderElement* atElem, Collider* acCol, + ColliderElement* acElem) { if ((atCol->actor != NULL) && (atCol->actor->id == ACTOR_EN_BOM) && (acCol->actor != NULL) && (acCol->actor->id == ACTOR_PLAYER)) { return 8; } - return atInfo->toucher.damage; + return atElem->toucher.damage; } s32 Collider_InitBase(struct PlayState* play, Collider* col) { @@ -243,7 +244,7 @@ s32 Collider_SetTouch(struct PlayState* play, ColliderTouch* touch, ColliderTouc return 1; } -void Collider_ResetATInfoUnk(struct PlayState* play, ColliderInfo* info) { +void Collider_ResetATElementUnk(struct PlayState* play, ColliderElement* elem) { } s32 Collider_InitBump(struct PlayState* play, ColliderBump* bump) { @@ -264,8 +265,8 @@ s32 Collider_SetBump(struct PlayState* play, ColliderBump* bump, ColliderBumpIni return 1; } -s32 Collider_InitInfo(struct PlayState* play, ColliderInfo* info) { - static ColliderInfo sDefaultColliderInfo = { +s32 Collider_InitElement(struct PlayState* play, ColliderElement* elem) { + static ColliderElement sDefaultColliderElement = { { 0, 0, 0 }, { 0xF7CFFFFF, 0, 0, { 0, 0, 0 } }, ELEMTYPE_UNK0, TOUCH_NONE, BUMP_NONE, OCELEM_NONE, @@ -273,46 +274,46 @@ s32 Collider_InitInfo(struct PlayState* play, ColliderInfo* info) { NULL, NULL, }; - *info = sDefaultColliderInfo; - Collider_InitTouch(play, &info->toucher); - Collider_InitBump(play, &info->bumper); + *elem = sDefaultColliderElement; + Collider_InitTouch(play, &elem->toucher); + Collider_InitBump(play, &elem->bumper); return 1; } -s32 Collider_DestroyInfo(struct PlayState* play, ColliderInfo* info) { - Collider_DestroyTouch(play, &info->toucher); - Collider_DestroyBump(play, &info->bumper); +s32 Collider_DestroyElement(struct PlayState* play, ColliderElement* elem) { + Collider_DestroyTouch(play, &elem->toucher); + Collider_DestroyBump(play, &elem->bumper); return 1; } -s32 Collider_SetInfo(struct PlayState* play, ColliderInfo* info, ColliderInfoInit* src) { - info->elemType = src->elemType; - Collider_SetTouch(play, &info->toucher, &src->toucher); - Collider_SetBump(play, &info->bumper, &src->bumper); - info->toucherFlags = src->toucherFlags; - info->bumperFlags = src->bumperFlags; - info->ocElemFlags = src->ocElemFlags; +s32 Collider_SetElement(struct PlayState* play, ColliderElement* elem, ColliderElementInit* elemInit) { + elem->elemType = elemInit->elemType; + Collider_SetTouch(play, &elem->toucher, &elemInit->toucher); + Collider_SetBump(play, &elem->bumper, &elemInit->bumper); + elem->toucherFlags = elemInit->toucherFlags; + elem->bumperFlags = elemInit->bumperFlags; + elem->ocElemFlags = elemInit->ocElemFlags; return 1; } -void Collider_ResetATInfo(struct PlayState* play, ColliderInfo* info) { - info->atHit = NULL; - info->atHitInfo = NULL; - info->toucherFlags &= ~TOUCH_HIT; - info->toucherFlags &= ~TOUCH_DREW_HITMARK; - Collider_ResetATInfoUnk(play, info); +void Collider_ResetATElement(struct PlayState* play, ColliderElement* elem) { + elem->atHit = NULL; + elem->atHitElem = NULL; + elem->toucherFlags &= ~TOUCH_HIT; + elem->toucherFlags &= ~TOUCH_DREW_HITMARK; + Collider_ResetATElementUnk(play, elem); } -void Collider_ResetACInfo(struct PlayState* play, ColliderInfo* info) { - info->bumper.hitPos.x = info->bumper.hitPos.y = info->bumper.hitPos.z = 0; - info->bumperFlags &= ~BUMP_HIT; - info->bumperFlags &= ~BUMP_DRAW_HITMARK; - info->acHit = NULL; - info->acHitInfo = NULL; +void Collider_ResetACElement(struct PlayState* play, ColliderElement* elem) { + elem->bumper.hitPos.x = elem->bumper.hitPos.y = elem->bumper.hitPos.z = 0; + elem->bumperFlags &= ~BUMP_HIT; + elem->bumperFlags &= ~BUMP_DRAW_HITMARK; + elem->acHit = NULL; + elem->acHitElem = NULL; } -void Collider_ResetOCInfo(struct PlayState* play, ColliderInfo* info) { - info->ocElemFlags &= ~OCELEM_HIT; +void Collider_ResetOCElement(struct PlayState* play, ColliderElement* elem) { + elem->ocElemFlags &= ~OCELEM_HIT; } s32 Collider_InitJntSphElementDim(struct PlayState* play, ColliderJntSphElementDim* dim) { @@ -340,35 +341,35 @@ s32 Collider_SetJntSphElementDim(struct PlayState* play, ColliderJntSphElementDi } s32 Collider_InitJntSphElement(struct PlayState* play, ColliderJntSphElement* element) { - Collider_InitInfo(play, &element->info); + Collider_InitElement(play, &element->info); Collider_InitJntSphElementDim(play, &element->dim); return 1; } s32 Collider_DestroyJntSphElement(struct PlayState* play, ColliderJntSphElement* element) { - Collider_DestroyInfo(play, &element->info); + Collider_DestroyElement(play, &element->info); Collider_DestroyJntSphElementDim(play, &element->dim); return 1; } s32 Collider_SetJntSphElement(struct PlayState* play, ColliderJntSphElement* dest, ColliderJntSphElementInit* src) { - Collider_SetInfo(play, &dest->info, &src->info); + Collider_SetElement(play, &dest->info, &src->info); Collider_SetJntSphElementDim(play, &dest->dim, &src->dim); return 1; } s32 Collider_ResetJntSphElementAT(struct PlayState* play, ColliderJntSphElement* collider) { - Collider_ResetATInfo(play, &collider->info); + Collider_ResetATElement(play, &collider->info); return 1; } s32 Collider_ResetJntSphElementAC(struct PlayState* play, ColliderJntSphElement* collider) { - Collider_ResetACInfo(play, &collider->info); + Collider_ResetACElement(play, &collider->info); return 1; } s32 Collider_ResetJntSphElementOC(struct PlayState* play, ColliderJntSphElement* collider) { - Collider_ResetOCInfo(play, &collider->info); + Collider_ResetOCElement(play, &collider->info); return 1; } @@ -565,7 +566,7 @@ s32 Collider_SetCylinderDim(struct PlayState* play, Cylinder16* dim, Cylinder16* */ s32 Collider_InitCylinder(struct PlayState* play, ColliderCylinder* collider) { Collider_InitBase(play, &collider->base); - Collider_InitInfo(play, &collider->info); + Collider_InitElement(play, &collider->info); Collider_InitCylinderDim(play, &collider->dim); return 1; } @@ -575,7 +576,7 @@ s32 Collider_InitCylinder(struct PlayState* play, ColliderCylinder* collider) { */ s32 Collider_DestroyCylinder(struct PlayState* play, ColliderCylinder* collider) { Collider_DestroyBase(play, &collider->base); - Collider_DestroyInfo(play, &collider->info); + Collider_DestroyElement(play, &collider->info); Collider_DestroyCylinderDim(play, &collider->dim); return 1; } @@ -586,7 +587,7 @@ s32 Collider_DestroyCylinder(struct PlayState* play, ColliderCylinder* collider) */ s32 Collider_SetCylinderToActor(struct PlayState* play, ColliderCylinder* collider, ColliderCylinderInitToActor* src) { Collider_SetBaseToActor(play, &collider->base, &src->base); - Collider_SetInfo(play, &collider->info, &src->info); + Collider_SetElement(play, &collider->info, &src->info); Collider_SetCylinderDim(play, &collider->dim, &src->dim); return 1; } @@ -597,7 +598,7 @@ s32 Collider_SetCylinderToActor(struct PlayState* play, ColliderCylinder* collid s32 Collider_SetCylinderType1(struct PlayState* play, ColliderCylinder* collider, Actor* actor, ColliderCylinderInitType1* src) { Collider_SetBaseType1(play, &collider->base, actor, &src->base); - Collider_SetInfo(play, &collider->info, &src->info); + Collider_SetElement(play, &collider->info, &src->info); Collider_SetCylinderDim(play, &collider->dim, &src->dim); return 1; } @@ -607,7 +608,7 @@ s32 Collider_SetCylinderType1(struct PlayState* play, ColliderCylinder* collider */ s32 Collider_SetCylinder(struct PlayState* play, ColliderCylinder* collider, Actor* actor, ColliderCylinderInit* src) { Collider_SetBase(play, &collider->base, actor, &src->base); - Collider_SetInfo(play, &collider->info, &src->info); + Collider_SetElement(play, &collider->info, &src->info); Collider_SetCylinderDim(play, &collider->dim, &src->dim); return 1; } @@ -629,7 +630,7 @@ s32 Collider_ResetCylinderAT(struct PlayState* play, Collider* col) { ColliderCylinder* cylinder = (ColliderCylinder*)col; Collider_ResetATBase(play, &cylinder->base); - Collider_ResetATInfo(play, &cylinder->info); + Collider_ResetATElement(play, &cylinder->info); return 1; } @@ -640,7 +641,7 @@ s32 Collider_ResetCylinderAC(struct PlayState* play, Collider* col) { ColliderCylinder* cylinder = (ColliderCylinder*)col; Collider_ResetACBase(play, &cylinder->base); - Collider_ResetACInfo(play, &cylinder->info); + Collider_ResetACElement(play, &cylinder->info); return 1; } @@ -651,7 +652,7 @@ s32 Collider_ResetCylinderOC(struct PlayState* play, Collider* col) { ColliderCylinder* cylinder = (ColliderCylinder*)col; Collider_ResetOCBase(play, &cylinder->base); - Collider_ResetOCInfo(play, &cylinder->info); + Collider_ResetOCElement(play, &cylinder->info); return 1; } @@ -691,35 +692,35 @@ s32 Collider_SetTrisElementDim(struct PlayState* play, TriNorm* dim, ColliderTri } s32 Collider_InitTrisElement(struct PlayState* play, ColliderTrisElement* element) { - Collider_InitInfo(play, &element->info); + Collider_InitElement(play, &element->info); Collider_InitTrisElementDim(play, &element->dim); return 1; } s32 Collider_DestroyTrisElement(struct PlayState* play, ColliderTrisElement* element) { - Collider_DestroyInfo(play, &element->info); + Collider_DestroyElement(play, &element->info); Collider_DestroyTrisElementDim(play, &element->dim); return 1; } s32 Collider_SetTrisElement(struct PlayState* play, ColliderTrisElement* element, ColliderTrisElementInit* src) { - Collider_SetInfo(play, &element->info, &src->info); + Collider_SetElement(play, &element->info, &src->info); Collider_SetTrisElementDim(play, &element->dim, &src->dim); return 1; } s32 Collider_ResetTrisElementAT(struct PlayState* play, ColliderTrisElement* element) { - Collider_ResetATInfo(play, &element->info); + Collider_ResetATElement(play, &element->info); return 1; } s32 Collider_ResetTrisElementAC(struct PlayState* play, ColliderTrisElement* element) { - Collider_ResetACInfo(play, &element->info); + Collider_ResetACElement(play, &element->info); return 1; } s32 Collider_ResetTrisElementOC(struct PlayState* play, ColliderTrisElement* element) { - Collider_ResetOCInfo(play, &element->info); + Collider_ResetOCElement(play, &element->info); return 1; } @@ -917,7 +918,7 @@ s32 Collider_SetQuadDim(struct PlayState* play, ColliderQuadDim* dim, ColliderQu */ s32 Collider_InitQuad(struct PlayState* play, ColliderQuad* collider) { Collider_InitBase(play, &collider->base); - Collider_InitInfo(play, &collider->info); + Collider_InitElement(play, &collider->info); Collider_InitQuadDim(play, &collider->dim); return 1; } @@ -927,7 +928,7 @@ s32 Collider_InitQuad(struct PlayState* play, ColliderQuad* collider) { */ s32 Collider_DestroyQuad(struct PlayState* play, ColliderQuad* collider) { Collider_DestroyBase(play, &collider->base); - Collider_DestroyInfo(play, &collider->info); + Collider_DestroyElement(play, &collider->info); Collider_DestroyQuadDim(play, &collider->dim); return 1; } @@ -937,7 +938,7 @@ s32 Collider_DestroyQuad(struct PlayState* play, ColliderQuad* collider) { */ s32 Collider_SetQuadType1(struct PlayState* play, ColliderQuad* collider, Actor* actor, ColliderQuadInitType1* src) { Collider_SetBaseType1(play, &collider->base, actor, &src->base); - Collider_SetInfo(play, &collider->info, &src->info); + Collider_SetElement(play, &collider->info, &src->info); Collider_SetQuadDim(play, &collider->dim, &src->dim); return 1; } @@ -947,7 +948,7 @@ s32 Collider_SetQuadType1(struct PlayState* play, ColliderQuad* collider, Actor* */ s32 Collider_SetQuad(struct PlayState* play, ColliderQuad* collider, Actor* actor, ColliderQuadInit* src) { Collider_SetBase(play, &collider->base, actor, &src->base); - Collider_SetInfo(play, &collider->info, &src->info); + Collider_SetElement(play, &collider->info, &src->info); Collider_SetQuadDim(play, &collider->dim, &src->dim); return 1; } @@ -968,7 +969,7 @@ s32 Collider_ResetQuadAT(struct PlayState* play, Collider* col) { ColliderQuad* quad = (ColliderQuad*)col; Collider_ResetATBase(play, &quad->base); - Collider_ResetATInfo(play, &quad->info); + Collider_ResetATElement(play, &quad->info); Collider_ResetQuadACDist(play, &quad->dim); return 1; } @@ -980,7 +981,7 @@ s32 Collider_ResetQuadAC(struct PlayState* play, Collider* col) { ColliderQuad* quad = (ColliderQuad*)col; Collider_ResetACBase(play, &quad->base); - Collider_ResetACInfo(play, &quad->info); + Collider_ResetACElement(play, &quad->info); return 1; } @@ -991,7 +992,7 @@ s32 Collider_ResetQuadOC(struct PlayState* play, Collider* col) { ColliderQuad* quad = (ColliderQuad*)col; Collider_ResetOCBase(play, &quad->base); - Collider_ResetOCInfo(play, &quad->info); + Collider_ResetOCElement(play, &quad->info); return 1; } @@ -1015,8 +1016,8 @@ s32 Collider_QuadSetNearestAC(struct PlayState* play, ColliderQuad* quad, Vec3f* if (quad->info.atHit != NULL) { Collider_ResetACBase(play, quad->info.atHit); } - if (quad->info.atHitInfo != NULL) { - Collider_ResetACInfo(play, quad->info.atHitInfo); + if (quad->info.atHitElem != NULL) { + Collider_ResetACElement(play, quad->info.atHitElem); } return 1; } else { @@ -1029,7 +1030,7 @@ s32 Collider_QuadSetNearestAC(struct PlayState* play, ColliderQuad* quad, Vec3f* */ s32 Collider_InitSphere(struct PlayState* play, ColliderSphere* collider) { Collider_InitBase(play, &collider->base); - Collider_InitInfo(play, &collider->info); + Collider_InitElement(play, &collider->info); Collider_InitJntSphElementDim(play, &collider->dim); return 1; } @@ -1039,7 +1040,7 @@ s32 Collider_InitSphere(struct PlayState* play, ColliderSphere* collider) { */ s32 Collider_DestroySphere(struct PlayState* play, ColliderSphere* collider) { Collider_DestroyBase(play, &collider->base); - Collider_DestroyInfo(play, &collider->info); + Collider_DestroyElement(play, &collider->info); Collider_DestroyJntSphElementDim(play, &collider->dim); return 1; } @@ -1049,7 +1050,7 @@ s32 Collider_DestroySphere(struct PlayState* play, ColliderSphere* collider) { */ s32 Collider_SetSphere(struct PlayState* play, ColliderSphere* collider, Actor* actor, ColliderSphereInit* src) { Collider_SetBase(play, &collider->base, actor, &src->base); - Collider_SetInfo(play, &collider->info, &src->info); + Collider_SetElement(play, &collider->info, &src->info); Collider_SetJntSphElementDim(play, &collider->dim, &src->dim); return 1; } @@ -1070,7 +1071,7 @@ s32 Collider_ResetSphereAT(struct PlayState* play, Collider* col) { ColliderSphere* sphere = (ColliderSphere*)col; Collider_ResetATBase(play, &sphere->base); - Collider_ResetATInfo(play, &sphere->info); + Collider_ResetATElement(play, &sphere->info); return 1; } @@ -1081,7 +1082,7 @@ s32 Collider_ResetSphereAC(struct PlayState* play, Collider* col) { ColliderSphere* sphere = (ColliderSphere*)col; Collider_ResetACBase(play, &sphere->base); - Collider_ResetACInfo(play, &sphere->info); + Collider_ResetACElement(play, &sphere->info); return 1; } @@ -1092,7 +1093,7 @@ s32 Collider_ResetSphereOC(struct PlayState* play, Collider* col) { ColliderSphere* sphere = (ColliderSphere*)col; Collider_ResetOCBase(play, &sphere->base); - Collider_ResetOCInfo(play, &sphere->info); + Collider_ResetOCElement(play, &sphere->info); return 1; } @@ -1418,8 +1419,8 @@ s32 CollisionCheck_SetOCLine(struct PlayState* play, CollisionCheckContext* colC /** * Skips AT elements that are off. */ -s32 CollisionCheck_SkipTouch(ColliderInfo* info) { - if (!(info->toucherFlags & TOUCH_ON)) { +s32 CollisionCheck_SkipTouch(ColliderElement* elem) { + if (!(elem->toucherFlags & TOUCH_ON)) { return 1; } return 0; @@ -1428,8 +1429,8 @@ s32 CollisionCheck_SkipTouch(ColliderInfo* info) { /** * Skips AC elements that are off. */ -s32 CollisionCheck_SkipBump(ColliderInfo* info) { - if (!(info->bumperFlags & BUMP_ON)) { +s32 CollisionCheck_SkipBump(ColliderElement* elem) { + if (!(elem->bumperFlags & BUMP_ON)) { return 1; } return 0; @@ -1438,8 +1439,8 @@ s32 CollisionCheck_SkipBump(ColliderInfo* info) { /** * If the AT element has no dmgFlags in common with the AC element, no collision happens. */ -s32 CollisionCheck_NoSharedFlags(ColliderInfo* toucher, ColliderInfo* bumper) { - if (!(toucher->toucher.dmgFlags & bumper->bumper.dmgFlags)) { +s32 CollisionCheck_NoSharedFlags(ColliderElement* atElem, ColliderElement* acElem) { + if (!(atElem->toucher.dmgFlags & acElem->bumper.dmgFlags)) { return true; } return false; @@ -1587,8 +1588,8 @@ void CollisionCheck_RedBloodUnused(struct PlayState* play, Collider* col, Vec3f* /** * Plays sound effects and displays hitmarks for solid-type AC colliders (METAL, WOOD, HARD, and TREE) */ -void CollisionCheck_HitSolid(struct PlayState* play, ColliderInfo* info, Collider* col, Vec3f* hitPos) { - s32 flags = info->toucherFlags & TOUCH_SFX_NONE; +void CollisionCheck_HitSolid(struct PlayState* play, ColliderElement* elem, Collider* col, Vec3f* hitPos) { + s32 flags = elem->toucherFlags & TOUCH_SFX_NONE; if ((flags == TOUCH_SFX_NORMAL) && (col->colType != COLTYPE_METAL)) { EffectSsHitmark_SpawnFixedScale(play, 0, hitPos); @@ -1624,15 +1625,15 @@ void CollisionCheck_HitSolid(struct PlayState* play, ColliderInfo* info, Collide /** * Plays a hit sound effect for AT colliders attached to Player based on the AC element's elemType. */ -s32 CollisionCheck_SwordHitAudio(Collider* at, ColliderInfo* acInfo) { +s32 CollisionCheck_SwordHitAudio(Collider* at, ColliderElement* acElem) { if ((at->actor != NULL) && (at->actor->category == ACTORCAT_PLAYER)) { - if (acInfo->elemType == ELEMTYPE_UNK0) { + if (acElem->elemType == ELEMTYPE_UNK0) { Audio_PlaySfx_AtPos(&at->actor->projectedPos, NA_SE_IT_SWORD_STRIKE); - } else if (acInfo->elemType == ELEMTYPE_UNK1) { + } else if (acElem->elemType == ELEMTYPE_UNK1) { Audio_PlaySfx_AtPos(&at->actor->projectedPos, NA_SE_IT_SWORD_STRIKE_HARD); - } else if (acInfo->elemType == ELEMTYPE_UNK2) { + } else if (acElem->elemType == ELEMTYPE_UNK2) { Audio_PlaySfx_AtPos(&at->actor->projectedPos, 0); - } else if (acInfo->elemType == ELEMTYPE_UNK3) { + } else if (acElem->elemType == ELEMTYPE_UNK3) { Audio_PlaySfx_AtPos(&at->actor->projectedPos, 0); } } @@ -1654,13 +1655,13 @@ HitInfo sHitInfo[] = { /** * Handles hitmarks, blood, and sound effects for each AC collision, determined by the AC collider's colType */ -void CollisionCheck_HitEffects(struct PlayState* play, Collider* at, ColliderInfo* atInfo, Collider* ac, - ColliderInfo* acInfo, Vec3f* hitPos) { - if (acInfo->bumperFlags & BUMP_NO_HITMARK) { +void CollisionCheck_HitEffects(struct PlayState* play, Collider* at, ColliderElement* atElem, Collider* ac, + ColliderElement* acElem, Vec3f* hitPos) { + if (acElem->bumperFlags & BUMP_NO_HITMARK) { return; } - if (!(atInfo->toucherFlags & TOUCH_AT_HITMARK) && (atInfo->toucherFlags & TOUCH_DREW_HITMARK)) { + if (!(atElem->toucherFlags & TOUCH_AT_HITMARK) && (atElem->toucherFlags & TOUCH_DREW_HITMARK)) { return; } @@ -1669,7 +1670,7 @@ void CollisionCheck_HitEffects(struct PlayState* play, Collider* at, ColliderInf } if (ac->actor != NULL) { if (sHitInfo[ac->colType].effect == HIT_SOLID) { - CollisionCheck_HitSolid(play, atInfo, ac, hitPos); + CollisionCheck_HitSolid(play, atElem, ac, hitPos); } else if (sHitInfo[ac->colType].effect == HIT_WOOD) { if (at->actor == NULL) { CollisionCheck_SpawnShieldParticles(play, hitPos); @@ -1679,8 +1680,8 @@ void CollisionCheck_HitEffects(struct PlayState* play, Collider* at, ColliderInf } } else if (sHitInfo[ac->colType].effect != HIT_NONE) { EffectSsHitmark_SpawnFixedScale(play, sHitInfo[ac->colType].effect, hitPos); - if (!(acInfo->bumperFlags & BUMP_NO_SWORD_SFX)) { - CollisionCheck_SwordHitAudio(at, acInfo); + if (!(acElem->bumperFlags & BUMP_NO_SWORD_SFX)) { + CollisionCheck_SwordHitAudio(at, acElem); } } } else { @@ -1704,58 +1705,58 @@ void CollisionCheck_SetBounce(Collider* at, Collider* ac) { /** * Performs the AC collision between the AT element and AC element that collided. */ -s32 CollisionCheck_SetATvsAC(struct PlayState* play, Collider* atCol, ColliderInfo* atInfo, Vec3f* atPos, - Collider* acCol, ColliderInfo* acInfo, Vec3f* acPos, Vec3f* hitPos) { +s32 CollisionCheck_SetATvsAC(struct PlayState* play, Collider* atCol, ColliderElement* atElem, Vec3f* atPos, + Collider* acCol, ColliderElement* acElem, Vec3f* acPos, Vec3f* hitPos) { f32 damage; u32 effect; - if (CollisionCheck_GetToucherDamage(atCol, atInfo, acCol, acInfo) != 0) { - damage = CollisionCheck_GetDamageAndEffectOnBumper(atCol, atInfo, acCol, acInfo, &effect); + if (CollisionCheck_GetToucherDamage(atCol, atElem, acCol, acElem) != 0) { + damage = CollisionCheck_GetDamageAndEffectOnBumper(atCol, atElem, acCol, acElem, &effect); if (damage < 1.0f) { if (effect == 0) { return 0; } - } else if ((CollisionCheck_ApplyBumperDefense(damage, acInfo) < 1.0f) && (effect == 0)) { + } else if ((CollisionCheck_ApplyBumperDefense(damage, acElem) < 1.0f) && (effect == 0)) { return 0; } } if ((acCol->acFlags & AC_HARD) && (atCol->actor != NULL) && (acCol->actor != NULL)) { CollisionCheck_SetBounce(atCol, acCol); } - if (!(acInfo->bumperFlags & BUMP_NO_AT_INFO)) { + if (!(acElem->bumperFlags & BUMP_NO_AT_INFO)) { atCol->atFlags |= AT_HIT; atCol->at = acCol->actor; - atInfo->atHit = acCol; - atInfo->toucherFlags |= TOUCH_HIT; - atInfo->atHitInfo = acInfo; - if (!(atInfo->bumperFlags & BUMP_HIT)) { - atInfo->bumper.hitPos.x = hitPos->x; - atInfo->bumper.hitPos.y = hitPos->y; - atInfo->bumper.hitPos.z = hitPos->z; + atElem->atHit = acCol; + atElem->toucherFlags |= TOUCH_HIT; + atElem->atHitElem = acElem; + if (!(atElem->bumperFlags & BUMP_HIT)) { + atElem->bumper.hitPos.x = hitPos->x; + atElem->bumper.hitPos.y = hitPos->y; + atElem->bumper.hitPos.z = hitPos->z; } if (atCol->actor != NULL) { - atCol->actor->colChkInfo.atHitEffect = acInfo->bumper.effect; + atCol->actor->colChkInfo.atHitEffect = acElem->bumper.effect; } } - if (!(atInfo->ocElemFlags & OCELEM_UNK2)) { + if (!(atElem->ocElemFlags & OCELEM_UNK2)) { acCol->acFlags |= AC_HIT; acCol->ac = atCol->actor; - acInfo->acHit = atCol; - acInfo->acHitInfo = atInfo; - acInfo->bumperFlags |= BUMP_HIT; + acElem->acHit = atCol; + acElem->acHitElem = atElem; + acElem->bumperFlags |= BUMP_HIT; if (acCol->actor != NULL) { - acCol->actor->colChkInfo.acHitEffect = atInfo->toucher.effect; + acCol->actor->colChkInfo.acHitEffect = atElem->toucher.effect; } - acInfo->bumper.hitPos.x = hitPos->x; - acInfo->bumper.hitPos.y = hitPos->y; - acInfo->bumper.hitPos.z = hitPos->z; + acElem->bumper.hitPos.x = hitPos->x; + acElem->bumper.hitPos.y = hitPos->y; + acElem->bumper.hitPos.z = hitPos->z; } - if (!(atInfo->toucherFlags & TOUCH_AT_HITMARK) && (acCol->colType != COLTYPE_METAL) && + if (!(atElem->toucherFlags & TOUCH_AT_HITMARK) && (acCol->colType != COLTYPE_METAL) && (acCol->colType != COLTYPE_WOOD) && (acCol->colType != COLTYPE_HARD)) { - acInfo->bumperFlags |= BUMP_DRAW_HITMARK; + acElem->bumperFlags |= BUMP_DRAW_HITMARK; } else { - CollisionCheck_HitEffects(play, atCol, atInfo, acCol, acInfo, hitPos); - atInfo->toucherFlags |= TOUCH_DREW_HITMARK; + CollisionCheck_HitEffects(play, atCol, atElem, acCol, acElem, hitPos); + atElem->toucherFlags |= TOUCH_DREW_HITMARK; } return 1; } @@ -2826,14 +2827,14 @@ void CollisionCheck_SetJntSphHitFX(struct PlayState* play, CollisionCheckContext ColliderJntSphElement* element; for (element = jntSph->elements; element < &jntSph->elements[jntSph->count]; element++) { - if ((element->info.bumperFlags & BUMP_DRAW_HITMARK) && (element->info.acHitInfo != NULL) && - !(element->info.acHitInfo->toucherFlags & TOUCH_DREW_HITMARK)) { + if ((element->info.bumperFlags & BUMP_DRAW_HITMARK) && (element->info.acHitElem != NULL) && + !(element->info.acHitElem->toucherFlags & TOUCH_DREW_HITMARK)) { Vec3f hitPos; Math_Vec3s_ToVec3f(&hitPos, &element->info.bumper.hitPos); - CollisionCheck_HitEffects(play, element->info.acHit, element->info.acHitInfo, &jntSph->base, &element->info, + CollisionCheck_HitEffects(play, element->info.acHit, element->info.acHitElem, &jntSph->base, &element->info, &hitPos); - element->info.acHitInfo->toucherFlags |= TOUCH_DREW_HITMARK; + element->info.acHitElem->toucherFlags |= TOUCH_DREW_HITMARK; return; } } @@ -2845,14 +2846,14 @@ void CollisionCheck_SetJntSphHitFX(struct PlayState* play, CollisionCheckContext void CollisionCheck_SetCylHitFX(struct PlayState* play, CollisionCheckContext* colChkCtx, Collider* col) { ColliderCylinder* cylinder = (ColliderCylinder*)col; - if ((cylinder->info.bumperFlags & BUMP_DRAW_HITMARK) && (cylinder->info.acHitInfo != NULL) && - !(cylinder->info.acHitInfo->toucherFlags & TOUCH_DREW_HITMARK)) { + if ((cylinder->info.bumperFlags & BUMP_DRAW_HITMARK) && (cylinder->info.acHitElem != NULL) && + !(cylinder->info.acHitElem->toucherFlags & TOUCH_DREW_HITMARK)) { Vec3f hitPos; Math_Vec3s_ToVec3f(&hitPos, &cylinder->info.bumper.hitPos); - CollisionCheck_HitEffects(play, cylinder->info.acHit, cylinder->info.acHitInfo, &cylinder->base, + CollisionCheck_HitEffects(play, cylinder->info.acHit, cylinder->info.acHitElem, &cylinder->base, &cylinder->info, &hitPos); - cylinder->info.acHitInfo->toucherFlags |= TOUCH_DREW_HITMARK; + cylinder->info.acHitElem->toucherFlags |= TOUCH_DREW_HITMARK; } } @@ -2864,14 +2865,14 @@ void CollisionCheck_SetTrisHitFX(struct PlayState* play, CollisionCheckContext* ColliderTrisElement* element; for (element = tris->elements; element < &tris->elements[tris->count]; element++) { - if ((element->info.bumperFlags & BUMP_DRAW_HITMARK) && (element->info.acHitInfo != NULL) && - !(element->info.acHitInfo->toucherFlags & TOUCH_DREW_HITMARK)) { + if ((element->info.bumperFlags & BUMP_DRAW_HITMARK) && (element->info.acHitElem != NULL) && + !(element->info.acHitElem->toucherFlags & TOUCH_DREW_HITMARK)) { Vec3f hitPos; Math_Vec3s_ToVec3f(&hitPos, &element->info.bumper.hitPos); - CollisionCheck_HitEffects(play, element->info.acHit, element->info.acHitInfo, &tris->base, &element->info, + CollisionCheck_HitEffects(play, element->info.acHit, element->info.acHitElem, &tris->base, &element->info, &hitPos); - element->info.acHitInfo->toucherFlags |= TOUCH_DREW_HITMARK; + element->info.acHitElem->toucherFlags |= TOUCH_DREW_HITMARK; return; } } @@ -2883,13 +2884,13 @@ void CollisionCheck_SetTrisHitFX(struct PlayState* play, CollisionCheckContext* void CollisionCheck_SetQuadHitFX(struct PlayState* play, CollisionCheckContext* colChkCtx, Collider* col) { ColliderQuad* quad = (ColliderQuad*)col; - if ((quad->info.bumperFlags & BUMP_DRAW_HITMARK) && (quad->info.acHitInfo != NULL) && - !(quad->info.acHitInfo->toucherFlags & TOUCH_DREW_HITMARK)) { + if ((quad->info.bumperFlags & BUMP_DRAW_HITMARK) && (quad->info.acHitElem != NULL) && + !(quad->info.acHitElem->toucherFlags & TOUCH_DREW_HITMARK)) { Vec3f hitPos; Math_Vec3s_ToVec3f(&hitPos, &quad->info.bumper.hitPos); - CollisionCheck_HitEffects(play, quad->info.acHit, quad->info.acHitInfo, &quad->base, &quad->info, &hitPos); - quad->info.acHitInfo->toucherFlags |= TOUCH_DREW_HITMARK; + CollisionCheck_HitEffects(play, quad->info.acHit, quad->info.acHitElem, &quad->base, &quad->info, &hitPos); + quad->info.acHitElem->toucherFlags |= TOUCH_DREW_HITMARK; } } @@ -2899,14 +2900,14 @@ void CollisionCheck_SetQuadHitFX(struct PlayState* play, CollisionCheckContext* void CollisionCheck_SetSphereHitFX(struct PlayState* play, CollisionCheckContext* colChkCtx, Collider* col) { ColliderSphere* sphere = (ColliderSphere*)col; - if ((sphere->info.bumperFlags & BUMP_DRAW_HITMARK) && (sphere->info.acHitInfo != NULL) && - !(sphere->info.acHitInfo->toucherFlags & TOUCH_DREW_HITMARK)) { + if ((sphere->info.bumperFlags & BUMP_DRAW_HITMARK) && (sphere->info.acHitElem != NULL) && + !(sphere->info.acHitElem->toucherFlags & TOUCH_DREW_HITMARK)) { Vec3f hitPos; Math_Vec3s_ToVec3f(&hitPos, &sphere->info.bumper.hitPos); - CollisionCheck_HitEffects(play, sphere->info.acHit, sphere->info.acHitInfo, &sphere->base, &sphere->info, + CollisionCheck_HitEffects(play, sphere->info.acHit, sphere->info.acHitElem, &sphere->base, &sphere->info, &hitPos); - sphere->info.acHitInfo->toucherFlags |= TOUCH_DREW_HITMARK; + sphere->info.acHitElem->toucherFlags |= TOUCH_DREW_HITMARK; } } @@ -3047,8 +3048,8 @@ s32 CollisionCheck_GetMassType(u8 mass) { * Sets OC collision flags for OC collider overlaps. If both colliders are attached to actors and can push, * also performs an elastic collision where both colliders are moved apart in proportion to their masses. */ -void CollisionCheck_SetOCvsOC(struct PlayState* play, Collider* leftCol, ColliderInfo* leftInfo, Vec3f* leftPos, - Collider* rightCol, ColliderInfo* rightInfo, Vec3f* rightPos, f32 overlapSize) { +void CollisionCheck_SetOCvsOC(struct PlayState* play, Collider* leftCol, ColliderElement* leftElem, Vec3f* leftPos, + Collider* rightCol, ColliderElement* rightElem, Vec3f* rightPos, f32 overlapSize) { f32 pad; f32 leftDispRatio; f32 rightDispRatio; @@ -3066,14 +3067,14 @@ void CollisionCheck_SetOCvsOC(struct PlayState* play, Collider* leftCol, Collide leftCol->ocFlags1 |= OC1_HIT; leftCol->oc = rightActor; - leftInfo->ocElemFlags |= OCELEM_HIT; + leftElem->ocElemFlags |= OCELEM_HIT; if (rightCol->ocFlags2 & OC2_TYPE_PLAYER) { leftCol->ocFlags2 |= OC2_HIT_PLAYER; } rightCol->ocFlags1 |= OC1_HIT; rightCol->oc = leftActor; - rightInfo->ocElemFlags |= OCELEM_HIT; + rightElem->ocElemFlags |= OCELEM_HIT; if (leftCol->ocFlags2 & OC2_TYPE_PLAYER) { rightCol->ocFlags2 |= OC2_HIT_PLAYER; } @@ -3500,36 +3501,36 @@ void CollisionCheck_SetInfoGetDamageTable(CollisionCheckInfo* info, s32 index, C * Apply AC damage effect */ void CollisionCheck_ApplyDamage(struct PlayState* play, CollisionCheckContext* colChkCtx, Collider* col, - ColliderInfo* info) { + ColliderElement* elem) { f32 damage; f32 finalDamage = 0.0f; s32 pad; Collider* atCol; - ColliderInfo* atInfo; + ColliderElement* atElem; s32 pad1; u32 effect; if ((col->actor == NULL) || !(col->acFlags & AC_HIT)) { return; } - if (!(info->bumperFlags & BUMP_HIT) || (info->bumperFlags & BUMP_NO_DAMAGE)) { + if (!(elem->bumperFlags & BUMP_HIT) || (elem->bumperFlags & BUMP_NO_DAMAGE)) { return; } - atCol = info->acHit; - atInfo = info->acHitInfo; + atCol = elem->acHit; + atElem = elem->acHitElem; - if ((atCol != NULL) && (atInfo != NULL) && (col != NULL) && (info != NULL)) { - damage = CollisionCheck_GetDamageAndEffectOnBumper(atCol, atInfo, col, info, &effect); + if ((atCol != NULL) && (atElem != NULL) && (col != NULL) && (elem != NULL)) { + damage = CollisionCheck_GetDamageAndEffectOnBumper(atCol, atElem, col, elem, &effect); - if (CollisionCheck_GetToucherDamage(atCol, atInfo, col, info) != 0) { + if (CollisionCheck_GetToucherDamage(atCol, atElem, col, elem) != 0) { if (damage < 1.0f) { finalDamage = 0.0f; if (effect == 0) { return; } } else { - finalDamage = CollisionCheck_ApplyBumperDefense(damage, info); + finalDamage = CollisionCheck_ApplyBumperDefense(damage, elem); if ((finalDamage < 1.0f) && (effect == 0)) { return; } @@ -3538,7 +3539,7 @@ void CollisionCheck_ApplyDamage(struct PlayState* play, CollisionCheckContext* c if (col->actor->colChkInfo.damageTable != NULL) { col->actor->colChkInfo.damageEffect = effect; } - if (!(col->acFlags & AC_HARD) || ((col->acFlags & AC_HARD) && (atInfo->toucher.dmgFlags == 0x20000000))) { + if (!(col->acFlags & AC_HARD) || ((col->acFlags & AC_HARD) && (atElem->toucher.dmgFlags == 0x20000000))) { if (col->actor->colChkInfo.damage < finalDamage) { col->actor->colChkInfo.damage = finalDamage; } diff --git a/src/code/z_fireobj.c b/src/code/z_fireobj.c index 3f50a2e68d..d5f2dede91 100644 --- a/src/code/z_fireobj.c +++ b/src/code/z_fireobj.c @@ -223,7 +223,7 @@ void FireObj_Update(PlayState* play, FireObj* fire, Actor* actor) { FireObj_UpdateStateTransitions(play, fire); if (fire->state == FIRE_STATE_NOT_LIT) { if ((fire->collision.base.acFlags & AC_HIT) && - (fire->collision.info.acHitInfo->toucher.dmgFlags & DMG_FIRE_ARROW)) { + (fire->collision.info.acHitElem->toucher.dmgFlags & DMG_FIRE_ARROW)) { FireObj_SetState(fire, fire->dynamicSizeStep, FIRE_STATE_GROWING); } } else if ((fire->collision.base.acFlags & AC_HIT) && (arrow->actor.update != NULL) && diff --git a/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c b/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c index abe369f5c0..315d8682e0 100644 --- a/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c +++ b/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c @@ -139,11 +139,11 @@ void ArmsHook_Shoot(ArmsHook* this, PlayState* play) { ArmsHook_CheckForCancel(this); if ((this->timer != 0) && (this->collider.base.atFlags & AT_HIT) && - (this->collider.info.atHitInfo->elemType != ELEMTYPE_UNK4)) { + (this->collider.info.atHitElem->elemType != ELEMTYPE_UNK4)) { Actor* touchedActor = this->collider.base.at; if ((touchedActor->update != NULL) && (touchedActor->flags & (ACTOR_FLAG_200 | ACTOR_FLAG_400))) { - if (this->collider.info.atHitInfo->bumperFlags & BUMP_HOOKABLE) { + if (this->collider.info.atHitElem->bumperFlags & BUMP_HOOKABLE) { ArmsHook_AttachHookToActor(this, touchedActor); if (CHECK_FLAG_ALL(touchedActor->flags, ACTOR_FLAG_400)) { func_808C1154(this); diff --git a/src/overlays/actors/ovl_Bg_Dblue_Waterfall/z_bg_dblue_waterfall.c b/src/overlays/actors/ovl_Bg_Dblue_Waterfall/z_bg_dblue_waterfall.c index eb64ab70af..aef28bcb84 100644 --- a/src/overlays/actors/ovl_Bg_Dblue_Waterfall/z_bg_dblue_waterfall.c +++ b/src/overlays/actors/ovl_Bg_Dblue_Waterfall/z_bg_dblue_waterfall.c @@ -419,13 +419,13 @@ void func_80B84928(BgDblueWaterfall* this, PlayState* play) { if (sp2C) { if (sp30 != 0) { func_80B83EA4(this, play); - if (this->collider.info.acHitInfo->toucher.dmgFlags & 0x800) { + if (this->collider.info.acHitElem->toucher.dmgFlags & 0x800) { this->csId = this->actor.csId; func_80B84AD4(this, play); } } else { func_80B841A0(this, play); - if (this->collider.info.acHitInfo->toucher.dmgFlags & 0x1000) { + if (this->collider.info.acHitElem->toucher.dmgFlags & 0x1000) { this->csId = CutsceneManager_GetAdditionalCsId(this->actor.csId); func_80B84AD4(this, play); } diff --git a/src/overlays/actors/ovl_Bg_Hakugin_Bombwall/z_bg_hakugin_bombwall.c b/src/overlays/actors/ovl_Bg_Hakugin_Bombwall/z_bg_hakugin_bombwall.c index 362382df63..8e48112d0e 100644 --- a/src/overlays/actors/ovl_Bg_Hakugin_Bombwall/z_bg_hakugin_bombwall.c +++ b/src/overlays/actors/ovl_Bg_Hakugin_Bombwall/z_bg_hakugin_bombwall.c @@ -359,7 +359,7 @@ s32 func_80ABCB5C(BgHakuginBombwall* this, PlayState* play) { s32 func_80ABCC00(BgHakuginBombwall* this, PlayState* play) { if (this->collider.base.acFlags & AC_HIT) { - if (this->collider.info.acHitInfo->toucher.dmgFlags & 8) { + if (this->collider.info.acHitElem->toucher.dmgFlags & 8) { if (this->collider.base.ac != NULL) { Actor* thisx = &this->dyna.actor; diff --git a/src/overlays/actors/ovl_Bg_Ikninside/z_bg_ikninside.c b/src/overlays/actors/ovl_Bg_Ikninside/z_bg_ikninside.c index dfa8e9484b..2fe68f5d8a 100644 --- a/src/overlays/actors/ovl_Bg_Ikninside/z_bg_ikninside.c +++ b/src/overlays/actors/ovl_Bg_Ikninside/z_bg_ikninside.c @@ -104,7 +104,7 @@ void func_80C072D0(BgIkninside* this, PlayState* play) { s32 i; if (this->collider.base.acFlags & AC_HIT) { - if ((this->collider.info.acHitInfo != NULL) && (this->collider.info.acHitInfo->toucher.dmgFlags & 0x80000000)) { + if ((this->collider.info.acHitElem != NULL) && (this->collider.info.acHitElem->toucher.dmgFlags & 0x80000000)) { for (i = 0; i < 20; i++) { altitude = Rand_S16Offset(0x1800, 0x2800); azimuth = Rand_Next() >> 0x10; diff --git a/src/overlays/actors/ovl_Bg_Spdweb/z_bg_spdweb.c b/src/overlays/actors/ovl_Bg_Spdweb/z_bg_spdweb.c index d00c82d8b9..1616bb5aca 100644 --- a/src/overlays/actors/ovl_Bg_Spdweb/z_bg_spdweb.c +++ b/src/overlays/actors/ovl_Bg_Spdweb/z_bg_spdweb.c @@ -291,7 +291,7 @@ void func_809CE4C8(BgSpdweb* this, PlayState* play) { for (i = 0; i < 2; i++) { element = &this->collider.elements[i]; if (element->info.bumperFlags & BUMP_HIT) { - if (this->collider.elements[i].info.acHitInfo->toucher.dmgFlags & 0x800) { + if (this->collider.elements[i].info.acHitElem->toucher.dmgFlags & 0x800) { Math_Vec3s_ToVec3f(&this->dyna.actor.home.pos, &element->info.bumper.hitPos); func_809CEE74(this); return; diff --git a/src/overlays/actors/ovl_Boss_01/z_boss_01.c b/src/overlays/actors/ovl_Boss_01/z_boss_01.c index b1d4245bb7..623f7d066f 100644 --- a/src/overlays/actors/ovl_Boss_01/z_boss_01.c +++ b/src/overlays/actors/ovl_Boss_01/z_boss_01.c @@ -1954,9 +1954,9 @@ void Boss01_UpdateDamage(Boss01* this, PlayState* play) { if (this->shieldCollider.elements[ODOLWA_SHIELD_COLLIDER_SHIELD].info.bumperFlags & BUMP_HIT) { this->bodyInvincibilityTimer = 5; if (this->damagedTimer == 0) { - ColliderInfo* acHitInfo = this->shieldCollider.elements[ODOLWA_SHIELD_COLLIDER_SHIELD].info.acHitInfo; + ColliderElement* acHitElem = this->shieldCollider.elements[ODOLWA_SHIELD_COLLIDER_SHIELD].info.acHitElem; - if (acHitInfo->toucher.dmgFlags == DMG_SWORD_BEAM) { + if (acHitElem->toucher.dmgFlags == DMG_SWORD_BEAM) { Actor_Spawn(&play->actorCtx, play, ACTOR_EN_CLEAR_TAG, this->actor.focus.pos.x, this->actor.focus.pos.y, this->actor.focus.pos.z, 0, 0, 3, CLEAR_TAG_PARAMS(CLEAR_TAG_LARGE_LIGHT_RAYS)); Actor_PlaySfx(&this->actor, NA_SE_IT_SHIELD_BOUND); @@ -3246,16 +3246,16 @@ void Boss01_Bug_UpdateDamage(Boss01* this, PlayState* play) { Vec3f additionalVelocity; s32 pad[2]; u8 damage; - ColliderInfo* acHitInfo; + ColliderElement* acHitElem; OdolwaEffect* effect = play->specialEffects; if (this->bugACCollider.base.acFlags & AC_HIT) { this->bugACCollider.base.acFlags &= ~AC_HIT; - acHitInfo = this->bugACCollider.info.acHitInfo; + acHitElem = this->bugACCollider.info.acHitElem; if (this->damagedTimer == 0) { Matrix_RotateYS(this->actor.yawTowardsPlayer, MTXMODE_NEW); - if (acHitInfo->toucher.dmgFlags & 0x300000) { + if (acHitElem->toucher.dmgFlags & 0x300000) { this->damagedTimer = 10; Matrix_MultVecZ(-10.0f, &additionalVelocity); this->additionalVelocityX = additionalVelocity.x; diff --git a/src/overlays/actors/ovl_Boss_03/z_boss_03.c b/src/overlays/actors/ovl_Boss_03/z_boss_03.c index 3b50ce2daa..e953105218 100644 --- a/src/overlays/actors/ovl_Boss_03/z_boss_03.c +++ b/src/overlays/actors/ovl_Boss_03/z_boss_03.c @@ -1828,7 +1828,7 @@ void Boss03_Damaged(Boss03* this, PlayState* play) { /* End of ActionFuncs section */ void Boss03_UpdateCollision(Boss03* this, PlayState* play) { - ColliderInfo* hitbox; + ColliderElement* acHitElem; u8 sp4B = true; Player* player = GET_PLAYER(play); s32 i; @@ -1863,15 +1863,15 @@ void Boss03_UpdateCollision(Boss03* this, PlayState* play) { if ((this->actionFunc == stunnedActionFunc) && sp4B) { for (i = 0; i < ARRAY_COUNT(sBodyJntSphElementsInit); i++) { if (this->bodyCollider.elements[i].info.bumperFlags & BUMP_HIT) { - hitbox = this->bodyCollider.elements[i].info.acHitInfo; + acHitElem = this->bodyCollider.elements[i].info.acHitElem; this->bodyCollider.elements[i].info.bumperFlags &= ~BUMP_HIT; this->unk_25C = 15; this->unk_25E = 15; // (DMG_SWORD_BEAM | DMG_SPIN_ATTACK | DMG_ZORA_PUNCH | DMG_ZORA_BARRIER | DMG_DEKU_LAUNCH | // DMG_DEKU_SPIN | DMG_GORON_SPIKES | DMG_SWORD | DMG_GORON_PUNCH | DMG_DEKU_STICK) - phi_v0 = (hitbox->toucher.dmgFlags & 0x038AC302) - ? this->bodyCollider.elements[i].info.acHitInfo->toucher.damage + phi_v0 = (acHitElem->toucher.dmgFlags & 0x038AC302) + ? this->bodyCollider.elements[i].info.acHitElem->toucher.damage : 0; phi_v1 = phi_v0; @@ -1896,7 +1896,7 @@ void Boss03_UpdateCollision(Boss03* this, PlayState* play) { for (i = 0; i < ARRAY_COUNT(sHeadJntSphElementsInit); i++) { if (this->headCollider.elements[i].info.bumperFlags & BUMP_HIT) { - hitbox = this->headCollider.elements[i].info.acHitInfo; + acHitElem = this->headCollider.elements[i].info.acHitElem; this->headCollider.elements[i].info.bumperFlags &= ~BUMP_HIT; this->unk_25C = 15; @@ -1919,8 +1919,8 @@ void Boss03_UpdateCollision(Boss03* this, PlayState* play) { // (DMG_SWORD_BEAM | DMG_SPIN_ATTACK | DMG_ZORA_PUNCH | DMG_ZORA_BARRIER | DMG_DEKU_LAUNCH | // DMG_DEKU_SPIN | DMG_GORON_SPIKES | DMG_SWORD | DMG_GORON_PUNCH | DMG_DEKU_STICK) - phi_v0 = (hitbox->toucher.dmgFlags & 0x038AC302) - ? (this->headCollider.elements[i].info.acHitInfo->toucher.damage) + phi_v0 = (acHitElem->toucher.dmgFlags & 0x038AC302) + ? (this->headCollider.elements[i].info.acHitElem->toucher.damage) : 0; phi_v1 = phi_v0; diff --git a/src/overlays/actors/ovl_Boss_05/z_boss_05.c b/src/overlays/actors/ovl_Boss_05/z_boss_05.c index 06d8f3b4ac..6fed5a1659 100644 --- a/src/overlays/actors/ovl_Boss_05/z_boss_05.c +++ b/src/overlays/actors/ovl_Boss_05/z_boss_05.c @@ -947,13 +947,13 @@ void Boss05_FallingHead_Fall(Boss05* this, PlayState* play) { void Boss05_WalkingHead_UpdateDamage(Boss05* this, PlayState* play) { s32 pad[2]; u8 attackDealsDamage = false; - ColliderInfo* acHitInfo; + ColliderElement* acHitElem; if ((this->damagedTimer == 0) && (this->headCollider.elements[BIO_BABA_HEAD_COLLIDER_HEAD].info.bumperFlags & BUMP_HIT)) { this->headCollider.elements[BIO_BABA_HEAD_COLLIDER_HEAD].info.bumperFlags &= ~BUMP_HIT; - acHitInfo = this->headCollider.elements[BIO_BABA_HEAD_COLLIDER_HEAD].info.acHitInfo; - if (acHitInfo->toucher.dmgFlags & 0x300000) { // (DMG_NORMAL_SHIELD | DMG_LIGHT_RAY) + acHitElem = this->headCollider.elements[BIO_BABA_HEAD_COLLIDER_HEAD].info.acHitElem; + if (acHitElem->toucher.dmgFlags & 0x300000) { // (DMG_NORMAL_SHIELD | DMG_LIGHT_RAY) this->knockbackMagnitude = -12.0f; this->knockbackAngle = this->dyna.actor.yawTowardsPlayer; this->damagedTimer = 6; diff --git a/src/overlays/actors/ovl_Boss_Hakugin/z_boss_hakugin.c b/src/overlays/actors/ovl_Boss_Hakugin/z_boss_hakugin.c index 2b513018cf..221876f118 100644 --- a/src/overlays/actors/ovl_Boss_Hakugin/z_boss_hakugin.c +++ b/src/overlays/actors/ovl_Boss_Hakugin/z_boss_hakugin.c @@ -1617,7 +1617,7 @@ void BossHakugin_FrozenBeforeFight(BossHakugin* this, PlayState* play) { } if ((this->iceCollider.base.acFlags & AC_HIT) && - (this->iceCollider.info.acHitInfo->toucher.dmgFlags == DMG_FIRE_ARROW)) { + (this->iceCollider.info.acHitElem->toucher.dmgFlags == DMG_FIRE_ARROW)) { this->iceCollider.base.atFlags &= ~AT_HIT; this->iceCollider.base.acFlags &= ~AC_HIT; this->iceCollider.base.ocFlags1 &= ~OC1_HIT; @@ -2668,7 +2668,7 @@ s32 BossHakugin_UpdateDamage(BossHakugin* this, PlayState* play) { // DMG_DEKU_NUT | DMG_DEKU_STICK | DMG_ZORA_BOOMERANG | DMG_NORMAL_ARROW | DMG_HOOKSHOT | DMG_ICE_ARROW // | DMG_LIGHT_ARROW | DMG_DEKU_SPIN | DMG_DEKU_BUBBLE | DMG_DEKU_LAUNCH | DMG_ZORA_BARRIER if ((this->drawDmgEffType == ACTOR_DRAW_DMGEFF_FROZEN_NO_SFX) && - (this->bodyCollider.elements[i].info.acHitInfo->toucher.dmgFlags & 0x000DB0B3)) { + (this->bodyCollider.elements[i].info.acHitElem->toucher.dmgFlags & 0x000DB0B3)) { return false; } @@ -2714,7 +2714,7 @@ s32 BossHakugin_UpdateDamage(BossHakugin* this, PlayState* play) { Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 15); this->damagedSpeedUpCounter += 35; BossHakugin_UpdateDrawDmgEffect(this, play, i); - this->actor.colChkInfo.damage = this->bodyCollider.elements[i].info.acHitInfo->toucher.damage; + this->actor.colChkInfo.damage = this->bodyCollider.elements[i].info.acHitElem->toucher.damage; if (Actor_ApplyDamage(&this->actor) == 0) { Enemy_StartFinishingBlow(play, &this->actor); @@ -2757,11 +2757,11 @@ s32 BossHakugin_UpdateDamage(BossHakugin* this, PlayState* play) { this->disableBodyCollidersTimer = 20; for (j = 0; j < ARRAY_COUNT(this->bodyColliderElements); j++) { Vec3f hitPos; - ColliderInfo* colliderInfo = &this->bodyCollider.elements[j].info; + ColliderElement* elem = &this->bodyCollider.elements[j].info; - if ((colliderInfo->bumperFlags & BUMP_HIT) && (colliderInfo->acHitInfo != NULL) && - !(colliderInfo->acHitInfo->toucherFlags & TOUCH_SFX_NONE)) { - Math_Vec3s_ToVec3f(&hitPos, &colliderInfo->bumper.hitPos); + if ((elem->bumperFlags & BUMP_HIT) && (elem->acHitElem != NULL) && + !(elem->acHitElem->toucherFlags & TOUCH_SFX_NONE)) { + Math_Vec3s_ToVec3f(&hitPos, &elem->bumper.hitPos); EffectSsHitmark_SpawnFixedScale(play, EFFECT_HITMARK_METAL, &hitPos); CollisionCheck_SpawnShieldParticlesMetalSound(play, &hitPos, &this->actor.projectedPos); break; diff --git a/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c b/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c index 2d812305fa..73e0cc6003 100644 --- a/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c +++ b/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c @@ -380,7 +380,7 @@ void func_8088ACE0(EnArrow* this, PlayState* play) { ((this->actor.params == ARROW_TYPE_DEKU_BUBBLE) && ((this->unk_262 != 0) || (phi_a2 = (this->collider.base.atFlags & AT_HIT) != 0)))) { if (this->actor.params == ARROW_TYPE_DEKU_BUBBLE) { - if (phi_a2 && (this->collider.info.atHitInfo->elemType != ELEMTYPE_UNK4) && + if (phi_a2 && (this->collider.info.atHitElem->elemType != ELEMTYPE_UNK4) && (this->collider.base.atFlags & AT_BOUNCED)) { if ((this->collider.base.at != NULL) && (this->collider.base.at->id != ACTOR_OBJ_SYOKUDAI)) { Math_Vec3f_Copy(&this->actor.world.pos, &this->actor.prevPos); @@ -434,7 +434,7 @@ void func_8088ACE0(EnArrow* this, PlayState* play) { } else { EffectSsHitmark_SpawnCustomScale(play, EFFECT_HITMARK_WHITE, 150, &this->actor.world.pos); - if (sp50 && (this->collider.info.atHitInfo->elemType != ELEMTYPE_UNK4)) { + if (sp50 && (this->collider.info.atHitElem->elemType != ELEMTYPE_UNK4)) { sp7C = this->collider.base.at; if ((sp7C->update != NULL) && !(this->collider.base.atFlags & AT_BOUNCED) && diff --git a/src/overlays/actors/ovl_En_Bb/z_en_bb.c b/src/overlays/actors/ovl_En_Bb/z_en_bb.c index a626ee3436..52761f9247 100644 --- a/src/overlays/actors/ovl_En_Bb/z_en_bb.c +++ b/src/overlays/actors/ovl_En_Bb/z_en_bb.c @@ -505,7 +505,7 @@ void EnBb_UpdateDamage(EnBb* this, PlayState* play) { this->collider.base.atFlags &= ~(AT_HIT | AT_BOUNCED); this->collider.base.atFlags &= ~AT_ON; if ((this->drawDmgEffType != ACTOR_DRAW_DMGEFF_FROZEN_NO_SFX) || - !(this->collider.info.acHitInfo->toucher.dmgFlags & 0xDB0B3)) { + !(this->collider.info.acHitElem->toucher.dmgFlags & 0xDB0B3)) { Actor_SetDropFlag(&this->actor, &this->collider.info); this->flameScaleY = 0.0f; this->flameScaleX = 0.0f; diff --git a/src/overlays/actors/ovl_En_Bbfall/z_en_bbfall.c b/src/overlays/actors/ovl_En_Bbfall/z_en_bbfall.c index f12ec9813a..4365d00e92 100644 --- a/src/overlays/actors/ovl_En_Bbfall/z_en_bbfall.c +++ b/src/overlays/actors/ovl_En_Bbfall/z_en_bbfall.c @@ -524,7 +524,7 @@ void EnBbfall_UpdateDamage(EnBbfall* this, PlayState* play) { this->collider.base.atFlags &= ~(AT_HIT | AT_BOUNCED); this->collider.base.atFlags &= ~AT_ON; if ((this->drawDmgEffType != ACTOR_DRAW_DMGEFF_FROZEN_NO_SFX) || - !(this->collider.elements[0].info.acHitInfo->toucher.dmgFlags & 0xDB0B3)) { + !(this->collider.elements[0].info.acHitElem->toucher.dmgFlags & 0xDB0B3)) { Actor_SetDropFlagJntSph(&this->actor, &this->collider); this->flameOpacity = 0; this->flameScaleY = 0.0f; diff --git a/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c b/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c index 0152b12ecf..f821f6a94c 100644 --- a/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c +++ b/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c @@ -490,12 +490,12 @@ void EnBigokuta_CheckOneHitKill(EnBigokuta* this, PlayState* play) { Enemy_StartFinishingBlow(play, &this->picto.actor); if (this->bodyCollider.base.acFlags & AC_HIT) { - if (this->bodyCollider.info.acHitInfo->toucher.dmgFlags & 0x1000) { // Ice Arrow + if (this->bodyCollider.info.acHitElem->toucher.dmgFlags & 0x1000) { // Ice Arrow this->drawDmgEffType = ACTOR_DRAW_DMGEFF_FROZEN_NO_SFX; this->drawDmgEffScale = 1.2f; this->drawDmgEffFrozenSteamScale = 1800.0f * 0.001f; this->drawDmgEffAlpha = 1.0f; - } else if (this->bodyCollider.info.acHitInfo->toucher.dmgFlags & 0x2000) { // Light Arrow + } else if (this->bodyCollider.info.acHitElem->toucher.dmgFlags & 0x2000) { // Light Arrow this->drawDmgEffType = ACTOR_DRAW_DMGEFF_LIGHT_ORBS; this->drawDmgEffScale = 1.2f; this->drawDmgEffAlpha = 4.0f; diff --git a/src/overlays/actors/ovl_En_Bigslime/z_en_bigslime.c b/src/overlays/actors/ovl_En_Bigslime/z_en_bigslime.c index 49329e21d2..fca093d4ab 100644 --- a/src/overlays/actors/ovl_En_Bigslime/z_en_bigslime.c +++ b/src/overlays/actors/ovl_En_Bigslime/z_en_bigslime.c @@ -2620,7 +2620,7 @@ void EnBigslime_ApplyDamageEffectGekko(EnBigslime* this, PlayState* play) { if (this->gekkoCollider.base.acFlags & AC_HIT) { this->gekkoCollider.base.acFlags &= ~AC_HIT; if ((this->gekkoDrawDmgEffType != ACTOR_DRAW_DMGEFF_FROZEN_NO_SFX) || - !(this->gekkoCollider.info.acHitInfo->toucher.dmgFlags & 0xDB0B3)) { + !(this->gekkoCollider.info.acHitElem->toucher.dmgFlags & 0xDB0B3)) { EnBigslime_EndThrowMinislime(this); if (this->actor.colChkInfo.damageEffect != BIGSLIME_DMGEFF_HOOKSHOT) { if (Actor_ApplyDamage(&this->actor) == 0) { diff --git a/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c b/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c index 0ff95f1f90..5b6e0b5d53 100644 --- a/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c +++ b/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c @@ -167,8 +167,8 @@ void func_808AEAE0(EnBombf* this, PlayState* play) { player->stateFlags1 &= ~PLAYER_STATE1_CARRYING_ACTOR; } } else if ((this->colliderCylinder.base.acFlags & AC_HIT) && - ((this->colliderCylinder.info.acHitInfo->toucher.dmgFlags & 0x13828) || - ((this->colliderCylinder.info.acHitInfo->toucher.dmgFlags & 0x200) && + ((this->colliderCylinder.info.acHitElem->toucher.dmgFlags & 0x13828) || + ((this->colliderCylinder.info.acHitElem->toucher.dmgFlags & 0x200) && (player->transformation == PLAYER_FORM_GORON) && (player->actor.speed > 15.0f)))) { this->colliderCylinder.base.acFlags &= ~AC_HIT; if (this->colliderCylinder.base.ac->category != ACTORCAT_BOSS) { diff --git a/src/overlays/actors/ovl_En_Bubble/z_en_bubble.c b/src/overlays/actors/ovl_En_Bubble/z_en_bubble.c index 54f9ebbb25..6bfcbccdcd 100644 --- a/src/overlays/actors/ovl_En_Bubble/z_en_bubble.c +++ b/src/overlays/actors/ovl_En_Bubble/z_en_bubble.c @@ -96,12 +96,12 @@ void EnBubble_SetDimensions(EnBubble* this, f32 dim) { } s32 func_8089F59C(EnBubble* this) { - ColliderInfo* info = &this->colliderSphere.elements[0].info; + ColliderElement* elem = &this->colliderSphere.elements[0].info; - info->toucher.dmgFlags = DMG_EXPLOSIVES; - info->toucher.effect = 0; - info->toucher.damage = 4; - info->toucherFlags = TOUCH_ON; + elem->toucher.dmgFlags = DMG_EXPLOSIVES; + elem->toucher.effect = 0; + elem->toucher.damage = 4; + elem->toucherFlags = TOUCH_ON; this->actor.velocity.y = 0.0f; return 6; } diff --git a/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c b/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c index f19df5282e..2d1d1f1046 100644 --- a/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c +++ b/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c @@ -1085,7 +1085,7 @@ void EnDekubaba_UpdateDamage(EnDekubaba* this, PlayState* play) { if ((i != ARRAY_COUNT(this->colliderElements)) && ((this->drawDmgEffType != ACTOR_DRAW_DMGEFF_FROZEN_NO_SFX) || - !(sphElement->info.acHitInfo->toucher.dmgFlags & 0xDB0B3))) { + !(sphElement->info.acHitElem->toucher.dmgFlags & 0xDB0B3))) { EnDekubaba_SpawnIceEffects(this, play); newHealth = this->actor.colChkInfo.health - this->actor.colChkInfo.damage; diff --git a/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c b/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c index a70e7490af..157f12a27f 100644 --- a/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c +++ b/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c @@ -571,7 +571,7 @@ void func_808BE73C(EnDekunuts* this, PlayState* play) { this->collider.base.acFlags &= ~AC_HIT; Actor_SetDropFlag(&this->actor, &this->collider.info); if ((this->drawDmgEffType != ACTOR_DRAW_DMGEFF_FROZEN_NO_SFX) || - !(this->collider.info.acHitInfo->toucher.dmgFlags & 0xDB0B3)) { + !(this->collider.info.acHitElem->toucher.dmgFlags & 0xDB0B3)) { func_808BD3B4(this, play); if ((this->actor.colChkInfo.mass == 50) || (this->actor.params != ENDEKUNUTS_GET_FF00_0)) { if ((this->actor.params != ENDEKUNUTS_GET_FF00_1) && !Actor_ApplyDamage(&this->actor)) { diff --git a/src/overlays/actors/ovl_En_Dinofos/z_en_dinofos.c b/src/overlays/actors/ovl_En_Dinofos/z_en_dinofos.c index b7bdb7c9e8..f174b3b31c 100644 --- a/src/overlays/actors/ovl_En_Dinofos/z_en_dinofos.c +++ b/src/overlays/actors/ovl_En_Dinofos/z_en_dinofos.c @@ -1306,7 +1306,7 @@ s32 EnDinofos_UpdateDamage(EnDinofos* this, PlayState* play) { } if ((this->drawDmgEffType == ACTOR_DRAW_DMGEFF_FROZEN_NO_SFX) && - (this->bodyAndFireCollider.elements[i].info.acHitInfo->toucher.dmgFlags & 0xDB0B3)) { + (this->bodyAndFireCollider.elements[i].info.acHitElem->toucher.dmgFlags & 0xDB0B3)) { return false; } diff --git a/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c b/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c index 6afc725030..b392c85351 100644 --- a/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c +++ b/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c @@ -970,7 +970,7 @@ void EnDodongo_UpdateDamage(EnDodongo* this, PlayState* play) { if ((i != ARRAY_COUNT(this->collider2Elements)) && ((this->drawDmgEffType != ACTOR_DRAW_DMGEFF_FROZEN_NO_SFX) || - !(this->collider2.elements[i].info.acHitInfo->toucher.dmgFlags & 0xDB0B3))) { + !(this->collider2.elements[i].info.acHitElem->toucher.dmgFlags & 0xDB0B3))) { func_80876D28(this, play); Math_Vec3s_ToVec3f(&sp3C, &this->collider2.elements[i].info.bumper.hitPos); if (this->actor.colChkInfo.damageEffect == 0xF) { @@ -994,7 +994,7 @@ void EnDodongo_UpdateDamage(EnDodongo* this, PlayState* play) { if ((i != ARRAY_COUNT(this->collider1Elements)) && ((this->drawDmgEffType != ACTOR_DRAW_DMGEFF_FROZEN_NO_SFX) || - !(this->collider1.elements[i].info.acHitInfo->toucher.dmgFlags & 0xDB0B3))) { + !(this->collider1.elements[i].info.acHitElem->toucher.dmgFlags & 0xDB0B3))) { func_80876D28(this, play); if (this->actor.colChkInfo.damageEffect != 0xF) { if (!Actor_ApplyDamage(&this->actor)) { diff --git a/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c b/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c index b32e2ffde6..28e1ce80eb 100644 --- a/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c +++ b/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c @@ -1005,7 +1005,7 @@ void func_808D2E34(EnFloormas* this, PlayState* play) { this->collider.base.acFlags &= ~AC_HIT; Actor_SetDropFlag(&this->actor, &this->collider.info); if ((this->drawDmgEffType != ACTOR_DRAW_DMGEFF_FROZEN_NO_SFX) || - !(this->collider.info.acHitInfo->toucher.dmgFlags & 0xDB0B3)) { + !(this->collider.info.acHitElem->toucher.dmgFlags & 0xDB0B3)) { if (this->actor.colChkInfo.damageEffect == 0xE) { func_808D0908(this); this->actor.colorFilterTimer = 0; diff --git a/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c b/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c index 6f22435fb4..357e80a16d 100644 --- a/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c +++ b/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c @@ -502,8 +502,8 @@ void EnGe2_PatrolDuties(EnGe2* this, PlayState* play) { Animation_GetLastFrame(&gGerudoPurpleLookingAboutAnim), ANIMMODE_LOOP, -8.0f); } } else if (this->collider.base.acFlags & AC_HIT) { - if ((this->collider.info.acHitInfo != NULL) && - (this->collider.info.acHitInfo->toucher.dmgFlags & DMG_DEKU_NUT)) { + if ((this->collider.info.acHitElem != NULL) && + (this->collider.info.acHitElem->toucher.dmgFlags & DMG_DEKU_NUT)) { Actor_SetColorFilter(&this->picto.actor, COLORFILTER_COLORFLAG_BLUE, 120, COLORFILTER_BUFFLAG_OPA, 400); this->picto.actor.speed = 0.0f; this->actionFunc = EnGe2_Stunned; diff --git a/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c b/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c index 2b89d603c6..928bff6f3f 100644 --- a/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c +++ b/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c @@ -1028,7 +1028,7 @@ s32 func_8094156C(EnGoroiwa* this, PlayState* play) { Vec3f sp80; if ((this->collider.base.acFlags & AC_HIT) && ((params == ENGOROIWA_C000_1) || (params == ENGOROIWA_C000_2))) { - if (this->collider.elements->info.acHitInfo->toucher.dmgFlags & 0x4000) { + if (this->collider.elements->info.acHitElem->toucher.dmgFlags & 0x4000) { s16 sp7E = BINANG_SUB(actor->yawTowardsPlayer, this->actor.world.rot.y); f32 temp; f32 temp2; @@ -1082,11 +1082,11 @@ s32 func_8094156C(EnGoroiwa* this, PlayState* play) { func_80941274(this, play); phi_s0_2 = true; } else if (((params == ENGOROIWA_C000_1) && - (this->collider.elements->info.acHitInfo->toucher.dmgFlags & (0x400 | 0x100))) || - ((params == ENGOROIWA_C000_2) && (this->collider.elements->info.acHitInfo->toucher.dmgFlags & + (this->collider.elements->info.acHitElem->toucher.dmgFlags & (0x400 | 0x100))) || + ((params == ENGOROIWA_C000_2) && (this->collider.elements->info.acHitElem->toucher.dmgFlags & (0x80000000 | 0x800 | 0x400 | 0x100 | 0x8)))) { this->unk_1CC = 50; - if ((params == ENGOROIWA_C000_2) && (this->collider.elements->info.acHitInfo->toucher.dmgFlags & 0x800)) { + if ((params == ENGOROIWA_C000_2) && (this->collider.elements->info.acHitElem->toucher.dmgFlags & 0x800)) { this->unk_1E6 = true; } func_80940090(this, play); diff --git a/src/overlays/actors/ovl_En_Ik/z_en_ik.c b/src/overlays/actors/ovl_En_Ik/z_en_ik.c index a4004ba7c3..c04657d5a8 100644 --- a/src/overlays/actors/ovl_En_Ik/z_en_ik.c +++ b/src/overlays/actors/ovl_En_Ik/z_en_ik.c @@ -786,7 +786,7 @@ void EnIk_UpdateDamage(EnIk* this, PlayState* play) { this->colliderCylinder.base.acFlags &= ~AC_HIT; if ((this->actor.colChkInfo.damageEffect != DMG_EFF_IMMUNE) && ((this->drawDmgEffType != ACTOR_DRAW_DMGEFF_FROZEN_NO_SFX) || - !(this->colliderCylinder.info.acHitInfo->toucher.dmgFlags & 0xDB0B3))) { + !(this->colliderCylinder.info.acHitElem->toucher.dmgFlags & 0xDB0B3))) { Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 12); this->invincibilityFrames = 12; EnIk_Thaw(this, play); diff --git a/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c b/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c index 8c79cb4402..bcaea0f55a 100644 --- a/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c +++ b/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c @@ -482,7 +482,7 @@ void func_8095E660(EnIshi* this, PlayState* play) { return; } - if (sp34 && (sp38 == 0) && (this->collider.info.acHitInfo->toucher.dmgFlags & 0x508)) { + if (sp34 && (sp38 == 0) && (this->collider.info.acHitElem->toucher.dmgFlags & 0x508)) { if (sp30 != 0) { func_8095DFF0(this, play); func_8095F060(this); diff --git a/src/overlays/actors/ovl_En_Kame/z_en_kame.c b/src/overlays/actors/ovl_En_Kame/z_en_kame.c index 1fd1db9280..bf154ba889 100644 --- a/src/overlays/actors/ovl_En_Kame/z_en_kame.c +++ b/src/overlays/actors/ovl_En_Kame/z_en_kame.c @@ -764,7 +764,7 @@ void EnKame_UpdateDamage(EnKame* this, PlayState* play) { Actor_SetDropFlag(&this->actor, &this->collider.info); if ((this->drawDmgEffType == ACTOR_DRAW_DMGEFF_FROZEN_NO_SFX) && - (this->collider.info.acHitInfo->toucher.dmgFlags & 0xDB0B3)) { + (this->collider.info.acHitElem->toucher.dmgFlags & 0xDB0B3)) { return; } diff --git a/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c b/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c index 76404ba338..b5b3850855 100644 --- a/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c +++ b/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c @@ -246,13 +246,13 @@ void EnKanban_Update(Actor* thisx, PlayState* play) { this->actor.world.pos.y, this->actor.world.pos.z, this->actor.shape.rot.x, this->actor.shape.rot.y, this->actor.shape.rot.z, ENKANBAN_PIECE); if (piece != NULL) { - ColliderInfo* hitItem = this->collider.info.acHitInfo; + ColliderElement* acHitElem = this->collider.info.acHitElem; s16 yawDiff = this->actor.yawTowardsPlayer - this->actor.shape.rot.y; u8 i; - if (hitItem->toucher.dmgFlags & 0x200) { + if (acHitElem->toucher.dmgFlags & 0x200) { this->cutType = sCutTypes[player->meleeWeaponAnimation]; - } else if (hitItem->toucher.dmgFlags & 0x10) { + } else if (acHitElem->toucher.dmgFlags & 0x10) { this->invincibilityTimer = 0; this->cutType = this->unk_19A + 3; this->unk_19A = 1 - this->unk_19A; @@ -264,7 +264,7 @@ void EnKanban_Update(Actor* thisx, PlayState* play) { this->cutType = 0; } - if ((ABS_ALT(yawDiff) > 0x4000) && !(hitItem->toucher.dmgFlags & 0x10)) { + if ((ABS_ALT(yawDiff) > 0x4000) && !(acHitElem->toucher.dmgFlags & 0x10)) { if (this->cutType == 4) { this->cutType = 3; } else if (this->cutType == 1) { @@ -361,8 +361,8 @@ void EnKanban_Update(Actor* thisx, PlayState* play) { piece->actor.world.rot.y = BINANG_ROT180((s32)Rand_CenteredFloat(0x4000) + this->actor.yawTowardsPlayer); - if ((hitItem->toucher.dmgFlags & 0x10) || (hitItem->toucher.dmgFlags & 8) || - (hitItem->toucher.dmgFlags & 0x80000000)) { + if ((acHitElem->toucher.dmgFlags & 0x10) || (acHitElem->toucher.dmgFlags & 8) || + (acHitElem->toucher.dmgFlags & 0x80000000)) { piece->actor.velocity.y = Rand_ZeroFloat(3.0f) + 6.0f; piece->actor.speed = Rand_ZeroFloat(4.0f) + 6.0f; } else { diff --git a/src/overlays/actors/ovl_En_Knight/z_en_knight.c b/src/overlays/actors/ovl_En_Knight/z_en_knight.c index f073927f2c..26c86ea3c8 100644 --- a/src/overlays/actors/ovl_En_Knight/z_en_knight.c +++ b/src/overlays/actors/ovl_En_Knight/z_en_knight.c @@ -3160,15 +3160,15 @@ void EnKnight_UpdateDamageFallenOver(EnKnight* this, PlayState* play) { for (i = 0; i < ARRAY_COUNT(this->bodyColliderElements); i++) { ColliderJntSphElement* colliderElem = &this->bodyCollider.elements[i]; - ColliderInfo* acHitInfo; + ColliderElement* acHitElem; if (colliderElem->info.bumperFlags & BUMP_HIT) { colliderElem->info.bumperFlags &= ~BUMP_HIT; - acHitInfo = colliderElem->info.acHitInfo; + acHitElem = colliderElem->info.acHitElem; this->invincibilityTimer = 10; - if (acHitInfo->toucher.dmgFlags & DMG_LIGHT_RAY) { + if (acHitElem->toucher.dmgFlags & DMG_LIGHT_RAY) { this->damageFlashTimer = 15; this->invincibilityTimer = 1000; EnKnight_SetupDie(this, play); diff --git a/src/overlays/actors/ovl_En_Kusa2/z_en_kusa2.c b/src/overlays/actors/ovl_En_Kusa2/z_en_kusa2.c index e9a0b1bcea..304bb98d90 100644 --- a/src/overlays/actors/ovl_En_Kusa2/z_en_kusa2.c +++ b/src/overlays/actors/ovl_En_Kusa2/z_en_kusa2.c @@ -378,7 +378,7 @@ s32 func_80A5BFD8(EnKusa2* this, PlayState* play) { s32 pad; func_80A5CF44(this); - func_80A5BD14(this, play, (this->collider.info.acHitInfo->toucher.dmgFlags & 0x1000000) ? 1 : 0); + func_80A5BD14(this, play, (this->collider.info.acHitElem->toucher.dmgFlags & 0x1000000) ? 1 : 0); SoundSource_PlaySfxAtFixedWorldPos(play, &this->actor.world.pos, 20, NA_SE_EV_PLANT_BROKEN); func_80A5BD94(this); Actor_Kill(&this->actor); diff --git a/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c b/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c index 9fed452311..5dd1d5caa8 100644 --- a/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c +++ b/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c @@ -855,7 +855,7 @@ void EnOkuta_UpdateDamage(EnOkuta* this, PlayState* play) { this->collider.base.acFlags &= ~AC_HIT; if (this->drawDmgEffType != ACTOR_DRAW_DMGEFF_FROZEN_NO_SFX || - !(this->collider.info.acHitInfo->toucher.dmgFlags & 0xDB0B3)) { + !(this->collider.info.acHitElem->toucher.dmgFlags & 0xDB0B3)) { Actor_SetDropFlag(&this->actor, &this->collider.info); EnOkuta_Thaw(this, play); diff --git a/src/overlays/actors/ovl_En_Pametfrog/z_en_pametfrog.c b/src/overlays/actors/ovl_En_Pametfrog/z_en_pametfrog.c index f6a23570e6..a21643666f 100644 --- a/src/overlays/actors/ovl_En_Pametfrog/z_en_pametfrog.c +++ b/src/overlays/actors/ovl_En_Pametfrog/z_en_pametfrog.c @@ -1273,7 +1273,7 @@ void EnPametfrog_ApplyDamageEffect(EnPametfrog* this, PlayState* play) { if (this->collider.base.acFlags & AC_HIT) { this->collider.base.acFlags &= ~AC_HIT; if ((this->drawDmgEffType != ACTOR_DRAW_DMGEFF_FROZEN_NO_SFX) || - !(this->collider.elements->info.acHitInfo->toucher.dmgFlags & 0xDB0B3)) { + !(this->collider.elements->info.acHitElem->toucher.dmgFlags & 0xDB0B3)) { if (this->actor.params == GEKKO_PRE_SNAPPER) { if (Actor_ApplyDamage(&this->actor) == 0) { Audio_RestorePrevBgm(); diff --git a/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c b/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c index c56a752e0c..9a08246fc3 100644 --- a/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c +++ b/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c @@ -690,7 +690,7 @@ void func_8089874C(EnPeehat* this, PlayState* play) { if (this->colliderSphere.base.acFlags & AC_HIT) { this->colliderSphere.base.acFlags &= ~AC_HIT; if ((this->drawDmgEffType != ACTOR_DRAW_DMGEFF_FROZEN_NO_SFX) || - !(this->colliderSphere.info.acHitInfo->toucher.dmgFlags & 0xDB0B3)) { + !(this->colliderSphere.info.acHitElem->toucher.dmgFlags & 0xDB0B3)) { if (!Actor_ApplyDamage(&this->actor)) { Enemy_StartFinishingBlow(play, &this->actor); } @@ -739,7 +739,7 @@ void func_8089874C(EnPeehat* this, PlayState* play) { } else if ((this->drawDmgEffType == ACTOR_DRAW_DMGEFF_FROZEN_NO_SFX) && (this->colliderCylinder.base.acFlags & AC_HIT) && ((this->drawDmgEffType != ACTOR_DRAW_DMGEFF_FROZEN_NO_SFX) || - !(this->colliderCylinder.info.acHitInfo->toucher.dmgFlags & 0xDB0B3))) { + !(this->colliderCylinder.info.acHitElem->toucher.dmgFlags & 0xDB0B3))) { func_808971DC(this, play); this->actor.colorFilterTimer = 0; func_80897648(this); diff --git a/src/overlays/actors/ovl_En_Rr/z_en_rr.c b/src/overlays/actors/ovl_En_Rr/z_en_rr.c index f8b36bd835..2212d4ccd2 100644 --- a/src/overlays/actors/ovl_En_Rr/z_en_rr.c +++ b/src/overlays/actors/ovl_En_Rr/z_en_rr.c @@ -459,7 +459,7 @@ s32 func_808FAA94(EnRr* this, PlayState* play) { this->collider2.base.acFlags &= ~AC_HIT; if ((this->drawDmgEffType == ACTOR_DRAW_DMGEFF_FROZEN_NO_SFX) && - (sp2C->info.acHitInfo->toucher.dmgFlags & 0xDB0B3)) { + (sp2C->info.acHitElem->toucher.dmgFlags & 0xDB0B3)) { return false; } diff --git a/src/overlays/actors/ovl_En_Slime/z_en_slime.c b/src/overlays/actors/ovl_En_Slime/z_en_slime.c index b744626b1a..e93dea2299 100644 --- a/src/overlays/actors/ovl_En_Slime/z_en_slime.c +++ b/src/overlays/actors/ovl_En_Slime/z_en_slime.c @@ -1027,7 +1027,7 @@ void EnSlime_UpdateDamage(EnSlime* this, PlayState* play) { this->collider.base.acFlags &= ~AC_HIT; if ((this->drawDmgEffType != ACTOR_DRAW_DMGEFF_FROZEN_NO_SFX) || - !(this->collider.info.acHitInfo->toucher.dmgFlags & 0xDB0B3)) { + !(this->collider.info.acHitElem->toucher.dmgFlags & 0xDB0B3)) { EnSlime_Thaw(this, play); if ((this->actor.params == EN_SLIME_TYPE_BLUE) && diff --git a/src/overlays/actors/ovl_En_Ssh/z_en_ssh.c b/src/overlays/actors/ovl_En_Ssh/z_en_ssh.c index 1e691a80a9..f170aaeaca 100644 --- a/src/overlays/actors/ovl_En_Ssh/z_en_ssh.c +++ b/src/overlays/actors/ovl_En_Ssh/z_en_ssh.c @@ -470,14 +470,14 @@ void EnSsh_Sway(EnSsh* this) { void EnSsh_CheckBodyStickHit(EnSsh* this, PlayState* play) { Player* player = GET_PLAYER(play); - ColliderInfo* colliderInfo = &this->collider1[0].info; + ColliderElement* elem = &this->collider1[0].info; if (player->unk_B28 != 0) { - colliderInfo->bumper.dmgFlags |= 2; + elem->bumper.dmgFlags |= 2; this->collider1[1].info.bumper.dmgFlags &= ~2; this->collider1[2].info.bumper.dmgFlags &= ~2; } else { - colliderInfo->bumper.dmgFlags &= ~2; + elem->bumper.dmgFlags &= ~2; this->collider1[1].info.bumper.dmgFlags |= 2; this->collider1[2].info.bumper.dmgFlags |= 2; } diff --git a/src/overlays/actors/ovl_En_Tanron2/z_en_tanron2.c b/src/overlays/actors/ovl_En_Tanron2/z_en_tanron2.c index 24cd267b39..0785c71630 100644 --- a/src/overlays/actors/ovl_En_Tanron2/z_en_tanron2.c +++ b/src/overlays/actors/ovl_En_Tanron2/z_en_tanron2.c @@ -415,7 +415,7 @@ void func_80BB7408(EnTanron2* this, PlayState* play) { } void func_80BB7578(EnTanron2* this, PlayState* play) { - ColliderInfo* acHitInfo; + ColliderElement* acHitElem; s32 pad; Player* player = GET_PLAYER(play); s32 pad2[2]; @@ -424,8 +424,8 @@ void func_80BB7578(EnTanron2* this, PlayState* play) { if (this->unk_154 == 0) { if (this->collider1.base.acFlags & AC_HIT) { this->collider1.base.acFlags &= ~AC_HIT; - acHitInfo = this->collider1.info.acHitInfo; - if (acHitInfo->toucher.dmgFlags & 0x80) { + acHitElem = this->collider1.info.acHitElem; + if (acHitElem->toucher.dmgFlags & 0x80) { func_80BB6B80(this); this->unk_158 = 1; Actor_PlaySfx(&this->actor, NA_SE_EN_IKURA_DAMAGE); @@ -438,7 +438,7 @@ void func_80BB7578(EnTanron2* this, PlayState* play) { this->unk_154 = 15; if (this->actionFunc != func_80BB69FC) { Matrix_RotateYS(this->actor.yawTowardsPlayer, MTXMODE_NEW); - if ((acHitInfo->toucher.dmgFlags & 0x300000) != 0) { + if ((acHitElem->toucher.dmgFlags & 0x300000) != 0) { this->unk_154 = 10; Matrix_MultVecZ(-10.0f, &this->actor.velocity); } else { diff --git a/src/overlays/actors/ovl_En_Tanron5/z_en_tanron5.c b/src/overlays/actors/ovl_En_Tanron5/z_en_tanron5.c index 609f348b75..4b316b944a 100644 --- a/src/overlays/actors/ovl_En_Tanron5/z_en_tanron5.c +++ b/src/overlays/actors/ovl_En_Tanron5/z_en_tanron5.c @@ -354,7 +354,7 @@ void EnTanron5_Update(Actor* thisx, PlayState* play2) { if (this->timer == 0) { if (this->collider.base.acFlags & AC_HIT) { - ColliderInfo* acHitInfo = this->collider.info.acHitInfo; + ColliderElement* acHitElem = this->collider.info.acHitElem; Actor* ac = this->collider.base.ac; this->collider.base.acFlags &= ~AC_HIT; @@ -370,7 +370,7 @@ void EnTanron5_Update(Actor* thisx, PlayState* play2) { fragmentAndItemCount = (s32)Rand_ZeroFloat(2.99f) + 10; } - if ((KREG(19) != 0) || ((acHitInfo->toucher.dmgFlags & 0x05000202) && (sGiantModeScaleFactor < 0.5f)) || + if ((KREG(19) != 0) || ((acHitElem->toucher.dmgFlags & 0x05000202) && (sGiantModeScaleFactor < 0.5f)) || (ac->id == ACTOR_BOSS_02)) { if (this->dList == gTwinmoldRuinPillarDL) { // To create the appearance of the pillar shrinking after being hit, push it further into the floor, @@ -460,11 +460,11 @@ void EnTanron5_Update(Actor* thisx, PlayState* play2) { // Something hit the ruin, but it wasn't Twinmold, and it wasn't the player while in giant // mode. Play the reflect sound effect and spawn some sparks instead of breaking. Vec3f hitPos; - ColliderInfo* info = this->collider.info.acHitInfo; + ColliderElement* acHitElem = this->collider.info.acHitElem; - hitPos.x = info->bumper.hitPos.x; - hitPos.y = info->bumper.hitPos.y; - hitPos.z = info->bumper.hitPos.z; + hitPos.x = acHitElem->bumper.hitPos.x; + hitPos.y = acHitElem->bumper.hitPos.y; + hitPos.z = acHitElem->bumper.hitPos.z; Actor_PlaySfx(&this->actor, NA_SE_IT_SHIELD_REFLECT_SW); CollisionCheck_SpawnShieldParticlesMetal(play, &hitPos); diff --git a/src/overlays/actors/ovl_En_Tite/z_en_tite.c b/src/overlays/actors/ovl_En_Tite/z_en_tite.c index 312f080d92..2e4cfb6b67 100644 --- a/src/overlays/actors/ovl_En_Tite/z_en_tite.c +++ b/src/overlays/actors/ovl_En_Tite/z_en_tite.c @@ -947,7 +947,7 @@ void func_80895FF8(EnTite* this, PlayState* play) { Actor_SetDropFlag(&this->actor, &this->collider.info); if ((this->drawDmgEffType != ACTOR_DRAW_DMGEFF_FROZEN_NO_SFX) || - !(this->collider.info.acHitInfo->toucher.dmgFlags & 0xDB0B3)) { + !(this->collider.info.acHitElem->toucher.dmgFlags & 0xDB0B3)) { func_80893E54(this, play); if (this->actor.shape.yOffset < 0.0f) { func_80895DE8(this); diff --git a/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c b/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c index b10487b07f..07962f8a94 100644 --- a/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c +++ b/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c @@ -561,7 +561,7 @@ void EnWallmas_UpdateDamage(EnWallmas* this, PlayState* play) { Actor_SetDropFlag(&this->actor, &this->collider.info); if ((this->drawDmgEffType != ACTOR_DRAW_DMGEFF_FROZEN_NO_SFX) || - (!(this->collider.info.acHitInfo->toucher.dmgFlags & 0xDB0B3))) { + (!(this->collider.info.acHitElem->toucher.dmgFlags & 0xDB0B3))) { if (Actor_ApplyDamage(&this->actor) == 0) { Enemy_StartFinishingBlow(play, &this->actor); Actor_PlaySfx(&this->actor, NA_SE_EN_DAIOCTA_REVERSE); diff --git a/src/overlays/actors/ovl_En_Wf/z_en_wf.c b/src/overlays/actors/ovl_En_Wf/z_en_wf.c index a811ee8bd5..1472806563 100644 --- a/src/overlays/actors/ovl_En_Wf/z_en_wf.c +++ b/src/overlays/actors/ovl_En_Wf/z_en_wf.c @@ -1419,7 +1419,7 @@ void func_8099386C(EnWf* this, PlayState* play) { this->collider1.base.atFlags &= ~AT_ON; if (((this->drawDmgEffType != ACTOR_DRAW_DMGEFF_FROZEN_NO_SFX) || - !(collider->info.acHitInfo->toucher.dmgFlags & + !(collider->info.acHitElem->toucher.dmgFlags & (0x80000 | 0x40000 | 0x10000 | 0x8000 | 0x2000 | 0x1000 | 0x80 | 0x20 | 0x10 | 0x2 | 0x1))) && (this->actor.colChkInfo.damageEffect != 0xF)) { if (!Actor_ApplyDamage(&this->actor)) { diff --git a/src/overlays/actors/ovl_En_Wiz_Fire/z_en_wiz_fire.c b/src/overlays/actors/ovl_En_Wiz_Fire/z_en_wiz_fire.c index 7a62fe244b..53212f72fe 100644 --- a/src/overlays/actors/ovl_En_Wiz_Fire/z_en_wiz_fire.c +++ b/src/overlays/actors/ovl_En_Wiz_Fire/z_en_wiz_fire.c @@ -283,7 +283,7 @@ void EnWiz_MoveMagicProjectile(EnWizFire* this, PlayState* play) { if ((this->type != EN_WIZ_FIRE_TYPE_REFLECTED_MAGIC_PROJECTILE) && (this->timer != 0)) { if (this->collider.base.acFlags & AC_HIT) { this->collider.base.acFlags &= ~AC_HIT; - if (this->collider.info.acHitInfo->toucher.dmgFlags == 0x1000) { + if (this->collider.info.acHitElem->toucher.dmgFlags == 0x1000) { this->timer = 0; this->hitByIceArrow = true; SoundSource_PlaySfxAtFixedWorldPos(play, &this->actor.world.pos, 50, NA_SE_EV_ICE_MELT); @@ -342,7 +342,7 @@ void EnWiz_SmallFlame(EnWizFire* this, PlayState* play) { this->timer -= 10; } - if (this->collider.info.acHitInfo->toucher.dmgFlags == 0x1000) { + if (this->collider.info.acHitElem->toucher.dmgFlags == 0x1000) { this->timer = 0; this->hitByIceArrow = true; SoundSource_PlaySfxAtFixedWorldPos(play, &this->actor.world.pos, 50, NA_SE_EV_ICE_MELT); @@ -409,7 +409,7 @@ void EnWiz_Pool(EnWizFire* this, PlayState* play) { if (this->collider.base.acFlags & AC_HIT) { this->collider.base.acFlags &= ~AC_HIT; - if (!sPoolHitByIceArrow && (this->collider.info.acHitInfo->toucher.dmgFlags == 0x1000)) { + if (!sPoolHitByIceArrow && (this->collider.info.acHitElem->toucher.dmgFlags == 0x1000)) { sPoolHitByIceArrow = true; this->hitByIceArrow = true; this->poolTimer = 0; diff --git a/src/overlays/actors/ovl_Obj_Bigicicle/z_obj_bigicicle.c b/src/overlays/actors/ovl_Obj_Bigicicle/z_obj_bigicicle.c index 7d081c392d..fb0c48f8a4 100644 --- a/src/overlays/actors/ovl_Obj_Bigicicle/z_obj_bigicicle.c +++ b/src/overlays/actors/ovl_Obj_Bigicicle/z_obj_bigicicle.c @@ -180,7 +180,7 @@ void func_80AE8DE4(ObjBigicicle* this, PlayState* play) { void func_80AE8FD4(ObjBigicicle* this, PlayState* play) { if ((this->collider1.base.acFlags & AC_HIT) || - ((this->collider2.base.acFlags & AC_HIT) && (this->collider2.info.acHitInfo->toucher.dmgFlags & 0x3820))) { + ((this->collider2.base.acFlags & AC_HIT) && (this->collider2.info.acHitElem->toucher.dmgFlags & 0x3820))) { if ((this->unk_148 == 0) || (this->unk_149 == 1)) { CutsceneManager_Queue(this->actor.csId); this->actionFunc = func_80AE9090; diff --git a/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c b/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c index 8159637b69..7f91723439 100644 --- a/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c +++ b/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c @@ -111,15 +111,15 @@ s32 func_809393B0(Actor* thisx) { if (this->collider.base.acFlags & AC_HIT) { Actor* ac = this->collider.base.ac; - if (this->collider.info.acHitInfo->toucher.dmgFlags & 0x80000000) { + if (this->collider.info.acHitElem->toucher.dmgFlags & 0x80000000) { if ((ac != NULL) && (Math3D_Vec3fDistSq(&this->actor.world.pos, &ac->world.pos) < SQ(150.0f))) { return true; } - } else if (this->collider.info.acHitInfo->toucher.dmgFlags & 8) { + } else if (this->collider.info.acHitElem->toucher.dmgFlags & 8) { if ((ac != NULL) && (Math3D_Vec3fDistSq(&this->actor.world.pos, &ac->world.pos) < SQ(95.0f))) { return true; } - } else if (this->collider.info.acHitInfo->toucher.dmgFlags & 0x500) { + } else if (this->collider.info.acHitElem->toucher.dmgFlags & 0x500) { return true; } } @@ -133,11 +133,11 @@ s32 func_80939470(Actor* thisx) { Actor* temp_v0 = this->collider.base.ac; if (temp_v0 != NULL) { - if (this->collider.info.acHitInfo->toucher.dmgFlags & 0x80000000) { + if (this->collider.info.acHitElem->toucher.dmgFlags & 0x80000000) { if (Math3D_Vec3fDistSq(&this->actor.world.pos, &temp_v0->world.pos) < SQ(175.0f)) { return true; } - } else if ((this->collider.info.acHitInfo->toucher.dmgFlags & 8) && + } else if ((this->collider.info.acHitElem->toucher.dmgFlags & 8) && (Math3D_Vec3fDistSq(&this->actor.world.pos, &temp_v0->world.pos) < SQ(115.0f))) { return true; } diff --git a/src/overlays/actors/ovl_Obj_Chan/z_obj_chan.c b/src/overlays/actors/ovl_Obj_Chan/z_obj_chan.c index 522b245210..2839582709 100644 --- a/src/overlays/actors/ovl_Obj_Chan/z_obj_chan.c +++ b/src/overlays/actors/ovl_Obj_Chan/z_obj_chan.c @@ -260,7 +260,7 @@ void ObjChan_ChandelierAction(ObjChan* this, PlayState* play) { Math_Vec3f_ToVec3s(&pot->collider.dim.pos, &pot->actor.world.pos); } } - if ((this->collider.base.acFlags & AC_HIT) && (this->collider.info.acHitInfo->toucher.dmgFlags & 0x800)) { + if ((this->collider.base.acFlags & AC_HIT) && (this->collider.info.acHitElem->toucher.dmgFlags & 0x800)) { Flags_SetSwitch(play, OBJCHAN_GET_SWITCH_FLAG(thisx)); } if (Flags_GetSwitch(play, OBJCHAN_GET_SWITCH_FLAG(thisx))) { @@ -296,7 +296,7 @@ void ObjChan_PotAction(ObjChan* this, PlayState* play) { s32 phi_v1; potBreaks = false; - if ((this->collider.base.acFlags & AC_HIT) && (this->collider.info.acHitInfo->toucher.dmgFlags & 0x4004000)) { + if ((this->collider.base.acFlags & AC_HIT) && (this->collider.info.acHitElem->toucher.dmgFlags & 0x4004000)) { potBreaks = true; } if (this->stateFlags & OBJCHAN_STATE_ON_FIRE) { diff --git a/src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c b/src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c index 419aa371c2..5e3443af0c 100644 --- a/src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c +++ b/src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c @@ -380,12 +380,12 @@ void func_8098DC60(ObjComb* this, PlayState* play) { } if (this->unk_1B3) { - if (this->collider.elements->info.acHitInfo->toucher.dmgFlags & 0x0182C29C) { + if (this->collider.elements->info.acHitElem->toucher.dmgFlags & 0x0182C29C) { func_8098CEAC(this, play); func_8098DA74(this, play); Actor_Kill(&this->actor); } else { - s32 dmgFlags = this->collider.elements->info.acHitInfo->toucher.dmgFlags; + s32 dmgFlags = this->collider.elements->info.acHitElem->toucher.dmgFlags; if (dmgFlags & 0x13820) { this->unk_1A8 = 0xDAC; diff --git a/src/overlays/actors/ovl_Obj_Flowerpot/z_obj_flowerpot.c b/src/overlays/actors/ovl_Obj_Flowerpot/z_obj_flowerpot.c index 1fa986f5ec..027c41910e 100644 --- a/src/overlays/actors/ovl_Obj_Flowerpot/z_obj_flowerpot.c +++ b/src/overlays/actors/ovl_Obj_Flowerpot/z_obj_flowerpot.c @@ -466,7 +466,7 @@ void func_80A1C838(ObjFlowerpot* this, PlayState* play) { func_80A1B994(this, play); Actor_Kill(&this->actor); } else if ((this->collider.elements[0].info.bumperFlags & BUMP_HIT) && - (this->collider.elements[0].info.acHitInfo->toucher.dmgFlags & 0x058BFFBC)) { + (this->collider.elements[0].info.acHitElem->toucher.dmgFlags & 0x058BFFBC)) { if (!(this->unk_1EA & 2)) { func_80A1B914(this, play); func_80A1C0FC(this, play); diff --git a/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c b/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c index 1a2abd0d2f..43ded19157 100644 --- a/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c +++ b/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c @@ -212,14 +212,14 @@ void ObjHamishi_Update(Actor* thisx, PlayState* play) { } if (sp24) { - if (this->collider.info.acHitInfo->toucher.dmgFlags & 0x80000500) { - if (this->collider.info.acHitInfo->toucher.dmgFlags & 0x400) { + if (this->collider.info.acHitElem->toucher.dmgFlags & 0x80000500) { + if (this->collider.info.acHitElem->toucher.dmgFlags & 0x400) { this->unk_1A0 = 26; } else { this->unk_1A0 = 11; } - if (this->collider.info.acHitInfo->toucher.dmgFlags & 0x80000000) { + if (this->collider.info.acHitElem->toucher.dmgFlags & 0x80000000) { this->unk_19E = 2; } else { this->unk_19E++; diff --git a/src/overlays/actors/ovl_Obj_Hugebombiwa/z_obj_hugebombiwa.c b/src/overlays/actors/ovl_Obj_Hugebombiwa/z_obj_hugebombiwa.c index ebeffcdc2f..9ae9dfb977 100644 --- a/src/overlays/actors/ovl_Obj_Hugebombiwa/z_obj_hugebombiwa.c +++ b/src/overlays/actors/ovl_Obj_Hugebombiwa/z_obj_hugebombiwa.c @@ -311,7 +311,7 @@ s32 func_80A54A0C(ObjHugebombiwa* this) { s32 params; Vec3f sp20; - if ((this->collider.base.acFlags & AC_HIT) && (this->collider.info.acHitInfo->toucher.dmgFlags & 0x80000000)) { + if ((this->collider.base.acFlags & AC_HIT) && (this->collider.info.acHitElem->toucher.dmgFlags & 0x80000000)) { ac = this->collider.base.ac; params = ENHUGEBOMBIWA_GET_100(&this->actor); diff --git a/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c b/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c index d8b46a7de2..1dec78294b 100644 --- a/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c +++ b/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c @@ -191,13 +191,13 @@ void func_80931A38(ObjIcePoly* this, PlayState* play) { if (((this->colliders2[0].base.acFlags & AC_HIT) && ((this->colliders2[0].base.ac == NULL) || ((this->colliders2[0].base.ac->id != ACTOR_OBJ_AQUA) && - (this->colliders2[0].info.acHitInfo->toucher.dmgFlags == 0x800)) || + (this->colliders2[0].info.acHitElem->toucher.dmgFlags == 0x800)) || ((this->colliders2[0].base.ac->id == ACTOR_OBJ_AQUA) && (this->colliders2[0].base.ac->params == AQUA_TYPE_HOT)))) || ((this->colliders2[1].base.acFlags & AC_HIT) && ((this->colliders2[1].base.ac == NULL) || ((this->colliders2[1].base.ac->id != ACTOR_OBJ_AQUA) && - (this->colliders2[1].info.acHitInfo->toucher.dmgFlags == 0x800)) || + (this->colliders2[1].info.acHitElem->toucher.dmgFlags == 0x800)) || ((this->colliders2[1].base.ac->id == ACTOR_OBJ_AQUA) && (this->colliders2[1].base.ac->params == AQUA_TYPE_HOT))))) { CutsceneManager_Queue(this->actor.csId); diff --git a/src/overlays/actors/ovl_Obj_Iceblock/z_obj_iceblock.c b/src/overlays/actors/ovl_Obj_Iceblock/z_obj_iceblock.c index 4d67d953b4..19ff562597 100644 --- a/src/overlays/actors/ovl_Obj_Iceblock/z_obj_iceblock.c +++ b/src/overlays/actors/ovl_Obj_Iceblock/z_obj_iceblock.c @@ -1448,7 +1448,7 @@ void ObjIceblock_Update(Actor* thisx, PlayState* play) { } } - if (((this->collider.base.acFlags & AC_HIT) && (this->collider.info.acHitInfo->toucher.dmgFlags & 0x800)) || + if (((this->collider.base.acFlags & AC_HIT) && (this->collider.info.acHitElem->toucher.dmgFlags & 0x800)) || (this->meltTimer == 0)) { this->meltTimer = -1; this->unk_2B0 = 4; diff --git a/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.c b/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.c index 132dc81923..ae5876511c 100644 --- a/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.c +++ b/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.c @@ -185,17 +185,17 @@ s32 ObjKibako2_ShouldBreak(ObjKibako2* this) { Actor* ac = this->collider.base.ac; this->collider.base.acFlags = acFlags & ~AC_HIT; if (ac != NULL) { - if (this->collider.info.acHitInfo->toucher.dmgFlags & (1 << 31)) { + if (this->collider.info.acHitElem->toucher.dmgFlags & (1 << 31)) { // Powder Keg if (Math3D_Vec3fDistSq(&this->dyna.actor.world.pos, &ac->world.pos) < SQ(160.0f)) { shouldBreak = true; } - } else if (this->collider.info.acHitInfo->toucher.dmgFlags & (1 << 3)) { + } else if (this->collider.info.acHitElem->toucher.dmgFlags & (1 << 3)) { // Explosives if (Math3D_Vec3fDistSq(&this->dyna.actor.world.pos, &ac->world.pos) < SQ(100.0f)) { shouldBreak = true; } - } else if (this->collider.info.acHitInfo->toucher.dmgFlags & (1 << 8 | 1 << 10)) { + } else if (this->collider.info.acHitElem->toucher.dmgFlags & (1 << 8 | 1 << 10)) { // Goron Punch/Pound shouldBreak = true; } diff --git a/src/overlays/actors/ovl_Obj_Lightblock/z_obj_lightblock.c b/src/overlays/actors/ovl_Obj_Lightblock/z_obj_lightblock.c index 5bfc80110b..6f7da0e438 100644 --- a/src/overlays/actors/ovl_Obj_Lightblock/z_obj_lightblock.c +++ b/src/overlays/actors/ovl_Obj_Lightblock/z_obj_lightblock.c @@ -123,7 +123,7 @@ void ObjLightblock_Wait(ObjLightblock* this, PlayState* play) { if (this->collider.base.acFlags & AC_HIT) { this->collider.base.acFlags &= ~AC_HIT; // light arrows - if (this->collider.info.acHitInfo->toucher.dmgFlags & (1 << 13)) { + if (this->collider.info.acHitElem->toucher.dmgFlags & (1 << 13)) { this->collisionCounter = 8; } // light ray diff --git a/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c b/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c index f364d65367..c0e31cbc6f 100644 --- a/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c +++ b/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c @@ -328,7 +328,7 @@ void ObjLightswitch_Update(Actor* thisx, PlayState* play) { if (this->collider.base.acFlags & AC_HIT) { // dmgFlags enum doesn't exist yet, 0x2000 is light arrows - if ((this->collider.elements->info.acHitInfo->toucher.dmgFlags & 0x2000) != 0) { + if ((this->collider.elements->info.acHitElem->toucher.dmgFlags & 0x2000) != 0) { this->hitState = 10; } else if (LIGHTSWITCH_GET_TYPE(&this->actor) == LIGHTSWITCH_TYPE_FLIP) { if (this->hitState == 0) { diff --git a/src/overlays/actors/ovl_Obj_Mine/z_obj_mine.c b/src/overlays/actors/ovl_Obj_Mine/z_obj_mine.c index ec4100d913..40e3a5aae6 100644 --- a/src/overlays/actors/ovl_Obj_Mine/z_obj_mine.c +++ b/src/overlays/actors/ovl_Obj_Mine/z_obj_mine.c @@ -182,7 +182,7 @@ void ObjMine_Air_CheckAC(ObjMine* this, s16* hitAngle, s16* torqueAngle) { yawToAttack = Math_Vec3f_Yaw(&attackActor->world.pos, ¢erPos); // dmgFlag check is (DMG_DEKU_BUBBLE | DMG_FIRE_ARROW | DMG_ICE_ARROW | DMG_FIRE_ARROW | DMG_NORMAL_ARROW) - if (this->collider.elements[0].info.acHitInfo->toucher.dmgFlags & 0x13820) { + if (this->collider.elements[0].info.acHitElem->toucher.dmgFlags & 0x13820) { *hitAngle = attackActor->shape.rot.y; *torqueAngle = attackActor->shape.rot.y - yawToAttack; } else { @@ -199,7 +199,7 @@ void ObjMine_Water_CheckAC(ObjMine* this, Vec3f* knockbackDir) { Actor* attackActor = this->collider.base.ac; // dmgFlag check is (DMG_DEKU_BUBBLE | DMG_LIGHT_ARROW | DMG_ICE_ARROW | DMG_FIRE_ARROW | DMG_NORMAL_ARROW) - if (this->collider.elements[0].info.acHitInfo->toucher.dmgFlags & 0x13820) { + if (this->collider.elements[0].info.acHitElem->toucher.dmgFlags & 0x13820) { Matrix_Push(); Matrix_RotateYS(attackActor->shape.rot.y, MTXMODE_NEW); Matrix_RotateXS(attackActor->shape.rot.x, MTXMODE_APPLY); diff --git a/src/overlays/actors/ovl_Obj_Snowball/z_obj_snowball.c b/src/overlays/actors/ovl_Obj_Snowball/z_obj_snowball.c index 8eb52d4035..2f76fb73cd 100644 --- a/src/overlays/actors/ovl_Obj_Snowball/z_obj_snowball.c +++ b/src/overlays/actors/ovl_Obj_Snowball/z_obj_snowball.c @@ -533,17 +533,17 @@ void func_80B04350(ObjSnowball* this, PlayState* play) { } if (flag && (this->unk_211 == 0) && - (this->collider.elements->info.acHitInfo->toucher.dmgFlags & + (this->collider.elements->info.acHitElem->toucher.dmgFlags & (0x80000000 | 0x4000 | 0x800 | 0x400 | 0x100 | 0x8))) { this->actor.flags |= ACTOR_FLAG_10; if (this->actor.home.rot.y == 1) { this->actor.flags &= ~(ACTOR_FLAG_TARGETABLE | ACTOR_FLAG_FRIENDLY); } - if (this->collider.elements->info.acHitInfo->toucher.dmgFlags & 0x4000) { + if (this->collider.elements->info.acHitElem->toucher.dmgFlags & 0x4000) { this->unk_20A = 1; } else { - if (this->collider.elements->info.acHitInfo->toucher.dmgFlags & 0x800) { + if (this->collider.elements->info.acHitElem->toucher.dmgFlags & 0x800) { this->unk_210 = 1; } this->unk_20A = 0; @@ -563,10 +563,10 @@ void func_80B04350(ObjSnowball* this, PlayState* play) { } if (flag && - !(this->collider.elements->info.acHitInfo->toucher.dmgFlags & (0x10000 | 0x2000 | 0x1000 | 0x800 | 0x20))) { + !(this->collider.elements->info.acHitElem->toucher.dmgFlags & (0x10000 | 0x2000 | 0x1000 | 0x800 | 0x20))) { if (this->unk_209 <= 0) { func_80B02EE4(this, play); - if (this->collider.elements->info.acHitInfo->toucher.dmgFlags & 0x1000000) { + if (this->collider.elements->info.acHitElem->toucher.dmgFlags & 0x1000000) { this->unk_209 = 25; } else { this->unk_209 = 10; diff --git a/src/overlays/actors/ovl_Obj_Snowball2/z_obj_snowball2.c b/src/overlays/actors/ovl_Obj_Snowball2/z_obj_snowball2.c index 3af81b6088..060439f13c 100644 --- a/src/overlays/actors/ovl_Obj_Snowball2/z_obj_snowball2.c +++ b/src/overlays/actors/ovl_Obj_Snowball2/z_obj_snowball2.c @@ -361,14 +361,14 @@ void func_80B39C9C(ObjSnowball2* this, PlayState* play) { } else if ((this->actor.bgCheckFlags & BGCHECKFLAG_WATER) && ((this->actor.shape.yOffset * this->actor.scale.y) < this->actor.depthInWater)) { func_80B3A498(this); - } else if (sp38 && (this->collider.elements->info.acHitInfo->toucher.dmgFlags & 0x0583FFBC)) { + } else if (sp38 && (this->collider.elements->info.acHitElem->toucher.dmgFlags & 0x0583FFBC)) { func_80B38E88(this, play); func_80B39108(this, play); func_80B39B5C(this, play); Actor_Kill(&this->actor); return; } else { - if (sp38 && (this->collider.elements->info.acHitInfo->toucher.dmgFlags & 2)) { + if (sp38 && (this->collider.elements->info.acHitElem->toucher.dmgFlags & 2)) { func_80B39908(this, play); } diff --git a/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c b/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c index a771cb015e..57eac3e34c 100644 --- a/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c +++ b/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c @@ -193,8 +193,8 @@ void ObjSyokudai_Update(Actor* thisx, PlayState* play2) { } } if (this->flameCollider.base.acFlags & AC_HIT) { - flameColliderHurtboxDmgFlags = this->flameCollider.info.acHitInfo->toucher.dmgFlags; - if (this->flameCollider.info.acHitInfo->toucher.dmgFlags & 0x820) { + flameColliderHurtboxDmgFlags = this->flameCollider.info.acHitElem->toucher.dmgFlags; + if (this->flameCollider.info.acHitElem->toucher.dmgFlags & 0x820) { interaction = OBJ_SYOKUDAI_INTERACTION_ARROW_FA; } } else if (player->heldItemAction == PLAYER_IA_DEKU_STICK) { diff --git a/src/overlays/actors/ovl_Obj_Taru/z_obj_taru.c b/src/overlays/actors/ovl_Obj_Taru/z_obj_taru.c index 436b06a5dd..515f50b47a 100644 --- a/src/overlays/actors/ovl_Obj_Taru/z_obj_taru.c +++ b/src/overlays/actors/ovl_Obj_Taru/z_obj_taru.c @@ -248,16 +248,16 @@ s32 func_80B9BF7C(ObjTaru* this) { this->collider.base.acFlags &= ~AC_HIT; if (ac != NULL) { - if (this->collider.info.acHitInfo->toucher.dmgFlags & 0x80000000) { + if (this->collider.info.acHitElem->toucher.dmgFlags & 0x80000000) { phi_a3 = false; if (Math3D_Vec3fDistSq(&this->dyna.actor.world.pos, &ac->world.pos) < SQ(160.0f)) { phi_a3 = true; } - } else if (this->collider.info.acHitInfo->toucher.dmgFlags & 8) { + } else if (this->collider.info.acHitElem->toucher.dmgFlags & 8) { if (Math3D_Vec3fDistSq(&this->dyna.actor.world.pos, &ac->world.pos) < SQ(100.0f)) { phi_a3 = true; } - } else if (this->collider.info.acHitInfo->toucher.dmgFlags & 0x500) { + } else if (this->collider.info.acHitElem->toucher.dmgFlags & 0x500) { phi_a3 = true; } } diff --git a/src/overlays/actors/ovl_Obj_Toge/z_obj_toge.c b/src/overlays/actors/ovl_Obj_Toge/z_obj_toge.c index 2a16f5cfe2..f7b511b70d 100644 --- a/src/overlays/actors/ovl_Obj_Toge/z_obj_toge.c +++ b/src/overlays/actors/ovl_Obj_Toge/z_obj_toge.c @@ -278,7 +278,7 @@ void ObjToge_Update(Actor* thisx, PlayState* play) { ColliderCylinder* collider = &this->collider; if (this->collider.base.acFlags & AC_HIT) { - if (this->collider.info.acHitInfo->toucher.dmgFlags & 0x1000) { + if (this->collider.info.acHitElem->toucher.dmgFlags & 0x1000) { func_809A43A8(this, play); Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 250, COLORFILTER_BUFFLAG_OPA, 250); } diff --git a/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c b/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c index 6af4b9f5d7..9f809e4786 100644 --- a/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c +++ b/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c @@ -474,7 +474,7 @@ void func_809289E4(ObjTsubo* this, PlayState* play) { Player_PlaySfx((Player*)&this->actor, NA_SE_PL_PULL_UP_POT); func_80928D6C(this); } else if ((this->unk_19B != 0) || - (acHit && (this->cylinderCollider.info.acHitInfo->toucher.dmgFlags & 0x058BFFBC))) { + (acHit && (this->cylinderCollider.info.acHitElem->toucher.dmgFlags & 0x058BFFBC))) { typeData = &sPotTypeData[type]; this->unk_19B = 0; if ((this->actor.bgCheckFlags & BGCHECKFLAG_WATER) && (this->actor.depthInWater > 15.0f)) { diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 991626629b..9622b93661 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -5796,8 +5796,8 @@ s32 func_80834600(Player* this, PlayState* play) { } } else if ((this->shieldQuad.base.acFlags & AC_BOUNCED) || (this->shieldCylinder.base.acFlags & AC_BOUNCED) || ((this->invincibilityTimer < 0) && (this->cylinder.base.acFlags & AC_HIT) && - (this->cylinder.info.acHitInfo != NULL) && - (this->cylinder.info.acHitInfo->toucher.dmgFlags != DMG_UNBLOCKABLE))) { + (this->cylinder.info.acHitElem != NULL) && + (this->cylinder.info.acHitElem->toucher.dmgFlags != DMG_UNBLOCKABLE))) { PlayerAnimationHeader* var_a2; s32 sp64; diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index a8c98fd37f..0bba67c580 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -1314,16 +1314,16 @@ 0x800E06BC:("Collider_InitTouch",), 0x800E06E4:("Collider_DestroyTouch",), 0x800E06F8:("Collider_SetTouch",), - 0x800E0720:("Collider_ResetATInfoUnk",), + 0x800E0720:("Collider_ResetATElementUnk",), 0x800E0730:("Collider_InitBump",), 0x800E0760:("Collider_DestroyBump",), 0x800E0774:("Collider_SetBump",), - 0x800E079C:("Collider_InitInfo",), - 0x800E081C:("Collider_DestroyInfo",), - 0x800E085C:("Collider_SetInfo",), - 0x800E08D4:("Collider_ResetATInfo",), - 0x800E090C:("Collider_ResetACInfo",), - 0x800E0944:("Collider_ResetOCInfo",), + 0x800E079C:("Collider_InitElement",), + 0x800E081C:("Collider_DestroyElement",), + 0x800E085C:("Collider_SetElement",), + 0x800E08D4:("Collider_ResetATElement",), + 0x800E090C:("Collider_ResetACElement",), + 0x800E0944:("Collider_ResetOCElement",), 0x800E095C:("Collider_InitJntSphElementDim",), 0x800E09A4:("Collider_DestroyJntSphElementDim",), 0x800E09B8:("Collider_SetJntSphElementDim",), diff --git a/tools/sizes/code_functions.csv b/tools/sizes/code_functions.csv index 0bbb7ee4c6..b91880d5dc 100644 --- a/tools/sizes/code_functions.csv +++ b/tools/sizes/code_functions.csv @@ -828,16 +828,16 @@ asm/non_matchings/code/z_collision_check/Collider_ResetOCBase.s,Collider_ResetOC asm/non_matchings/code/z_collision_check/Collider_InitTouch.s,Collider_InitTouch,0x800E06BC,0xA asm/non_matchings/code/z_collision_check/Collider_DestroyTouch.s,Collider_DestroyTouch,0x800E06E4,0x5 asm/non_matchings/code/z_collision_check/Collider_SetTouch.s,Collider_SetTouch,0x800E06F8,0xA -asm/non_matchings/code/z_collision_check/Collider_ResetATInfoUnk.s,Collider_ResetATInfoUnk,0x800E0720,0x4 +asm/non_matchings/code/z_collision_check/Collider_ResetATElementUnk.s,Collider_ResetATElementUnk,0x800E0720,0x4 asm/non_matchings/code/z_collision_check/Collider_InitBump.s,Collider_InitBump,0x800E0730,0xC asm/non_matchings/code/z_collision_check/Collider_DestroyBump.s,Collider_DestroyBump,0x800E0760,0x5 asm/non_matchings/code/z_collision_check/Collider_SetBump.s,Collider_SetBump,0x800E0774,0xA -asm/non_matchings/code/z_collision_check/Collider_InitInfo.s,Collider_InitInfo,0x800E079C,0x20 -asm/non_matchings/code/z_collision_check/Collider_DestroyInfo.s,Collider_DestroyInfo,0x800E081C,0x10 -asm/non_matchings/code/z_collision_check/Collider_SetInfo.s,Collider_SetInfo,0x800E085C,0x1E -asm/non_matchings/code/z_collision_check/Collider_ResetATInfo.s,Collider_ResetATInfo,0x800E08D4,0xE -asm/non_matchings/code/z_collision_check/Collider_ResetACInfo.s,Collider_ResetACInfo,0x800E090C,0xE -asm/non_matchings/code/z_collision_check/Collider_ResetOCInfo.s,Collider_ResetOCInfo,0x800E0944,0x6 +asm/non_matchings/code/z_collision_check/Collider_InitElement.s,Collider_InitElement,0x800E079C,0x20 +asm/non_matchings/code/z_collision_check/Collider_DestroyElement.s,Collider_DestroyElement,0x800E081C,0x10 +asm/non_matchings/code/z_collision_check/Collider_SetElement.s,Collider_SetElement,0x800E085C,0x1E +asm/non_matchings/code/z_collision_check/Collider_ResetATElement.s,Collider_ResetATElement,0x800E08D4,0xE +asm/non_matchings/code/z_collision_check/Collider_ResetACElement.s,Collider_ResetACElement,0x800E090C,0xE +asm/non_matchings/code/z_collision_check/Collider_ResetOCElement.s,Collider_ResetOCElement,0x800E0944,0x6 asm/non_matchings/code/z_collision_check/Collider_InitJntSphElementDim.s,Collider_InitJntSphElementDim,0x800E095C,0x12 asm/non_matchings/code/z_collision_check/Collider_DestroyJntSphElementDim.s,Collider_DestroyJntSphElementDim,0x800E09A4,0x5 asm/non_matchings/code/z_collision_check/Collider_SetJntSphElementDim.s,Collider_SetJntSphElementDim,0x800E09B8,0x16