diff --git a/data/const/item/itemLantern.s b/data/const/item/itemLantern.s deleted file mode 100644 index 7979ca6a..00000000 --- a/data/const/item/itemLantern.s +++ /dev/null @@ -1,11 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_0811BD68:: @ 0811BD68 - .4byte sub_08075A0C - .4byte sub_08075ADC - .4byte sub_08075B54 - .4byte sub_08075C9C diff --git a/linker.ld b/linker.ld index dfcce126..e14aeb53 100644 --- a/linker.ld +++ b/linker.ld @@ -1308,7 +1308,7 @@ SECTIONS { src/player.o(.rodata); src/item.o(.rodata); src/item/itemSword.o(.rodata); - data/const/item/itemLantern.o(.rodata); + src/item/itemLantern.o(.rodata); data/const/item/itemBoomerang.o(.rodata); data/const/item/itemBow.o(.rodata); data/const/item/itemBomb.o(.rodata); diff --git a/src/item/itemLantern.c b/src/item/itemLantern.c index 102232e7..717b9250 100644 --- a/src/item/itemLantern.c +++ b/src/item/itemLantern.c @@ -4,17 +4,22 @@ #include "object.h" #include "game.h" -extern void (*const gUnk_0811BD68[])(ItemBehavior*, u32); - extern s8 gUnk_08126EEC[]; extern Entity* sub_08077BD4(ItemBehavior*); - -extern bool32 sub_08077F10(ItemBehavior*); - extern void sub_0807AB44(Entity*, s32, s32); +void sub_08075A0C(ItemBehavior*, u32); +void sub_08075ADC(ItemBehavior*, u32); +void sub_08075B54(ItemBehavior*, u32); +void sub_08075C9C(ItemBehavior*, u32); void ItemLantern(ItemBehavior* this, u32 idx) { - gUnk_0811BD68[this->stateID](this, idx); + static void (*const stateFuncs[])(ItemBehavior*, u32) = { + sub_08075A0C, + sub_08075ADC, + sub_08075B54, + sub_08075C9C, + }; + stateFuncs[this->stateID](this, idx); } void sub_08075A0C(ItemBehavior* this, u32 idx) {