pokemon_summary_screen.c, part 8.
This commit is contained in:
@@ -5,323 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8137944
|
||||
sub_8137944: @ 8137944
|
||||
push {lr}
|
||||
ldr r0, _08137960 @ =gMonSummaryScreen
|
||||
ldr r0, [r0]
|
||||
ldr r1, _08137964 @ =0x00003290
|
||||
adds r0, r1
|
||||
bl sub_813847C
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _08137968
|
||||
bl sub_8137578
|
||||
b _0813796C
|
||||
.align 2, 0
|
||||
_08137960: .4byte gMonSummaryScreen
|
||||
_08137964: .4byte 0x00003290
|
||||
_08137968:
|
||||
bl sub_8137724
|
||||
_0813796C:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8137944
|
||||
|
||||
thumb_func_start sub_8137970
|
||||
sub_8137970: @ 8137970
|
||||
push {r4-r7,lr}
|
||||
sub sp, 0x14
|
||||
movs r5, 0
|
||||
ldr r7, _081379C4 @ =gMonSummaryScreen
|
||||
ldr r0, [r7]
|
||||
ldr r6, _081379C8 @ =0x00003290
|
||||
adds r0, r6
|
||||
movs r1, 0x23
|
||||
bl GetMonData
|
||||
lsls r0, 24
|
||||
lsrs r4, r0, 24
|
||||
ldr r2, [r7]
|
||||
ldr r1, _081379CC @ =0x000032f4
|
||||
adds r0, r2, r1
|
||||
ldr r1, [r0]
|
||||
ldr r0, _081379D0 @ =gEnemyParty
|
||||
cmp r1, r0
|
||||
beq _081379E4
|
||||
cmp r4, 0xFF
|
||||
beq _081379F4
|
||||
adds r0, r2, r6
|
||||
movs r1, 0x50
|
||||
bl GetMonData
|
||||
cmp r0, 0x1
|
||||
beq _081379F4
|
||||
ldr r0, [r7]
|
||||
adds r0, r6
|
||||
movs r1, 0x25
|
||||
bl GetMonData
|
||||
lsls r0, 24
|
||||
movs r2, 0xFC
|
||||
lsls r2, 24
|
||||
adds r0, r2
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bls _081379D4
|
||||
movs r5, 0x1
|
||||
b _081379DE
|
||||
.align 2, 0
|
||||
_081379C4: .4byte gMonSummaryScreen
|
||||
_081379C8: .4byte 0x00003290
|
||||
_081379CC: .4byte 0x000032f4
|
||||
_081379D0: .4byte gEnemyParty
|
||||
_081379D4:
|
||||
cmp r4, 0xFD
|
||||
bne _081379DA
|
||||
movs r5, 0x2
|
||||
_081379DA:
|
||||
cmp r5, 0
|
||||
beq _08137A1E
|
||||
_081379DE:
|
||||
cmp r5, 0x2
|
||||
bne _08137A36
|
||||
b _08137A1E
|
||||
_081379E4:
|
||||
cmp r4, 0xFF
|
||||
beq _081379F4
|
||||
adds r0, r2, r6
|
||||
movs r1, 0x50
|
||||
bl GetMonData
|
||||
cmp r0, 0x1
|
||||
bne _081379F8
|
||||
_081379F4:
|
||||
movs r5, 0x4
|
||||
b _08137A36
|
||||
_081379F8:
|
||||
ldr r0, [r7]
|
||||
adds r0, r6
|
||||
movs r1, 0x25
|
||||
bl GetMonData
|
||||
lsls r0, 24
|
||||
movs r2, 0xFC
|
||||
lsls r2, 24
|
||||
adds r0, r2
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bls _08137A18
|
||||
cmp r4, 0xFD
|
||||
bne _08137A1E
|
||||
movs r5, 0x5
|
||||
b _08137A1E
|
||||
_08137A18:
|
||||
cmp r4, 0xFD
|
||||
bne _08137A1E
|
||||
movs r5, 0x2
|
||||
_08137A1E:
|
||||
ldr r0, _08137A78 @ =gMonSummaryScreen
|
||||
ldr r0, [r0]
|
||||
ldr r1, _08137A7C @ =0x00003290
|
||||
adds r0, r1
|
||||
bl sub_813847C
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08137A36
|
||||
adds r0, r5, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
_08137A36:
|
||||
ldr r0, _08137A78 @ =gMonSummaryScreen
|
||||
ldr r1, [r0]
|
||||
ldr r2, _08137A80 @ =0x00003204
|
||||
adds r0, r1, r2
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _08137A46
|
||||
movs r5, 0
|
||||
_08137A46:
|
||||
ldr r2, _08137A84 @ =0x00003004
|
||||
adds r0, r1, r2
|
||||
ldrb r0, [r0]
|
||||
movs r1, 0
|
||||
str r1, [sp]
|
||||
str r1, [sp, 0x4]
|
||||
ldr r1, _08137A88 @ =gUnknown_8463FA4
|
||||
str r1, [sp, 0x8]
|
||||
movs r1, 0x1
|
||||
negs r1, r1
|
||||
str r1, [sp, 0xC]
|
||||
ldr r2, _08137A8C @ =gUnknown_8463ED4
|
||||
lsls r1, r5, 2
|
||||
adds r1, r2
|
||||
ldr r1, [r1]
|
||||
str r1, [sp, 0x10]
|
||||
movs r1, 0x2
|
||||
movs r2, 0
|
||||
movs r3, 0x3
|
||||
bl AddTextPrinterParameterized4
|
||||
add sp, 0x14
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08137A78: .4byte gMonSummaryScreen
|
||||
_08137A7C: .4byte 0x00003290
|
||||
_08137A80: .4byte 0x00003204
|
||||
_08137A84: .4byte 0x00003004
|
||||
_08137A88: .4byte gUnknown_8463FA4
|
||||
_08137A8C: .4byte gUnknown_8463ED4
|
||||
thumb_func_end sub_8137970
|
||||
|
||||
thumb_func_start sub_8137A90
|
||||
sub_8137A90: @ 8137A90
|
||||
push {r4-r6,lr}
|
||||
mov r6, r8
|
||||
push {r6}
|
||||
sub sp, 0xC
|
||||
ldr r0, _08137AE4 @ =gMonSummaryScreen
|
||||
mov r8, r0
|
||||
ldr r0, [r0]
|
||||
ldr r6, _08137AE8 @ =0x00003004
|
||||
adds r0, r6
|
||||
ldrb r0, [r0]
|
||||
ldr r5, _08137AEC @ =gUnknown_8463FA4
|
||||
str r5, [sp]
|
||||
movs r4, 0x1
|
||||
negs r4, r4
|
||||
str r4, [sp, 0x4]
|
||||
ldr r1, _08137AF0 @ =gUnknown_8419C4D
|
||||
str r1, [sp, 0x8]
|
||||
movs r1, 0x2
|
||||
movs r2, 0x1A
|
||||
movs r3, 0x7
|
||||
bl AddTextPrinterParameterized3
|
||||
mov r1, r8
|
||||
ldr r0, [r1]
|
||||
adds r0, r6
|
||||
ldrb r0, [r0]
|
||||
str r5, [sp]
|
||||
str r4, [sp, 0x4]
|
||||
ldr r1, _08137AF4 @ =gUnknown_8419C59
|
||||
str r1, [sp, 0x8]
|
||||
movs r1, 0x2
|
||||
movs r2, 0x1A
|
||||
movs r3, 0x14
|
||||
bl AddTextPrinterParameterized3
|
||||
add sp, 0xC
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08137AE4: .4byte gMonSummaryScreen
|
||||
_08137AE8: .4byte 0x00003004
|
||||
_08137AEC: .4byte gUnknown_8463FA4
|
||||
_08137AF0: .4byte gUnknown_8419C4D
|
||||
_08137AF4: .4byte gUnknown_8419C59
|
||||
thumb_func_end sub_8137A90
|
||||
|
||||
thumb_func_start sub_8137AF8
|
||||
sub_8137AF8: @ 8137AF8
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
sub sp, 0x14
|
||||
ldr r0, _08137BAC @ =gUnknown_203B16D
|
||||
mov r8, r0
|
||||
ldrb r1, [r0]
|
||||
cmp r1, 0x4
|
||||
bhi _08137B9E
|
||||
ldr r7, _08137BB0 @ =gMonSummaryScreen
|
||||
ldr r3, [r7]
|
||||
ldr r2, _08137BB4 @ =0x00003208
|
||||
adds r0, r3, r2
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x2
|
||||
beq _08137B1C
|
||||
cmp r1, 0x4
|
||||
beq _08137B9E
|
||||
_08137B1C:
|
||||
ldr r4, _08137BB8 @ =0x00003004
|
||||
adds r0, r3, r4
|
||||
ldrb r0, [r0]
|
||||
ldr r6, _08137BBC @ =gUnknown_8463FA4
|
||||
str r6, [sp]
|
||||
movs r5, 0x1
|
||||
negs r5, r5
|
||||
str r5, [sp, 0x4]
|
||||
mov r1, r8
|
||||
ldrb r2, [r1]
|
||||
lsls r1, r2, 2
|
||||
adds r1, r2
|
||||
ldr r2, _08137BC0 @ =0x0000316c
|
||||
adds r1, r2
|
||||
adds r1, r3, r1
|
||||
str r1, [sp, 0x8]
|
||||
movs r1, 0x2
|
||||
movs r2, 0x39
|
||||
movs r3, 0x1
|
||||
bl AddTextPrinterParameterized3
|
||||
ldr r3, [r7]
|
||||
adds r0, r3, r4
|
||||
ldrb r0, [r0]
|
||||
str r6, [sp]
|
||||
str r5, [sp, 0x4]
|
||||
mov r1, r8
|
||||
ldrb r2, [r1]
|
||||
lsls r1, r2, 2
|
||||
adds r1, r2
|
||||
ldr r2, _08137BC4 @ =0x00003188
|
||||
adds r1, r2
|
||||
adds r3, r1
|
||||
str r3, [sp, 0x8]
|
||||
movs r1, 0x2
|
||||
movs r2, 0x39
|
||||
movs r3, 0xF
|
||||
bl AddTextPrinterParameterized3
|
||||
ldr r2, [r7]
|
||||
adds r4, r2, r4
|
||||
ldrb r0, [r4]
|
||||
movs r1, 0
|
||||
str r1, [sp]
|
||||
str r1, [sp, 0x4]
|
||||
str r6, [sp, 0x8]
|
||||
str r5, [sp, 0xC]
|
||||
ldr r3, _08137BC8 @ =gMoveDescriptionPointers
|
||||
mov r4, r8
|
||||
ldrb r1, [r4]
|
||||
lsls r1, 1
|
||||
ldr r4, _08137BCC @ =0x00003258
|
||||
adds r2, r4
|
||||
adds r2, r1
|
||||
ldrh r1, [r2]
|
||||
subs r1, 0x1
|
||||
lsls r1, 2
|
||||
adds r1, r3
|
||||
ldr r1, [r1]
|
||||
str r1, [sp, 0x10]
|
||||
movs r1, 0x2
|
||||
movs r2, 0x7
|
||||
movs r3, 0x2A
|
||||
bl AddTextPrinterParameterized4
|
||||
_08137B9E:
|
||||
add sp, 0x14
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08137BAC: .4byte gUnknown_203B16D
|
||||
_08137BB0: .4byte gMonSummaryScreen
|
||||
_08137BB4: .4byte 0x00003208
|
||||
_08137BB8: .4byte 0x00003004
|
||||
_08137BBC: .4byte gUnknown_8463FA4
|
||||
_08137BC0: .4byte 0x0000316c
|
||||
_08137BC4: .4byte 0x00003188
|
||||
_08137BC8: .4byte gMoveDescriptionPointers
|
||||
_08137BCC: .4byte 0x00003258
|
||||
thumb_func_end sub_8137AF8
|
||||
|
||||
thumb_func_start sub_8137BD0
|
||||
sub_8137BD0: @ 8137BD0
|
||||
push {lr}
|
||||
|
||||
@@ -1495,5 +1495,7 @@ extern const u8 gUnknown_84199F4[];
|
||||
extern const u8 gUnknown_84199AB[];
|
||||
extern const u8 gUnknown_8419860[];
|
||||
extern const u8 gUnknown_841988A[];
|
||||
extern const u8 gUnknown_8419C4D[];
|
||||
extern const u8 gUnknown_8419C59[];
|
||||
|
||||
#endif //GUARD_STRINGS_H
|
||||
|
||||
@@ -98,15 +98,16 @@ extern void sub_81370EC(void);
|
||||
extern void sub_8137270(void);
|
||||
extern void sub_81372E4(u8 i);
|
||||
extern void sub_8137554(void);
|
||||
extern void sub_8137A90(void);
|
||||
void sub_8137A90(void);
|
||||
extern void sub_8137AF8(void);
|
||||
extern void sub_8137944(void);
|
||||
extern void sub_8137970(void);
|
||||
void sub_8137944(void);
|
||||
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);
|
||||
extern u8 sub_813847C(struct Pokemon * mon);
|
||||
|
||||
struct PokemonSummaryScreenData {
|
||||
u16 unk0[0x800];
|
||||
@@ -291,6 +292,7 @@ extern const u8 gUnknown_8463FA4[][3];
|
||||
extern const u8 gUnknown_8463EF0[][3];
|
||||
|
||||
extern const u8 * const gUnknown_8463EC4[];
|
||||
extern const u8 * const gUnknown_8463ED4[];
|
||||
|
||||
void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, MainCallback savedCallback, u8 mode)
|
||||
{
|
||||
@@ -2090,3 +2092,98 @@ void sub_8137724(void)
|
||||
|
||||
AddTextPrinterParameterized4(gMonSummaryScreen->unk3000[4], 2, 0, 3, 0, 0, gUnknown_8463FA4[0], TEXT_SPEED_FF, natureMetOrHatchedAtLevelStr);
|
||||
}
|
||||
|
||||
void sub_8137944(void)
|
||||
{
|
||||
if (sub_813847C(&gMonSummaryScreen->currentMon) == TRUE)
|
||||
sub_8137578();
|
||||
else
|
||||
sub_8137724();
|
||||
}
|
||||
|
||||
void sub_8137970(void)
|
||||
{
|
||||
u8 metLocation;
|
||||
u8 version;
|
||||
u8 chosenStrIndex = 0;
|
||||
|
||||
metLocation = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_MET_LOCATION);
|
||||
|
||||
if (gMonSummaryScreen->monList.mons != gEnemyParty)
|
||||
{
|
||||
if (metLocation == METLOC_FATEFUL_ENCOUNTER || GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_OBEDIENCE) == 1)
|
||||
chosenStrIndex = 4;
|
||||
else
|
||||
{
|
||||
version = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_MET_GAME);
|
||||
|
||||
if (version != VERSION_LEAF_GREEN && version != VERSION_FIRE_RED)
|
||||
chosenStrIndex = 1;
|
||||
else if (metLocation == METLOC_SPECIAL_EGG)
|
||||
chosenStrIndex = 2;
|
||||
|
||||
if (chosenStrIndex == 0 || chosenStrIndex == 2)
|
||||
if (sub_813847C(&gMonSummaryScreen->currentMon) == FALSE)
|
||||
chosenStrIndex++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (metLocation == METLOC_FATEFUL_ENCOUNTER || GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_OBEDIENCE) == 1)
|
||||
chosenStrIndex = 4;
|
||||
else
|
||||
{
|
||||
version = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_MET_GAME);
|
||||
|
||||
if (version != VERSION_LEAF_GREEN && version != VERSION_FIRE_RED)
|
||||
{
|
||||
if (metLocation == METLOC_SPECIAL_EGG)
|
||||
chosenStrIndex = 5;
|
||||
}
|
||||
else if (metLocation == METLOC_SPECIAL_EGG)
|
||||
chosenStrIndex = 2;
|
||||
|
||||
if (sub_813847C(&gMonSummaryScreen->currentMon) == FALSE)
|
||||
chosenStrIndex++;
|
||||
}
|
||||
}
|
||||
|
||||
if (gMonSummaryScreen->isBadEgg)
|
||||
chosenStrIndex = 0;
|
||||
|
||||
AddTextPrinterParameterized4(gMonSummaryScreen->unk3000[4], 2, 0, 3, 0, 0, gUnknown_8463FA4[0], TEXT_SPEED_FF, gUnknown_8463ED4[chosenStrIndex]);
|
||||
}
|
||||
|
||||
void sub_8137A90(void)
|
||||
{
|
||||
AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[4], 2,
|
||||
26, 7, gUnknown_8463FA4[0], TEXT_SPEED_FF,
|
||||
gUnknown_8419C4D);
|
||||
|
||||
AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[4], 2,
|
||||
26, 20, gUnknown_8463FA4[0], TEXT_SPEED_FF,
|
||||
gUnknown_8419C59);
|
||||
}
|
||||
|
||||
void sub_8137AF8(void)
|
||||
{
|
||||
if (gUnknown_203B16D < 5)
|
||||
{
|
||||
if (gMonSummaryScreen->mode != PSS_MODE_SELECT_MOVE && gUnknown_203B16D == 4)
|
||||
return;
|
||||
|
||||
AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[4], 2,
|
||||
57, 1, gUnknown_8463FA4[0], TEXT_SPEED_FF,
|
||||
gMonSummaryScreen->summary.unk316C[gUnknown_203B16D]);
|
||||
|
||||
AddTextPrinterParameterized3(gMonSummaryScreen->unk3000[4], 2,
|
||||
57, 15, gUnknown_8463FA4[0], TEXT_SPEED_FF,
|
||||
gMonSummaryScreen->summary.unk3188[gUnknown_203B16D]);
|
||||
|
||||
AddTextPrinterParameterized4(gMonSummaryScreen->unk3000[4], 2,
|
||||
7, 42,
|
||||
0, 0,
|
||||
gUnknown_8463FA4[0], TEXT_SPEED_FF,
|
||||
gMoveDescriptionPointers[gMonSummaryScreen->unk325A[gUnknown_203B16D] - 1]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user