diff options
Diffstat (limited to 'src/battle/battle_controller_opponent.c')
-rw-r--r-- | src/battle/battle_controller_opponent.c | 550 |
1 files changed, 275 insertions, 275 deletions
diff --git a/src/battle/battle_controller_opponent.c b/src/battle/battle_controller_opponent.c index 8e8743dbc..e986eb38d 100644 --- a/src/battle/battle_controller_opponent.c +++ b/src/battle/battle_controller_opponent.c @@ -1217,19 +1217,19 @@ void OpponentHandleTrainerThrow(void) #if DEBUG if (gUnknown_02023A14_50 & 0x10) { - trainerPicIndex = gSharedMem[0x160A3]; + trainerPicIndex = gSharedMem[0x160A3]; } else #endif { - if (gTrainerBattleOpponent == 0x400) - trainerPicIndex = GetSecretBaseTrainerPicIndex(); - else if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) - trainerPicIndex = get_trainer_class_pic_index(); - else if (gBattleTypeFlags & BATTLE_TYPE_EREADER_TRAINER) - trainerPicIndex = GetEReaderTrainerPicIndex(); - else - trainerPicIndex = gTrainers[gTrainerBattleOpponent].trainerPic; + if (gTrainerBattleOpponent == 0x400) + trainerPicIndex = GetSecretBaseTrainerPicIndex(); + else if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) + trainerPicIndex = get_trainer_class_pic_index(); + else if (gBattleTypeFlags & BATTLE_TYPE_EREADER_TRAINER) + trainerPicIndex = GetEReaderTrainerPicIndex(); + else + trainerPicIndex = gTrainers[gTrainerBattleOpponent].trainerPic; } sub_8031A6C(trainerPicIndex, gActiveBank); @@ -1442,308 +1442,308 @@ __attribute__((naked)) void OpponentHandlecmd20(void) { asm("\ - push {r4, r5, r6, r7, lr}\n\ - mov r7, sl\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5, r6, r7}\n\ - ldr r6, ._549 @ gActiveBank\n\ - ldrb r0, [r6]\n\ - lsl r0, r0, #0x9\n\ - ldr r1, ._549 + 4 @ gBattleBufferA\n\ - add r5, r0, r1\n\ - ldr r2, ._549 + 8 @ gUnknown_02023A14_50\n\ - ldrb r1, [r2]\n\ - mov r0, #0x4\n\ - and r0, r0, r1\n\ - mov sl, r6\n\ - cmp r0, #0\n\ - beq ._546 @cond_branch\n\ - ldr r0, ._549 + 12 @ gBattleMoves\n\ - mov r9, r0\n\ - ldr r1, ._549 + 16 @ \n\ - mov ip, r1\n\ - add r7, r6, #0\n\ - mov r0, #0x2\n\ - mov r8, r0\n\ - ldr r6, ._549 + 20 @ \n\ + push {r4, r5, r6, r7, lr}\n\ + mov r7, sl\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5, r6, r7}\n\ + ldr r6, ._549 @ gActiveBank\n\ + ldrb r0, [r6]\n\ + lsl r0, r0, #0x9\n\ + ldr r1, ._549 + 4 @ gBattleBufferA\n\ + add r5, r0, r1\n\ + ldr r2, ._549 + 8 @ gUnknown_02023A14_50\n\ + ldrb r1, [r2]\n\ + mov r0, #0x4\n\ + and r0, r0, r1\n\ + mov sl, r6\n\ + cmp r0, #0\n\ + beq ._546 @cond_branch\n\ + ldr r0, ._549 + 12 @ gBattleMoves\n\ + mov r9, r0\n\ + ldr r1, ._549 + 16 @ \n\ + mov ip, r1\n\ + add r7, r6, #0\n\ + mov r0, #0x2\n\ + mov r8, r0\n\ + ldr r6, ._549 + 20 @ \n\ ._552:\n\ - ldrb r1, [r7]\n\ - mov r0, r8\n\ - and r0, r0, r1\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x19\n\ - add r0, r0, r6\n\ - mov r1, ip\n\ - add r3, r0, r1\n\ - ldrb r1, [r3]\n\ - lsl r0, r1, #0x1\n\ - add r0, r5, r0\n\ - ldrh r2, [r0]\n\ - add r4, r1, #0\n\ - cmp r2, #0\n\ - beq ._547 @cond_branch\n\ - add r0, r4, #1\n\ - strb r0, [r3]\n\ - b ._548\n\ + ldrb r1, [r7]\n\ + mov r0, r8\n\ + and r0, r0, r1\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x19\n\ + add r0, r0, r6\n\ + mov r1, ip\n\ + add r3, r0, r1\n\ + ldrb r1, [r3]\n\ + lsl r0, r1, #0x1\n\ + add r0, r5, r0\n\ + ldrh r2, [r0]\n\ + add r4, r1, #0\n\ + cmp r2, #0\n\ + beq ._547 @cond_branch\n\ + add r0, r4, #1\n\ + strb r0, [r3]\n\ + b ._548\n\ ._550:\n\ - .align 2, 0\n\ + .align 2, 0\n\ ._549:\n\ - .word gActiveBank\n\ - .word gBattleBufferA+4\n\ - .word gUnknown_02023A14_50\n\ - .word gBattleMoves\n\ - .word +0x2000000\n\ - .word 0x1609e\n\ + .word gActiveBank\n\ + .word gBattleBufferA+4\n\ + .word gUnknown_02023A14_50\n\ + .word gBattleMoves\n\ + .word +0x2000000\n\ + .word 0x1609e\n\ ._547:\n\ - strb r2, [r3]\n\ + strb r2, [r3]\n\ ._548:\n\ - ldrb r0, [r7]\n\ - mov r1, r8\n\ - and r1, r1, r0\n\ - lsl r1, r1, #0x18\n\ - lsr r1, r1, #0x19\n\ - add r1, r1, r6\n\ - add r1, r1, ip\n\ - ldrb r0, [r1]\n\ - cmp r0, #0x3\n\ - bls ._551 @cond_branch\n\ - mov r0, #0x0\n\ - strb r0, [r1]\n\ + ldrb r0, [r7]\n\ + mov r1, r8\n\ + and r1, r1, r0\n\ + lsl r1, r1, #0x18\n\ + lsr r1, r1, #0x19\n\ + add r1, r1, r6\n\ + add r1, r1, ip\n\ + ldrb r0, [r1]\n\ + cmp r0, #0x3\n\ + bls ._551 @cond_branch\n\ + mov r0, #0x0\n\ + strb r0, [r1]\n\ ._551:\n\ - cmp r2, #0\n\ - beq ._552 @cond_branch\n\ - lsl r0, r2, #0x1\n\ - add r0, r0, r2\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r9\n\ - ldrb r3, [r0, #0x6]\n\ - mov r0, #0x12\n\ - and r0, r0, r3\n\ - cmp r0, #0\n\ - beq ._553 @cond_branch\n\ - mov r1, sl\n\ - ldrb r0, [r1]\n\ - b ._561\n\ + cmp r2, #0\n\ + beq ._552 @cond_branch\n\ + lsl r0, r2, #0x1\n\ + add r0, r0, r2\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r9\n\ + ldrb r3, [r0, #0x6]\n\ + mov r0, #0x12\n\ + and r0, r0, r3\n\ + cmp r0, #0\n\ + beq ._553 @cond_branch\n\ + mov r1, sl\n\ + ldrb r0, [r1]\n\ + b ._561\n\ ._553:\n\ - ldr r0, ._559 @ gBattleTypeFlags\n\ - ldrh r1, [r0]\n\ - mov r0, #0x1\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._557 @cond_branch\n\ - ldr r0, ._559 + 4 @ gUnknown_02023A14_50\n\ - ldrb r1, [r0]\n\ - mov r5, #0x2\n\ - add r0, r5, #0\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._556 @cond_branch\n\ - cmp r3, #0\n\ - bne ._557 @cond_branch\n\ - mov r1, sl\n\ - ldrb r0, [r1]\n\ - bl GetBankIdentity\n\ - mov r1, #0x2\n\ - eor r0, r0, r1\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - b ._558\n\ + ldr r0, ._559 @ gBattleTypeFlags\n\ + ldrh r1, [r0]\n\ + mov r0, #0x1\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._557 @cond_branch\n\ + ldr r0, ._559 + 4 @ gUnknown_02023A14_50\n\ + ldrb r1, [r0]\n\ + mov r5, #0x2\n\ + add r0, r5, #0\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._556 @cond_branch\n\ + cmp r3, #0\n\ + bne ._557 @cond_branch\n\ + mov r1, sl\n\ + ldrb r0, [r1]\n\ + bl GetBankIdentity\n\ + mov r1, #0x2\n\ + eor r0, r0, r1\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + b ._558\n\ ._560:\n\ - .align 2, 0\n\ + .align 2, 0\n\ ._559:\n\ - .word gBattleTypeFlags\n\ - .word gUnknown_02023A14_50\n\ + .word gBattleTypeFlags\n\ + .word gUnknown_02023A14_50\n\ ._556:\n\ - bl Random\n\ - add r1, r5, #0\n\ - and r1, r1, r0\n\ - lsl r1, r1, #0x10\n\ - lsr r0, r1, #0x10\n\ - b ._561\n\ + bl Random\n\ + add r1, r5, #0\n\ + and r1, r1, r0\n\ + lsl r1, r1, #0x10\n\ + lsr r0, r1, #0x10\n\ + b ._561\n\ ._557:\n\ - mov r0, #0x0\n\ + mov r0, #0x0\n\ ._558:\n\ - bl GetBankByIdentity\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ + bl GetBankByIdentity\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ ._561:\n\ - lsl r2, r0, #0x8\n\ - orr r2, r2, r4\n\ - mov r0, #0x1\n\ - mov r1, #0xa\n\ + lsl r2, r0, #0x8\n\ + orr r2, r2, r4\n\ + mov r0, #0x1\n\ + mov r1, #0xa\n\ ._569:\n\ - bl Emitcmd33\n\ + bl Emitcmd33\n\ ._573:\n\ - bl OpponentBufferExecCompleted\n\ - b ._562\n\ + bl OpponentBufferExecCompleted\n\ + b ._562\n\ ._546:\n\ - ldr r0, ._567 @ gBattleTypeFlags\n\ - ldrh r1, [r0]\n\ - mov r0, #0x93\n\ - lsl r0, r0, #0x3\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._563 @cond_branch\n\ - bl BattleAI_SetupAIData\n\ - bl BattleAI_GetAIActionToUse\n\ - lsl r0, r0, #0x18\n\ - lsr r4, r0, #0x18\n\ - cmp r4, #0x4\n\ - beq ._564 @cond_branch\n\ - cmp r4, #0x5\n\ - bne ._565 @cond_branch\n\ - mov r0, #0x1\n\ - mov r1, #0x4\n\ - b ._566\n\ + ldr r0, ._567 @ gBattleTypeFlags\n\ + ldrh r1, [r0]\n\ + mov r0, #0x93\n\ + lsl r0, r0, #0x3\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._563 @cond_branch\n\ + bl BattleAI_SetupAIData\n\ + bl BattleAI_GetAIActionToUse\n\ + lsl r0, r0, #0x18\n\ + lsr r4, r0, #0x18\n\ + cmp r4, #0x4\n\ + beq ._564 @cond_branch\n\ + cmp r4, #0x5\n\ + bne ._565 @cond_branch\n\ + mov r0, #0x1\n\ + mov r1, #0x4\n\ + b ._566\n\ ._568:\n\ - .align 2, 0\n\ + .align 2, 0\n\ ._567:\n\ - .word gBattleTypeFlags\n\ + .word gBattleTypeFlags\n\ ._564:\n\ - mov r0, #0x1\n\ - mov r1, #0x3\n\ + mov r0, #0x1\n\ + mov r1, #0x3\n\ ._566:\n\ - mov r2, #0x0\n\ - b ._569\n\ + mov r2, #0x0\n\ + b ._569\n\ ._565:\n\ - ldr r3, ._574 @ gBattleMoves\n\ - lsl r0, r4, #0x1\n\ - add r2, r5, r0\n\ - ldrh r1, [r2]\n\ - lsl r0, r1, #0x1\n\ - add r0, r0, r1\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r3\n\ - ldrb r1, [r0, #0x6]\n\ - mov r0, #0x12\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._570 @cond_branch\n\ - ldr r1, ._574 + 4 @ gBankTarget\n\ - ldrb r0, [r6]\n\ - strb r0, [r1]\n\ + ldr r3, ._574 @ gBattleMoves\n\ + lsl r0, r4, #0x1\n\ + add r2, r5, r0\n\ + ldrh r1, [r2]\n\ + lsl r0, r1, #0x1\n\ + add r0, r0, r1\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r3\n\ + ldrb r1, [r0, #0x6]\n\ + mov r0, #0x12\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._570 @cond_branch\n\ + ldr r1, ._574 + 4 @ gBankTarget\n\ + ldrb r0, [r6]\n\ + strb r0, [r1]\n\ ._570:\n\ - ldrh r1, [r2]\n\ - lsl r0, r1, #0x1\n\ - add r0, r0, r1\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r3\n\ - ldrb r1, [r0, #0x6]\n\ - mov r0, #0x8\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._572 @cond_branch\n\ - mov r0, #0x0\n\ - bl GetBankByIdentity\n\ - ldr r5, ._574 + 4 @ gBankTarget\n\ - strb r0, [r5]\n\ - ldr r0, ._574 + 8 @ gAbsentBankFlags\n\ - ldrb r1, [r0]\n\ - ldr r2, ._574 + 12 @ gBitTable\n\ - ldrb r0, [r5]\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r2\n\ - ldr r0, [r0]\n\ - and r1, r1, r0\n\ - cmp r1, #0\n\ - beq ._572 @cond_branch\n\ - mov r0, #0x2\n\ - bl GetBankByIdentity\n\ - strb r0, [r5]\n\ + ldrh r1, [r2]\n\ + lsl r0, r1, #0x1\n\ + add r0, r0, r1\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r3\n\ + ldrb r1, [r0, #0x6]\n\ + mov r0, #0x8\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._572 @cond_branch\n\ + mov r0, #0x0\n\ + bl GetBankByIdentity\n\ + ldr r5, ._574 + 4 @ gBankTarget\n\ + strb r0, [r5]\n\ + ldr r0, ._574 + 8 @ gAbsentBankFlags\n\ + ldrb r1, [r0]\n\ + ldr r2, ._574 + 12 @ gBitTable\n\ + ldrb r0, [r5]\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r2\n\ + ldr r0, [r0]\n\ + and r1, r1, r0\n\ + cmp r1, #0\n\ + beq ._572 @cond_branch\n\ + mov r0, #0x2\n\ + bl GetBankByIdentity\n\ + strb r0, [r5]\n\ ._572:\n\ - ldr r0, ._574 + 4 @ gBankTarget\n\ - ldrb r2, [r0]\n\ - lsl r2, r2, #0x8\n\ - orr r2, r2, r4\n\ - mov r0, #0x1\n\ - mov r1, #0xa\n\ - bl Emitcmd33\n\ - b ._573\n\ + ldr r0, ._574 + 4 @ gBankTarget\n\ + ldrb r2, [r0]\n\ + lsl r2, r2, #0x8\n\ + orr r2, r2, r4\n\ + mov r0, #0x1\n\ + mov r1, #0xa\n\ + bl Emitcmd33\n\ + b ._573\n\ ._575:\n\ - .align 2, 0\n\ + .align 2, 0\n\ ._574:\n\ - .word gBattleMoves\n\ - .word gBankTarget\n\ - .word gAbsentBankFlags\n\ - .word gBitTable\n\ + .word gBattleMoves\n\ + .word gBankTarget\n\ + .word gAbsentBankFlags\n\ + .word gBitTable\n\ ._563:\n\ - mov r6, #0x3\n\ + mov r6, #0x3\n\ ._576:\n\ - bl Random\n\ - add r4, r0, #0\n\ - and r4, r4, r6\n\ - lsl r0, r4, #0x1\n\ - add r0, r5, r0\n\ - ldrh r2, [r0]\n\ - cmp r2, #0\n\ - beq ._576 @cond_branch\n\ - ldr r1, ._579 @ gBattleMoves\n\ - lsl r0, r2, #0x1\n\ - add r0, r0, r2\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r1\n\ - ldrb r1, [r0, #0x6]\n\ - mov r0, #0x12\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._577 @cond_branch\n\ - ldr r0, ._579 + 4 @ gActiveBank\n\ - ldrb r2, [r0]\n\ - lsl r2, r2, #0x8\n\ - b ._578\n\ + bl Random\n\ + add r4, r0, #0\n\ + and r4, r4, r6\n\ + lsl r0, r4, #0x1\n\ + add r0, r5, r0\n\ + ldrh r2, [r0]\n\ + cmp r2, #0\n\ + beq ._576 @cond_branch\n\ + ldr r1, ._579 @ gBattleMoves\n\ + lsl r0, r2, #0x1\n\ + add r0, r0, r2\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r1\n\ + ldrb r1, [r0, #0x6]\n\ + mov r0, #0x12\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._577 @cond_branch\n\ + ldr r0, ._579 + 4 @ gActiveBank\n\ + ldrb r2, [r0]\n\ + lsl r2, r2, #0x8\n\ + b ._578\n\ ._580:\n\ - .align 2, 0\n\ + .align 2, 0\n\ ._579:\n\ - .word gBattleMoves\n\ - .word gActiveBank\n\ + .word gBattleMoves\n\ + .word gActiveBank\n\ ._577:\n\ - ldr r0, ._583 @ gBattleTypeFlags\n\ - ldrh r1, [r0]\n\ - mov r0, #0x1\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._581 @cond_branch\n\ - bl Random\n\ - mov r1, #0x2\n\ - and r1, r1, r0\n\ - lsl r1, r1, #0x18\n\ - lsr r1, r1, #0x18\n\ - add r0, r1, #0\n\ - bl GetBankByIdentity\n\ - add r2, r0, #0\n\ - lsl r2, r2, #0x18\n\ - lsr r2, r2, #0x10\n\ + ldr r0, ._583 @ gBattleTypeFlags\n\ + ldrh r1, [r0]\n\ + mov r0, #0x1\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._581 @cond_branch\n\ + bl Random\n\ + mov r1, #0x2\n\ + and r1, r1, r0\n\ + lsl r1, r1, #0x18\n\ + lsr r1, r1, #0x18\n\ + add r0, r1, #0\n\ + bl GetBankByIdentity\n\ + add r2, r0, #0\n\ + lsl r2, r2, #0x18\n\ + lsr r2, r2, #0x10\n\ ._578:\n\ - orr r2, r2, r4\n\ - mov r0, #0x1\n\ - mov r1, #0xa\n\ - bl Emitcmd33\n\ - b ._582\n\ + orr r2, r2, r4\n\ + mov r0, #0x1\n\ + mov r1, #0xa\n\ + bl Emitcmd33\n\ + b ._582\n\ ._584:\n\ - .align 2, 0\n\ + .align 2, 0\n\ ._583:\n\ - .word gBattleTypeFlags\n\ + .word gBattleTypeFlags\n\ ._581:\n\ - mov r0, #0x0\n\ - bl GetBankByIdentity\n\ - add r2, r0, #0\n\ - lsl r2, r2, #0x18\n\ - lsr r2, r2, #0x10\n\ - orr r2, r2, r4\n\ - mov r0, #0x1\n\ - mov r1, #0xa\n\ - bl Emitcmd33\n\ + mov r0, #0x0\n\ + bl GetBankByIdentity\n\ + add r2, r0, #0\n\ + lsl r2, r2, #0x18\n\ + lsr r2, r2, #0x10\n\ + orr r2, r2, r4\n\ + mov r0, #0x1\n\ + mov r1, #0xa\n\ + bl Emitcmd33\n\ ._582:\n\ - bl OpponentBufferExecCompleted\n\ + bl OpponentBufferExecCompleted\n\ ._562:\n\ - pop {r3, r4, r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov sl, r5\n\ - pop {r4, r5, r6, r7}\n\ - pop {r0}\n\ - bx r0"); + pop {r3, r4, r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov sl, r5\n\ + pop {r4, r5, r6, r7}\n\ + pop {r0}\n\ + bx r0"); } #else #ifdef NONMATCHING |