diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-04-12 09:55:41 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2019-04-12 09:55:41 -0400 |
commit | 02974254affdcffb0cf8f44bd094ba5c9d320d4a (patch) | |
tree | a9024dec0f0726a0e0e5a442a2319a75f2da5edb | |
parent | 903fcde223d71a105ae888aa7faeceb9ed811039 (diff) |
coord_event_weather
-rw-r--r-- | asm/coord_event_weather.s | 105 | ||||
-rw-r--r-- | data/data_835B488.s | 3 | ||||
-rw-r--r-- | ld_script.txt | 3 | ||||
-rw-r--r-- | src/coord_event_weather.c | 47 |
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; + } + } +} |