summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2019-06-11 14:32:12 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2019-06-11 14:32:12 -0400
commitc5c9e358075a4f891e50614c6e2b0e0c989eafeb (patch)
tree8ae5f2f07c46eb06d47adee149a0285bc0a19793
parent34368a82813c11d30cbac51840810c9691f46809 (diff)
help_system_812B1E0: through sub_812B27C
-rw-r--r--asm/help_system_812B1E0.s65
-rw-r--r--data/help_system_812B1E0.s4
-rw-r--r--src/help_system_812B1E0.c31
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;
+}
+