From 6ca6b480b4ad4f0a2daa8dd5653c63b32881791a Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Mon, 18 Apr 2022 23:43:00 +0300 Subject: [PATCH] Put const data in manager37 --- data/const/manager/manager37.s | 20 -------------------- linker.ld | 2 +- src/manager/manager37.c | 32 +++++++++++++++++++++++--------- 3 files changed, 24 insertions(+), 30 deletions(-) delete mode 100644 data/const/manager/manager37.s diff --git a/data/const/manager/manager37.s b/data/const/manager/manager37.s deleted file mode 100644 index ce36ee57..00000000 --- a/data/const/manager/manager37.s +++ /dev/null @@ -1,20 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_08108DBC:: @ 08108DBC - .4byte sub_0805DE50 - .4byte sub_0805DFE8 - -gUnk_08108DC4:: @ 08108DC4 - .4byte sub_0805DE68 - .4byte sub_0805DEB8 - .4byte sub_0805DF4C - .4byte sub_0805DF98 - .4byte sub_0805DFCC - -gUnk_08108DD8:: @ 08108DD8 - .4byte sub_0805E000 - .4byte sub_0805E078 diff --git a/linker.ld b/linker.ld index dc01e1ea..de116758 100644 --- a/linker.ld +++ b/linker.ld @@ -1144,7 +1144,7 @@ SECTIONS { src/manager/manager34.o(.rodata); src/manager/manager35.o(.rodata); src/manager/manager36.o(.rodata); - data/const/manager/manager37.o(.rodata); + src/manager/manager37.o(.rodata); data/const/manager/manager38.o(.rodata); data/const/manager/manager39.o(.rodata); data/data_08108E6C.o(.rodata); diff --git a/src/manager/manager37.c b/src/manager/manager37.c index e685a135..5bd9d594 100644 --- a/src/manager/manager37.c +++ b/src/manager/manager37.c @@ -12,20 +12,30 @@ extern ScreenTransitionData gUnk_0813AC34; -extern void (*const gUnk_08108DBC[])(Manager*); - -extern void (*const gUnk_08108DC4[])(Manager*); - -extern void (*const gUnk_08108DD8[])(Manager*); - void sub_0805E094(void); +void sub_0805DE50(Manager*); +void sub_0805DFE8(Manager*); +void sub_0805DE68(Manager*); +void sub_0805DEB8(Manager*); +void sub_0805DF4C(Manager*); +void sub_0805DF98(Manager*); +void sub_0805DFCC(Manager*); +void sub_0805E078(Manager*); +void sub_0805E000(Manager*); void Manager37_Main(Manager* this) { + static void (*const gUnk_08108DBC[])(Manager*) = { + sub_0805DE50, + sub_0805DFE8, + }; gUnk_08108DBC[this->unk_0a](this); } void sub_0805DE50(Manager* this) { - gUnk_08108DC4[this->action](this); + static void (*const actionFuncs[])(Manager*) = { + sub_0805DE68, sub_0805DEB8, sub_0805DF4C, sub_0805DF98, sub_0805DFCC, + }; + actionFuncs[this->action](this); } void sub_0805DE68(Manager* this) { @@ -95,7 +105,7 @@ void sub_0805DF98(Manager* this) { } } -void sub_0805DFCC(void) { +void sub_0805DFCC(Manager* this) { if (gFadeControl.active == 0) { ClearGlobalFlag(ZELDA_CHASE); sub_0805E094(); @@ -103,7 +113,11 @@ void sub_0805DFCC(void) { } void sub_0805DFE8(Manager* this) { - gUnk_08108DD8[this->action](this); + static void (*const actionFuncs[])(Manager*) = { + sub_0805E000, + sub_0805E078, + }; + actionFuncs[this->action](this); } void sub_0805E000(Manager* this) {