diff --git a/data/const/object/lightableSwitch.s b/data/const/object/lightableSwitch.s deleted file mode 100644 index 284e98e9..00000000 --- a/data/const/object/lightableSwitch.s +++ /dev/null @@ -1,19 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_081243B4:: @ 081243B4 - .4byte sub_0809EA1C - .4byte sub_0809EB68 - -gUnk_081243BC:: @ 081243BC - .4byte sub_0809EA34 - .4byte sub_0809EA80 - -gUnk_081243C4:: @ 081243C4 - .4byte sub_0809EB80 - .4byte sub_0809EBD8 - .4byte sub_0809EC08 - .4byte nullsub_126 diff --git a/linker.ld b/linker.ld index f6bddc92..44ce7be2 100644 --- a/linker.ld +++ b/linker.ld @@ -1523,7 +1523,7 @@ SECTIONS { src/object/object9B.o(.rodata); data/animations/object/object9B.o(.rodata); src/object/treeHidingPortal.o(.rodata); - data/const/object/lightableSwitch.o(.rodata); + src/object/lightableSwitch.o(.rodata); src/object/fan.o(.rodata); data/animations/object/fan.o(.rodata); src/object/angryStatue.o(.rodata); diff --git a/src/object/lightableSwitch.c b/src/object/lightableSwitch.c index a3680f93..ae10b872 100644 --- a/src/object/lightableSwitch.c +++ b/src/object/lightableSwitch.c @@ -8,21 +8,33 @@ #include "hitbox.h" #include "object.h" -extern void (*const gUnk_081243B4[])(Entity*); -extern void (*const gUnk_081243BC[])(Entity*); -extern void (*const gUnk_081243C4[])(Entity*); - -static void sub_0809EB30(Entity* this); -static void sub_0809EAD8(Entity* this); -static void sub_0809EABC(Entity* this); +static void sub_0809EB30(Entity*); +static void sub_0809EAD8(Entity*); +static void sub_0809EABC(Entity*); +static void sub_0809EA1C(Entity*); +static void sub_0809EB68(Entity*); +static void sub_0809EA34(Entity*); +static void sub_0809EA80(Entity*); +static void nullsub_126(Entity*); +static void sub_0809EC08(Entity*); +static void sub_0809EBD8(Entity*); +static void sub_0809EB80(Entity*); void LightableSwitch(Entity* this) { - gUnk_081243B4[this->type](this); + static void (*const typeFuncs[])(Entity*) = { + sub_0809EA1C, + sub_0809EB68, + }; + typeFuncs[this->type](this); sub_0809EB30(this); } void sub_0809EA1C(Entity* this) { - gUnk_081243BC[this->action](this); + static void (*const actionFuncs[])(Entity*) = { + sub_0809EA34, + sub_0809EA80, + }; + actionFuncs[this->action](this); } void sub_0809EA34(Entity* this) { @@ -93,7 +105,13 @@ static void sub_0809EB30(Entity* this) { } void sub_0809EB68(Entity* this) { - gUnk_081243C4[this->action](this); + static void (*const actionFuncs[])(Entity*) = { + sub_0809EB80, + sub_0809EBD8, + sub_0809EC08, + nullsub_126, + }; + actionFuncs[this->action](this); } void sub_0809EB80(Entity* this) {