summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/pokemon_summary_screen.s249
-rw-r--r--include/strings.h8
-rw-r--r--src/pokemon_summary_screen.c97
3 files changed, 104 insertions, 250 deletions
diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s
index baa676bdd..a66b1ecb5 100644
--- a/asm/pokemon_summary_screen.s
+++ b/asm/pokemon_summary_screen.s
@@ -5,255 +5,6 @@
.text
- thumb_func_start sub_8137724
-sub_8137724: @ 8137724
- push {r4-r6,lr}
- sub sp, 0xD4
- bl DynamicPlaceholderTextUtil_Reset
- ldr r5, _081377A0 @ =gMonSummaryScreen
- ldr r0, [r5]
- ldr r4, _081377A4 @ =0x00003290
- adds r0, r4
- bl GetNature
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _081377A8 @ =gNatureNamePointers
- lsls r0, r6, 2
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- ldr r0, [r5]
- adds r0, r4
- movs r1, 0x24
- bl GetMonData
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _0813775E
- movs r1, 0x5
-_0813775E:
- add r0, sp, 0x14
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- movs r0, 0x1
- add r1, sp, 0x14
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- ldr r0, [r5]
- adds r0, r4
- movs r1, 0x23
- bl GetMonData
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_813B838
- cmp r0, 0
- beq _08137790
- bl sub_813B7F8
- cmp r0, 0
- bne _08137830
-_08137790:
- bl sub_8138B4C
- cmp r0, 0x1
- bne _081377AC
- bl sub_8137578
- b _0813792C
- .align 2, 0
-_081377A0: .4byte gMonSummaryScreen
-_081377A4: .4byte 0x00003290
-_081377A8: .4byte gNatureNamePointers
-_081377AC:
- cmp r5, 0xFF
- bne _081377D0
- adds r0, r6, 0
- bl sub_813B7E0
- cmp r0, 0
- beq _081377C4
- add r4, sp, 0x3C
- ldr r1, _081377C0 @ =gUnknown_84197ED
- b _081377DE
- .align 2, 0
-_081377C0: .4byte gUnknown_84197ED
-_081377C4:
- add r4, sp, 0x3C
- ldr r1, _081377CC @ =gUnknown_84197B8
- b _081377DE
- .align 2, 0
-_081377CC: .4byte gUnknown_84197B8
-_081377D0:
- adds r0, r6, 0
- bl sub_813B7E0
- cmp r0, 0
- beq _081377EC
- add r4, sp, 0x3C
- ldr r1, _081377E8 @ =gUnknown_841979D
-_081377DE:
- adds r0, r4, 0
- bl DynamicPlaceholderTextUtil_ExpandPlaceholders
- b _081377F6
- .align 2, 0
-_081377E8: .4byte gUnknown_841979D
-_081377EC:
- add r4, sp, 0x3C
- ldr r1, _08137820 @ =gUnknown_8419782
- adds r0, r4, 0
- bl DynamicPlaceholderTextUtil_ExpandPlaceholders
-_081377F6:
- ldr r0, _08137824 @ =gMonSummaryScreen
- ldr r0, [r0]
- ldr r1, _08137828 @ =0x00003004
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- ldr r1, _0813782C @ =gUnknown_8463FA4
- str r1, [sp, 0x8]
- movs r1, 0x1
- negs r1, r1
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x3
- bl AddTextPrinterParameterized4
- b _0813792C
- .align 2, 0
-_08137820: .4byte gUnknown_8419782
-_08137824: .4byte gMonSummaryScreen
-_08137828: .4byte 0x00003004
-_0813782C: .4byte gUnknown_8463FA4
-_08137830:
- adds r0, r5, 0
- bl sub_813B838
- cmp r0, 0x1
- bne _08137846
- add r4, sp, 0x1C
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetMapNameGeneric_
- b _08137850
-_08137846:
- add r4, sp, 0x1C
- ldr r1, _0813788C @ =gUnknown_8419C0B
- adds r0, r4, 0
- bl StringCopy
-_08137850:
- adds r1, r4, 0
- movs r0, 0x2
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- ldr r4, _08137890 @ =gMonSummaryScreen
- ldr r0, [r4]
- ldr r1, _08137894 @ =0x00003290
- adds r0, r1
- movs r1, 0x24
- bl GetMonData
- cmp r0, 0
- bne _081378BC
- ldr r0, [r4]
- ldr r1, _08137894 @ =0x00003290
- adds r0, r1
- movs r1, 0x50
- bl GetMonData
- cmp r0, 0x1
- bne _081378A8
- adds r0, r6, 0
- bl sub_813B7E0
- cmp r0, 0
- beq _0813789C
- add r4, sp, 0x3C
- ldr r1, _08137898 @ =gUnknown_84199F4
- b _081378EE
- .align 2, 0
-_0813788C: .4byte gUnknown_8419C0B
-_08137890: .4byte gMonSummaryScreen
-_08137894: .4byte 0x00003290
-_08137898: .4byte gUnknown_84199F4
-_0813789C:
- add r4, sp, 0x3C
- ldr r1, _081378A4 @ =gUnknown_84199AB
- b _081378EE
- .align 2, 0
-_081378A4: .4byte gUnknown_84199AB
-_081378A8:
- adds r0, r6, 0
- bl sub_813B7E0
- cmp r0, 0
- bne _081378EA
- add r4, sp, 0x3C
- ldr r1, _081378B8 @ =gUnknown_8419860
- b _081378EE
- .align 2, 0
-_081378B8: .4byte gUnknown_8419860
-_081378BC:
- cmp r5, 0xFF
- bne _081378E0
- adds r0, r6, 0
- bl sub_813B7E0
- cmp r0, 0
- beq _081378D4
- add r4, sp, 0x3C
- ldr r1, _081378D0 @ =gUnknown_84197ED
- b _081378EE
- .align 2, 0
-_081378D0: .4byte gUnknown_84197ED
-_081378D4:
- add r4, sp, 0x3C
- ldr r1, _081378DC @ =gUnknown_84197B8
- b _081378EE
- .align 2, 0
-_081378DC: .4byte gUnknown_84197B8
-_081378E0:
- adds r0, r6, 0
- bl sub_813B7E0
- cmp r0, 0
- beq _081378FC
-_081378EA:
- add r4, sp, 0x3C
- ldr r1, _081378F8 @ =gUnknown_841988A
-_081378EE:
- adds r0, r4, 0
- bl DynamicPlaceholderTextUtil_ExpandPlaceholders
- b _08137906
- .align 2, 0
-_081378F8: .4byte gUnknown_841988A
-_081378FC:
- add r4, sp, 0x3C
- ldr r1, _08137934 @ =gUnknown_8419860
- adds r0, r4, 0
- bl DynamicPlaceholderTextUtil_ExpandPlaceholders
-_08137906:
- ldr r0, _08137938 @ =gMonSummaryScreen
- ldr r0, [r0]
- ldr r1, _0813793C @ =0x00003004
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- ldr r1, _08137940 @ =gUnknown_8463FA4
- str r1, [sp, 0x8]
- movs r1, 0x1
- negs r1, r1
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x3
- bl AddTextPrinterParameterized4
-_0813792C:
- add sp, 0xD4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08137934: .4byte gUnknown_8419860
-_08137938: .4byte gMonSummaryScreen
-_0813793C: .4byte 0x00003004
-_08137940: .4byte gUnknown_8463FA4
- thumb_func_end sub_8137724
-
thumb_func_start sub_8137944
sub_8137944: @ 8137944
push {lr}
diff --git a/include/strings.h b/include/strings.h
index df6162227..fbd91e98c 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -1489,5 +1489,11 @@ extern const u8 gUnknown_84197ED[];
extern const u8 gUnknown_84197B8[];
extern const u8 gUnknown_8419841[];
extern const u8 gUnknown_8419822[];
-
+extern const u8 gUnknown_841979D[];
+extern const u8 gUnknown_8419782[];
+extern const u8 gUnknown_84199F4[];
+extern const u8 gUnknown_84199AB[];
+extern const u8 gUnknown_8419860[];
+extern const u8 gUnknown_841988A[];
+
#endif //GUARD_STRINGS_H
diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c
index 7bfa7bb26..1059b2024 100644
--- a/src/pokemon_summary_screen.c
+++ b/src/pokemon_summary_screen.c
@@ -105,6 +105,8 @@ extern void sub_8137970(void);
extern bool32 sub_813B838(u8 metLocation);
extern bool32 sub_8138B4C(void);
extern bool32 sub_813B7E0(u8 nature);
+void sub_8137724(void);
+extern bool32 sub_813B7F8(void);
struct PokemonSummaryScreenData {
u16 unk0[0x800];
@@ -1993,3 +1995,98 @@ void sub_8137578(void)
AddTextPrinterParameterized4(gMonSummaryScreen->unk3000[4], 2, 0, 3, 0, 0, gUnknown_8463FA4[0], TEXT_SPEED_FF, natureMetOrHatchedAtLevelStr);
}
+
+void sub_8137724(void)
+{
+ u8 nature;
+ u8 level;
+ u8 metLocation;
+ u8 levelStr[5];
+ u8 mapNameStr[32];
+ u8 natureMetOrHatchedAtLevelStr[152];
+
+ DynamicPlaceholderTextUtil_Reset();
+ nature = GetNature(&gMonSummaryScreen->currentMon);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gNatureNamePointers[nature]);
+
+ level = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_MET_LEVEL);
+
+ if (level == 0)
+ level = 5;
+
+ ConvertIntToDecimalStringN(levelStr, level, STR_CONV_MODE_LEFT_ALIGN, 3);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, levelStr);
+
+ metLocation = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_MET_LOCATION);
+
+ if (!sub_813B838(metLocation) || !sub_813B7F8())
+ {
+ if (sub_8138B4C() == TRUE)
+ {
+ sub_8137578();
+ return;
+ }
+
+ if (metLocation == METLOC_FATEFUL_ENCOUNTER)
+ {
+ if (sub_813B7E0(nature))
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_84197ED);
+ else
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_84197B8);
+ }
+ else
+ {
+ if (sub_813B7E0(nature))
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_841979D);
+ else
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_8419782);
+ }
+
+ AddTextPrinterParameterized4(gMonSummaryScreen->unk3000[4], 2, 0, 3, 0, 0, gUnknown_8463FA4[0], TEXT_SPEED_FF, natureMetOrHatchedAtLevelStr);
+ return;
+ }
+
+ if (sub_813B838(metLocation) == TRUE)
+ GetMapNameGeneric_(mapNameStr, metLocation);
+ else
+ StringCopy(mapNameStr, gUnknown_8419C0B);
+
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, mapNameStr);
+
+ if (GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_MET_LEVEL) == 0)
+ {
+ if (GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_OBEDIENCE) == 1)
+ {
+ if (sub_813B7E0(nature))
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_84199F4);
+ else
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_84199AB);
+ }
+ else
+ {
+ if (sub_813B7E0(nature))
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_841988A);
+ else
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_8419860);
+ }
+ }
+ else
+ {
+ if (metLocation == METLOC_FATEFUL_ENCOUNTER)
+ {
+ if (sub_813B7E0(nature))
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_84197ED);
+ else
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_84197B8);
+ }
+ else
+ {
+ if (sub_813B7E0(nature))
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_841988A);
+ else
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_8419860);
+ }
+ }
+
+ AddTextPrinterParameterized4(gMonSummaryScreen->unk3000[4], 2, 0, 3, 0, 0, gUnknown_8463FA4[0], TEXT_SPEED_FF, natureMetOrHatchedAtLevelStr);
+}