mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-26 03:34:15 +01:00
give up for now
This commit is contained in:
parent
4a45b4de4e
commit
8ff9cb0ede
@ -6,429 +6,6 @@
|
||||
.text
|
||||
|
||||
|
||||
|
||||
thumb_func_start sub_817E32C
|
||||
sub_817E32C: @ 817E32C
|
||||
push {r4,r5,lr}
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
ldr r0, =gBattleTypeFlags
|
||||
ldr r0, [r0]
|
||||
movs r1, 0x2
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0817E3EE
|
||||
ldr r0, =gBattleStruct
|
||||
ldr r0, [r0]
|
||||
movs r1, 0x81
|
||||
lsls r1, 2
|
||||
adds r4, r0, r1
|
||||
ldr r0, =gBattlerAttacker
|
||||
ldrb r0, [r0]
|
||||
bl GetBattlerSide
|
||||
lsls r0, 24
|
||||
lsrs r2, r0, 24
|
||||
cmp r5, 0x12
|
||||
beq _0817E36C
|
||||
cmp r5, 0x13
|
||||
beq _0817E3AA
|
||||
b _0817E3EE
|
||||
.pool
|
||||
_0817E36C:
|
||||
lsls r0, r2, 1
|
||||
adds r0, r2
|
||||
lsls r0, 2
|
||||
adds r4, r0
|
||||
ldr r0, [r4, 0x50]
|
||||
lsls r0, 14
|
||||
lsrs r0, 29
|
||||
cmp r0, 0
|
||||
beq _0817E3EE
|
||||
subs r0, 0x1
|
||||
lsls r0, 2
|
||||
adds r1, r4, 0
|
||||
adds r1, 0x55
|
||||
ldrb r3, [r1]
|
||||
lsls r3, 28
|
||||
lsrs r3, 30
|
||||
adds r3, r0
|
||||
lsls r3, 24
|
||||
lsrs r3, 24
|
||||
movs r0, 0x2
|
||||
movs r1, 0
|
||||
bl sub_817E684
|
||||
adds r2, r4, 0
|
||||
adds r2, 0x57
|
||||
ldrb r1, [r2]
|
||||
movs r0, 0x1F
|
||||
negs r0, r0
|
||||
ands r0, r1
|
||||
movs r1, 0x10
|
||||
b _0817E3EA
|
||||
_0817E3AA:
|
||||
lsls r0, r2, 1
|
||||
adds r0, r2
|
||||
lsls r0, 2
|
||||
adds r4, r0
|
||||
adds r0, r4, 0
|
||||
adds r0, 0x52
|
||||
ldrb r0, [r0]
|
||||
lsls r0, 27
|
||||
lsrs r0, 29
|
||||
cmp r0, 0
|
||||
beq _0817E3EE
|
||||
subs r0, 0x1
|
||||
lsls r0, 2
|
||||
adds r1, r4, 0
|
||||
adds r1, 0x55
|
||||
ldrb r3, [r1]
|
||||
lsls r3, 26
|
||||
lsrs r3, 30
|
||||
adds r3, r0
|
||||
lsls r3, 24
|
||||
lsrs r3, 24
|
||||
movs r0, 0x2
|
||||
movs r1, 0x1
|
||||
bl sub_817E684
|
||||
adds r2, r4, 0
|
||||
adds r2, 0x57
|
||||
ldrb r1, [r2]
|
||||
movs r0, 0x1F
|
||||
negs r0, r0
|
||||
ands r0, r1
|
||||
movs r1, 0x12
|
||||
_0817E3EA:
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
_0817E3EE:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_817E32C
|
||||
|
||||
thumb_func_start sub_817E3F4
|
||||
sub_817E3F4: @ 817E3F4
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0x20
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r1, 0
|
||||
str r1, [sp, 0x4]
|
||||
movs r2, 0
|
||||
str r2, [sp, 0x8]
|
||||
ldr r3, =0x00007fff
|
||||
str r3, [sp, 0xC]
|
||||
movs r4, 0
|
||||
str r4, [sp, 0x10]
|
||||
movs r7, 0
|
||||
str r7, [sp, 0x14]
|
||||
mov r8, r0
|
||||
ldr r0, =gBattleStruct
|
||||
ldr r1, [r0]
|
||||
adds r0, r1, 0
|
||||
adds r0, 0xB3
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _0817E42A
|
||||
b _0817E670
|
||||
_0817E42A:
|
||||
movs r2, 0xD2
|
||||
lsls r2, 1
|
||||
adds r2, r1
|
||||
mov r10, r2
|
||||
movs r6, 0
|
||||
_0817E434:
|
||||
movs r0, 0x64
|
||||
adds r4, r6, 0
|
||||
muls r4, r0
|
||||
ldr r0, =gPlayerParty
|
||||
adds r0, r4, r0
|
||||
movs r1, 0xB
|
||||
movs r2, 0
|
||||
bl GetMonData
|
||||
cmp r0, 0
|
||||
beq _0817E454
|
||||
mov r0, r8
|
||||
adds r0, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
mov r8, r0
|
||||
_0817E454:
|
||||
ldr r5, =gEnemyParty
|
||||
adds r0, r4, r5
|
||||
movs r1, 0xB
|
||||
movs r2, 0
|
||||
bl GetMonData
|
||||
cmp r0, 0
|
||||
beq _0817E46A
|
||||
adds r0, r7, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r7, r0, 24
|
||||
_0817E46A:
|
||||
adds r6, 0x1
|
||||
cmp r6, 0x5
|
||||
ble _0817E434
|
||||
ldr r0, =gBattleTypeFlags
|
||||
ldr r0, [r0]
|
||||
movs r1, 0x2
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _0817E47E
|
||||
b _0817E670
|
||||
_0817E47E:
|
||||
cmp r8, r7
|
||||
beq _0817E484
|
||||
b _0817E670
|
||||
_0817E484:
|
||||
movs r6, 0
|
||||
lsls r3, r6, 1
|
||||
str r3, [sp, 0x18]
|
||||
movs r4, 0x64
|
||||
mov r8, r4
|
||||
_0817E48E:
|
||||
mov r1, r8
|
||||
muls r1, r6
|
||||
ldr r0, =gPlayerParty
|
||||
adds r4, r1, r0
|
||||
adds r0, r4, 0
|
||||
movs r1, 0xB
|
||||
movs r2, 0
|
||||
bl GetMonData
|
||||
lsls r0, 16
|
||||
lsrs r7, r0, 16
|
||||
adds r0, r6, 0x1
|
||||
mov r9, r0
|
||||
cmp r7, 0
|
||||
beq _0817E4EE
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x2D
|
||||
movs r2, 0
|
||||
bl GetMonData
|
||||
cmp r0, 0
|
||||
bne _0817E4EE
|
||||
movs r4, 0
|
||||
lsls r0, r6, 3
|
||||
mov r2, r10
|
||||
adds r1, r0, r2
|
||||
movs r3, 0x3
|
||||
_0817E4C4:
|
||||
lsls r0, r4, 16
|
||||
asrs r0, 16
|
||||
ldrh r4, [r1]
|
||||
adds r0, r4
|
||||
lsls r0, 16
|
||||
lsrs r4, r0, 16
|
||||
adds r1, 0x2
|
||||
subs r3, 0x1
|
||||
cmp r3, 0
|
||||
bge _0817E4C4
|
||||
ldr r1, [sp, 0x8]
|
||||
lsls r0, r1, 16
|
||||
lsls r1, r4, 16
|
||||
cmp r0, r1
|
||||
bge _0817E4EE
|
||||
lsls r0, r6, 24
|
||||
lsrs r0, 24
|
||||
str r0, [sp, 0x10]
|
||||
lsrs r1, 16
|
||||
str r1, [sp, 0x8]
|
||||
str r7, [sp]
|
||||
_0817E4EE:
|
||||
mov r0, r8
|
||||
muls r0, r6
|
||||
ldr r2, =gEnemyParty
|
||||
adds r4, r0, r2
|
||||
adds r0, r4, 0
|
||||
movs r1, 0xB
|
||||
movs r2, 0
|
||||
bl GetMonData
|
||||
lsls r0, 16
|
||||
lsrs r7, r0, 16
|
||||
ldr r3, [sp, 0x8]
|
||||
lsls r3, 16
|
||||
str r3, [sp, 0x1C]
|
||||
cmp r7, 0
|
||||
beq _0817E5A0
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x2D
|
||||
movs r2, 0
|
||||
bl GetMonData
|
||||
cmp r0, 0
|
||||
bne _0817E5A0
|
||||
movs r4, 0
|
||||
ldr r0, [sp, 0xC]
|
||||
lsls r2, r0, 16
|
||||
movs r3, 0x1
|
||||
lsls r1, r3, 1
|
||||
adds r1, 0x1
|
||||
lsls r1, 4
|
||||
lsls r0, r6, 3
|
||||
adds r0, r1
|
||||
mov r3, r10
|
||||
adds r1, r0, r3
|
||||
movs r3, 0x3
|
||||
_0817E534:
|
||||
lsls r0, r4, 16
|
||||
asrs r0, 16
|
||||
ldrh r4, [r1]
|
||||
adds r0, r4
|
||||
lsls r0, 16
|
||||
lsrs r4, r0, 16
|
||||
adds r1, 0x2
|
||||
subs r3, 0x1
|
||||
cmp r3, 0
|
||||
bge _0817E534
|
||||
asrs r1, r2, 16
|
||||
lsls r5, r4, 16
|
||||
asrs r0, r5, 16
|
||||
cmp r1, r0
|
||||
bne _0817E590
|
||||
mov r0, r8
|
||||
muls r0, r6
|
||||
ldr r1, =gEnemyParty
|
||||
adds r0, r1
|
||||
movs r1, 0x19
|
||||
movs r2, 0
|
||||
bl GetMonData
|
||||
adds r4, r0, 0
|
||||
ldr r2, [sp, 0x14]
|
||||
mov r0, r8
|
||||
muls r0, r2
|
||||
ldr r3, =gEnemyParty
|
||||
adds r0, r3
|
||||
movs r1, 0x19
|
||||
movs r2, 0
|
||||
bl GetMonData
|
||||
cmp r4, r0
|
||||
bls _0817E5A0
|
||||
b _0817E594
|
||||
.pool
|
||||
_0817E590:
|
||||
cmp r1, r0
|
||||
ble _0817E5A0
|
||||
_0817E594:
|
||||
lsls r0, r6, 24
|
||||
lsrs r0, 24
|
||||
str r0, [sp, 0x14]
|
||||
lsrs r5, 16
|
||||
str r5, [sp, 0xC]
|
||||
str r7, [sp, 0x4]
|
||||
_0817E5A0:
|
||||
mov r6, r9
|
||||
cmp r6, 0x5
|
||||
bgt _0817E5A8
|
||||
b _0817E48E
|
||||
_0817E5A8:
|
||||
movs r4, 0
|
||||
movs r6, 0
|
||||
movs r3, 0
|
||||
ldr r5, =gPlayerParty
|
||||
ldr r7, [sp, 0x10]
|
||||
lsls r0, r7, 3
|
||||
mov r1, r10
|
||||
adds r2, r0, r1
|
||||
_0817E5B8:
|
||||
lsls r0, r4, 16
|
||||
asrs r0, 16
|
||||
movs r7, 0
|
||||
ldrsh r1, [r2, r7]
|
||||
cmp r0, r1
|
||||
bge _0817E5C8
|
||||
ldrh r4, [r2]
|
||||
adds r6, r3, 0
|
||||
_0817E5C8:
|
||||
adds r2, 0x2
|
||||
adds r3, 0x1
|
||||
cmp r3, 0x3
|
||||
ble _0817E5B8
|
||||
movs r0, 0x64
|
||||
ldr r1, [sp, 0x10]
|
||||
muls r0, r1
|
||||
adds r0, r5
|
||||
adds r1, r6, 0
|
||||
adds r1, 0xD
|
||||
movs r2, 0
|
||||
bl GetMonData
|
||||
lsls r0, 16
|
||||
lsrs r4, r0, 16
|
||||
ldr r2, [sp, 0x1C]
|
||||
cmp r2, 0
|
||||
beq _0817E670
|
||||
cmp r4, 0
|
||||
beq _0817E670
|
||||
ldr r0, =gBattleTypeFlags
|
||||
ldr r0, [r0]
|
||||
movs r1, 0x40
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0817E65C
|
||||
ldr r3, [sp, 0x10]
|
||||
cmp r3, 0x2
|
||||
bhi _0817E620
|
||||
ldr r0, =gBattleScripting
|
||||
adds r0, 0x25
|
||||
ldrb r0, [r0]
|
||||
bl sub_806D82C
|
||||
lsls r0, 16
|
||||
cmp r0, 0
|
||||
beq _0817E630
|
||||
b _0817E670
|
||||
.pool
|
||||
_0817E620:
|
||||
ldr r0, =gBattleScripting
|
||||
adds r0, 0x25
|
||||
ldrb r0, [r0]
|
||||
bl sub_806D82C
|
||||
lsls r0, 16
|
||||
cmp r0, 0
|
||||
beq _0817E670
|
||||
_0817E630:
|
||||
movs r3, 0
|
||||
ldr r7, [sp, 0x14]
|
||||
cmp r7, 0x2
|
||||
bls _0817E63A
|
||||
movs r3, 0x1
|
||||
_0817E63A:
|
||||
lsls r0, r3, 24
|
||||
lsrs r0, 24
|
||||
ldr r1, =gBattleScripting
|
||||
adds r1, 0x25
|
||||
ldrb r1, [r1]
|
||||
bl sub_806EF84
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
adds r1, r4, 0
|
||||
ldr r2, [sp]
|
||||
ldr r3, [sp, 0x4]
|
||||
bl PutBattleUpdateOnTheAir
|
||||
b _0817E670
|
||||
.pool
|
||||
_0817E65C:
|
||||
ldr r0, =gBattleScripting
|
||||
adds r0, 0x25
|
||||
ldrb r1, [r0]
|
||||
movs r0, 0x1
|
||||
eors r0, r1
|
||||
adds r1, r4, 0
|
||||
ldr r2, [sp]
|
||||
ldr r3, [sp, 0x4]
|
||||
bl PutBattleUpdateOnTheAir
|
||||
_0817E670:
|
||||
add sp, 0x20
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_817E3F4
|
||||
|
||||
thumb_func_start sub_817E684
|
||||
sub_817E684: @ 817E684
|
||||
push {r4-r7,lr}
|
||||
|
@ -472,7 +472,7 @@ struct BattleStruct
|
||||
u8 wishPerishSongBattlerId;
|
||||
bool8 overworldWeatherDone;
|
||||
u8 atkCancellerTracker;
|
||||
s16 field_1A4[2][6][4];
|
||||
s16 field_1A4[2][PARTY_SIZE * 4];
|
||||
u8 field_204[104];
|
||||
u8 field_26C[40];
|
||||
u8 AI_monToSwitchIntoId[MAX_BATTLERS_COUNT];
|
||||
|
@ -618,21 +618,24 @@ void sub_817E32C(u8 animationId)
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef NONMATCHING
|
||||
// for loop has an unused stack variable
|
||||
void sub_817E3F4(void)
|
||||
{
|
||||
u16 playerBestSpecies = 0, opponentBestSpecies = 0;
|
||||
s16 playerBestSum = 0, opponentBestSum = SHRT_MAX;
|
||||
u8 playerBestMonId = 0, opponentBestMonId = 0;
|
||||
s16 (*array)[2][6][4] = NULL;
|
||||
s16 *array = NULL;
|
||||
u8 countPlayer = 0, countOpponent = 0;
|
||||
s16 sum = 0;
|
||||
u16 species = 0;
|
||||
u16 moveId = 0;
|
||||
s32 i, j;
|
||||
|
||||
if (gBattleStruct->field_B3)
|
||||
return;
|
||||
|
||||
array = &gBattleStruct->field_1A4;
|
||||
array = (void*) &gBattleStruct->field_1A4[0];
|
||||
for (i = 0; i < PARTY_SIZE; i++)
|
||||
{
|
||||
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES, NULL) != SPECIES_NONE)
|
||||
@ -646,11 +649,11 @@ void sub_817E3F4(void)
|
||||
|
||||
for (i = 0; i < PARTY_SIZE; i++)
|
||||
{
|
||||
u16 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES, NULL);
|
||||
species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES, NULL);
|
||||
if (species != SPECIES_NONE && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG, NULL))
|
||||
{
|
||||
for (sum = 0, j = 0; j < 4; j++)
|
||||
sum += (*array)[0][i][j];
|
||||
sum += array[i * 4 + j];
|
||||
|
||||
if (playerBestSum < sum)
|
||||
{
|
||||
@ -663,9 +666,8 @@ void sub_817E3F4(void)
|
||||
species = GetMonData(&gEnemyParty[i], MON_DATA_SPECIES, NULL);
|
||||
if (species != SPECIES_NONE && !GetMonData(&gEnemyParty[i], MON_DATA_IS_EGG, NULL))
|
||||
{
|
||||
s32 sideId = B_SIDE_OPPONENT;
|
||||
for (sum = 0, j = 0; j < 4; j++)
|
||||
sum += (*array)[sideId][i][j];
|
||||
sum += array[i * 4 + j];
|
||||
|
||||
if (opponentBestSum == sum)
|
||||
{
|
||||
@ -687,9 +689,9 @@ void sub_817E3F4(void)
|
||||
|
||||
for (sum = 0, i = 0, j = 0; j < 4; j++)
|
||||
{
|
||||
if (sum < (*array)[0][playerBestMonId][j])
|
||||
if (sum < array[playerBestMonId * 4 + j])
|
||||
{
|
||||
sum = (*array)[0][playerBestMonId][j];
|
||||
sum = array[playerBestMonId * 4 + j];
|
||||
i = j;
|
||||
}
|
||||
}
|
||||
@ -700,22 +702,342 @@ void sub_817E3F4(void)
|
||||
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
|
||||
{
|
||||
if (playerBestMonId < 3)
|
||||
if ((playerBestMonId < 3 && !sub_806D82C(gBattleScripting.multiplayerId))
|
||||
|| (playerBestMonId >= 3 && sub_806D82C(gBattleScripting.multiplayerId)))
|
||||
{
|
||||
if (sub_806D82C(gBattleScripting.multiplayerId))
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!sub_806D82C(gBattleScripting.multiplayerId))
|
||||
return;
|
||||
}
|
||||
|
||||
j = (opponentBestMonId < 3) ? 0 : 1;
|
||||
PutBattleUpdateOnTheAir(sub_806EF84(j, gBattleScripting.multiplayerId), moveId, playerBestSpecies, opponentBestSpecies);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
PutBattleUpdateOnTheAir(gBattleScripting.multiplayerId ^ 1, moveId, playerBestSpecies, opponentBestSpecies);
|
||||
}
|
||||
}
|
||||
|
||||
#else
|
||||
ASM_DIRECT
|
||||
void sub_817E3F4(void)
|
||||
{
|
||||
asm_unified(
|
||||
"push {r4-r7,lr}\n\
|
||||
mov r7, r10\n\
|
||||
mov r6, r9\n\
|
||||
mov r5, r8\n\
|
||||
push {r5-r7}\n\
|
||||
sub sp, 0x20\n\
|
||||
movs r0, 0\n\
|
||||
str r0, [sp]\n\
|
||||
movs r1, 0\n\
|
||||
str r1, [sp, 0x4]\n\
|
||||
movs r2, 0\n\
|
||||
str r2, [sp, 0x8]\n\
|
||||
ldr r3, =0x00007fff\n\
|
||||
str r3, [sp, 0xC]\n\
|
||||
movs r4, 0\n\
|
||||
str r4, [sp, 0x10]\n\
|
||||
movs r7, 0\n\
|
||||
str r7, [sp, 0x14]\n\
|
||||
mov r8, r0\n\
|
||||
ldr r0, =gBattleStruct\n\
|
||||
ldr r1, [r0]\n\
|
||||
adds r0, r1, 0\n\
|
||||
adds r0, 0xB3\n\
|
||||
ldrb r0, [r0]\n\
|
||||
cmp r0, 0\n\
|
||||
beq _0817E42A\n\
|
||||
b _0817E670\n\
|
||||
_0817E42A:\n\
|
||||
movs r2, 0xD2\n\
|
||||
lsls r2, 1\n\
|
||||
adds r2, r1\n\
|
||||
mov r10, r2\n\
|
||||
movs r6, 0\n\
|
||||
_0817E434:\n\
|
||||
movs r0, 0x64\n\
|
||||
adds r4, r6, 0\n\
|
||||
muls r4, r0\n\
|
||||
ldr r0, =gPlayerParty\n\
|
||||
adds r0, r4, r0\n\
|
||||
movs r1, 0xB\n\
|
||||
movs r2, 0\n\
|
||||
bl GetMonData\n\
|
||||
cmp r0, 0\n\
|
||||
beq _0817E454\n\
|
||||
mov r0, r8\n\
|
||||
adds r0, 0x1\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
mov r8, r0\n\
|
||||
_0817E454:\n\
|
||||
ldr r5, =gEnemyParty\n\
|
||||
adds r0, r4, r5\n\
|
||||
movs r1, 0xB\n\
|
||||
movs r2, 0\n\
|
||||
bl GetMonData\n\
|
||||
cmp r0, 0\n\
|
||||
beq _0817E46A\n\
|
||||
adds r0, r7, 0x1\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r7, r0, 24\n\
|
||||
_0817E46A:\n\
|
||||
adds r6, 0x1\n\
|
||||
cmp r6, 0x5\n\
|
||||
ble _0817E434\n\
|
||||
ldr r0, =gBattleTypeFlags\n\
|
||||
ldr r0, [r0]\n\
|
||||
movs r1, 0x2\n\
|
||||
ands r0, r1\n\
|
||||
cmp r0, 0\n\
|
||||
bne _0817E47E\n\
|
||||
b _0817E670\n\
|
||||
_0817E47E:\n\
|
||||
cmp r8, r7\n\
|
||||
beq _0817E484\n\
|
||||
b _0817E670\n\
|
||||
_0817E484:\n\
|
||||
movs r6, 0\n\
|
||||
lsls r3, r6, 1\n\
|
||||
str r3, [sp, 0x18]\n\
|
||||
movs r4, 0x64\n\
|
||||
mov r8, r4\n\
|
||||
_0817E48E:\n\
|
||||
mov r1, r8\n\
|
||||
muls r1, r6\n\
|
||||
ldr r0, =gPlayerParty\n\
|
||||
adds r4, r1, r0\n\
|
||||
adds r0, r4, 0\n\
|
||||
movs r1, 0xB\n\
|
||||
movs r2, 0\n\
|
||||
bl GetMonData\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r7, r0, 16\n\
|
||||
adds r0, r6, 0x1\n\
|
||||
mov r9, r0\n\
|
||||
cmp r7, 0\n\
|
||||
beq _0817E4EE\n\
|
||||
adds r0, r4, 0\n\
|
||||
movs r1, 0x2D\n\
|
||||
movs r2, 0\n\
|
||||
bl GetMonData\n\
|
||||
cmp r0, 0\n\
|
||||
bne _0817E4EE\n\
|
||||
movs r4, 0\n\
|
||||
lsls r0, r6, 3\n\
|
||||
mov r2, r10\n\
|
||||
adds r1, r0, r2\n\
|
||||
movs r3, 0x3\n\
|
||||
_0817E4C4:\n\
|
||||
lsls r0, r4, 16\n\
|
||||
asrs r0, 16\n\
|
||||
ldrh r4, [r1]\n\
|
||||
adds r0, r4\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r4, r0, 16\n\
|
||||
adds r1, 0x2\n\
|
||||
subs r3, 0x1\n\
|
||||
cmp r3, 0\n\
|
||||
bge _0817E4C4\n\
|
||||
ldr r1, [sp, 0x8]\n\
|
||||
lsls r0, r1, 16\n\
|
||||
lsls r1, r4, 16\n\
|
||||
cmp r0, r1\n\
|
||||
bge _0817E4EE\n\
|
||||
lsls r0, r6, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
str r0, [sp, 0x10]\n\
|
||||
lsrs r1, 16\n\
|
||||
str r1, [sp, 0x8]\n\
|
||||
str r7, [sp]\n\
|
||||
_0817E4EE:\n\
|
||||
mov r0, r8\n\
|
||||
muls r0, r6\n\
|
||||
ldr r2, =gEnemyParty\n\
|
||||
adds r4, r0, r2\n\
|
||||
adds r0, r4, 0\n\
|
||||
movs r1, 0xB\n\
|
||||
movs r2, 0\n\
|
||||
bl GetMonData\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r7, r0, 16\n\
|
||||
ldr r3, [sp, 0x8]\n\
|
||||
lsls r3, 16\n\
|
||||
str r3, [sp, 0x1C]\n\
|
||||
cmp r7, 0\n\
|
||||
beq _0817E5A0\n\
|
||||
adds r0, r4, 0\n\
|
||||
movs r1, 0x2D\n\
|
||||
movs r2, 0\n\
|
||||
bl GetMonData\n\
|
||||
cmp r0, 0\n\
|
||||
bne _0817E5A0\n\
|
||||
movs r4, 0\n\
|
||||
ldr r0, [sp, 0xC]\n\
|
||||
lsls r2, r0, 16\n\
|
||||
movs r3, 0x1\n\
|
||||
lsls r1, r3, 1\n\
|
||||
adds r1, 0x1\n\
|
||||
lsls r1, 4\n\
|
||||
lsls r0, r6, 3\n\
|
||||
adds r0, r1\n\
|
||||
mov r3, r10\n\
|
||||
adds r1, r0, r3\n\
|
||||
movs r3, 0x3\n\
|
||||
_0817E534:\n\
|
||||
lsls r0, r4, 16\n\
|
||||
asrs r0, 16\n\
|
||||
ldrh r4, [r1]\n\
|
||||
adds r0, r4\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r4, r0, 16\n\
|
||||
adds r1, 0x2\n\
|
||||
subs r3, 0x1\n\
|
||||
cmp r3, 0\n\
|
||||
bge _0817E534\n\
|
||||
asrs r1, r2, 16\n\
|
||||
lsls r5, r4, 16\n\
|
||||
asrs r0, r5, 16\n\
|
||||
cmp r1, r0\n\
|
||||
bne _0817E590\n\
|
||||
mov r0, r8\n\
|
||||
muls r0, r6\n\
|
||||
ldr r1, =gEnemyParty\n\
|
||||
adds r0, r1\n\
|
||||
movs r1, 0x19\n\
|
||||
movs r2, 0\n\
|
||||
bl GetMonData\n\
|
||||
adds r4, r0, 0\n\
|
||||
ldr r2, [sp, 0x14]\n\
|
||||
mov r0, r8\n\
|
||||
muls r0, r2\n\
|
||||
ldr r3, =gEnemyParty\n\
|
||||
adds r0, r3\n\
|
||||
movs r1, 0x19\n\
|
||||
movs r2, 0\n\
|
||||
bl GetMonData\n\
|
||||
cmp r4, r0\n\
|
||||
bls _0817E5A0\n\
|
||||
b _0817E594\n\
|
||||
.pool\n\
|
||||
_0817E590:\n\
|
||||
cmp r1, r0\n\
|
||||
ble _0817E5A0\n\
|
||||
_0817E594:\n\
|
||||
lsls r0, r6, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
str r0, [sp, 0x14]\n\
|
||||
lsrs r5, 16\n\
|
||||
str r5, [sp, 0xC]\n\
|
||||
str r7, [sp, 0x4]\n\
|
||||
_0817E5A0:\n\
|
||||
mov r6, r9\n\
|
||||
cmp r6, 0x5\n\
|
||||
bgt _0817E5A8\n\
|
||||
b _0817E48E\n\
|
||||
_0817E5A8:\n\
|
||||
movs r4, 0\n\
|
||||
movs r6, 0\n\
|
||||
movs r3, 0\n\
|
||||
ldr r5, =gPlayerParty\n\
|
||||
ldr r7, [sp, 0x10]\n\
|
||||
lsls r0, r7, 3\n\
|
||||
mov r1, r10\n\
|
||||
adds r2, r0, r1\n\
|
||||
_0817E5B8:\n\
|
||||
lsls r0, r4, 16\n\
|
||||
asrs r0, 16\n\
|
||||
movs r7, 0\n\
|
||||
ldrsh r1, [r2, r7]\n\
|
||||
cmp r0, r1\n\
|
||||
bge _0817E5C8\n\
|
||||
ldrh r4, [r2]\n\
|
||||
adds r6, r3, 0\n\
|
||||
_0817E5C8:\n\
|
||||
adds r2, 0x2\n\
|
||||
adds r3, 0x1\n\
|
||||
cmp r3, 0x3\n\
|
||||
ble _0817E5B8\n\
|
||||
movs r0, 0x64\n\
|
||||
ldr r1, [sp, 0x10]\n\
|
||||
muls r0, r1\n\
|
||||
adds r0, r5\n\
|
||||
adds r1, r6, 0\n\
|
||||
adds r1, 0xD\n\
|
||||
movs r2, 0\n\
|
||||
bl GetMonData\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r4, r0, 16\n\
|
||||
ldr r2, [sp, 0x1C]\n\
|
||||
cmp r2, 0\n\
|
||||
beq _0817E670\n\
|
||||
cmp r4, 0\n\
|
||||
beq _0817E670\n\
|
||||
ldr r0, =gBattleTypeFlags\n\
|
||||
ldr r0, [r0]\n\
|
||||
movs r1, 0x40\n\
|
||||
ands r0, r1\n\
|
||||
cmp r0, 0\n\
|
||||
beq _0817E65C\n\
|
||||
ldr r3, [sp, 0x10]\n\
|
||||
cmp r3, 0x2\n\
|
||||
bhi _0817E620\n\
|
||||
ldr r0, =gBattleScripting\n\
|
||||
adds r0, 0x25\n\
|
||||
ldrb r0, [r0]\n\
|
||||
bl sub_806D82C\n\
|
||||
lsls r0, 16\n\
|
||||
cmp r0, 0\n\
|
||||
beq _0817E630\n\
|
||||
b _0817E670\n\
|
||||
.pool\n\
|
||||
_0817E620:\n\
|
||||
ldr r0, =gBattleScripting\n\
|
||||
adds r0, 0x25\n\
|
||||
ldrb r0, [r0]\n\
|
||||
bl sub_806D82C\n\
|
||||
lsls r0, 16\n\
|
||||
cmp r0, 0\n\
|
||||
beq _0817E670\n\
|
||||
_0817E630:\n\
|
||||
movs r3, 0\n\
|
||||
ldr r7, [sp, 0x14]\n\
|
||||
cmp r7, 0x2\n\
|
||||
bls _0817E63A\n\
|
||||
movs r3, 0x1\n\
|
||||
_0817E63A:\n\
|
||||
lsls r0, r3, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
ldr r1, =gBattleScripting\n\
|
||||
adds r1, 0x25\n\
|
||||
ldrb r1, [r1]\n\
|
||||
bl sub_806EF84\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
adds r1, r4, 0\n\
|
||||
ldr r2, [sp]\n\
|
||||
ldr r3, [sp, 0x4]\n\
|
||||
bl PutBattleUpdateOnTheAir\n\
|
||||
b _0817E670\n\
|
||||
.pool\n\
|
||||
_0817E65C:\n\
|
||||
ldr r0, =gBattleScripting\n\
|
||||
adds r0, 0x25\n\
|
||||
ldrb r1, [r0]\n\
|
||||
movs r0, 0x1\n\
|
||||
eors r0, r1\n\
|
||||
adds r1, r4, 0\n\
|
||||
ldr r2, [sp]\n\
|
||||
ldr r3, [sp, 0x4]\n\
|
||||
bl PutBattleUpdateOnTheAir\n\
|
||||
_0817E670:\n\
|
||||
add sp, 0x20\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\
|
||||
.pool");
|
||||
}
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user