summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTal Hayon <talhayon1@gmail.com>2022-04-18 00:45:50 +0300
committerTal Hayon <talhayon1@gmail.com>2022-04-18 00:45:50 +0300
commitdffed216136c79b27e416bbacf34e9038bbb5b8e (patch)
tree90c3327bb87cf4f07c38692cfba484058eae92df
parent017b419abd2b1b8fb66ffa56b914b46317ecded5 (diff)
Put const data in lighttableSwitch
-rw-r--r--data/const/object/lightableSwitch.s19
-rw-r--r--linker.ld2
-rw-r--r--src/object/lightableSwitch.c38
3 files changed, 29 insertions, 30 deletions
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) {