summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/pokemon/pokemon_summary_screen.c253
1 files changed, 13 insertions, 240 deletions
diff --git a/src/pokemon/pokemon_summary_screen.c b/src/pokemon/pokemon_summary_screen.c
index 4de5f5345..cd3793cb5 100644
--- a/src/pokemon/pokemon_summary_screen.c
+++ b/src/pokemon/pokemon_summary_screen.c
@@ -1167,13 +1167,13 @@ static void sub_809E5C4(void)
struct Pokemon *pkmn = &party[pssData.monIndex];
u8 moveIndex1 = pssData.selectedMoveIndex;
u8 moveIndex2 = pssData.switchMoveIndex;
-
+
u16 move1 = GetMonData(pkmn, MON_DATA_MOVE1 + moveIndex1);
u16 move2 = GetMonData(pkmn, MON_DATA_MOVE1 + moveIndex2);
u8 move1pp = GetMonData(pkmn, MON_DATA_PP1 + moveIndex1);
u8 move2pp = GetMonData(pkmn, MON_DATA_PP1 + moveIndex2);
u8 ppBonuses = GetMonData(pkmn, MON_DATA_PP_BONUSES);
-
+
// Calculate PP bonuses
u8 r9 = gUnknown_08208238[moveIndex1];
u8 r2 = (ppBonuses & r9) >> (moveIndex1 * 2);
@@ -1182,7 +1182,7 @@ static void sub_809E5C4(void)
ppBonuses &= ~r9;
ppBonuses &= ~r3;
ppBonuses |= (r2 << (moveIndex2 * 2)) + (r1 << (moveIndex1 * 2));
-
+
// Swap the moves
SetMonData(pkmn, MON_DATA_MOVE1 + moveIndex1, &move2);
SetMonData(pkmn, MON_DATA_MOVE1 + moveIndex2, &move1);
@@ -1197,13 +1197,13 @@ static void sub_809E6D8(void)
struct BoxPokemon *pkmn = &boxMons[pssData.monIndex];
u8 moveIndex1 = pssData.selectedMoveIndex;
u8 moveIndex2 = pssData.switchMoveIndex;
-
+
u16 move1 = GetBoxMonData(pkmn, MON_DATA_MOVE1 + moveIndex1);
u16 move2 = GetBoxMonData(pkmn, MON_DATA_MOVE1 + moveIndex2);
u8 move1pp = GetBoxMonData(pkmn, MON_DATA_PP1 + moveIndex1);
u8 move2pp = GetBoxMonData(pkmn, MON_DATA_PP1 + moveIndex2);
u8 ppBonuses = GetBoxMonData(pkmn, MON_DATA_PP_BONUSES);
-
+
// Calculate PP bonuses
u8 r9 = gUnknown_08208238[moveIndex1];
u8 r2 = (ppBonuses & r9) >> (moveIndex1 * 2);
@@ -1212,7 +1212,7 @@ static void sub_809E6D8(void)
ppBonuses &= ~r9;
ppBonuses &= ~r3;
ppBonuses |= (r2 << (moveIndex2 * 2)) + (r1 << (moveIndex1 * 2));
-
+
// Swap the moves
SetBoxMonData(pkmn, MON_DATA_MOVE1 + moveIndex1, &move2);
SetBoxMonData(pkmn, MON_DATA_MOVE1 + moveIndex2, &move1);
@@ -2078,7 +2078,7 @@ s8 sub_809F344(u8 partyIndex)
{
while (1)
{
- partyIndex++;
+ partyIndex++;
if (partyIndex == PARTY_SIZE)
{
return -1;
@@ -2100,7 +2100,7 @@ s8 sub_809F388(u8 partyIndex)
return -1;
}
- partyIndex--;
+ partyIndex--;
if (sub_809F310(&gPlayerParty[sDoubleBattlePartyOrder[partyIndex]]) == TRUE)
{
return sDoubleBattlePartyOrder[partyIndex];
@@ -2332,7 +2332,7 @@ static bool8 sub_809F7D0(u8 taskId)
u16 move;
sub_809F678(&mon);
- move = GetMonMove(&mon, pssData.selectedMoveIndex);
+ move = GetMonMove(&mon, pssData.selectedMoveIndex);
if (IsHMMove(move) == TRUE && pssData.mode != PSS_MODE_UNKNOWN)
{
return FALSE;
@@ -2341,17 +2341,13 @@ static bool8 sub_809F7D0(u8 taskId)
return TRUE;
}
-#ifdef NONMATCHING // The two "pssData.selectedMoveIndex = taskData[15];" lines have small register differences.
void sub_809F814(u8 taskId)
{
- u16 var1;
-
s16 *taskData = gTasks[taskId].data;
- var1 = taskData[14];
if (taskData[14] < 4)
{
- taskData[14] = var1 + 1;
+ taskData[14]++;
}
else if (gMain.newKeys & DPAD_UP)
{
@@ -2359,7 +2355,7 @@ void sub_809F814(u8 taskId)
taskData[0] = 4;
taskData[13] = 1;
pssData.selectedMoveIndex = taskData[15];
- sub_809E8F0(taskId, -1);
+ sub_809E8F0(taskId, -1, &pssData.selectedMoveIndex);
}
else if (gMain.newKeys & DPAD_DOWN)
{
@@ -2367,7 +2363,7 @@ void sub_809F814(u8 taskId)
taskData[0] = 4;
taskData[13] = 1;
pssData.selectedMoveIndex = taskData[15];
- sub_809E8F0(taskId, 1);
+ sub_809E8F0(taskId, 1, &pssData.selectedMoveIndex);
}
else if ((gMain.newKeys & DPAD_LEFT) || sub_80F9284() == 1)
{
@@ -2410,229 +2406,6 @@ void sub_809F814(u8 taskId)
}
}
-#else
-__attribute__((naked))
-void sub_809F814(u8 taskId)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r8\n\
- push {r7}\n\
- lsls r0, 24\n\
- lsrs r5, r0, 24\n\
- lsls r0, r5, 2\n\
- adds r0, r5\n\
- lsls r6, r0, 3\n\
- ldr r0, _0809F83C @ =gTasks + 0x8\n\
- mov r8, r0\n\
- adds r4, r6, r0\n\
- ldrh r1, [r4, 0x1C]\n\
- movs r2, 0x1C\n\
- ldrsh r0, [r4, r2]\n\
- cmp r0, 0x3\n\
- bgt _0809F840\n\
- adds r0, r1, 0x1\n\
- strh r0, [r4, 0x1C]\n\
- b _0809F9C0\n\
- .align 2, 0\n\
-_0809F83C: .4byte gTasks + 0x8\n\
-_0809F840:\n\
- ldr r7, _0809F874 @ =gMain\n\
- ldrh r1, [r7, 0x2E]\n\
- movs r0, 0x40\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _0809F880\n\
- mov r0, r8\n\
- subs r0, 0x8\n\
- adds r0, r6, r0\n\
- ldr r1, _0809F878 @ =sub_809E260\n\
- str r1, [r0]\n\
- movs r0, 0x4\n\
- strh r0, [r4]\n\
- movs r0, 0x1\n\
- strh r0, [r4, 0x1A]\n\
- ldr r2, _0809F87C @ =gSharedMem + 0x18000\n\
- ldrh r0, [r4, 0x1E]\n\
- adds r2, 0x79\n\
- strb r0, [r2]\n\
- movs r1, 0x1\n\
- negs r1, r1\n\
- adds r0, r5, 0\n\
- bl sub_809E8F0\n\
- b _0809F9C0\n\
- .align 2, 0\n\
-_0809F874: .4byte gMain\n\
-_0809F878: .4byte sub_809E260\n\
-_0809F87C: .4byte gSharedMem + 0x18000\n\
-_0809F880:\n\
- movs r0, 0x80\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _0809F8B4\n\
- mov r0, r8\n\
- subs r0, 0x8\n\
- adds r0, r6, r0\n\
- ldr r1, _0809F8AC @ =sub_809E260\n\
- str r1, [r0]\n\
- movs r0, 0x4\n\
- strh r0, [r4]\n\
- movs r0, 0x1\n\
- strh r0, [r4, 0x1A]\n\
- ldr r2, _0809F8B0 @ =gSharedMem + 0x18000\n\
- ldrh r0, [r4, 0x1E]\n\
- adds r2, 0x79\n\
- strb r0, [r2]\n\
- adds r0, r5, 0\n\
- movs r1, 0x1\n\
- bl sub_809E8F0\n\
- b _0809F9C0\n\
- .align 2, 0\n\
-_0809F8AC: .4byte sub_809E260\n\
-_0809F8B0: .4byte gSharedMem + 0x18000\n\
-_0809F8B4:\n\
- movs r0, 0x20\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _0809F8C8\n\
- bl sub_80F9284\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0x1\n\
- bne _0809F918\n\
-_0809F8C8:\n\
- ldr r1, _0809F90C @ =gSharedMem + 0x18000\n\
- ldrb r0, [r1, 0xB]\n\
- cmp r0, 0x2\n\
- beq _0809F9C0\n\
- cmp r0, 0x3\n\
- bne _0809F8F4\n\
- adds r0, r1, 0\n\
- adds r0, 0x79\n\
- ldrb r0, [r0]\n\
- cmp r0, 0x4\n\
- bne _0809F8E8\n\
- adds r0, r1, 0\n\
- adds r0, 0x7C\n\
- ldrh r0, [r0]\n\
- cmp r0, 0\n\
- beq _0809F8F4\n\
-_0809F8E8:\n\
- movs r0, 0\n\
- movs r1, 0xE\n\
- movs r2, 0x9\n\
- movs r3, 0x12\n\
- bl MenuZeroFillWindowRect\n\
-_0809F8F4:\n\
- ldr r1, _0809F910 @ =gTasks\n\
- lsls r0, r5, 2\n\
- adds r0, r5\n\
- lsls r0, 3\n\
- adds r0, r1\n\
- ldr r1, _0809F914 @ =sub_809E260\n\
- str r1, [r0]\n\
- movs r1, 0x1\n\
- negs r1, r1\n\
- adds r0, r5, 0\n\
- b _0809F972\n\
- .align 2, 0\n\
-_0809F90C: .4byte gSharedMem + 0x18000\n\
-_0809F910: .4byte gTasks\n\
-_0809F914: .4byte sub_809E260\n\
-_0809F918:\n\
- ldrh r1, [r7, 0x2E]\n\
- movs r0, 0x10\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _0809F92E\n\
- bl sub_80F9284\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0x2\n\
- bne _0809F994\n\
-_0809F92E:\n\
- ldr r1, _0809F988 @ =gSharedMem + 0x18000\n\
- adds r2, r1, 0\n\
- adds r2, 0x76\n\
- ldrb r0, [r1, 0xB]\n\
- ldrb r2, [r2]\n\
- cmp r0, r2\n\
- beq _0809F9C0\n\
- cmp r0, 0x2\n\
- bne _0809F960\n\
- adds r0, r1, 0\n\
- adds r0, 0x79\n\
- ldrb r0, [r0]\n\
- cmp r0, 0x4\n\
- bne _0809F954\n\
- adds r0, r1, 0\n\
- adds r0, 0x7C\n\
- ldrh r0, [r0]\n\
- cmp r0, 0\n\
- beq _0809F960\n\
-_0809F954:\n\
- movs r0, 0\n\
- movs r1, 0xE\n\
- movs r2, 0x9\n\
- movs r3, 0x12\n\
- bl MenuZeroFillWindowRect\n\
-_0809F960:\n\
- ldr r1, _0809F98C @ =gTasks\n\
- lsls r0, r5, 2\n\
- adds r0, r5\n\
- lsls r0, 3\n\
- adds r0, r1\n\
- ldr r1, _0809F990 @ =sub_809E260\n\
- str r1, [r0]\n\
- adds r0, r5, 0\n\
- movs r1, 0x1\n\
-_0809F972:\n\
- bl SummaryScreenHandleLeftRightInput\n\
- ldrb r1, [r4, 0x1E]\n\
- movs r0, 0x1\n\
- bl sub_80A1488\n\
- ldrb r1, [r4, 0x1E]\n\
- movs r0, 0x1\n\
- bl sub_80A1654\n\
- b _0809F9C0\n\
- .align 2, 0\n\
-_0809F988: .4byte gSharedMem + 0x18000\n\
-_0809F98C: .4byte gTasks\n\
-_0809F990: .4byte sub_809E260\n\
-_0809F994:\n\
- ldrh r1, [r7, 0x2E]\n\
- movs r0, 0x1\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _0809F9A6\n\
- movs r0, 0x2\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _0809F9C0\n\
-_0809F9A6:\n\
- ldrb r1, [r4, 0x1E]\n\
- movs r0, 0x2\n\
- bl sub_80A1488\n\
- ldrb r1, [r4, 0x1E]\n\
- movs r0, 0x2\n\
- bl sub_80A1654\n\
- mov r0, r8\n\
- subs r0, 0x8\n\
- adds r0, r6, r0\n\
- ldr r1, _0809F9CC @ =sub_809E260\n\
- str r1, [r0]\n\
-_0809F9C0:\n\
- pop {r3}\n\
- mov r8, r3\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_0809F9CC: .4byte sub_809E260\n\
- .syntax divided\n");
-}
-#endif // NONMATCHING
-
static void sub_809F9D0(u8 taskId, u8 b)
{
s16 *taskData = gTasks[taskId].data;
@@ -3012,7 +2785,7 @@ static void sub_80A015C(struct Pokemon *mon)
sub_80A1FF8(gMoveNames[move], 13, 15, (2 * i) + 4);
GetStringCenterAlignXOffset(1, 24, (2 * i) + 4);
-
+
ppBonuses = GetMonData(mon, MON_DATA_PP_BONUSES);
maxPP = CalculatePPWithBonus(move, ppBonuses, i);