diff options
-rw-r--r-- | asm/pokemon_summary_screen.s | 249 | ||||
-rw-r--r-- | include/strings.h | 8 | ||||
-rw-r--r-- | src/pokemon_summary_screen.c | 97 |
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); +} |