diff --git a/assets/assets.json b/assets/assets.json index 59ff182f..f09ae565 100644 --- a/assets/assets.json +++ b/assets/assets.json @@ -3566,31 +3566,6 @@ "start": 736544, "size": 176 }, - { - "path": "playerItemGustBig/gUnk_080B3DE0.bin", - "start": 736736, - "size": 8 - }, - { - "path": "playerItemGustBig/gUnk_080B3DF4.bin", - "start": 736756, - "size": 36 - }, - { - "path": "playerItemGustBig/gUnk_080B3E18.bin", - "start": 736792, - "size": 8 - }, - { - "path": "playerItemGustBig/gUnk_080B3E20.bin", - "start": 736800, - "size": 8 - }, - { - "path": "playerItemGustBig/gUnk_080B3E28.bin", - "start": 736808, - "size": 8 - }, { "path": "data_080B3E70/gUnk_080B3E80.bin", "start": 736896, diff --git a/data/const/playerItem/playerItemGustBig.s b/data/const/playerItem/playerItemGustBig.s deleted file mode 100644 index 2e439ed3..00000000 --- a/data/const/playerItem/playerItemGustBig.s +++ /dev/null @@ -1,32 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - - -gUnk_080B3DD0:: @ 080B3DD0 - .4byte sub_08018CBC - .4byte sub_08018DE8 - .4byte sub_08018E68 - .4byte sub_08018F6C - -gUnk_080B3DE0:: @ 080B3DE0 - .incbin "playerItemGustBig/gUnk_080B3DE0.bin" - -gUnk_080B3DE8:: @ 080B3DE8 - .4byte gUnk_080B3E18 - .4byte gUnk_080B3E20 - .4byte gUnk_080B3E28 - -gUnk_080B3DF4:: @ 080B3DF4 - .incbin "playerItemGustBig/gUnk_080B3DF4.bin" - -gUnk_080B3E18:: @ 080B3E18 - .incbin "playerItemGustBig/gUnk_080B3E18.bin" - -gUnk_080B3E20:: @ 080B3E20 - .incbin "playerItemGustBig/gUnk_080B3E20.bin" - -gUnk_080B3E28:: @ 080B3E28 - .incbin "playerItemGustBig/gUnk_080B3E28.bin" diff --git a/linker.ld b/linker.ld index a38a9b18..7dc04024 100644 --- a/linker.ld +++ b/linker.ld @@ -892,7 +892,7 @@ SECTIONS { src/npc.o(.rodata); src/collision.o(.rodata); data/data_080B3740.o(.rodata); - data/const/playerItem/playerItemGustBig.o(.rodata); + src/playerItem/playerItemGustBig.o(.rodata); src/playerItem/playerItemBow.o(.rodata); data/data_080B3E70.o(.rodata); src/playerItem/playerItemSwordBeam.o(.rodata); diff --git a/src/playerItem/playerItemGustBig.c b/src/playerItem/playerItemGustBig.c index ede960db..6a46fe94 100644 --- a/src/playerItem/playerItemGustBig.c +++ b/src/playerItem/playerItemGustBig.c @@ -7,20 +7,22 @@ extern void sub_08078CD0(Entity*); extern void sub_08018FA0(Entity*); +extern void sub_08018CBC(Entity*); +extern void sub_08018DE8(Entity*); +extern void sub_08018E68(Entity*); extern void sub_08018F6C(Entity*); -extern void (*const gUnk_080B3DD0[])(Entity*); - -extern Hitbox gUnk_080B3E18; -extern u8 gUnk_080B3DE0[]; -extern Hitbox* gUnk_080B3DE8[]; - extern u32 sub_08007DD6(u32, const u16*); -extern const u16 gUnk_080B3DF4[]; extern const u8 gUnk_08003E44[]; void PlayerItemGustBig(Entity* this) { + static void (*const gUnk_080B3DD0[])(Entity*) = { + sub_08018CBC, + sub_08018DE8, + sub_08018E68, + sub_08018F6C, + }; if (this->health) { this->iframes = 0; gUnk_080B3DD0[this->action](this); @@ -29,6 +31,23 @@ void PlayerItemGustBig(Entity* this) { } } +static const u8 gUnk_080B3DE0[] = { 0x10, 0x2, 0x20, 0x3, 0x40, 0x6, 0, 0 }; +static const Hitbox gUnk_080B3E18; +static const Hitbox gUnk_080B3E20; +static const Hitbox gUnk_080B3E28; +static const Hitbox* const gUnk_080B3DE8[] = { + &gUnk_080B3E18, + &gUnk_080B3E20, + &gUnk_080B3E28, +}; +static const u16 gUnk_080B3DF4[] = { + 0x75, 0x1, 0x76, 0x1, 0x3ac, 0x1, 0x4050, 0x1, 0x377, 0x1, 0x378, 0x1, 0x71, 0x1, 0x72, 0x1, 0, 0, +}; + +static const Hitbox gUnk_080B3E18 = { 0, 0, { 6, 3, 3, 6 }, 6, 6 }; +static const Hitbox gUnk_080B3E20 = { 0, 0, { 6, 3, 3, 6 }, 8, 8 }; +static const Hitbox gUnk_080B3E28 = { 0, 0, { 6, 3, 3, 6 }, 12, 12 }; + void sub_08018CBC(Entity* this) { u32 PVar1; u8 uVar2; @@ -49,7 +68,7 @@ void sub_08018CBC(Entity* this) { this->timer = 0x56; this->hurtType = 0x1c; this->damage = 6; - this->hitbox = &gUnk_080B3E18; + this->hitbox = (Hitbox*)&gUnk_080B3E18; this->child->spriteOffsetX = 0; this->child->spriteSettings.draw = 0; } else { @@ -65,7 +84,7 @@ void sub_08018CBC(Entity* this) { this->timer = gUnk_080B3DE0[this->type * 2]; this->damage = gUnk_080B3DE0[this->type * 2 + 1]; this->hurtType = 0x1b; - this->hitbox = gUnk_080B3DE8[this->type]; + this->hitbox = (Hitbox*)gUnk_080B3DE8[this->type]; (u32*)gPlayerEntity.field_0x70.WORD = this; sub_08078CD0(&gPlayerEntity); (u32*)gPlayerEntity.field_0x70.WORD = pEVar3;