mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2025-02-05 02:40:56 +01:00
atk9e_metronome matching
This commit is contained in:
parent
7472d639cf
commit
b1abe40230
@ -8542,13 +8542,11 @@ static void atk9D_mimicattackcopy(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef NONMATCHING
|
|
||||||
static void atk9E_metronome(void)
|
static void atk9E_metronome(void)
|
||||||
{
|
{
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
const u16 *move;
|
s32 i;
|
||||||
s32 i, j;
|
|
||||||
|
|
||||||
gCurrentMove = (Random() & 0x1FF) + 1;
|
gCurrentMove = (Random() & 0x1FF) + 1;
|
||||||
if (gCurrentMove > LAST_MOVE_INDEX)
|
if (gCurrentMove > LAST_MOVE_INDEX)
|
||||||
@ -8556,102 +8554,26 @@ static void atk9E_metronome(void)
|
|||||||
|
|
||||||
for (i = 0; i < 4; i++); // ?
|
for (i = 0; i < 4; i++); // ?
|
||||||
|
|
||||||
for (move = sMovesForbiddenToCopy; ; move++)
|
i = -1;
|
||||||
|
while (1)
|
||||||
{
|
{
|
||||||
if (*move == gCurrentMove)
|
i++;
|
||||||
|
if (sMovesForbiddenToCopy[i] == gCurrentMove)
|
||||||
break;
|
break;
|
||||||
if (*move == METRONOME_FORBIDDEN_END)
|
if (sMovesForbiddenToCopy[i] == METRONOME_FORBIDDEN_END)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (*move == METRONOME_FORBIDDEN_END)
|
if (sMovesForbiddenToCopy[i] == METRONOME_FORBIDDEN_END)
|
||||||
break;
|
{
|
||||||
|
gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED);
|
||||||
|
gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect];
|
||||||
|
gBankTarget = GetMoveTarget(gCurrentMove, 0);
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED);
|
|
||||||
gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect];
|
|
||||||
gBankTarget = GetMoveTarget(gCurrentMove, 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
|
||||||
__attribute__((naked))
|
|
||||||
static void atk9E_metronome(void)
|
|
||||||
{
|
|
||||||
asm(
|
|
||||||
"\n\
|
|
||||||
.syntax unified\n\
|
|
||||||
push {r4-r7,lr}\n\
|
|
||||||
mov r7, r8\n\
|
|
||||||
push {r7}\n\
|
|
||||||
ldr r7, =gCurrentMove\n\
|
|
||||||
movs r6, 0xB1\n\
|
|
||||||
lsls r6, 1\n\
|
|
||||||
ldr r5, =sMovesForbiddenToCopy\n\
|
|
||||||
ldr r0, =gBattlescriptCurrInstr\n\
|
|
||||||
mov r8, r0\n\
|
|
||||||
_080524EE:\n\
|
|
||||||
bl Random\n\
|
|
||||||
ldr r2, =0x000001ff\n\
|
|
||||||
adds r1, r2, 0\n\
|
|
||||||
ands r0, r1\n\
|
|
||||||
adds r0, 0x1\n\
|
|
||||||
strh r0, [r7]\n\
|
|
||||||
cmp r0, r6\n\
|
|
||||||
bhi _080524EE\n\
|
|
||||||
movs r0, 0x3\n\
|
|
||||||
_08052502:\n\
|
|
||||||
subs r0, 0x1\n\
|
|
||||||
cmp r0, 0\n\
|
|
||||||
bge _08052502\n\
|
|
||||||
ldr r4, =gCurrentMove\n\
|
|
||||||
ldrh r2, [r4]\n\
|
|
||||||
ldr r3, =0x0000ffff\n\
|
|
||||||
subs r0, r5, 0x2\n\
|
|
||||||
_08052510:\n\
|
|
||||||
adds r0, 0x2\n\
|
|
||||||
ldrh r1, [r0]\n\
|
|
||||||
cmp r1, r2\n\
|
|
||||||
beq _0805251C\n\
|
|
||||||
cmp r1, r3\n\
|
|
||||||
bne _08052510\n\
|
|
||||||
_0805251C:\n\
|
|
||||||
ldr r0, =0x0000ffff\n\
|
|
||||||
cmp r1, r0\n\
|
|
||||||
bne _080524EE\n\
|
|
||||||
ldr r2, =gHitMarker\n\
|
|
||||||
ldr r0, [r2]\n\
|
|
||||||
ldr r1, =0xfffffbff\n\
|
|
||||||
ands r0, r1\n\
|
|
||||||
str r0, [r2]\n\
|
|
||||||
ldr r3, =gBattleScriptsForMoveEffects\n\
|
|
||||||
ldr r2, =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\
|
|
||||||
mov r1, r8\n\
|
|
||||||
str r0, [r1]\n\
|
|
||||||
ldrh r0, [r4]\n\
|
|
||||||
movs r1, 0\n\
|
|
||||||
bl GetMoveTarget\n\
|
|
||||||
ldr r1, =gBankTarget\n\
|
|
||||||
strb r0, [r1]\n\
|
|
||||||
pop {r3}\n\
|
|
||||||
mov r8, r3\n\
|
|
||||||
pop {r4-r7}\n\
|
|
||||||
pop {r0}\n\
|
|
||||||
bx r0\n\
|
|
||||||
.pool\n\
|
|
||||||
.syntax divided");
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // NONMATCHING
|
|
||||||
|
|
||||||
static void atk9F_dmgtolevel(void)
|
static void atk9F_dmgtolevel(void)
|
||||||
{
|
{
|
||||||
gBattleMoveDamage = gBattleMons[gBankAttacker].level;
|
gBattleMoveDamage = gBattleMons[gBankAttacker].level;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user