From 7ce1bdd245ed40f4aad6895b0c2b791eb59623e0 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Sat, 16 Apr 2022 20:41:45 +0300 Subject: [PATCH] Put const data in itemSword --- data/const/item/itemSword.s | 16 ---------------- linker.ld | 2 +- src/item/itemSword.c | 17 ++++++++++++----- 3 files changed, 13 insertions(+), 22 deletions(-) delete mode 100644 data/const/item/itemSword.s diff --git a/data/const/item/itemSword.s b/data/const/item/itemSword.s deleted file mode 100644 index a0b199df..00000000 --- a/data/const/item/itemSword.s +++ /dev/null @@ -1,16 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_0811BD44:: @ 0811BD44 - .4byte sub_08075338 - .4byte sub_080754B8 - .4byte sub_080755F0 - .4byte sub_0807564C - .4byte sub_08075738 - .4byte sub_08075580 - .4byte sub_08075898 - .4byte sub_080758B0 - .4byte sub_08075900 diff --git a/linker.ld b/linker.ld index 6397274f..dfcce126 100644 --- a/linker.ld +++ b/linker.ld @@ -1307,7 +1307,7 @@ SECTIONS { src/playerItem/playerItemPacciCane.o(.rodata); src/player.o(.rodata); src/item.o(.rodata); - data/const/item/itemSword.o(.rodata); + src/item/itemSword.o(.rodata); data/const/item/itemLantern.o(.rodata); data/const/item/itemBoomerang.o(.rodata); data/const/item/itemBow.o(.rodata); diff --git a/src/item/itemSword.c b/src/item/itemSword.c index 5c3dca2d..e6171072 100644 --- a/src/item/itemSword.c +++ b/src/item/itemSword.c @@ -4,18 +4,25 @@ #include "object.h" #include "playeritem.h" -extern void (*const gUnk_0811BD44[])(ItemBehavior*, u32); - void sub_080759B8(ItemBehavior*, u32); void sub_080754B8(ItemBehavior*, u32); void sub_08075898(ItemBehavior*, u32); void sub_08075580(ItemBehavior*, u32); - -void sub_08075694(ItemBehavior* this, u32 idx); +void sub_08075338(ItemBehavior*, u32); +void sub_080755F0(ItemBehavior*, u32); +void sub_0807564C(ItemBehavior*, u32); +void sub_08075738(ItemBehavior*, u32); +void sub_080758B0(ItemBehavior*, u32); +void sub_08075900(ItemBehavior*, u32); +void sub_08075694(ItemBehavior*, u32); void ItemSword(ItemBehavior* this, u32 idx) { + static void (*const stateFuncs[])(ItemBehavior*, u32) = { + sub_08075338, sub_080754B8, sub_080755F0, sub_0807564C, sub_08075738, + sub_08075580, sub_08075898, sub_080758B0, sub_08075900, + }; gPlayerState.framestate = PL_STATE_SWORD; - gUnk_0811BD44[this->stateID](this, idx); + stateFuncs[this->stateID](this, idx); } void sub_08075338(ItemBehavior* this, u32 idx) {