diff --git a/assets/assets.json b/assets/assets.json index dedc213b..44af985f 100644 --- a/assets/assets.json +++ b/assets/assets.json @@ -32723,11 +32723,6 @@ "start": 1084332, "size": 124 }, - { - "path": "manager24/gUnk_08108CFC.bin", - "start": 1084668, - "size": 8 - }, { "path": "manager31/gUnk_08108D5C.bin", "start": 1084764, diff --git a/data/const/manager/manager24.s b/data/const/manager/manager24.s deleted file mode 100644 index 3cf58a24..00000000 --- a/data/const/manager/manager24.s +++ /dev/null @@ -1,20 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_08108CDC:: @ 08108CDC - .4byte sub_0805BF30 - .4byte sub_0805BF78 - .4byte sub_0805BFA4 - -gUnk_08108CE8:: @ 08108CE8 - .4byte sub_0805C050 - .4byte sub_0805C178 - .4byte sub_0805C294 - .4byte sub_0805C3B4 - .4byte sub_0805C4E0 - -gUnk_08108CFC:: @ 08108CFC - .incbin "manager24/gUnk_08108CFC.bin" diff --git a/linker.ld b/linker.ld index 04d6873d..5ba71a93 100644 --- a/linker.ld +++ b/linker.ld @@ -1133,7 +1133,7 @@ SECTIONS { src/manager/manager1F.o(.rodata); src/manager/manager22.o(.rodata); src/manager/manager23.o(.rodata); - data/const/manager/manager24.o(.rodata); + src/manager/manager24.o(.rodata); src/manager/manager26.o(.rodata); src/manager/manager27.o(.rodata); src/manager/manager28.o(.rodata); diff --git a/src/manager/manager24.c b/src/manager/manager24.c index 4f230475..c8e7fdc9 100644 --- a/src/manager/manager24.c +++ b/src/manager/manager24.c @@ -5,21 +5,28 @@ #include "game.h" #include "object.h" -extern void (*const gUnk_08108CDC[])(Manager24*); - u32 sub_0805BFC4(u32, u32); void sub_0805C02C(Manager24*); extern u32 sub_080B1AE0(u16, u8); -extern void (*const gUnk_08108CE8[])(u32, u32); - -u32 sub_0805C608(void); - -extern u8 gUnk_08108CFC[]; +u32 getArchwayType(void); +void sub_0805BF30(Manager24*); +void sub_0805BF78(Manager24*); +void sub_0805BFA4(Manager24*); +void sub_0805C050(u32, u32); +void sub_0805C178(u32, u32); +void sub_0805C294(u32, u32); +void sub_0805C3B4(u32, u32); +void sub_0805C4E0(u32, u32); void Manager24_Main(Manager24* manager) { - gUnk_08108CDC[manager->manager.action](manager); + static void (*const actionFuncs[])(Manager24*) = { + sub_0805BF30, + sub_0805BF78, + sub_0805BFA4, + }; + actionFuncs[manager->manager.action](manager); } void sub_0805BF30(Manager24* manager) { @@ -77,6 +84,9 @@ u32 sub_0805BFC4(u32 pos, u32 layer) { } void sub_0805C02C(Manager24* this) { + static void (*const gUnk_08108CE8[])(u32, u32) = { + sub_0805C050, sub_0805C178, sub_0805C294, sub_0805C3B4, sub_0805C4E0, + }; if (this->manager.unk_0a != 0xff) { gUnk_08108CE8[this->manager.unk_0a](this->tile, this->field_0x35); } @@ -113,7 +123,7 @@ void sub_0805C050(u32 pos, u32 layer) { if (AreaIsDungeon() == 0) { return; } - object = CreateObject(ARCHWAY, sub_0805C608(), 6); + object = CreateObject(ARCHWAY, getArchwayType(), 6); if (object == NULL) { return; } @@ -156,7 +166,7 @@ void sub_0805C178(u32 pos, u32 layer) { if (AreaIsDungeon() == 0) { return; } - object = CreateObject(ARCHWAY, sub_0805C608(), 7); + object = CreateObject(ARCHWAY, getArchwayType(), 7); if (object == NULL) { return; } @@ -197,7 +207,7 @@ void sub_0805C294(u32 pos, u32 layer) { if (AreaIsDungeon() == 0) { return; } - object = CreateObject(ARCHWAY, sub_0805C608(), 8); + object = CreateObject(ARCHWAY, getArchwayType(), 8); if (object == NULL) { return; } @@ -239,7 +249,7 @@ void sub_0805C3B4(u32 pos, u32 layer) { return; } - object = CreateObject(ARCHWAY, sub_0805C608(), 9); + object = CreateObject(ARCHWAY, getArchwayType(), 9); if (object == NULL) { return; } @@ -281,7 +291,7 @@ void sub_0805C4E0(u32 pos, u32 layer) { return; } - object = CreateObject(ARCHWAY, sub_0805C608(), 6); + object = CreateObject(ARCHWAY, getArchwayType(), 6); if (object == NULL) { return; } @@ -291,6 +301,7 @@ void sub_0805C4E0(u32 pos, u32 layer) { } } -u32 sub_0805C608(void) { - return gUnk_08108CFC[gArea.dungeon_idx]; +u32 getArchwayType(void) { + static const u8 archwayTypes[] = { 0xd, 0xd, 0xd, 0x19, 0x1a, 0xd, 0x21, 0 }; + return archwayTypes[gArea.dungeon_idx]; }