diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-06-11 14:32:12 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2019-06-11 14:32:12 -0400 |
commit | c5c9e358075a4f891e50614c6e2b0e0c989eafeb (patch) | |
tree | 8ae5f2f07c46eb06d47adee149a0285bc0a19793 | |
parent | 34368a82813c11d30cbac51840810c9691f46809 (diff) |
help_system_812B1E0: through sub_812B27C
-rw-r--r-- | asm/help_system_812B1E0.s | 65 | ||||
-rw-r--r-- | data/help_system_812B1E0.s | 4 | ||||
-rw-r--r-- | src/help_system_812B1E0.c | 31 |
3 files changed, 33 insertions, 67 deletions
diff --git a/asm/help_system_812B1E0.s b/asm/help_system_812B1E0.s index b360bf72b..239b25afb 100644 --- a/asm/help_system_812B1E0.s +++ b/asm/help_system_812B1E0.s @@ -5,71 +5,6 @@ .text - thumb_func_start sub_812B25C -sub_812B25C: @ 812B25C - push {lr} - ldr r0, _0812B268 @ =gUnknown_845C594 - bl sub_812B27C - pop {r1} - bx r1 - .align 2, 0 -_0812B268: .4byte gUnknown_845C594 - thumb_func_end sub_812B25C - - thumb_func_start sub_812B26C -sub_812B26C: @ 812B26C - push {lr} - ldr r0, _0812B278 @ =gUnknown_845C5BC - bl sub_812B27C - pop {r1} - bx r1 - .align 2, 0 -_0812B278: .4byte gUnknown_845C5BC - thumb_func_end sub_812B26C - - thumb_func_start sub_812B27C -sub_812B27C: @ 812B27C - push {r4,lr} - adds r2, r0, 0 - ldr r0, _0812B2AC @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x4 - ldrsb r1, [r0, r1] - lsls r1, 8 - ldrb r0, [r0, 0x5] - lsls r0, 24 - asrs r0, 24 - adds r0, r1 - lsls r0, 16 - lsrs r3, r0, 16 - ldrh r0, [r2] - ldr r1, _0812B2B0 @ =0x0000ffff - cmp r0, r1 - beq _0812B2BC - adds r4, r1, 0 - adds r1, r2, 0 -_0812B2A2: - ldrh r0, [r1] - cmp r0, r3 - bne _0812B2B4 - movs r0, 0x1 - b _0812B2BE - .align 2, 0 -_0812B2AC: .4byte gSaveBlock1Ptr -_0812B2B0: .4byte 0x0000ffff -_0812B2B4: - adds r1, 0x2 - ldrh r0, [r1] - cmp r0, r4 - bne _0812B2A2 -_0812B2BC: - movs r0, 0 -_0812B2BE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_812B27C - thumb_func_start sub_812B2C4 sub_812B2C4: @ 812B2C4 push {r4-r7,lr} diff --git a/data/help_system_812B1E0.s b/data/help_system_812B1E0.s index 1859b6a55..14eed797a 100644 --- a/data/help_system_812B1E0.s +++ b/data/help_system_812B1E0.s @@ -72,7 +72,7 @@ gUnknown_845C594:: @ 845C594 .2byte MAP_FOUR_ISLAND_MART .2byte MAP_SEVEN_ISLAND_MART .2byte MAP_SIX_ISLAND_MART - .2byte 0xffff + .2byte MAP_UNDEFINED gUnknown_845C5BC:: @ 845C5BC .2byte MAP_PEWTER_CITY_GYM @@ -83,7 +83,7 @@ gUnknown_845C5BC:: @ 845C5BC .2byte MAP_SAFFRON_CITY_GYM .2byte MAP_CINNABAR_ISLAND_GYM .2byte MAP_VIRIDIAN_CITY_GYM - .2byte 0xffff + .2byte MAP_UNDEFINED gUnknown_845C5CE:: @ 845C5CE .byte 0x01, 0x00, 0x01 @ MAP_VIRIDIAN_FOREST diff --git a/src/help_system_812B1E0.c b/src/help_system_812B1E0.c index f1d55276b..4477352d9 100644 --- a/src/help_system_812B1E0.c +++ b/src/help_system_812B1E0.c @@ -1,11 +1,17 @@ #include "global.h" #include "event_data.h" +#include "constants/maps.h" EWRAM_DATA u16 gUnknown_203B0EC = 0; EWRAM_DATA u8 gUnknown_203B0EE = 0; u16 gUnknown_3005EA0; +bool32 sub_812B27C(const u16 * mapIdxs); + +extern const u16 gUnknown_845C594[]; // marts +extern const u16 gUnknown_845C5BC[]; // gyms + void sub_812B1E0(u8 a0) { gUnknown_203B0EC = a0; @@ -42,3 +48,28 @@ void sub_812B248(void) { gUnknown_203B0EC = gUnknown_3005EA0; } + +bool32 sub_812B25C(void) +{ + return sub_812B27C(gUnknown_845C594); +} + +bool32 sub_812B26C(void) +{ + return sub_812B27C(gUnknown_845C5BC); +} + +bool32 sub_812B27C(const u16 * mapIdxs) +{ + u16 mapIdx = (gSaveBlock1Ptr->location.mapGroup << 8) + gSaveBlock1Ptr->location.mapNum; + s32 i; + + for (i = 0; mapIdxs[i] != MAP_UNDEFINED; i++) + { + if (mapIdxs[i] == mapIdx) + return TRUE; + } + + return FALSE; +} + |