mirror of
https://github.com/pret/pokeruby.git
synced 2026-10-06 09:05:01 -04:00
decompile BattleAICmd_if_status_in_party
This commit is contained in:
-103
@@ -6,109 +6,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start BattleAICmd_if_status_in_party
|
||||
BattleAICmd_if_status_in_party: @ 8108964
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
ldr r0, _0810897C @ =gAIScriptPtr
|
||||
ldr r1, [r0]
|
||||
ldrb r1, [r1, 0x1]
|
||||
cmp r1, 0x1
|
||||
bne _081089A4
|
||||
ldr r1, _08108980 @ =gEnemyParty
|
||||
b _081089A6
|
||||
.align 2, 0
|
||||
_0810897C: .4byte gAIScriptPtr
|
||||
_08108980: .4byte gEnemyParty
|
||||
_08108984:
|
||||
ldr r3, _081089A0 @ =gAIScriptPtr
|
||||
ldr r2, [r3]
|
||||
ldrb r1, [r2, 0x6]
|
||||
ldrb r0, [r2, 0x7]
|
||||
lsls r0, 8
|
||||
orrs r1, r0
|
||||
ldrb r0, [r2, 0x8]
|
||||
lsls r0, 16
|
||||
orrs r1, r0
|
||||
ldrb r0, [r2, 0x9]
|
||||
lsls r0, 24
|
||||
orrs r1, r0
|
||||
str r1, [r3]
|
||||
b _08108A12
|
||||
.align 2, 0
|
||||
_081089A0: .4byte gAIScriptPtr
|
||||
_081089A4:
|
||||
ldr r1, _08108A20 @ =gPlayerParty
|
||||
_081089A6:
|
||||
mov r9, r1
|
||||
ldr r1, [r0]
|
||||
ldrb r7, [r1, 0x2]
|
||||
ldrb r0, [r1, 0x3]
|
||||
lsls r0, 8
|
||||
orrs r7, r0
|
||||
ldrb r0, [r1, 0x4]
|
||||
lsls r0, 16
|
||||
orrs r7, r0
|
||||
ldrb r0, [r1, 0x5]
|
||||
lsls r0, 24
|
||||
orrs r7, r0
|
||||
movs r0, 0
|
||||
mov r8, r0
|
||||
movs r1, 0xCE
|
||||
lsls r1, 1
|
||||
mov r10, r1
|
||||
_081089C8:
|
||||
movs r0, 0x64
|
||||
mov r4, r8
|
||||
muls r4, r0
|
||||
add r4, r9
|
||||
adds r0, r4, 0
|
||||
movs r1, 0xB
|
||||
bl GetMonData
|
||||
lsls r0, 16
|
||||
lsrs r5, r0, 16
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x39
|
||||
bl GetMonData
|
||||
lsls r0, 16
|
||||
lsrs r6, r0, 16
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x37
|
||||
bl GetMonData
|
||||
cmp r5, 0
|
||||
beq _08108A00
|
||||
cmp r5, r10
|
||||
beq _08108A00
|
||||
cmp r6, 0
|
||||
beq _08108A00
|
||||
cmp r0, r7
|
||||
beq _08108984
|
||||
_08108A00:
|
||||
movs r0, 0x1
|
||||
add r8, r0
|
||||
mov r1, r8
|
||||
cmp r1, 0x5
|
||||
ble _081089C8
|
||||
ldr r1, _08108A24 @ =gAIScriptPtr
|
||||
ldr r0, [r1]
|
||||
adds r0, 0xA
|
||||
str r0, [r1]
|
||||
_08108A12:
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08108A20: .4byte gPlayerParty
|
||||
_08108A24: .4byte gAIScriptPtr
|
||||
thumb_func_end BattleAICmd_if_status_in_party
|
||||
|
||||
thumb_func_start BattleAICmd_if_status_not_in_party
|
||||
BattleAICmd_if_status_not_in_party: @ 8108A28
|
||||
push {r4-r7,lr}
|
||||
|
||||
@@ -1329,3 +1329,40 @@ void BattleAICmd_unk_32(void)
|
||||
|
||||
void BattleAICmd_unk_33(void)
|
||||
{}
|
||||
|
||||
void BattleAICmd_if_status_in_party(void)
|
||||
{
|
||||
struct Pokemon *party;
|
||||
int i;
|
||||
u32 statusToCompareTo;
|
||||
|
||||
if (gAIScriptPtr[1] == USER)
|
||||
{
|
||||
party = gEnemyParty;
|
||||
}
|
||||
else if (0)
|
||||
{
|
||||
// what is going on here?
|
||||
follow_jump:
|
||||
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
party = gPlayerParty;
|
||||
}
|
||||
|
||||
statusToCompareTo = AIScriptRead32(gAIScriptPtr + 2);
|
||||
|
||||
for (i = 0; i < 6; i++)
|
||||
{
|
||||
u16 species = GetMonData(&party[i], MON_DATA_SPECIES);
|
||||
u16 hp = GetMonData(&party[i], MON_DATA_HP);
|
||||
u32 status = GetMonData(&party[i], MON_DATA_STATUS);
|
||||
|
||||
if (species != SPECIES_NONE && species != SPECIES_EGG && hp != 0 && status == statusToCompareTo)
|
||||
goto follow_jump;
|
||||
}
|
||||
|
||||
gAIScriptPtr += 10;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user