From d37be75c49f80b3b5674012e5036b5b21453cbe5 Mon Sep 17 00:00:00 2001 From: octorock <79596758+octorock@users.noreply.github.com> Date: Sun, 27 Feb 2022 12:50:05 +0100 Subject: [PATCH] Use hitbox header --- include/hitbox.h | 94 ++++++++++++++++++++-------- src/enemy/armos.c | 3 +- src/enemy/eyegore.c | 2 +- src/enemy/flyingSkull.c | 7 +-- src/enemy/madderpillar.c | 6 +- src/enemy/mazaalBracelet.c | 12 ++-- src/enemy/mazaalHand.c | 9 +-- src/enemy/rupeeLike.c | 4 +- src/enemy/spinyChuchu.c | 10 ++- src/enemy/vaatiArm.c | 3 +- src/npc/bigGoron.c | 4 +- src/npc/npc4E.c | 4 +- src/npc/npc5.c | 5 +- src/npc/picolyteBottle.c | 5 +- src/object/bigIceBlock.c | 2 +- src/object/bossDoor.c | 3 +- src/object/crenelBeanSprout.c | 3 +- src/object/fairy.c | 3 +- src/object/itemOnGround.c | 4 +- src/object/lavaPlatform.c | 2 +- src/object/lightableSwitch.c | 6 +- src/object/lockedDoor.c | 5 +- src/object/metalDoor.c | 5 +- src/object/minecart.c | 4 +- src/object/objectA.c | 5 +- src/object/objectA8.c | 2 +- src/object/objectOnPillar.c | 2 +- src/object/pot.c | 7 +-- src/object/pressurePlate.c | 7 +-- src/object/pullableLever.c | 7 +-- src/object/pullableMushroom.c | 2 +- src/object/pushableGrave.c | 4 +- src/object/pushableStatue.c | 3 +- src/object/rupee.c | 4 +- src/object/smallIceBlock.c | 2 +- src/object/treeThorns.c | 5 +- src/object/warpPoint.c | 5 +- src/player.c | 2 - src/projectile/guardLineOfSight.c | 2 +- src/projectile/gyorgTail.c | 10 ++- src/projectile/mandiblesProjectile.c | 7 +-- src/projectile/spiderWeb.c | 6 +- 42 files changed, 148 insertions(+), 139 deletions(-) diff --git a/include/hitbox.h b/include/hitbox.h index c9f7ef46..0ce7bd55 100644 --- a/include/hitbox.h +++ b/include/hitbox.h @@ -31,45 +31,88 @@ extern const Hitbox gHitbox_27; extern const Hitbox gHitbox_28; extern const Hitbox gHitbox_29; extern const Hitbox gHitbox_30; +extern const Hitbox gHitbox_32; +extern const Hitbox gUnk_080FD190; +extern const Hitbox gUnk_080FD1A8; +extern const Hitbox gUnk_080FD1A8; +extern const Hitbox gUnk_080FD1A8; +extern const Hitbox gUnk_080FD1A8; extern const Hitbox gUnk_080FD1B4; -extern const Hitbox gUnk_080FD330; -extern const Hitbox gUnk_080FD258; -extern const Hitbox gUnk_080FD490; -extern const Hitbox gUnk_080FD488; -extern const Hitbox gUnk_080FD538; -extern const Hitbox gUnk_080FD530; -extern const Hitbox gUnk_080FD544; -extern const Hitbox gUnk_080FD588; -extern const Hitbox gUnk_080FD37C; +extern const Hitbox gUnk_080FD1D4; extern const Hitbox gUnk_080FD1DC; extern const Hitbox gUnk_080FD1E4; +extern const Hitbox gUnk_080FD1E4; +extern const Hitbox gUnk_080FD1EC; +extern const Hitbox gUnk_080FD1F4; +extern const Hitbox gUnk_080FD1F4; extern const Hitbox gUnk_080FD1FC; extern const Hitbox gUnk_080FD204; extern const Hitbox gUnk_080FD20C; extern const Hitbox gUnk_080FD214; extern const Hitbox gUnk_080FD21C; +extern const Hitbox gUnk_080FD224; extern const Hitbox gUnk_080FD22C; extern const Hitbox gUnk_080FD238; extern const Hitbox gUnk_080FD240; extern const Hitbox gUnk_080FD248; -extern const Hitbox gUnk_080FD1EC; +extern const Hitbox gUnk_080FD258; +extern const Hitbox gUnk_080FD260; +extern const Hitbox gUnk_080FD270; +extern const Hitbox gUnk_080FD278; +extern const Hitbox gUnk_080FD280; extern const Hitbox gUnk_080FD290; extern const Hitbox gUnk_080FD298; extern const Hitbox gUnk_080FD2A0; +extern const Hitbox gUnk_080FD2A8; +extern const Hitbox gUnk_080FD2D0; extern const Hitbox gUnk_080FD2D8; extern const Hitbox gUnk_080FD2E0; -extern const Hitbox gUnk_080FD2D0; +extern const Hitbox gUnk_080FD2F0; +extern const Hitbox gUnk_080FD308; +extern const Hitbox gUnk_080FD310; +extern const Hitbox gUnk_080FD320; +extern const Hitbox gUnk_080FD330; +extern const Hitbox gUnk_080FD340; +extern const Hitbox gUnk_080FD340; +extern const Hitbox gUnk_080FD34C; extern const Hitbox gUnk_080FD354; +extern const Hitbox gUnk_080FD35C; +extern const Hitbox gUnk_080FD35C; +extern const Hitbox gUnk_080FD364; +extern const Hitbox gUnk_080FD36C; +extern const Hitbox gUnk_080FD36C; +extern const Hitbox gUnk_080FD374; +extern const Hitbox gUnk_080FD37C; +extern const Hitbox gUnk_080FD384; extern const Hitbox gUnk_080FD38C; +extern const Hitbox gUnk_080FD394; +extern const Hitbox gUnk_080FD39C; +extern const Hitbox gUnk_080FD3A4; +extern const Hitbox gUnk_080FD3AC; +extern const Hitbox gUnk_080FD3B4; +extern const Hitbox gUnk_080FD3BC; +extern const Hitbox gUnk_080FD3C4; extern const Hitbox gUnk_080FD3CC; extern const Hitbox gUnk_080FD3DC; extern const Hitbox gUnk_080FD3E4; extern const Hitbox gUnk_080FD3EC; -extern const Hitbox gUnk_080FD580; -extern const Hitbox gUnk_080FD35C; -extern const Hitbox gUnk_080FD36C; -extern const Hitbox gUnk_080FD384; -extern const Hitbox gUnk_080FD558; +extern const Hitbox gUnk_080FD3F4; +extern const Hitbox gUnk_080FD3FC; +extern const Hitbox gUnk_080FD408; +extern const Hitbox gUnk_080FD41C; +extern const Hitbox gUnk_080FD424; +extern const Hitbox gUnk_080FD42C; +extern const Hitbox gUnk_080FD434; +extern const Hitbox gUnk_080FD43C; +extern const Hitbox gUnk_080FD450; +extern const Hitbox gUnk_080FD488; +extern const Hitbox gUnk_080FD490; +extern const Hitbox gUnk_080FD4B8; +extern const Hitbox gUnk_080FD4C0; +extern const Hitbox gUnk_080FD4C8; +extern const Hitbox gUnk_080FD4D0; +extern const Hitbox gUnk_080FD4D8; +extern const Hitbox gUnk_080FD4E0; extern const Hitbox gUnk_080FD4E8; extern const Hitbox gUnk_080FD4F0; extern const Hitbox gUnk_080FD4F8; @@ -78,15 +121,16 @@ extern const Hitbox gUnk_080FD508; extern const Hitbox gUnk_080FD510; extern const Hitbox gUnk_080FD518; extern const Hitbox gUnk_080FD520; +extern const Hitbox gUnk_080FD530; +extern const Hitbox gUnk_080FD538; +extern const Hitbox gUnk_080FD538; +extern const Hitbox gUnk_080FD544; +extern const Hitbox gUnk_080FD558; extern const Hitbox gUnk_080FD560; -extern const Hitbox gUnk_080FD4B8; -extern const Hitbox gUnk_080FD4C0; -extern const Hitbox gUnk_080FD4C8; -extern const Hitbox gUnk_080FD4D0; -extern const Hitbox gUnk_080FD4D8; -extern const Hitbox gUnk_080FD4E0; -extern const Hitbox gUnk_080FD3F4; -extern const Hitbox gUnk_080FD3FC; -extern const Hitbox gUnk_080FD43C; +extern const Hitbox gUnk_080FD570; +extern const Hitbox gUnk_080FD578; +extern const Hitbox gUnk_080FD580; +extern const Hitbox gUnk_080FD588; + extern const Hitbox gPlayerHitbox; #endif diff --git a/src/enemy/armos.c b/src/enemy/armos.c index df7a0705..d07bc9f0 100644 --- a/src/enemy/armos.c +++ b/src/enemy/armos.c @@ -9,6 +9,7 @@ #include "global.h" #include "enemy.h" #include "functions.h" +#include "hitbox.h" typedef struct { /*0x00*/ Entity base; @@ -23,8 +24,6 @@ typedef struct { /*0x84*/ u32 unk_84; } ArmosEntity; -extern Hitbox gUnk_080FD2F0; -extern Hitbox gHitbox_15; extern Entity* gUnk_020000B0; extern Entity gUnk_02027EB4; extern Entity gUnk_0200D654; diff --git a/src/enemy/eyegore.c b/src/enemy/eyegore.c index 1f8131be..26b22f65 100644 --- a/src/enemy/eyegore.c +++ b/src/enemy/eyegore.c @@ -11,6 +11,7 @@ #include "functions.h" #include "fade.h" #include "object.h" +#include "hitbox.h" typedef struct { /*0x00*/ Entity base; @@ -35,7 +36,6 @@ typedef struct { extern Entity* sub_08017A90(Entity*, Entity*); extern Entity* gUnk_020000B0; -extern Hitbox gUnk_080FD308; extern const u8 gUnk_080B3E80[]; void sub_08031344(EyegoreEntity*); diff --git a/src/enemy/flyingSkull.c b/src/enemy/flyingSkull.c index 0a76c266..261efa49 100644 --- a/src/enemy/flyingSkull.c +++ b/src/enemy/flyingSkull.c @@ -2,6 +2,7 @@ #include "entity.h" #include "enemy.h" #include "functions.h" +#include "hitbox.h" typedef struct { Entity base; @@ -11,8 +12,6 @@ typedef struct { } FlyingSkullEntity; extern void (*const gUnk_080012C8[])(Entity*); -extern Hitbox gUnk_080FD340; // TODO should be const -extern Hitbox gUnk_080FD34C; void (*const FlyingSkull_Functions[])(Entity*); void (*const gUnk_080CFB9C[])(FlyingSkullEntity*); @@ -161,7 +160,7 @@ void sub_08039EE4(FlyingSkullEntity* this) { super->subAction = 1; COLLISION_OFF(super); super->collisions = 0; - super->hitbox = &gUnk_080FD340; + super->hitbox = (Hitbox*)&gUnk_080FD340; gPlayerEntity.animationState; this->unk_0x76 = gPlayerEntity.animationState; SetTile(this->unk_0x74, COORD_TO_TILE(super), super->collisionLayer); @@ -196,7 +195,7 @@ void sub_08039FAC(FlyingSkullEntity* this) { super->spriteOffsetX = 0; super->hitType = 0xa0; super->flags2 = 0xf; - super->hitbox = &gUnk_080FD34C; + super->hitbox = (Hitbox*)&gUnk_080FD34C; SetTile(this->unk_0x74, COORD_TO_TILE(super), super->collisionLayer); } } diff --git a/src/enemy/madderpillar.c b/src/enemy/madderpillar.c index 37708cc4..cdad77e6 100644 --- a/src/enemy/madderpillar.c +++ b/src/enemy/madderpillar.c @@ -7,9 +7,7 @@ #include "enemy.h" #include "functions.h" - -extern Hitbox gUnk_080FD298; -extern Hitbox gUnk_080FD2A0; +#include "hitbox.h" void sub_08029E0C(Entity*); void sub_08029EEC(Entity*); @@ -283,7 +281,7 @@ void sub_08029D14(Entity* this) { this->action = 4; this->actionDelay = 0x78; this->hitType = 0x6c; - this->hitbox = &gUnk_080FD298; + this->hitbox = (Hitbox*)&gUnk_080FD298; EnqueueSFX(SFX_6B); } } diff --git a/src/enemy/mazaalBracelet.c b/src/enemy/mazaalBracelet.c index 8f9a317d..62ca2401 100644 --- a/src/enemy/mazaalBracelet.c +++ b/src/enemy/mazaalBracelet.c @@ -8,6 +8,7 @@ #include "enemy.h" #include "object.h" #include "functions.h" +#include "hitbox.h" void sub_0803B538(Entity*); u32 sub_0803B4E4(Entity*); @@ -92,11 +93,6 @@ void sub_0803B978(Entity*); void sub_0803BA6C(Entity*); void sub_0803BA80(Entity*); -// these are not with the rest of this files constant data -extern Hitbox gUnk_080FD35C; -extern Hitbox gUnk_080FD364; -extern Hitbox gUnk_080FD36C; -extern Hitbox gUnk_080FD374; void (*const MazaalBracelet_Functions[])(Entity*) = { MazaalBracelet_OnTick, MazaalBracelet_OnCollision, GenericKnockback, GenericDeath, @@ -920,9 +916,9 @@ void sub_0803B100(Entity* this) { this->action = 0x29; this->zVelocity = Q_16_16(1.25); if (this->type == 0) { - this->hitbox = &gUnk_080FD364; + this->hitbox = (Hitbox*)&gUnk_080FD364; } else { - this->hitbox = &gUnk_080FD374; + this->hitbox = (Hitbox*)&gUnk_080FD374; } temp = *(Entity**)&this->field_0x74; temp->action = 3; @@ -1074,7 +1070,7 @@ void sub_0803B3F4(Entity* this) { if (this->type == 0) { this->hitbox = (Hitbox*)&gUnk_080FD35C; } else { - this->hitbox = &gUnk_080FD36C; + this->hitbox = (Hitbox*)&gUnk_080FD36C; } temp = this->parent; value = (this->type == 0) ? 1 : 2; diff --git a/src/enemy/mazaalHand.c b/src/enemy/mazaalHand.c index b8f0eaf3..df14d4bd 100644 --- a/src/enemy/mazaalHand.c +++ b/src/enemy/mazaalHand.c @@ -6,17 +6,10 @@ */ #include "entity.h" +#include "hitbox.h" void sub_08035194(Entity*); -extern const Hitbox gUnk_080FD394; -extern const Hitbox gUnk_080FD39C; -extern const Hitbox gUnk_080FD3A4; -extern const Hitbox gUnk_080FD3AC; -extern const Hitbox gUnk_080FD3B4; -extern const Hitbox gUnk_080FD3BC; -extern const Hitbox gUnk_080FD3C4; - const Hitbox* const gUnk_080CEF34[] = { &gUnk_080FD394, &gUnk_080FD394, &gUnk_080FD394, &gUnk_080FD39C, &gUnk_080FD3A4, &gUnk_080FD3AC, &gUnk_080FD3AC, &gUnk_080FD3AC, &gUnk_080FD3AC, diff --git a/src/enemy/rupeeLike.c b/src/enemy/rupeeLike.c index 2ae953e7..1a12801c 100644 --- a/src/enemy/rupeeLike.c +++ b/src/enemy/rupeeLike.c @@ -13,6 +13,7 @@ #include "object.h" #include "functions.h" #include "save.h" +#include "hitbox.h" extern void sub_080293DC(Entity*); extern void sub_080296D8(Entity*); @@ -28,7 +29,6 @@ extern void (*const gUnk_080CCC3C[])(Entity*); extern const u8 gUnk_080CCC34[]; extern const s8 gUnk_080CCC44[]; extern const u8 gUnk_080CCC47[]; -extern Hitbox gUnk_080FD260; void RupeeLike(Entity* this) { u32 uVar1; @@ -265,7 +265,7 @@ void sub_08029770(Entity* this) { temp = this->field_0x82.HALF.LO; this->palette.b.b0 = temp; this->hitType = 0x8d; - this->hitbox = &gUnk_080FD260; + this->hitbox = (Hitbox*)&gUnk_080FD260; InitializeAnimation(this, 2); this->child->spriteSettings.draw = TRUE; InitializeAnimation(this->child, 6); diff --git a/src/enemy/spinyChuchu.c b/src/enemy/spinyChuchu.c index 5fad3258..784d1a2e 100644 --- a/src/enemy/spinyChuchu.c +++ b/src/enemy/spinyChuchu.c @@ -7,6 +7,7 @@ #include "enemy.h" #include "functions.h" +#include "hitbox.h" extern void sub_08001318(Entity*); extern u32 PlayerInRange(Entity*, u32, u32); @@ -21,9 +22,6 @@ extern void (*const gUnk_080CBA40[])(Entity*); extern const u8 gUnk_080CBA60[]; -extern Hitbox gHitbox_23; -extern Hitbox gHitbox_32; - extern Entity* gUnk_020000B0; void SpinyChuchu(Entity* this) { @@ -44,7 +42,7 @@ void SpinyChuchu_OnCollision(Entity* this) { this->action = 2; this->field_0xf = 0x3c; this->hitType = 0x5c; - this->hitbox = &gHitbox_23; + this->hitbox = (Hitbox*)&gHitbox_23; InitializeAnimation(this, 0); break; case 8: @@ -193,9 +191,9 @@ void sub_08022780(Entity* this) { void sub_080227AC(Entity* this) { GetNextFrame(this); if (this->frame & 1) { - this->hitbox = &gHitbox_32; + this->hitbox = (Hitbox*)&gHitbox_32; } else { - this->hitbox = &gHitbox_23; + this->hitbox = (Hitbox*)&gHitbox_23; } if (this->frame & 2) { diff --git a/src/enemy/vaatiArm.c b/src/enemy/vaatiArm.c index d58da091..5e22575d 100644 --- a/src/enemy/vaatiArm.c +++ b/src/enemy/vaatiArm.c @@ -8,6 +8,7 @@ #include "enemy.h" #include "object.h" #include "functions.h" +#include "hitbox.h" typedef struct VaatiArm_HeapStruct1 { union SplitHWord unk00; @@ -170,8 +171,6 @@ const u16 gUnk_080D140E[] = { -0x6000, -0x5000, -0x4000 }; const u8 gUnk_080D1414[] = { 0, 0xc, 0xe, 0x10, 0x1c }; const u8 gUnk_080D1419[] = { 0, 0xa, 0xa, 0xa, 0x1c }; -extern const Hitbox gUnk_080FD450; -extern const Hitbox gUnk_080FD538; void VaatiArm(Entity* this) { VaatiArm_Functions[GetNextFunction(this)](this); diff --git a/src/npc/bigGoron.c b/src/npc/bigGoron.c index 182b71f1..2f515dba 100644 --- a/src/npc/bigGoron.c +++ b/src/npc/bigGoron.c @@ -1,6 +1,7 @@ #include "npc.h" #include "functions.h" #include "screen.h" +#include "hitbox.h" extern void (*gUnk_081140D4[])(Entity*); @@ -28,7 +29,6 @@ extern void InitBiggoronTimer(void); void sub_0806D110(void); void sub_0806D164(Entity* this); -extern Hitbox gHitbox_3; Entity* sub_0806D00C(Entity* this); void sub_0806D4C0(Entity*, u32); @@ -241,7 +241,7 @@ void sub_0806D3C0(Entity* this) { DeleteThisEntity(); } this->action = 1; - this->hitbox = &gHitbox_3; + this->hitbox = (Hitbox*)&gHitbox_3; SetDefaultPriority(this, PRIO_MESSAGE); sub_0807DD64(this); } else { diff --git a/src/npc/npc4E.c b/src/npc/npc4E.c index 8e60e1db..3ace0253 100644 --- a/src/npc/npc4E.c +++ b/src/npc/npc4E.c @@ -7,8 +7,8 @@ #include "object.h" #include "npc.h" #include "game.h" +#include "hitbox.h" -extern Hitbox gHitbox_2; typedef struct { u32 unk_00; s8 unk_04; @@ -33,7 +33,7 @@ void NPC4E(Entity* this) { if (this->action == 0) { this->action = 1; this->spriteSettings.draw = 4; - this->hitbox = &gHitbox_2; + this->hitbox = (Hitbox*)&gHitbox_2; sub_0807DD50(this); } else { sub_0807DD94(this, 0); diff --git a/src/npc/npc5.c b/src/npc/npc5.c index accc2716..2921b2bc 100644 --- a/src/npc/npc5.c +++ b/src/npc/npc5.c @@ -1,6 +1,7 @@ #include "functions.h" #include "message.h" #include "npc.h" +#include "hitbox.h" typedef struct { u8 unk_0; // u8 @@ -15,8 +16,6 @@ typedef struct { u16 unk_8; // u16 } UnkHeap; -extern Hitbox gHitbox_0; - void sub_08060E70(Entity*, u32); u32 sub_08061230(Entity*); @@ -152,7 +151,7 @@ void sub_08060AE0(Entity* this) { this->hurtType = 0x48; this->hitType = 0x49; this->flags2 = 3; - this->hitbox = &gHitbox_0; + this->hitbox = (Hitbox*)&gHitbox_0; this->field_0x17 &= 0xfe; this->field_0x6c.HALF.LO = 0xff; sub_08060E70(this, this->animationState); diff --git a/src/npc/picolyteBottle.c b/src/npc/picolyteBottle.c index 9ce4d1e7..6dbf5010 100644 --- a/src/npc/picolyteBottle.c +++ b/src/npc/picolyteBottle.c @@ -6,6 +6,7 @@ #include "message.h" #include "object.h" #include "npc.h" +#include "hitbox.h" typedef struct { Entity base; @@ -27,8 +28,6 @@ void nullsub_111(PicolyteBottleEntity* this); extern void sub_08078828(Entity*); -extern Hitbox gHitbox_0; - void PicolyteBottle(Entity* this) { static void (*const PicolyteBottle_Actions[])(PicolyteBottleEntity*) = { PicolyteBottle_Init, @@ -63,7 +62,7 @@ void PicolyteBottle_Init(PicolyteBottleEntity* this) { sub_0806E014(this); sub_0807DD50(super); } else { - super->hitbox = &gHitbox_0; + super->hitbox = (Hitbox*)&gHitbox_0; super->collisionLayer = 1; sub_0806E0DC(this); } diff --git a/src/object/bigIceBlock.c b/src/object/bigIceBlock.c index 78efddb7..13908bc7 100644 --- a/src/object/bigIceBlock.c +++ b/src/object/bigIceBlock.c @@ -9,6 +9,7 @@ #include "global.h" #include "object.h" #include "functions.h" +#include "hitbox.h" typedef struct { /*0x00*/ Entity base; @@ -19,7 +20,6 @@ typedef struct { /*0x86*/ u16 unk_86; } BigIceBlockEntity; -extern const Hitbox gUnk_080FD190; extern void (*const BigIceBlock_Actions[])(BigIceBlockEntity*); extern const u16 gUnk_081237B0[]; diff --git a/src/object/bossDoor.c b/src/object/bossDoor.c index aebe6edc..2719085a 100644 --- a/src/object/bossDoor.c +++ b/src/object/bossDoor.c @@ -9,6 +9,7 @@ #include "global.h" #include "object.h" #include "functions.h" +#include "hitbox.h" typedef struct { /*0x00*/ Entity base; @@ -25,7 +26,7 @@ typedef struct { /*0x86*/ u16 unk_86; } BossDoorEntity; -extern Hitbox gHitbox_3; + extern bool32 gUnk_02036BB8; extern const u8 gUnk_0811F740[]; diff --git a/src/object/crenelBeanSprout.c b/src/object/crenelBeanSprout.c index 5fa2ec7a..7fb66a06 100644 --- a/src/object/crenelBeanSprout.c +++ b/src/object/crenelBeanSprout.c @@ -9,6 +9,7 @@ #include "global.h" #include "object.h" #include "functions.h" +#include "hitbox.h" typedef struct { /*0x00*/ Entity base; @@ -19,8 +20,6 @@ typedef struct { extern u32 sub_080002BC(s32, s32, u32); -extern Hitbox gUnk_080FD2A8; - void sub_080969A4(CrenelBeanSproutEntity*); void sub_08096A78(CrenelBeanSproutEntity*); void CrenelBeanSprout_Init(CrenelBeanSproutEntity*); diff --git a/src/object/fairy.c b/src/object/fairy.c index 0b363cc6..44c3930e 100644 --- a/src/object/fairy.c +++ b/src/object/fairy.c @@ -10,6 +10,7 @@ #include "object.h" #include "functions.h" #include "item.h" +#include "hitbox.h" typedef struct { /*0x00*/ Entity base; @@ -21,7 +22,7 @@ typedef struct { /*0x87*/ u8 unk_87; } FairyEntity; -extern Hitbox gUnk_080FD1A8; + void sub_0808D76C(FairyEntity*); void sub_0808DAD0(FairyEntity*); diff --git a/src/object/itemOnGround.c b/src/object/itemOnGround.c index fd09e1e8..59b5feab 100644 --- a/src/object/itemOnGround.c +++ b/src/object/itemOnGround.c @@ -7,6 +7,7 @@ #include "item.h" #include "itemMetaData.h" #include "functions.h" +#include "hitbox.h" void sub_08081150(Entity*); u8 sub_0808147C(u32); @@ -23,7 +24,6 @@ extern void (*const gUnk_0811E7D4[])(Entity*); extern void (*const gUnk_0811E7E8[])(Entity*); extern void (*const gUnk_0811E814[])(Entity*); extern void (*const gUnk_0811E840[])(Entity*); -extern Hitbox gUnk_080FD1A8; typedef struct { u8 unk0[2]; @@ -86,7 +86,7 @@ void sub_08080F20(Entity* this) { this->field_0x3c = 0x47; this->hurtType = 0x44; this->health = 0xFF; - this->hitbox = &gUnk_080FD1A8; + this->hitbox = (Hitbox*)&gUnk_080FD1A8; switch (this->type) { case ITEM_SHELLS: case ITEM_RUPEE1: diff --git a/src/object/lavaPlatform.c b/src/object/lavaPlatform.c index dbe5856e..61811673 100644 --- a/src/object/lavaPlatform.c +++ b/src/object/lavaPlatform.c @@ -9,6 +9,7 @@ #include "global.h" #include "object.h" #include "functions.h" +#include "hitbox.h" typedef struct { /*0x00*/ Entity base; @@ -32,7 +33,6 @@ typedef struct { } LavaPlatformEntry; extern void sub_080A2CC0(Entity*, Entity**, u16*); -extern Hitbox gUnk_080FD280; void sub_08092278(LavaPlatformEntity*); void sub_08092344(LavaPlatformEntity*); diff --git a/src/object/lightableSwitch.c b/src/object/lightableSwitch.c index aac89cb2..6594193a 100644 --- a/src/object/lightableSwitch.c +++ b/src/object/lightableSwitch.c @@ -5,12 +5,12 @@ #include "room.h" #include "flags.h" #include "functions.h" +#include "hitbox.h" extern void (*const gUnk_081243B4[])(Entity*); extern void (*const gUnk_081243BC[])(Entity*); extern void (*const gUnk_081243C4[])(Entity*); -extern Hitbox gHitbox_0; void LightableSwitch(Entity* this) { gUnk_081243B4[this->type](this); @@ -29,7 +29,7 @@ void sub_0809EA34(Entity* this) { this->hurtType = 0x48; this->hitType = 0x28; this->flags2 = 10; - this->hitbox = &gHitbox_0; + this->hitbox = (Hitbox*)&gHitbox_0; sub_0809EAD8(this); UpdateSpriteForCollisionLayer(this); sub_0809EABC(this); @@ -101,7 +101,7 @@ void sub_0809EB80(Entity* this) { this->hurtType = 0x48; this->hitType = 0x28; this->flags2 = 10; - this->hitbox = &gHitbox_0; + this->hitbox = (Hitbox*)&gHitbox_0; sub_0809EAD8(this); UpdateSpriteForCollisionLayer(this); if (CheckFlags(this->cutsceneBeh.HWORD) != 0) { diff --git a/src/object/lockedDoor.c b/src/object/lockedDoor.c index 918ba9cf..ebe88f20 100644 --- a/src/object/lockedDoor.c +++ b/src/object/lockedDoor.c @@ -7,6 +7,7 @@ #include "effects.h" #include "game.h" #include "common.h" +#include "hitbox.h" void sub_08083338(Entity*); void sub_080834B4(Entity*); @@ -35,8 +36,6 @@ void LockedDoor(Entity* this) { gUnk_0811F65C[this->action](this); } -extern Hitbox gHitbox_2; - typedef struct PACKED { s8 x; s8 y; @@ -95,7 +94,7 @@ void sub_08083338(Entity* this) { this->field_0x70.HALF.LO = this->x.HALF.HI; this->field_0x70.HALF.HI = this->y.HALF.HI; this->field_0x7c.BYTES.byte2 = this->type & 3; - this->hitbox = &gHitbox_2; + this->hitbox = (Hitbox*)&gHitbox_2; this->spritePriority.b0 = 5; this->frame = this->type & 0xF; this->field_0x76.HWORD = TILE(this->x.HALF.HI, this->y.HALF.HI); diff --git a/src/object/metalDoor.c b/src/object/metalDoor.c index 2146a801..383949b5 100644 --- a/src/object/metalDoor.c +++ b/src/object/metalDoor.c @@ -6,6 +6,7 @@ #include "sound.h" #include "functions.h" #include "effects.h" +#include "hitbox.h" extern u32 sub_08083734(Entity*, u32); extern void sub_080A080C(Entity*); @@ -13,8 +14,6 @@ extern void sub_080A0870(Entity*); extern void (*const gUnk_0812493C[])(Entity*); -extern Hitbox gHitbox_3; - void MetalDoor(Entity* this) { gUnk_0812493C[this->action](this); } @@ -28,7 +27,7 @@ void sub_080A0684(Entity* this) { this->spriteSettings.draw = 0; this->frameIndex = 0; this->spriteSettings.flipY = 1; - this->hitbox = &gHitbox_3; + this->hitbox = (Hitbox*)&gHitbox_3; this->spritePriority.b0 = 5; this->field_0x70.HALF.LO = this->x.HALF.HI; this->field_0x70.HALF.HI = this->y.HALF.HI; diff --git a/src/object/minecart.c b/src/object/minecart.c index 0de7e4c3..2c49351b 100644 --- a/src/object/minecart.c +++ b/src/object/minecart.c @@ -1,5 +1,6 @@ #include "object.h" #include "functions.h" +#include "hitbox.h" extern u32 sub_08091DDC(Entity*); extern u32 sub_08007DD6(u32, u32); @@ -8,7 +9,6 @@ extern void sub_08091C0C(Entity*); extern void (*const gUnk_081223A8[])(Entity*); -extern Hitbox gUnk_080FD310; extern const s8 gUnk_081223C8[]; extern const u32 gUnk_081223D8[]; @@ -30,7 +30,7 @@ void sub_080916EC(Entity* this) { this->animationState = unk->field_0x5; this->type2 = unk->field_0x6; this->action = 1; - this->hitbox = &gUnk_080FD310; + this->hitbox = (Hitbox*)&gUnk_080FD310; COLLISION_ON(this); this->hitType = 1; this->field_0x3c = 0x47; diff --git a/src/object/objectA.c b/src/object/objectA.c index 37132e10..5ec992a9 100644 --- a/src/object/objectA.c +++ b/src/object/objectA.c @@ -5,8 +5,7 @@ #include "object.h" #include "functions.h" #include "game.h" - -extern Hitbox gHitbox_2; +#include "hitbox.h" extern u8 gUpdateVisibleTiles; @@ -15,7 +14,7 @@ void ObjectA(Entity* this) { if (this->action == 0) { this->action = 1; - this->hitbox = &gHitbox_2; + this->hitbox = (Hitbox*)&gHitbox_2; if (this->collisionLayer == 1) { uVar2 = 0x26; } else { diff --git a/src/object/objectA8.c b/src/object/objectA8.c index 66385cb9..b2b37b7a 100644 --- a/src/object/objectA8.c +++ b/src/object/objectA8.c @@ -10,6 +10,7 @@ #include "object.h" #include "functions.h" #include "item.h" +#include "hitbox.h" typedef struct { /*0x00*/ Entity base; @@ -20,7 +21,6 @@ typedef struct { /*0x87*/ u8 unk_87; } ObjectA8Entity; -extern Hitbox gUnk_080FD1A8; void sub_0809FECC(ObjectA8Entity*); bool32 sub_0809FE9C(ObjectA8Entity*); diff --git a/src/object/objectOnPillar.c b/src/object/objectOnPillar.c index 2aa53237..26173613 100644 --- a/src/object/objectOnPillar.c +++ b/src/object/objectOnPillar.c @@ -9,6 +9,7 @@ #include "global.h" #include "object.h" #include "functions.h" +#include "hitbox.h" typedef struct { /*0x00*/ Entity base; @@ -29,7 +30,6 @@ typedef struct { extern bool32 sub_080896B0(void); // pushableStatue -extern Hitbox gUnk_080FD1F4; extern s16 gUnk_080B4488[]; typedef struct { diff --git a/src/object/pot.c b/src/object/pot.c index 4e47144f..6808c48e 100644 --- a/src/object/pot.c +++ b/src/object/pot.c @@ -6,6 +6,7 @@ #include "room.h" #include "object.h" #include "functions.h" +#include "hitbox.h" void sub_08082824(Entity*); static void sub_08082850(Entity*, Entity*); @@ -15,8 +16,6 @@ extern void (*const gUnk_0811F090[])(Entity*); extern void (*const gUnk_0811F0A8[])(Entity*); extern void (*const gUnk_0811F0C4[])(Entity*); -extern Hitbox gHitbox_18; // TODO: should be const -extern Hitbox gUnk_080FD340; // TODO: should be const extern void sub_08078930(Entity*); extern void sub_08016A6C(Entity*); @@ -32,7 +31,7 @@ void sub_0808222C(Entity* this) { } this->action = 1; - this->hitbox = &gHitbox_18; + this->hitbox = (Hitbox*)&gHitbox_18; this->speed = 0x80; this->y.HALF.HI += 3; this->field_0x16 = 0; @@ -118,7 +117,7 @@ void sub_080824F8(Entity* this) { void sub_08082510(Entity* this) { COLLISION_ON(this); - this->hitbox = &gUnk_080FD340; + this->hitbox = (Hitbox*)&gUnk_080FD340; this->field_0x3c = 7; this->hitType = 1; this->flags2 = gPlayerEntity.flags2; diff --git a/src/object/pressurePlate.c b/src/object/pressurePlate.c index cc81a97c..556a0344 100644 --- a/src/object/pressurePlate.c +++ b/src/object/pressurePlate.c @@ -1,8 +1,7 @@ #define NENT_DEPRECATED #include "object.h" #include "functions.h" - -u32 IsColliding(Entity*, Entity*); +#include "hitbox.h" typedef struct { Entity base; @@ -22,8 +21,6 @@ PressurePlateAction sub_08088840; PressurePlateAction sub_0808886C; PressurePlateAction sub_080888F4; -extern Hitbox gUnk_080FD1D4; - static u32 sub_08088938(PressurePlateEntity*); static u32 get_standing_count(PressurePlateEntity*); @@ -50,7 +47,7 @@ void sub_08088840(PressurePlateEntity* this) { super->action = 1; super->spriteSettings.draw = 1; super->spritePriority.b0 = 7; - super->hitbox = &gUnk_080FD1D4; + super->hitbox = (Hitbox*)&gUnk_080FD1D4; this->dir = super->animationState; } diff --git a/src/object/pullableLever.c b/src/object/pullableLever.c index 56acc72d..4b100533 100644 --- a/src/object/pullableLever.c +++ b/src/object/pullableLever.c @@ -10,6 +10,7 @@ #include "object.h" #include "functions.h" #include "sound.h" +#include "hitbox.h" typedef struct { /*0x00*/ Entity base; @@ -31,8 +32,6 @@ typedef struct { enum PullableLeverPart { HANDLE, MIDDLE, SOCKET }; extern u16 gUnk_02021F00[]; -extern Hitbox gUnk_080FD270; -extern Hitbox gUnk_080FD278; extern void (*const PullableLever_HandleActions[])(PullableLeverEntity*); extern void (*const PullableLever_MiddleActions[])(PullableLeverEntity*); @@ -76,9 +75,9 @@ void PullableLever_HandleInit(PullableLeverEntity* this) { super->spriteSettings.draw = 1; super->speed = 0x60; if ((super->type2 & 1)) { - super->hitbox = &gUnk_080FD278; + super->hitbox = (Hitbox*)&gUnk_080FD278; } else { - super->hitbox = &gUnk_080FD270; + super->hitbox = (Hitbox*)&gUnk_080FD270; } super->field_0x16 = 1; super->x.HALF.HI += PullableLever_InitialOffsets[super->type2 * 2]; diff --git a/src/object/pullableMushroom.c b/src/object/pullableMushroom.c index 0a136c3e..ff7bff42 100644 --- a/src/object/pullableMushroom.c +++ b/src/object/pullableMushroom.c @@ -10,6 +10,7 @@ #include "object.h" #include "functions.h" #include "game.h" +#include "hitbox.h" typedef struct { /*0x00*/ Entity base; @@ -20,7 +21,6 @@ typedef struct { /*0x7c*/ u32 unk_7c; } PullableMushroomEntity; -extern const Hitbox gUnk_080FD224; extern const u8 gUnk_08126EE4[]; void PullableMushroom_Init(PullableMushroomEntity*); diff --git a/src/object/pushableGrave.c b/src/object/pushableGrave.c index 8d9d4a92..96bf5386 100644 --- a/src/object/pushableGrave.c +++ b/src/object/pushableGrave.c @@ -9,6 +9,7 @@ #include "global.h" #include "object.h" #include "functions.h" +#include "hitbox.h" typedef struct { /*0x00*/ Entity base; @@ -26,8 +27,7 @@ typedef struct { /*0x86*/ u16 pushedFlag; } PushableGraveEntity; -extern const Hitbox gUnk_080FD578; -extern const Hitbox gUnk_080FD570; + extern void (*const gUnk_081232AC[])(PushableGraveEntity*); extern const u8 gUnk_081232C0[]; diff --git a/src/object/pushableStatue.c b/src/object/pushableStatue.c index 70377802..8dbfdb41 100644 --- a/src/object/pushableStatue.c +++ b/src/object/pushableStatue.c @@ -9,6 +9,7 @@ #include "global.h" #include "object.h" #include "functions.h" +#include "hitbox.h" typedef struct { /*0x00*/ Entity base; @@ -20,7 +21,7 @@ typedef struct { /*0x86*/ u16 unk_86; } PushableStatueEntity; -extern const Hitbox gUnk_080FD1F4; + extern const s16 gUnk_080B4488[]; extern const s16 gUnk_080B4468[]; diff --git a/src/object/rupee.c b/src/object/rupee.c index 583cf0f07..cabcca81 100644 --- a/src/object/rupee.c +++ b/src/object/rupee.c @@ -1,11 +1,11 @@ #include "object.h" #include "functions.h" +#include "hitbox.h" void sub_08086A6C(Entity*); void (*const gUnk_081206C4[])(Entity*); -extern Hitbox gUnk_080FD1A8; // Main void Rupee(Entity* ent) { @@ -17,7 +17,7 @@ void sub_080869DC(Entity* ent) { ent->action = 1; ent->spriteSettings.draw = 0; - ent->hitbox = &gUnk_080FD1A8; + ent->hitbox = (Hitbox*)&gUnk_080FD1A8; ent->field_0x3c |= 16; itemEntity = CreateObject(GROUND_ITEM, ent->type, 0); if (itemEntity != NULL) { diff --git a/src/object/smallIceBlock.c b/src/object/smallIceBlock.c index c491a16b..e5c467cc 100644 --- a/src/object/smallIceBlock.c +++ b/src/object/smallIceBlock.c @@ -9,6 +9,7 @@ #include "global.h" #include "object.h" #include "functions.h" +#include "hitbox.h" typedef struct { /*0x00*/ Entity base; @@ -20,7 +21,6 @@ typedef struct { /*0x86*/ u16 unk_86; } SmallIceBlockEntity; -extern const Hitbox gUnk_080FD408; extern const s16 gUnk_080B4488[]; void sub_080996AC(SmallIceBlockEntity*); diff --git a/src/object/treeThorns.c b/src/object/treeThorns.c index 8cd2a06f..d6516f80 100644 --- a/src/object/treeThorns.c +++ b/src/object/treeThorns.c @@ -3,8 +3,7 @@ #include "coord.h" #include "room.h" #include "object.h" - -extern Hitbox gHitbox_1; +#include "hitbox.h" void TreeThorns(Entity* this) { Entity* ent; @@ -23,7 +22,7 @@ void TreeThorns(Entity* this) { this->hurtType = 0x48; this->hitType = 0x7a; this->flags2 = 1; - this->hitbox = &gHitbox_1; + this->hitbox = (Hitbox*)&gHitbox_1; tilePos = COORD_TO_TILE(this); SetTile(0x4066, tilePos - 1, *layer); SetTile(0x4065, tilePos, *layer); diff --git a/src/object/warpPoint.c b/src/object/warpPoint.c index 1098d131..9f35a442 100644 --- a/src/object/warpPoint.c +++ b/src/object/warpPoint.c @@ -2,8 +2,7 @@ #include "object.h" #include "game.h" #include "functions.h" - -extern Hitbox gHitbox_1; +#include "hitbox.h" extern void sub_0807CAC8(u32); extern u32 sub_0807CAEC(u32); @@ -39,7 +38,7 @@ void sub_0808B474(Entity* this) { tmp = gUnk_08121380[this->type]; this->palette.b.b0 = tmp; this->spritePriority.b0 = 6; - this->hitbox = &gHitbox_1; + this->hitbox = (Hitbox*)&gHitbox_1; this->updatePriority = PRIO_NO_BLOCK; InitializeAnimation(this, 0); if (CheckFlags(this->field_0x86.HWORD)) { diff --git a/src/player.c b/src/player.c index d09ae85b..36a82e9f 100644 --- a/src/player.c +++ b/src/player.c @@ -3133,8 +3133,6 @@ static void PlayerMinish(Entity* this) { sPlayerMinishStates[this->subAction](this); } -extern Hitbox gUnk_0811BC80; - static void sub_08073C80(Entity* this) { static const Hitbox sMinishHitbox = { 0, -1, { 3, 2, 2, 3 }, 2, 2 }; diff --git a/src/projectile/guardLineOfSight.c b/src/projectile/guardLineOfSight.c index 1dcdcaaf..128052fb 100644 --- a/src/projectile/guardLineOfSight.c +++ b/src/projectile/guardLineOfSight.c @@ -3,10 +3,10 @@ #include "coord.h" #include "functions.h" #include "projectile.h" +#include "hitbox.h" extern u32 sub_080644C8(Entity*); extern u8 gUnk_02027EB4[]; -extern const Hitbox gUnk_080FD1E4; extern const u8 gUnk_081299C8[]; diff --git a/src/projectile/gyorgTail.c b/src/projectile/gyorgTail.c index 947788ca..c9dc6a8b 100644 --- a/src/projectile/gyorgTail.c +++ b/src/projectile/gyorgTail.c @@ -4,11 +4,9 @@ #include "sound.h" #include "functions.h" #include "projectile.h" +#include "hitbox.h" extern u8 gEntCount; -extern Hitbox gHitbox_21; -extern Hitbox gHitbox_1; -extern Hitbox gHitbox_20; extern void (*const gUnk_0812A994[])(Entity*); extern void (*const GyorgTail_Actions[])(Entity*); @@ -96,7 +94,7 @@ void sub_080AC510(Entity* this) { this->spriteSettings.draw = 1; this->collisionLayer = 2; if (*(u16*)&this->type == 0x300) { - this->hitbox = &gHitbox_21; + this->hitbox = (Hitbox*)&gHitbox_21; } } } @@ -113,9 +111,9 @@ void sub_080AC560(Entity* this) { this->action = 1; this->collisionLayer = 2; if (this->type == 0) { - this->hitbox = &gHitbox_1; + this->hitbox = (Hitbox*)&gHitbox_1; } else { - this->hitbox = &gHitbox_20; + this->hitbox = (Hitbox*)&gHitbox_20; } this->frameIndex = 0xff; this->spriteSettings.draw = 1; diff --git a/src/projectile/mandiblesProjectile.c b/src/projectile/mandiblesProjectile.c index 1c765e49..f828070b 100644 --- a/src/projectile/mandiblesProjectile.c +++ b/src/projectile/mandiblesProjectile.c @@ -3,8 +3,7 @@ #include "coord.h" #include "functions.h" #include "game.h" - -extern Hitbox gHitbox_0; +#include "hitbox.h" extern void (*const MandiblesProjectile_Functions[])(Entity*); extern void (*const MandiblesProjectile_Actions[])(Entity*); @@ -141,9 +140,9 @@ void MandiblesProjectile_Action3(Entity* this) { this->animationState = uVar1 << 0x1a >> 0x1a; #ifdef EU this->spriteOrientation.flipY = 1; - this->hitbox = &gHitbox_0; + this->hitbox = (Hitbox*)&gHitbox_0; #else - this->hitbox = &gHitbox_0; + this->hitbox = (Hitbox*)&gHitbox_0; if (AreaIsDungeon() != 0) { this->spriteOrientation.flipY = 1; } diff --git a/src/projectile/spiderWeb.c b/src/projectile/spiderWeb.c index c6176fa7..f0af7e0c 100644 --- a/src/projectile/spiderWeb.c +++ b/src/projectile/spiderWeb.c @@ -2,6 +2,7 @@ #include "enemy.h" #include "functions.h" #include "object.h" +#include "hitbox.h" typedef struct { u8 b0; @@ -234,10 +235,7 @@ void (*const SpiderWeb_Actions[])(Entity*) = { const u8 gUnk_0812A03C[] = { 248, 252, 6, 1, 4, 245, 253, 3, 249, 253, 6, 4, 252, 245, 3, 3, }; -extern const Hitbox gUnk_080FD41C; -extern const Hitbox gUnk_080FD424; -extern const Hitbox gUnk_080FD42C; -extern const Hitbox gUnk_080FD434; + const Hitbox* const gUnk_0812A04C[] = { &gUnk_080FD41C, &gUnk_080FD424,