summaryrefslogtreecommitdiff
path: root/src/battle_script_commands.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/battle_script_commands.c')
-rw-r--r--src/battle_script_commands.c191
1 files changed, 5 insertions, 186 deletions
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c
index ceccdac87..aacb2fbe4 100644
--- a/src/battle_script_commands.c
+++ b/src/battle_script_commands.c
@@ -6342,16 +6342,13 @@ static void atk7B_tryhealhalfhealth(void)
gBattlescriptCurrInstr += 6;
}
-#ifdef NONMATCHING
static void atk7C_trymirrormove(void)
{
s32 validMovesCount;
s32 i;
u16 move;
- u16 movesArray[4];
+ u16 movesArray[3];
- // incorrect pointer load sequence
- // and incorrect layout in data pools
for (i = 0; i < 3; ++i)
movesArray[i] = 0;
for (validMovesCount = 0, i = 0; i < gBattlersCount; ++i)
@@ -6359,14 +6356,13 @@ static void atk7C_trymirrormove(void)
if (i != gBattlerAttacker)
{
- move = *(i * 2 + gBattlerAttacker * 8 + gBattleStruct->lastTakenMoveFrom + 0)
- | (*(i * 2 + gBattlerAttacker * 8 + gBattleStruct->lastTakenMoveFrom + 1) << 8);
+ move = T1_READ_16(i * 2 + gBattlerAttacker * 8 + gBattleStruct->lastTakenMoveFrom);
if (move != MOVE_NONE && move != 0xFFFF)
movesArray[validMovesCount++] = move;
}
}
- move = *(gBattleStruct->lastTakenMove + gBattlerAttacker * 2 + 0)
- | (*(gBattleStruct->lastTakenMove + gBattlerAttacker * 2 + 1) << 8);
+ move = T1_READ_16(gBattleStruct->lastTakenMove + gBattlerAttacker * 2);
+ move++;move--;
if (move != MOVE_NONE && move != 0xFFFF)
{
gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED);
@@ -6374,7 +6370,7 @@ static void atk7C_trymirrormove(void)
gBattlerTarget = GetMoveTarget(gCurrentMove, 0);
gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect];
}
- else if (validMovesCount)
+ else if (validMovesCount != 0)
{
gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED);
i = Random() % validMovesCount;
@@ -6388,183 +6384,6 @@ static void atk7C_trymirrormove(void)
++gBattlescriptCurrInstr;
}
}
-#else
-NAKED
-static void atk7C_trymirrormove(void)
-{
- asm_unified("\n\
- push {r4-r7,lr}\n\
- mov r7, r10\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5-r7}\n\
- sub sp, 0x8\n\
- ldr r2, _080273E0 @ =gBattlersCount\n\
- ldr r0, _080273E4 @ =gBattleStruct\n\
- mov r10, r0\n\
- movs r1, 0\n\
- add r0, sp, 0x4\n\
- _08027356:\n\
- strh r1, [r0]\n\
- subs r0, 0x2\n\
- cmp r0, sp\n\
- bge _08027356\n\
- movs r1, 0\n\
- mov r8, r1\n\
- movs r5, 0\n\
- ldrb r1, [r2]\n\
- cmp r5, r1\n\
- bge _080273AC\n\
- ldr r0, _080273E8 @ =gBattlerAttacker\n\
- ldrb r6, [r0]\n\
- ldr r2, _080273EC @ =0x0000ffff\n\
- mov r9, r2\n\
- lsls r4, r6, 3\n\
- mov r2, sp\n\
- ldr r0, _080273E4 @ =gBattleStruct\n\
- mov r12, r0\n\
- adds r7, r1, 0\n\
- _0802737C:\n\
- cmp r5, r6\n\
- beq _080273A4\n\
- mov r1, r12\n\
- ldr r0, [r1]\n\
- adds r0, r4, r0\n\
- adds r1, r0, 0\n\
- adds r1, 0xE0\n\
- ldrb r3, [r1]\n\
- adds r0, 0xE1\n\
- ldrb r0, [r0]\n\
- lsls r0, 8\n\
- orrs r3, r0\n\
- cmp r3, 0\n\
- beq _080273A4\n\
- cmp r3, r9\n\
- beq _080273A4\n\
- strh r3, [r2]\n\
- adds r2, 0x2\n\
- movs r0, 0x1\n\
- add r8, r0\n\
- _080273A4:\n\
- adds r4, 0x2\n\
- adds r5, 0x1\n\
- cmp r5, r7\n\
- blt _0802737C\n\
- _080273AC:\n\
- ldr r1, _080273E8 @ =gBattlerAttacker\n\
- ldrb r0, [r1]\n\
- mov r2, r10\n\
- ldr r1, [r2]\n\
- lsls r0, 1\n\
- adds r0, r1\n\
- adds r1, r0, 0\n\
- adds r1, 0x98\n\
- ldrb r3, [r1]\n\
- adds r0, 0x99\n\
- ldrb r0, [r0]\n\
- lsls r0, 8\n\
- orrs r3, r0\n\
- cmp r3, 0\n\
- beq _080273FC\n\
- ldr r0, _080273EC @ =0x0000ffff\n\
- cmp r3, r0\n\
- beq _080273FC\n\
- ldr r2, _080273F0 @ =gHitMarker\n\
- ldr r0, [r2]\n\
- ldr r1, _080273F4 @ =0xfffffbff\n\
- ands r0, r1\n\
- str r0, [r2]\n\
- ldr r4, _080273F8 @ =gCurrentMove\n\
- strh r3, [r4]\n\
- b _08027426\n\
- .align 2, 0\n\
- _080273E0: .4byte gBattlersCount\n\
- _080273E4: .4byte gBattleStruct\n\
- _080273E8: .4byte gBattlerAttacker\n\
- _080273EC: .4byte 0x0000ffff\n\
- _080273F0: .4byte gHitMarker\n\
- _080273F4: .4byte 0xfffffbff\n\
- _080273F8: .4byte gCurrentMove\n\
- _080273FC:\n\
- mov r0, r8\n\
- cmp r0, 0\n\
- beq _0802746C\n\
- ldr r2, _08027450 @ =gHitMarker\n\
- ldr r0, [r2]\n\
- ldr r1, _08027454 @ =0xfffffbff\n\
- ands r0, r1\n\
- str r0, [r2]\n\
- bl Random\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- mov r1, r8\n\
- bl __modsi3\n\
- adds r5, r0, 0\n\
- ldr r4, _08027458 @ =gCurrentMove\n\
- lsls r0, r5, 1\n\
- add r0, sp\n\
- ldrh r0, [r0]\n\
- strh r0, [r4]\n\
- _08027426:\n\
- ldrh r0, [r4]\n\
- movs r1, 0\n\
- bl GetMoveTarget\n\
- ldr r1, _0802745C @ =gBattlerTarget\n\
- strb r0, [r1]\n\
- ldr r5, _08027460 @ =gBattlescriptCurrInstr\n\
- ldr r3, _08027464 @ =gBattleScriptsForMoveEffects\n\
- ldr r2, _08027468 @ =gBattleMoves\n\
- ldrh r1, [r4]\n\
- lsls r0, r1, 1\n\
- adds r0, r1\n\
- lsls r0, 2\n\
- adds r0, r2\n\
- ldrb r0, [r0]\n\
- lsls r0, 2\n\
- adds r0, r3\n\
- ldr r0, [r0]\n\
- str r0, [r5]\n\
- b _0802748A\n\
- .align 2, 0\n\
- _08027450: .4byte gHitMarker\n\
- _08027454: .4byte 0xfffffbff\n\
- _08027458: .4byte gCurrentMove\n\
- _0802745C: .4byte gBattlerTarget\n\
- _08027460: .4byte gBattlescriptCurrInstr\n\
- _08027464: .4byte gBattleScriptsForMoveEffects\n\
- _08027468: .4byte gBattleMoves\n\
- _0802746C:\n\
- ldr r2, _0802749C @ =gSpecialStatuses\n\
- ldr r0, _080274A0 @ =gBattlerAttacker\n\
- ldrb r1, [r0]\n\
- lsls r0, r1, 2\n\
- adds r0, r1\n\
- lsls r0, 2\n\
- adds r0, r2\n\
- ldrb r1, [r0]\n\
- movs r2, 0x20\n\
- orrs r1, r2\n\
- strb r1, [r0]\n\
- ldr r1, _080274A4 @ =gBattlescriptCurrInstr\n\
- ldr r0, [r1]\n\
- adds r0, 0x1\n\
- str r0, [r1]\n\
- _0802748A:\n\
- add sp, 0x8\n\
- pop {r3-r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov r10, r5\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
- _0802749C: .4byte gSpecialStatuses\n\
- _080274A0: .4byte gBattlerAttacker\n\
- _080274A4: .4byte gBattlescriptCurrInstr\n\
- ");
-}
-#endif
static void atk7D_setrain(void)
{