summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/region_map.s124
-rw-r--r--include/region_map.h4
-rw-r--r--src/quest_log.c4
-rw-r--r--src/region_map.c56
4 files changed, 60 insertions, 128 deletions
diff --git a/asm/region_map.s b/asm/region_map.s
index 09875ebd6..4f1b771f4 100644
--- a/asm/region_map.s
+++ b/asm/region_map.s
@@ -5,130 +5,6 @@
.text
- thumb_func_start sub_80C4D40
-sub_80C4D40: @ 80C4D40
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _080C4D68 @ =gUnknown_20399D4
- ldr r0, [r0]
- cmp r0, 0
- bne _080C4D70
- cmp r1, 0x5E
- bne _080C4D70
- ldr r0, _080C4D6C @ =gSaveBlock1Ptr
- ldr r1, [r0]
- movs r0, 0x4
- ldrsb r0, [r1, r0]
- cmp r0, 0xA
- bne _080C4D70
- ldrb r0, [r1, 0x5]
- cmp r0, 0x6
- bhi _080C4D70
- movs r0, 0x1
- b _080C4D72
- .align 2, 0
-_080C4D68: .4byte gUnknown_20399D4
-_080C4D6C: .4byte gSaveBlock1Ptr
-_080C4D70:
- movs r0, 0
-_080C4D72:
- pop {r1}
- bx r1
- thumb_func_end sub_80C4D40
-
- thumb_func_start GetMapName
-GetMapName: @ 80C4D78
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 16
- lsls r2, 16
- lsrs r4, r2, 16
- lsrs r0, r1, 16
- ldr r2, _080C4D9C @ =0xffa80000
- adds r1, r2
- lsrs r5, r1, 16
- cmp r5, 0x6C
- bhi _080C4DBC
- bl sub_80C4D40
- cmp r0, 0x1
- bne _080C4DA4
- ldr r1, _080C4DA0 @ =gMapSecName_CeladonDept
- b _080C4DAC
- .align 2, 0
-_080C4D9C: .4byte 0xffa80000
-_080C4DA0: .4byte gMapSecName_CeladonDept
-_080C4DA4:
- ldr r0, _080C4DB8 @ =gUnknown_83F1CAC
- lsls r1, r5, 2
- adds r1, r0
- ldr r1, [r1]
-_080C4DAC:
- adds r0, r6, 0
- bl StringCopy
- adds r1, r0, 0
- b _080C4DCE
- .align 2, 0
-_080C4DB8: .4byte gUnknown_83F1CAC
-_080C4DBC:
- cmp r4, 0
- bne _080C4DC2
- movs r4, 0x12
-_080C4DC2:
- adds r0, r6, 0
- movs r1, 0
- adds r2, r4, 0
- bl StringFill
- b _080C4DF2
-_080C4DCE:
- cmp r4, 0
- beq _080C4DF0
- subs r0, r1, r6
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r4
- bcs _080C4DEC
- movs r2, 0
-_080C4DDE:
- strb r2, [r1]
- adds r1, 0x1
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r4
- bcc _080C4DDE
-_080C4DEC:
- movs r0, 0xFF
- strb r0, [r1]
-_080C4DF0:
- adds r0, r1, 0
-_080C4DF2:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetMapName
-
- thumb_func_start GetMapNameGeneric
-GetMapNameGeneric: @ 80C4DF8
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0
- bl GetMapName
- pop {r1}
- bx r1
- thumb_func_end GetMapNameGeneric
-
- thumb_func_start sub_80C4E08
-sub_80C4E08: @ 80C4E08
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- bl GetMapNameGeneric
- pop {r1}
- bx r1
- thumb_func_end sub_80C4E08
-
thumb_func_start sub_80C4E18
sub_80C4E18: @ 80C4E18
push {r4,lr}
diff --git a/include/region_map.h b/include/region_map.h
index 67287b6c4..76195a3af 100644
--- a/include/region_map.h
+++ b/include/region_map.h
@@ -92,9 +92,9 @@ void FreeRegionMapIconResources(void);
u16 GetRegionMapSectionIdAt(u16 x, u16 y);
void CreateRegionMapPlayerIcon(u16 x, u16 y);
void CreateRegionMapCursor(u16 tileTag, u16 paletteTag);
-u8 *GetMapName(u8 *, u16, u16);
+u8 *GetMapName(u8 *dest, u16 mapsec, u16 fill);
bool32 sub_8124668(u8 mapSecId);
-void GetMapNameGeneric(u8 *, u8);
+u8 *GetMapNameGeneric(u8 *dest, u16 mapsec);
void sub_80BFF50(u8 a0, void (*a1)(void));
void MCB2_FlyMap(void);
diff --git a/src/quest_log.c b/src/quest_log.c
index 970071a0f..4d94c78ad 100644
--- a/src/quest_log.c
+++ b/src/quest_log.c
@@ -3119,7 +3119,7 @@ static const u16 *sub_8113FBC(const u16 *a0)
StringCopy(gStringVar1, ItemId_GetName(r5[0]));
if (r5[0] == ITEM_ESCAPE_ROPE)
{
- GetMapNameGeneric(gStringVar2, r5[2]);
+ GetMapNameGeneric(gStringVar2, (u8)r5[2]);
StringExpandPlaceholders(gStringVar4, gUnknown_841AFA6);
}
else if (r5[1] != 0xFFFF)
@@ -4373,7 +4373,7 @@ static u16 *sub_81157DC(u16 *a0, const u16 *a1)
static const u16 *sub_8115800(const u16 *a0)
{
const u16 *r4 = sub_8113E88(42, a0);
- GetMapNameGeneric(gStringVar1, r4[0]);
+ GetMapNameGeneric(gStringVar1, (u8)r4[0]);
StringExpandPlaceholders(gStringVar4, gUnknown_841B064);
return r4 + 1;
}
diff --git a/src/region_map.c b/src/region_map.c
index e19e8e151..6678a226a 100644
--- a/src/region_map.c
+++ b/src/region_map.c
@@ -3213,3 +3213,59 @@ void sub_80C4D30(void)
sub_80C4BB8();
sub_80C4BE4();
}
+
+bool32 sub_80C4D40(u16 a0)
+{
+ if (gUnknown_20399D4 != NULL)
+ return FALSE;
+ if (a0 != MAPSEC_CELADON_CITY)
+ return FALSE;
+ if (gSaveBlock1Ptr->location.mapGroup != MAP_GROUP(CELADON_CITY_DEPARTMENT_STORE_1F))
+ return FALSE;
+ if (gSaveBlock1Ptr->location.mapNum != MAP_NUM(CELADON_CITY_DEPARTMENT_STORE_1F)
+ && gSaveBlock1Ptr->location.mapNum != MAP_NUM(CELADON_CITY_DEPARTMENT_STORE_2F)
+ && gSaveBlock1Ptr->location.mapNum != MAP_NUM(CELADON_CITY_DEPARTMENT_STORE_3F)
+ && gSaveBlock1Ptr->location.mapNum != MAP_NUM(CELADON_CITY_DEPARTMENT_STORE_4F)
+ && gSaveBlock1Ptr->location.mapNum != MAP_NUM(CELADON_CITY_DEPARTMENT_STORE_5F)
+ && gSaveBlock1Ptr->location.mapNum != MAP_NUM(CELADON_CITY_DEPARTMENT_STORE_ROOF)
+ && gSaveBlock1Ptr->location.mapNum != MAP_NUM(CELADON_CITY_DEPARTMENT_STORE_ELEVATOR))
+ return FALSE;
+ return TRUE;
+}
+
+u8 *GetMapName(u8 *dst0, u16 mapsec, u16 fill)
+{
+ u8 *dst;
+ u16 i;
+ u16 idx;;
+ if ((idx = mapsec - MAPSECS_KANTO) <= MAPSEC_SPECIAL_AREA - MAPSECS_KANTO)
+ {
+ if (sub_80C4D40(mapsec) == TRUE)
+ dst = StringCopy(dst0, gMapSecName_CeladonDept);
+ else
+ dst = StringCopy(dst0, gUnknown_83F1CAC[idx]);
+ }
+ else
+ {
+ if (fill == 0)
+ fill = 18;
+ return StringFill(dst0, CHAR_SPACE, fill);
+ }
+ if (fill != 0)
+ {
+ for (i = dst - dst0; i < fill; i++)
+ *dst++ = CHAR_SPACE;
+ *dst = EOS;
+ }
+ return dst;
+}
+
+u8 *GetMapNameGeneric(u8 *dest, u16 mapsec)
+{
+ return GetMapName(dest, mapsec, 0);
+}
+
+u8 *sub_80C4E08(u8 *dest, u16 mapsec)
+{
+ return GetMapNameGeneric(dest, mapsec);
+}