summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2019-04-12 09:55:41 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2019-04-12 09:55:41 -0400
commit02974254affdcffb0cf8f44bd094ba5c9d320d4a (patch)
treea9024dec0f0726a0e0e5a442a2319a75f2da5edb
parent903fcde223d71a105ae888aa7faeceb9ed811039 (diff)
coord_event_weather
-rw-r--r--asm/coord_event_weather.s105
-rw-r--r--data/data_835B488.s3
-rw-r--r--ld_script.txt3
-rw-r--r--src/coord_event_weather.c47
4 files changed, 49 insertions, 109 deletions
diff --git a/asm/coord_event_weather.s b/asm/coord_event_weather.s
deleted file mode 100644
index 8c987c6e2..000000000
--- a/asm/coord_event_weather.s
+++ /dev/null
@@ -1,105 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start nullsub_27
-nullsub_27: @ 806E7A8
- bx lr
- thumb_func_end nullsub_27
-
- thumb_func_start nullsub_28
-nullsub_28: @ 806E7AC
- bx lr
- thumb_func_end nullsub_28
-
- thumb_func_start nullsub_29
-nullsub_29: @ 806E7B0
- bx lr
- thumb_func_end nullsub_29
-
- thumb_func_start nullsub_30
-nullsub_30: @ 806E7B4
- bx lr
- thumb_func_end nullsub_30
-
- thumb_func_start nullsub_31
-nullsub_31: @ 806E7B8
- bx lr
- thumb_func_end nullsub_31
-
- thumb_func_start nullsub_32
-nullsub_32: @ 806E7BC
- bx lr
- thumb_func_end nullsub_32
-
- thumb_func_start nullsub_33
-nullsub_33: @ 806E7C0
- bx lr
- thumb_func_end nullsub_33
-
- thumb_func_start nullsub_34
-nullsub_34: @ 806E7C4
- bx lr
- thumb_func_end nullsub_34
-
- thumb_func_start nullsub_35
-nullsub_35: @ 806E7C8
- bx lr
- thumb_func_end nullsub_35
-
- thumb_func_start nullsub_36
-nullsub_36: @ 806E7CC
- bx lr
- thumb_func_end nullsub_36
-
- thumb_func_start nullsub_37
-nullsub_37: @ 806E7D0
- bx lr
- thumb_func_end nullsub_37
-
- thumb_func_start nullsub_38
-nullsub_38: @ 806E7D4
- bx lr
- thumb_func_end nullsub_38
-
- thumb_func_start nullsub_39
-nullsub_39: @ 806E7D8
- bx lr
- thumb_func_end nullsub_39
-
- thumb_func_start trigger_activate_weather
-trigger_activate_weather: @ 806E7DC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r2, 0
- ldr r3, _0806E7FC @ =gUnknown_83A72A8
-_0806E7E6:
- lsls r1, r2, 3
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r4
- bne _0806E800
- adds r0, r3, 0x4
- adds r0, r1, r0
- ldr r0, [r0]
- bl _call_via_r0
- b _0806E80A
- .align 2, 0
-_0806E7FC: .4byte gUnknown_83A72A8
-_0806E800:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xC
- bls _0806E7E6
-_0806E80A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end trigger_activate_weather
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/data/data_835B488.s b/data/data_835B488.s
index bcda20bb0..4377d5ef7 100644
--- a/data/data_835B488.s
+++ b/data/data_835B488.s
@@ -1,8 +1,5 @@
.section .rodata
.align 2
-gUnknown_83A72A8:: @ 83A72A8
- .incbin "baserom.gba", 0x3A72A8, 0x68
-
gUnknown_83A7310:: @ 83A7310
.incbin "baserom.gba", 0x3A7310, 0x20
diff --git a/ld_script.txt b/ld_script.txt
index 67f554b7e..9b15cb474 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -106,7 +106,7 @@ SECTIONS {
src/scrcmd.o(.text);
asm/field_control_avatar.o(.text);
asm/event_data.o(.text);
- asm/coord_event_weather.o(.text);
+ src/coord_event_weather.o(.text);
asm/field_tasks.o(.text);
asm/start_menu.o(.text);
asm/tileset_anims.o(.text);
@@ -376,6 +376,7 @@ SECTIONS {
data/field_ground_effect.o(.rodata);
data/map_obj_80688E4.o(.rodata);
src/scrcmd.o(.rodata);
+ src/coord_event_weather.o(.rodata);
data/data_835B488.o(.rodata);
src/battle_ai_script_commands.o(.rodata);
data/data_83F5738.o(.rodata);
diff --git a/src/coord_event_weather.c b/src/coord_event_weather.c
new file mode 100644
index 000000000..4dbdd574b
--- /dev/null
+++ b/src/coord_event_weather.c
@@ -0,0 +1,47 @@
+#include "global.h"
+
+void nullsub_27(void) {}
+void nullsub_28(void) {}
+void nullsub_29(void) {}
+void nullsub_30(void) {}
+void nullsub_31(void) {}
+void nullsub_32(void) {}
+void nullsub_33(void) {}
+void nullsub_34(void) {}
+void nullsub_35(void) {}
+void nullsub_36(void) {}
+void nullsub_37(void) {}
+void nullsub_38(void) {}
+void nullsub_39(void) {}
+
+struct {
+ u8 weatherId;
+ void (*callback)(void);
+} const gUnknown_83A72A8[] = {
+ {0x01, nullsub_27},
+ {0x02, nullsub_28},
+ {0x03, nullsub_29},
+ {0x04, nullsub_30},
+ {0x05, nullsub_31},
+ {0x06, nullsub_32},
+ {0x07, nullsub_33},
+ {0x08, nullsub_34},
+ {0x09, nullsub_35},
+ {0x0a, nullsub_36},
+ {0x0b, nullsub_37},
+ {0x14, nullsub_38},
+ {0x15, nullsub_39}
+};
+
+void trigger_activate_weather(u8 weatherId)
+{
+ u8 i;
+ for (i = 0; i < NELEMS(gUnknown_83A72A8); i++)
+ {
+ if (gUnknown_83A72A8[i].weatherId == weatherId)
+ {
+ gUnknown_83A72A8[i].callback();
+ return;
+ }
+ }
+}