diff options
Diffstat (limited to 'asm/battle_2.s')
-rw-r--r-- | asm/battle_2.s | 2619 |
1 files changed, 0 insertions, 2619 deletions
diff --git a/asm/battle_2.s b/asm/battle_2.s index f985f570b..8a1bd902f 100644 --- a/asm/battle_2.s +++ b/asm/battle_2.s @@ -5,2625 +5,6 @@ .text - thumb_func_start sub_8013B64 -sub_8013B64: @ 8013B64 - push {r4,lr} - ldr r1, _08013B9C @ =gCurrentActionFuncId - movs r0, 0 - strb r0, [r1] - ldr r0, _08013BA0 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08013BB8 - ldr r1, _08013BA4 @ =gBattleTextBuff1 - ldr r4, _08013BA8 @ =gBattleOutcome - ldrb r0, [r4] - strb r0, [r1] - movs r0, 0 - bl GetBankByIdentity - ldr r1, _08013BAC @ =gBankAttacker - strb r0, [r1] - ldr r1, _08013BB0 @ =gBattlescriptCurrInstr - ldr r0, _08013BB4 @ =gUnknown_081D8E02 - str r0, [r1] - ldrb r1, [r4] - movs r0, 0x7F - ands r0, r1 - strb r0, [r4] - b _08013BBE - .align 2, 0 -_08013B9C: .4byte gCurrentActionFuncId -_08013BA0: .4byte gBattleTypeFlags -_08013BA4: .4byte gBattleTextBuff1 -_08013BA8: .4byte gBattleOutcome -_08013BAC: .4byte gBankAttacker -_08013BB0: .4byte gBattlescriptCurrInstr -_08013BB4: .4byte gUnknown_081D8E02 -_08013BB8: - ldr r1, _08013BCC @ =gBattlescriptCurrInstr - ldr r0, _08013BD0 @ =BattleScript_LocalBattleLost - str r0, [r1] -_08013BBE: - ldr r1, _08013BD4 @ =gBattleMainFunc - ldr r0, _08013BD8 @ =sub_8013C9C - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08013BCC: .4byte gBattlescriptCurrInstr -_08013BD0: .4byte BattleScript_LocalBattleLost -_08013BD4: .4byte gBattleMainFunc -_08013BD8: .4byte sub_8013C9C - thumb_func_end sub_8013B64 - - thumb_func_start sub_8013BDC -sub_8013BDC: @ 8013BDC - push {lr} - ldr r1, _08013C04 @ =gCurrentActionFuncId - movs r0, 0 - strb r0, [r1] - ldr r1, _08013C08 @ =gProtectStructs - ldr r0, _08013C0C @ =gBankAttacker - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0x1] - lsls r0, 27 - lsrs r0, 30 - cmp r0, 0x1 - beq _08013C18 - cmp r0, 0x2 - beq _08013C28 - ldr r1, _08013C10 @ =gBattlescriptCurrInstr - ldr r0, _08013C14 @ =BattleScript_GotAwaySafely - b _08013C2C - .align 2, 0 -_08013C04: .4byte gCurrentActionFuncId -_08013C08: .4byte gProtectStructs -_08013C0C: .4byte gBankAttacker -_08013C10: .4byte gBattlescriptCurrInstr -_08013C14: .4byte BattleScript_GotAwaySafely -_08013C18: - ldr r1, _08013C20 @ =gBattlescriptCurrInstr - ldr r0, _08013C24 @ =BattleScript_SmokeBallEscape - b _08013C2C - .align 2, 0 -_08013C20: .4byte gBattlescriptCurrInstr -_08013C24: .4byte BattleScript_SmokeBallEscape -_08013C28: - ldr r1, _08013C38 @ =gBattlescriptCurrInstr - ldr r0, _08013C3C @ =BattleScript_RanAwayUsingMonAbility -_08013C2C: - str r0, [r1] - ldr r1, _08013C40 @ =gBattleMainFunc - ldr r0, _08013C44 @ =sub_8013C9C - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08013C38: .4byte gBattlescriptCurrInstr -_08013C3C: .4byte BattleScript_RanAwayUsingMonAbility -_08013C40: .4byte gBattleMainFunc -_08013C44: .4byte sub_8013C9C - thumb_func_end sub_8013BDC - - thumb_func_start sub_8013C48 -sub_8013C48: @ 8013C48 - ldr r1, _08013C7C @ =gCurrentActionFuncId - movs r0, 0 - strb r0, [r1] - ldr r1, _08013C80 @ =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x7 - strb r0, [r1, 0x1] - ldr r2, _08013C84 @ =gBankAttacker - ldrb r0, [r2] - strb r0, [r1, 0x2] - ldr r3, _08013C88 @ =gBattlePartyID - ldrb r0, [r2] - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, _08013C8C @ =gBattlescriptCurrInstr - ldr r0, _08013C90 @ =BattleScript_WildMonFled - str r0, [r1] - ldr r1, _08013C94 @ =gBattleMainFunc - ldr r0, _08013C98 @ =sub_8013C9C - str r0, [r1] - bx lr - .align 2, 0 -_08013C7C: .4byte gCurrentActionFuncId -_08013C80: .4byte gBattleTextBuff1 -_08013C84: .4byte gBankAttacker -_08013C88: .4byte gBattlePartyID -_08013C8C: .4byte gBattlescriptCurrInstr -_08013C90: .4byte BattleScript_WildMonFled -_08013C94: .4byte gBattleMainFunc -_08013C98: .4byte sub_8013C9C - thumb_func_end sub_8013C48 - - thumb_func_start sub_8013C9C -sub_8013C9C: @ 8013C9C - push {r4-r7,lr} - ldr r0, _08013D00 @ =gCurrentActionFuncId - ldrb r0, [r0] - subs r0, 0xB - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08013D7C - ldr r0, _08013D04 @ =gBattleTypeFlags - ldrh r0, [r0] - ldr r1, _08013D08 @ =0x00000b92 - ands r1, r0 - cmp r1, 0 - bne _08013D4C - ldr r2, _08013D0C @ =gActiveBank - strb r1, [r2] - ldr r0, _08013D10 @ =gNoOfAllBanks - ldrb r0, [r0] - cmp r1, r0 - bcs _08013D48 - adds r4, r2, 0 - ldr r6, _08013D14 @ =gBattleMons - movs r5, 0x58 - adds r7, r6, 0 - adds r7, 0x30 -_08013CCE: - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08013D36 - ldr r2, _08013D18 @ =gBattleResults - ldrh r0, [r2, 0x6] - cmp r0, 0 - bne _08013D1C - ldrb r0, [r4] - muls r0, r5 - adds r0, r6 - ldrh r0, [r0] - strh r0, [r2, 0x6] - ldrb r0, [r4] - adds r1, r0, 0 - muls r1, r5 - adds r1, r7 - adds r0, r2, 0 - adds r0, 0x8 - bl StringCopy - b _08013D36 - .align 2, 0 -_08013D00: .4byte gCurrentActionFuncId -_08013D04: .4byte gBattleTypeFlags -_08013D08: .4byte 0x00000b92 -_08013D0C: .4byte gActiveBank -_08013D10: .4byte gNoOfAllBanks -_08013D14: .4byte gBattleMons -_08013D18: .4byte gBattleResults -_08013D1C: - ldrb r0, [r4] - muls r0, r5 - adds r0, r6 - ldrh r0, [r0] - strh r0, [r2, 0x26] - ldrb r0, [r4] - adds r1, r0, 0 - muls r1, r5 - adds r1, r7 - adds r0, r2, 0 - adds r0, 0x14 - bl StringCopy -_08013D36: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _08013D68 @ =gNoOfAllBanks - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _08013CCE -_08013D48: - bl sub_80BDEC8 -_08013D4C: - movs r0, 0x3 - bl BeginFastPaletteFade - movs r0, 0x5 - bl FadeOutMapMusic - ldr r1, _08013D6C @ =gBattleMainFunc - ldr r0, _08013D70 @ =sub_8013DA8 - str r0, [r1] - ldr r1, _08013D74 @ =gCB2_AfterEvolution - ldr r0, _08013D78 @ =sub_800F808 - str r0, [r1] - b _08013D96 - .align 2, 0 -_08013D68: .4byte gNoOfAllBanks -_08013D6C: .4byte gBattleMainFunc -_08013D70: .4byte sub_8013DA8 -_08013D74: .4byte gCB2_AfterEvolution -_08013D78: .4byte sub_800F808 -_08013D7C: - ldr r0, _08013D9C @ =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - bne _08013D96 - ldr r1, _08013DA0 @ =gBattleScriptingCommandsTable - ldr r0, _08013DA4 @ =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 -_08013D96: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08013D9C: .4byte gBattleExecBuffer -_08013DA0: .4byte gBattleScriptingCommandsTable -_08013DA4: .4byte gBattlescriptCurrInstr - thumb_func_end sub_8013C9C - - thumb_func_start sub_8013DA8 -sub_8013DA8: @ 8013DA8 - push {lr} - ldr r0, _08013DD0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08013DEA - bl ResetSpriteData - ldr r0, _08013DD4 @ =gLeveledUpInBattle - ldrb r0, [r0] - cmp r0, 0 - beq _08013DCA - ldr r0, _08013DD8 @ =gBattleOutcome - ldrb r0, [r0] - cmp r0, 0x1 - beq _08013DE4 -_08013DCA: - ldr r1, _08013DDC @ =gBattleMainFunc - ldr r0, _08013DE0 @ =c4_overworld - b _08013DE8 - .align 2, 0 -_08013DD0: .4byte gPaletteFade -_08013DD4: .4byte gLeveledUpInBattle -_08013DD8: .4byte gBattleOutcome -_08013DDC: .4byte gBattleMainFunc -_08013DE0: .4byte c4_overworld -_08013DE4: - ldr r1, _08013DF0 @ =gBattleMainFunc - ldr r0, _08013DF4 @ =bc_evolution_cutscene -_08013DE8: - str r0, [r1] -_08013DEA: - pop {r0} - bx r0 - .align 2, 0 -_08013DF0: .4byte gBattleMainFunc -_08013DF4: .4byte bc_evolution_cutscene - thumb_func_end sub_8013DA8 - - thumb_func_start bc_evolution_cutscene -bc_evolution_cutscene: @ 8013DF8 - push {r4,r5,lr} - ldr r0, _08013E4C @ =gLeveledUpInBattle - ldrb r1, [r0] - adds r3, r0, 0 - cmp r1, 0 - beq _08013E6E -_08013E04: - movs r5, 0 -_08013E06: - ldrb r2, [r3] - ldr r0, _08013E50 @ =gBitTable - lsls r1, r5, 2 - adds r1, r0 - ldr r1, [r1] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _08013E60 - bics r2, r1 - strb r2, [r3] - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _08013E54 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0 - bl GetEvolutionTargetSpecies - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - beq _08013E60 - ldr r0, _08013E58 @ =gBattleMainFunc - ldr r1, _08013E5C @ =sub_8013E88 - str r1, [r0] - lsls r3, r5, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r2, 0 - movs r2, 0x81 - bl EvolutionScene - b _08013E74 - .align 2, 0 -_08013E4C: .4byte gLeveledUpInBattle -_08013E50: .4byte gBitTable -_08013E54: .4byte gPlayerParty -_08013E58: .4byte gBattleMainFunc -_08013E5C: .4byte sub_8013E88 -_08013E60: - adds r5, 0x1 - ldr r3, _08013E7C @ =gLeveledUpInBattle - cmp r5, 0x5 - ble _08013E06 - ldrb r0, [r3] - cmp r0, 0 - bne _08013E04 -_08013E6E: - ldr r1, _08013E80 @ =gBattleMainFunc - ldr r0, _08013E84 @ =c4_overworld - str r0, [r1] -_08013E74: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08013E7C: .4byte gLeveledUpInBattle -_08013E80: .4byte gBattleMainFunc -_08013E84: .4byte c4_overworld - thumb_func_end bc_evolution_cutscene - - thumb_func_start sub_8013E88 -sub_8013E88: @ 8013E88 - push {lr} - ldr r0, _08013EA0 @ =gMain - ldr r1, [r0, 0x4] - ldr r0, _08013EA4 @ =sub_800F808 - cmp r1, r0 - bne _08013E9A - ldr r1, _08013EA8 @ =gBattleMainFunc - ldr r0, _08013EAC @ =bc_evolution_cutscene - str r0, [r1] -_08013E9A: - pop {r0} - bx r0 - .align 2, 0 -_08013EA0: .4byte gMain -_08013EA4: .4byte sub_800F808 -_08013EA8: .4byte gBattleMainFunc -_08013EAC: .4byte bc_evolution_cutscene - thumb_func_end sub_8013E88 - - thumb_func_start c4_overworld -c4_overworld: @ 8013EB0 - push {r4-r6,lr} - ldr r5, _08013F30 @ =gBattleTypeFlags - ldrh r1, [r5] - movs r6, 0x2 - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - bne _08013ECE - ldr r4, _08013F34 @ =gPlayerParty - adds r0, r4, 0 - bl RandomlyGivePartyPokerus - adds r0, r4, 0 - bl PartySpreadPokerus -_08013ECE: - ldrh r4, [r5] - adds r0, r6, 0 - ands r0, r4 - cmp r0, 0 - beq _08013EE0 - ldr r0, _08013F38 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _08013F2A -_08013EE0: - ldr r1, _08013F3C @ =gSpecialVar_Result - ldr r5, _08013F40 @ =gBattleOutcome - ldrb r0, [r5] - strh r0, [r1] - ldr r3, _08013F44 @ =gMain - ldr r0, _08013F48 @ =0x0000043d - adds r2, r3, r0 - ldrb r1, [r2] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r0, _08013F4C @ =gPreBattleCallback1 - ldr r0, [r0] - str r0, [r3] - movs r0, 0x80 - lsls r0, 3 - ands r0, r4 - cmp r0, 0 - beq _08013F1C - ldr r0, _08013F50 @ =gEnemyParty - bl UpdateRoamerHPStatus - ldrb r0, [r5] - cmp r0, 0x1 - beq _08013F18 - cmp r0, 0x7 - bne _08013F1C -_08013F18: - bl SetRoamerInactive -_08013F1C: - movs r0, 0x5A - bl m4aSongNumStop - ldr r0, _08013F44 @ =gMain - ldr r0, [r0, 0x8] - bl SetMainCallback2 -_08013F2A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08013F30: .4byte gBattleTypeFlags -_08013F34: .4byte gPlayerParty -_08013F38: .4byte gReceivedRemoteLinkPlayers -_08013F3C: .4byte gSpecialVar_Result -_08013F40: .4byte gBattleOutcome -_08013F44: .4byte gMain -_08013F48: .4byte 0x0000043d -_08013F4C: .4byte gPreBattleCallback1 -_08013F50: .4byte gEnemyParty - thumb_func_end c4_overworld - - thumb_func_start sub_8013F54 -sub_8013F54: @ 8013F54 - push {lr} - ldr r0, _08013F84 @ =gCurrentActionFuncId - ldrb r0, [r0] - subs r0, 0xB - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08013F90 - ldr r2, _08013F88 @ =gSharedMem + 0x17140 - adds r1, r2, 0 - adds r1, 0x20 - ldrb r0, [r1] - cmp r0, 0 - beq _08013F74 - subs r0, 0x1 - strb r0, [r1] -_08013F74: - ldr r0, _08013F8C @ =gBattleMainFunc - ldrb r1, [r1] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - str r1, [r0] - b _08013FAA - .align 2, 0 -_08013F84: .4byte gCurrentActionFuncId -_08013F88: .4byte gSharedMem + 0x17140 -_08013F8C: .4byte gBattleMainFunc -_08013F90: - ldr r0, _08013FB0 @ =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - bne _08013FAA - ldr r1, _08013FB4 @ =gBattleScriptingCommandsTable - ldr r0, _08013FB8 @ =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 -_08013FAA: - pop {r0} - bx r0 - .align 2, 0 -_08013FB0: .4byte gBattleExecBuffer -_08013FB4: .4byte gBattleScriptingCommandsTable -_08013FB8: .4byte gBattlescriptCurrInstr - thumb_func_end sub_8013F54 - - thumb_func_start sub_8013FBC -sub_8013FBC: @ 8013FBC - push {lr} - ldr r0, _08013FDC @ =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - bne _08013FD8 - ldr r1, _08013FE0 @ =gBattleScriptingCommandsTable - ldr r0, _08013FE4 @ =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 -_08013FD8: - pop {r0} - bx r0 - .align 2, 0 -_08013FDC: .4byte gBattleExecBuffer -_08013FE0: .4byte gBattleScriptingCommandsTable -_08013FE4: .4byte gBattlescriptCurrInstr - thumb_func_end sub_8013FBC - - thumb_func_start sub_8013FE8 -sub_8013FE8: @ 8013FE8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - movs r0, 0x4 - str r0, [sp] - ldr r7, _08014028 @ =gBankAttacker - ldr r1, _0801402C @ =gTurnOrder - ldr r0, _08014030 @ =gCurrentTurnActionNumber - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r7] - ldr r1, _08014034 @ =gSharedMem - mov r10, r1 - ldr r0, _08014038 @ =0x000160a6 - add r0, r10 - ldrb r2, [r0] - ldr r1, _0801403C @ =gBitTable - ldrb r0, [r7] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ands r2, r0 - cmp r2, 0 - beq _08014044 - ldr r1, _08014040 @ =gCurrentActionFuncId - movs r0, 0xC - b _080146CC - .align 2, 0 -_08014028: .4byte gBankAttacker -_0801402C: .4byte gTurnOrder -_08014030: .4byte gCurrentTurnActionNumber -_08014034: .4byte gSharedMem -_08014038: .4byte 0x000160a6 -_0801403C: .4byte gBitTable -_08014040: .4byte gCurrentActionFuncId -_08014044: - ldr r1, _080140B8 @ =gCritMultiplier - movs r0, 0x1 - strb r0, [r1] - ldr r1, _080140BC @ =0x0001601f - add r1, r10 - movs r0, 0x1 - strb r0, [r1] - ldr r0, _080140C0 @ =0x000160e7 - add r0, r10 - strb r2, [r0] - ldr r0, _080140C4 @ =gBattleMoveFlags - strb r2, [r0] - ldr r0, _080140C8 @ =gMultiHitCounter - strb r2, [r0] - ldr r0, _080140CC @ =gBattleCommunication - strb r2, [r0, 0x6] - ldr r3, _080140D0 @ =gCurrMovePos - ldrb r0, [r7] - ldr r2, _080140D4 @ =0x0001608c - adds r0, r2 - add r0, r10 - ldrb r0, [r0] - ldr r4, _080140D8 @ =gUnknown_02024BE5 - strb r0, [r4] - strb r0, [r3] - ldr r1, _080140DC @ =gProtectStructs - ldrb r2, [r7] - lsls r0, r2, 4 - adds r5, r0, r1 - ldrb r1, [r5] - lsls r0, r1, 29 - adds r4, r2, 0 - mov r8, r3 - cmp r0, 0 - bge _080140F0 - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r5] - ldr r2, _080140E0 @ =gCurrentMove - ldr r1, _080140E4 @ =gChosenMove - movs r0, 0xA5 - strh r0, [r1] - strh r0, [r2] - ldr r2, _080140E8 @ =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 4 - orrs r0, r1 - str r0, [r2] - movs r0, 0xA5 - movs r1, 0 - bl GetMoveTarget - ldrb r1, [r7] - ldr r2, _080140EC @ =0x00016010 - adds r1, r2 - b _08014200 - .align 2, 0 -_080140B8: .4byte gCritMultiplier -_080140BC: .4byte 0x0001601f -_080140C0: .4byte 0x000160e7 -_080140C4: .4byte gBattleMoveFlags -_080140C8: .4byte gMultiHitCounter -_080140CC: .4byte gBattleCommunication -_080140D0: .4byte gCurrMovePos -_080140D4: .4byte 0x0001608c -_080140D8: .4byte gUnknown_02024BE5 -_080140DC: .4byte gProtectStructs -_080140E0: .4byte gCurrentMove -_080140E4: .4byte gChosenMove -_080140E8: .4byte gHitMarker -_080140EC: .4byte 0x00016010 -_080140F0: - ldr r1, _08014128 @ =gBattleMons - movs r0, 0x58 - adds r5, r4, 0 - muls r5, r0 - adds r0, r1, 0 - adds r0, 0x50 - adds r0, r5, r0 - ldr r2, [r0] - movs r0, 0x80 - lsls r0, 5 - ands r0, r2 - cmp r0, 0 - bne _08014114 - movs r6, 0x80 - lsls r6, 15 - ands r6, r2 - cmp r6, 0 - beq _08014138 -_08014114: - ldr r3, _0801412C @ =gCurrentMove - ldr r2, _08014130 @ =gChosenMove - ldr r1, _08014134 @ =gLockedMove - lsls r0, r4, 1 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] - strh r0, [r3] - b _08014280 - .align 2, 0 -_08014128: .4byte gBattleMons -_0801412C: .4byte gCurrentMove -_08014130: .4byte gChosenMove -_08014134: .4byte gLockedMove -_08014138: - ldr r3, _08014188 @ =gDisableStructs - mov r12, r3 - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r2, r0, r3 - ldrh r4, [r2, 0x6] - adds r1, r4, 0 - cmp r1, 0 - beq _08014218 - ldrb r3, [r2, 0xC] - lsls r0, r3, 1 - adds r0, r5 - str r0, [sp, 0x8] - ldr r0, _0801418C @ =gBattleMons - adds r0, 0xC - mov r9, r0 - ldr r0, [sp, 0x8] - add r0, r9 - ldrh r0, [r0] - cmp r1, r0 - bne _080141A0 - ldr r1, _08014190 @ =gCurrentMove - ldr r0, _08014194 @ =gChosenMove - strh r4, [r0] - strh r4, [r1] - ldrb r0, [r2, 0xC] - ldr r2, _08014198 @ =gUnknown_02024BE5 - strb r0, [r2] - mov r3, r8 - strb r0, [r3] - ldrh r0, [r1] - movs r1, 0 - bl GetMoveTarget - ldrb r1, [r7] - ldr r4, _0801419C @ =0x00016010 - adds r1, r4 - b _08014200 - .align 2, 0 -_08014188: .4byte gDisableStructs -_0801418C: .4byte gBattleMons -_08014190: .4byte gCurrentMove -_08014194: .4byte gChosenMove -_08014198: .4byte gUnknown_02024BE5 -_0801419C: .4byte 0x00016010 -_080141A0: - cmp r1, 0 - beq _08014218 - cmp r1, r0 - beq _08014218 - ldr r0, _08014208 @ =gUnknown_02024BE5 - strb r3, [r0] - mov r1, r8 - strb r3, [r1] - ldr r3, _0801420C @ =gCurrentMove - ldr r1, _08014210 @ =gChosenMove - mov r2, r8 - ldrb r0, [r2] - lsls r0, 1 - adds r0, r5 - add r0, r9 - ldrh r0, [r0] - strh r0, [r1] - strh r0, [r3] - ldrb r1, [r7] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r12 - movs r2, 0 - strh r6, [r0, 0x6] - ldrb r1, [r7] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r12 - strb r2, [r0, 0xC] - ldrb r0, [r7] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - add r1, r12 - ldrb r2, [r1, 0xE] - movs r0, 0x10 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0xE] - ldrh r0, [r3] - movs r1, 0 - bl GetMoveTarget - ldrb r1, [r7] - ldr r3, _08014214 @ =0x00016010 - adds r1, r3 -_08014200: - add r1, r10 - strb r0, [r1] - b _08014280 - .align 2, 0 -_08014208: .4byte gUnknown_02024BE5 -_0801420C: .4byte gCurrentMove -_08014210: .4byte gChosenMove -_08014214: .4byte 0x00016010 -_08014218: - mov r4, r8 - ldrb r0, [r4] - lsls r0, 1 - ldr r4, _0801425C @ =gBankAttacker - ldrb r2, [r4] - movs r1, 0x58 - muls r1, r2 - adds r0, r1 - ldr r1, _08014260 @ =gBattleMons - adds r1, 0xC - adds r0, r1 - ldr r1, _08014264 @ =gChosenMovesByBanks - lsls r2, 1 - adds r2, r1 - ldrh r3, [r0] - ldrh r2, [r2] - cmp r3, r2 - beq _08014278 - ldr r1, _08014268 @ =gCurrentMove - ldr r0, _0801426C @ =gChosenMove - strh r3, [r0] - strh r3, [r1] - ldrh r0, [r1] - movs r1, 0 - bl GetMoveTarget - ldr r2, _08014270 @ =gSharedMem - ldrb r1, [r4] - ldr r3, _08014274 @ =0x00016010 - adds r1, r3 - adds r1, r2 - strb r0, [r1] - b _08014280 - .align 2, 0 -_0801425C: .4byte gBankAttacker -_08014260: .4byte gBattleMons -_08014264: .4byte gChosenMovesByBanks -_08014268: .4byte gCurrentMove -_0801426C: .4byte gChosenMove -_08014270: .4byte gSharedMem -_08014274: .4byte 0x00016010 -_08014278: - ldr r1, _08014298 @ =gCurrentMove - ldr r0, _0801429C @ =gChosenMove - strh r3, [r0] - strh r3, [r1] -_08014280: - ldr r0, _080142A0 @ =gBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080142A8 - ldr r0, _080142A4 @ =gBattleResults - ldr r1, _08014298 @ =gCurrentMove - ldrh r1, [r1] - strh r1, [r0, 0x22] - b _080142B0 - .align 2, 0 -_08014298: .4byte gCurrentMove -_0801429C: .4byte gChosenMove -_080142A0: .4byte gBankAttacker -_080142A4: .4byte gBattleResults -_080142A8: - ldr r0, _08014314 @ =gBattleResults - ldr r1, _08014318 @ =gCurrentMove - ldrh r1, [r1] - strh r1, [r0, 0x24] -_080142B0: - ldr r4, _0801431C @ =gBankAttacker - ldrb r0, [r4] - bl GetBankSide - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _08014320 @ =gSideTimers - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 2 - adds r5, r0, r1 - ldrb r0, [r5, 0x8] - adds r3, r4, 0 - cmp r0, 0 - beq _08014330 - ldr r2, _08014324 @ =gBattleMoves - ldr r0, _08014318 @ =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x6] - cmp r0, 0 - bne _08014330 - ldrb r0, [r3] - bl GetBankSide - adds r4, r0, 0 - ldrb r0, [r5, 0x9] - bl GetBankSide - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - beq _08014330 - ldr r1, _08014328 @ =gBattleMons - ldrb r2, [r5, 0x9] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _08014330 - ldr r0, _0801432C @ =gBankTarget - strb r2, [r0] - b _080146AC - .align 2, 0 -_08014314: .4byte gBattleResults -_08014318: .4byte gCurrentMove -_0801431C: .4byte gBankAttacker -_08014320: .4byte gSideTimers -_08014324: .4byte gBattleMoves -_08014328: .4byte gBattleMons -_0801432C: .4byte gBankTarget -_08014330: - ldr r2, _08014454 @ =gBattleTypeFlags - ldrh r1, [r2] - movs r0, 0x1 - ands r0, r1 - ldr r3, _08014458 @ =gBankAttacker - mov r9, r2 - cmp r0, 0 - bne _08014342 - b _0801461C -_08014342: - ldr r1, _0801445C @ =gSideTimers - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 2 - adds r0, r1 - ldrb r7, [r0, 0x8] - cmp r7, 0 - beq _08014354 - b _08014570 -_08014354: - ldr r2, _08014460 @ =gBattleMoves - ldr r0, _08014464 @ =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r2 - ldrb r0, [r4, 0x1] - cmp r0, 0 - bne _08014370 - ldrb r0, [r4, 0x6] - cmp r0, 0x10 - bne _08014370 - b _08014570 -_08014370: - ldr r3, _08014468 @ =gBattleMons - ldr r0, _0801446C @ =gSharedMem - mov r8, r0 - ldr r2, _08014458 @ =gBankAttacker - ldrb r5, [r2] - ldr r1, _08014470 @ =0x00016010 - adds r0, r5, r1 - add r0, r8 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r3 - adds r0, 0x20 - ldrb r0, [r0] - adds r3, r2, 0 - cmp r0, 0x1F - bne _08014394 - b _08014570 -_08014394: - ldrb r0, [r4, 0x2] - cmp r0, 0xD - beq _0801439C - b _08014570 -_0801439C: - adds r0, r5, 0 - bl GetBankSide - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _08014474 @ =gActiveBank - strb r7, [r1] - ldr r0, _08014478 @ =gNoOfAllBanks - ldrb r0, [r0] - cmp r7, r0 - bcs _08014416 - adds r4, r1, 0 - mov r5, r8 -_080143B6: - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r6, r0 - beq _08014404 - ldr r0, _08014458 @ =gBankAttacker - ldrb r0, [r0] - ldr r2, _08014470 @ =0x00016010 - adds r0, r2 - adds r0, r5 - ldrb r0, [r0] - ldrb r3, [r4] - cmp r0, r3 - beq _08014404 - ldr r1, _08014468 @ =gBattleMons - ldrb r2, [r4] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1F - bne _08014404 - adds r0, r2, 0 - bl BankGetTurnOrder - lsls r0, 24 - lsrs r0, 24 - ldr r1, [sp] - cmp r0, r1 - bcs _08014404 - ldrb r0, [r4] - bl BankGetTurnOrder - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] -_08014404: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _08014478 @ =gNoOfAllBanks - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _080143B6 -_08014416: - ldr r2, [sp] - cmp r2, 0x4 - beq _0801441E - b _08014522 -_0801441E: - ldr r2, _08014460 @ =gBattleMoves - ldr r0, _0801447C @ =gChosenMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x6] - ldr r3, [sp] - ands r3, r0 - cmp r3, 0 - beq _080144A4 - ldr r0, _08014458 @ =gBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08014484 - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _08014480 - movs r0, 0x1 - b _08014496 - .align 2, 0 -_08014454: .4byte gBattleTypeFlags -_08014458: .4byte gBankAttacker -_0801445C: .4byte gSideTimers -_08014460: .4byte gBattleMoves -_08014464: .4byte gCurrentMove -_08014468: .4byte gBattleMons -_0801446C: .4byte gSharedMem -_08014470: .4byte 0x00016010 -_08014474: .4byte gActiveBank -_08014478: .4byte gNoOfAllBanks -_0801447C: .4byte gChosenMove -_08014480: - movs r0, 0x3 - b _08014496 -_08014484: - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _08014494 - movs r0, 0 - b _08014496 -_08014494: - movs r0, 0x2 -_08014496: - bl GetBankByIdentity - ldr r1, _080144A0 @ =gBankTarget - strb r0, [r1] - b _080144B6 - .align 2, 0 -_080144A0: .4byte gBankTarget -_080144A4: - ldr r2, _080144EC @ =gBankTarget - ldr r1, _080144F0 @ =gSharedMem - ldr r0, _080144F4 @ =gBankAttacker - ldrb r0, [r0] - ldr r4, _080144F8 @ =0x00016010 - adds r0, r4 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] -_080144B6: - ldr r7, _080144FC @ =gAbsentBankFlags - ldrb r0, [r7] - ldr r1, _08014500 @ =gBitTable - mov r8, r1 - ldr r5, _080144EC @ =gBankTarget - ldrb r1, [r5] - lsls r1, 2 - add r1, r8 - ldr r1, [r1] - ands r0, r1 - cmp r0, 0 - bne _080144D0 - b _080146AC -_080144D0: - ldr r6, _080144F4 @ =gBankAttacker - ldrb r0, [r6] - bl GetBankSide - adds r4, r0, 0 - ldrb r0, [r5] - bl GetBankSide - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - beq _08014504 - ldrb r0, [r5] - b _0801469A - .align 2, 0 -_080144EC: .4byte gBankTarget -_080144F0: .4byte gSharedMem -_080144F4: .4byte gBankAttacker -_080144F8: .4byte 0x00016010 -_080144FC: .4byte gAbsentBankFlags -_08014500: .4byte gBitTable -_08014504: - ldrb r0, [r6] - bl GetBankIdentity - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByIdentity - strb r0, [r5] - ldrb r1, [r7] - ldrb r2, [r5] - lsls r0, r2, 2 - add r0, r8 - b _08014690 -_08014522: - ldr r4, _0801455C @ =gActiveBank - ldr r0, _08014560 @ =gTurnOrder - ldr r2, [sp] - adds r0, r2, r0 - ldrb r0, [r0] - strb r0, [r4] - ldrb r0, [r4] - ldr r2, _08014564 @ =gBattleMons - movs r1, 0x58 - muls r1, r0 - adds r1, r2 - adds r1, 0x20 - ldrb r1, [r1] - bl RecordAbilityBattle - ldr r2, _08014568 @ =gSpecialStatuses - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0] - ldr r1, _0801456C @ =gBankTarget - ldrb r0, [r4] - strb r0, [r1] - b _080146AC - .align 2, 0 -_0801455C: .4byte gActiveBank -_08014560: .4byte gTurnOrder -_08014564: .4byte gBattleMons -_08014568: .4byte gSpecialStatuses -_0801456C: .4byte gBankTarget -_08014570: - mov r4, r9 - ldrh r1, [r4] - movs r4, 0x1 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _0801461C - ldr r2, _080145B4 @ =gBattleMoves - ldr r0, _080145B8 @ =gChosenMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x6] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0801461C - ldrb r0, [r3] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080145C0 - bl Random - adds r1, r4, 0 - ands r1, r0 - cmp r1, 0 - beq _080145BC - movs r0, 0x1 - b _080145D2 - .align 2, 0 -_080145B4: .4byte gBattleMoves -_080145B8: .4byte gChosenMove -_080145BC: - movs r0, 0x3 - b _080145D2 -_080145C0: - bl Random - adds r1, r4, 0 - ands r1, r0 - cmp r1, 0 - beq _080145D0 - movs r0, 0 - b _080145D2 -_080145D0: - movs r0, 0x2 -_080145D2: - bl GetBankByIdentity - ldr r1, _0801460C @ =gBankTarget - strb r0, [r1] - ldr r0, _08014610 @ =gAbsentBankFlags - ldrb r1, [r0] - ldr r2, _08014614 @ =gBitTable - ldr r5, _0801460C @ =gBankTarget - ldrb r0, [r5] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _080146AC - ldr r0, _08014618 @ =gBankAttacker - ldrb r0, [r0] - bl GetBankSide - adds r4, r0, 0 - ldrb r0, [r5] - bl GetBankSide - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - beq _080146AC - ldrb r0, [r5] - b _0801469A - .align 2, 0 -_0801460C: .4byte gBankTarget -_08014610: .4byte gAbsentBankFlags -_08014614: .4byte gBitTable -_08014618: .4byte gBankAttacker -_0801461C: - ldr r5, _08014660 @ =gBankTarget - ldr r1, _08014664 @ =gSharedMem - adds r2, r3, 0 - ldrb r0, [r2] - ldr r4, _08014668 @ =0x00016010 - adds r0, r4 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r5] - ldr r6, _0801466C @ =gAbsentBankFlags - ldrb r1, [r6] - ldr r7, _08014670 @ =gBitTable - ldrb r0, [r5] - lsls r0, 2 - adds r0, r7 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _080146AC - ldrb r0, [r2] - str r3, [sp, 0x4] - bl GetBankSide - adds r4, r0, 0 - ldrb r0, [r5] - bl GetBankSide - lsls r4, 24 - lsls r0, 24 - ldr r3, [sp, 0x4] - cmp r4, r0 - beq _08014674 - ldrb r0, [r5] - b _0801469A - .align 2, 0 -_08014660: .4byte gBankTarget -_08014664: .4byte gSharedMem -_08014668: .4byte 0x00016010 -_0801466C: .4byte gAbsentBankFlags -_08014670: .4byte gBitTable -_08014674: - ldrb r0, [r3] - bl GetBankIdentity - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByIdentity - strb r0, [r5] - ldrb r1, [r6] - ldrb r2, [r5] - lsls r0, r2, 2 - adds r0, r7 -_08014690: - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _080146AC - adds r0, r2, 0 -_0801469A: - bl GetBankIdentity - movs r1, 0x2 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByIdentity - strb r0, [r5] -_080146AC: - ldr r4, _080146E0 @ =gBattlescriptCurrInstr - ldr r3, _080146E4 @ =gBattleScriptsForMoveEffects - ldr r2, _080146E8 @ =gBattleMoves - ldr r0, _080146EC @ =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - str r0, [r4] - ldr r1, _080146F0 @ =gCurrentActionFuncId - movs r0, 0xA -_080146CC: - strb r0, [r1] - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080146E0: .4byte gBattlescriptCurrInstr -_080146E4: .4byte gBattleScriptsForMoveEffects -_080146E8: .4byte gBattleMoves -_080146EC: .4byte gCurrentMove -_080146F0: .4byte gCurrentActionFuncId - thumb_func_end sub_8013FE8 - - thumb_func_start sub_80146F4 -sub_80146F4: @ 80146F4 - push {r4,lr} - ldr r3, _08014764 @ =gBankAttacker - ldr r1, _08014768 @ =gTurnOrder - ldr r0, _0801476C @ =gCurrentTurnActionNumber - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r3] - ldr r0, _08014770 @ =gUnknown_030042A4 - movs r2, 0 - strh r2, [r0] - ldr r0, _08014774 @ =gUnknown_030042A0 - strh r2, [r0] - ldr r1, _08014778 @ =gActionSelectionCursor - ldrb r0, [r3] - adds r0, r1 - strb r2, [r0] - ldr r1, _0801477C @ =gMoveSelectionCursor - ldrb r0, [r3] - adds r0, r1 - strb r2, [r0] - ldr r2, _08014780 @ =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r2] - movs r0, 0x7 - strb r0, [r2, 0x1] - ldrb r4, [r3] - strb r4, [r2, 0x2] - ldr r1, _08014784 @ =gSharedMem - ldrb r0, [r3] - ldr r3, _08014788 @ =0x00016064 - adds r0, r3 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2, 0x3] - movs r0, 0xFF - strb r0, [r2, 0x4] - ldr r0, _0801478C @ =0x00016003 - adds r1, r0 - strb r4, [r1] - ldr r1, _08014790 @ =gBattlescriptCurrInstr - ldr r0, _08014794 @ =BattleScript_ActionSwitch - str r0, [r1] - ldr r1, _08014798 @ =gCurrentActionFuncId - movs r0, 0xA - strb r0, [r1] - ldr r1, _0801479C @ =gBattleResults - ldrb r0, [r1, 0x2] - cmp r0, 0xFE - bhi _0801475C - adds r0, 0x1 - strb r0, [r1, 0x2] -_0801475C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08014764: .4byte gBankAttacker -_08014768: .4byte gTurnOrder -_0801476C: .4byte gCurrentTurnActionNumber -_08014770: .4byte gUnknown_030042A4 -_08014774: .4byte gUnknown_030042A0 -_08014778: .4byte gActionSelectionCursor -_0801477C: .4byte gMoveSelectionCursor -_08014780: .4byte gBattleTextBuff1 -_08014784: .4byte gSharedMem -_08014788: .4byte 0x00016064 -_0801478C: .4byte 0x00016003 -_08014790: .4byte gBattlescriptCurrInstr -_08014794: .4byte BattleScript_ActionSwitch -_08014798: .4byte gCurrentActionFuncId -_0801479C: .4byte gBattleResults - thumb_func_end sub_80146F4 - - thumb_func_start sub_80147A0 -sub_80147A0: @ 80147A0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r4, _08014804 @ =gBankAttacker - ldr r2, _08014808 @ =gBankTarget - ldr r1, _0801480C @ =gTurnOrder - ldr r0, _08014810 @ =gCurrentTurnActionNumber - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - strb r0, [r4] - ldr r0, _08014814 @ =gUnknown_030042A4 - movs r2, 0 - strh r2, [r0] - ldr r0, _08014818 @ =gUnknown_030042A0 - strh r2, [r0] - ldr r3, _0801481C @ =gDisableStructs - ldrb r1, [r4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r3 - strb r2, [r0, 0x10] - ldr r5, _08014820 @ =gLastUsedItem - ldr r2, _08014824 @ =gBattleBufferB - ldrb r1, [r4] - lsls r1, 9 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r3, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r0, [r1] - lsls r0, 8 - orrs r3, r0 - strh r3, [r5] - cmp r3, 0xC - bhi _08014830 - ldr r2, _08014828 @ =gBattlescriptCurrInstr - ldr r1, _0801482C @ =gBattlescriptsForBallThrow - ldrh r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [r2] - b _08014A8C - .align 2, 0 -_08014804: .4byte gBankAttacker -_08014808: .4byte gBankTarget -_0801480C: .4byte gTurnOrder -_08014810: .4byte gCurrentTurnActionNumber -_08014814: .4byte gUnknown_030042A4 -_08014818: .4byte gUnknown_030042A0 -_0801481C: .4byte gDisableStructs -_08014820: .4byte gLastUsedItem -_08014824: .4byte gBattleBufferB -_08014828: .4byte gBattlescriptCurrInstr -_0801482C: .4byte gBattlescriptsForBallThrow -_08014830: - adds r0, r3, 0 - subs r0, 0x50 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _0801484C - ldr r0, _08014844 @ =gBattlescriptCurrInstr - ldr r1, _08014848 @ =gBattlescriptsForRunningByItem - b _0801485C - .align 2, 0 -_08014844: .4byte gBattlescriptCurrInstr -_08014848: .4byte gBattlescriptsForRunningByItem -_0801484C: - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _0801486C - ldr r0, _08014864 @ =gBattlescriptCurrInstr - ldr r1, _08014868 @ =gBattlescriptsForUsingItem -_0801485C: - ldr r1, [r1] - str r1, [r0] - b _08014A8C - .align 2, 0 -_08014864: .4byte gBattlescriptCurrInstr -_08014868: .4byte gBattlescriptsForUsingItem -_0801486C: - ldr r2, _080148A0 @ =gSharedMem - ldrb r0, [r4] - ldr r3, _080148A4 @ =0x00016003 - adds r1, r2, r3 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 25 - ldr r1, _080148A8 @ =0x000160d8 - adds r0, r1 - adds r0, r2 - ldrb r0, [r0] - subs r0, 0x1 - mov r8, r4 - ldr r3, _080148AC @ =gBattlescriptCurrInstr - mov r9, r3 - ldr r1, _080148B0 @ =gBattlescriptsForUsingItem - mov r10, r1 - adds r7, r2, 0 - cmp r0, 0x4 - bls _08014896 - b _08014A74 -_08014896: - lsls r0, 2 - ldr r1, _080148B4 @ =_080148B8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080148A0: .4byte gSharedMem -_080148A4: .4byte 0x00016003 -_080148A8: .4byte 0x000160d8 -_080148AC: .4byte gBattlescriptCurrInstr -_080148B0: .4byte gBattlescriptsForUsingItem -_080148B4: .4byte _080148B8 - .align 2, 0 -_080148B8: - .4byte _08014A74 - .4byte _08014A74 - .4byte _080148CC - .4byte _08014958 - .4byte _08014A30 -_080148CC: - ldr r2, _08014904 @ =gBattleCommunication - movs r0, 0 - strb r0, [r2, 0x5] - ldr r1, _08014908 @ =gBankAttacker - ldrb r0, [r1] - lsrs r0, 1 - ldr r6, _0801490C @ =0x000160da - adds r0, r6 - adds r0, r7 - ldrb r3, [r0] - movs r0, 0x1 - ands r0, r3 - mov r8, r1 - cmp r0, 0 - beq _08014918 - movs r0, 0x3E - ands r0, r3 - ldr r3, _08014910 @ =gBattlescriptCurrInstr - mov r9, r3 - ldr r1, _08014914 @ =gBattlescriptsForUsingItem - mov r10, r1 - cmp r0, 0 - bne _080148FC - b _08014A74 -_080148FC: - movs r0, 0x5 - strb r0, [r2, 0x5] - b _08014A74 - .align 2, 0 -_08014904: .4byte gBattleCommunication -_08014908: .4byte gBankAttacker -_0801490C: .4byte 0x000160da -_08014910: .4byte gBattlescriptCurrInstr -_08014914: .4byte gBattlescriptsForUsingItem -_08014918: - ldr r3, _08014950 @ =gBattlescriptCurrInstr - mov r9, r3 - ldr r0, _08014954 @ =gBattlescriptsForUsingItem - mov r10, r0 - adds r5, r7, 0 - mov r4, r8 - adds r3, r6, 0 -_08014926: - ldrb r0, [r4] - lsrs r0, 1 - adds r0, r3 - adds r0, r5 - ldrb r1, [r0] - lsrs r1, 1 - strb r1, [r0] - ldrb r0, [r2, 0x5] - adds r0, 0x1 - strb r0, [r2, 0x5] - ldrb r0, [r4] - lsrs r0, 1 - adds r0, r3 - adds r0, r5 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08014926 - b _08014A74 - .align 2, 0 -_08014950: .4byte gBattlescriptCurrInstr -_08014954: .4byte gBattlescriptsForUsingItem -_08014958: - ldr r3, _0801498C @ =gBattleCommunication - movs r0, 0x4 - strb r0, [r3, 0x5] - ldr r2, _08014990 @ =gBankAttacker - ldrb r0, [r2] - lsrs r0, 1 - ldr r1, _08014994 @ =0x000160da - mov r12, r1 - add r0, r12 - adds r6, r0, r7 - ldrb r1, [r6] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - mov r8, r2 - cmp r5, 0 - beq _080149A0 - movs r0, 0x5 - strb r0, [r3, 0x5] - ldr r2, _08014998 @ =gBattlescriptCurrInstr - mov r9, r2 - ldr r3, _0801499C @ =gBattlescriptsForUsingItem - mov r10, r3 - b _08014A74 - .align 2, 0 -_0801498C: .4byte gBattleCommunication -_08014990: .4byte gBankAttacker -_08014994: .4byte 0x000160da -_08014998: .4byte gBattlescriptCurrInstr -_0801499C: .4byte gBattlescriptsForUsingItem -_080149A0: - ldr r3, _08014A18 @ =gBattleTextBuff1 - movs r4, 0xFD - strb r4, [r3] - movs r0, 0x5 - strb r0, [r3, 0x1] - movs r2, 0x1 - strb r2, [r3, 0x2] - movs r0, 0xFF - strb r0, [r3, 0x3] - ldr r1, _08014A1C @ =gBattleTextBuff2 - strb r4, [r1] - strb r5, [r1, 0x1] - movs r0, 0xD2 - strb r0, [r1, 0x2] - strb r5, [r1, 0x3] - subs r0, 0xD3 - strb r0, [r1, 0x4] - ldrb r0, [r6] - ands r2, r0 - ldr r0, _08014A20 @ =gBattlescriptCurrInstr - mov r9, r0 - ldr r1, _08014A24 @ =gBattlescriptsForUsingItem - mov r10, r1 - adds r6, r3, 0 - cmp r2, 0 - bne _08014A02 - adds r3, r7, 0 - mov r5, r8 - mov r4, r12 - adds r2, r6, 0 -_080149DC: - ldrb r0, [r5] - lsrs r0, 1 - adds r0, r4 - adds r0, r3 - ldrb r1, [r0] - lsrs r1, 1 - strb r1, [r0] - ldrb r0, [r2, 0x2] - adds r0, 0x1 - strb r0, [r2, 0x2] - ldrb r0, [r5] - lsrs r0, 1 - adds r0, r4 - adds r0, r3 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080149DC -_08014A02: - ldrb r0, [r6, 0x2] - adds r0, 0xE - ldr r2, _08014A28 @ =0x000160a4 - adds r1, r7, r2 - movs r2, 0 - strb r0, [r1] - ldr r3, _08014A2C @ =0x000160a5 - adds r0, r7, r3 - strb r2, [r0] - b _08014A74 - .align 2, 0 -_08014A18: .4byte gBattleTextBuff1 -_08014A1C: .4byte gBattleTextBuff2 -_08014A20: .4byte gBattlescriptCurrInstr -_08014A24: .4byte gBattlescriptsForUsingItem -_08014A28: .4byte 0x000160a4 -_08014A2C: .4byte 0x000160a5 -_08014A30: - ldr r0, _08014A50 @ =gBattleTypeFlags - ldrh r0, [r0] - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _08014A64 - ldr r1, _08014A54 @ =gBattleCommunication - movs r0, 0x2 - strb r0, [r1, 0x5] - ldr r0, _08014A58 @ =gBankAttacker - mov r8, r0 - ldr r1, _08014A5C @ =gBattlescriptCurrInstr - mov r9, r1 - ldr r2, _08014A60 @ =gBattlescriptsForUsingItem - mov r10, r2 - b _08014A74 - .align 2, 0 -_08014A50: .4byte gBattleTypeFlags -_08014A54: .4byte gBattleCommunication -_08014A58: .4byte gBankAttacker -_08014A5C: .4byte gBattlescriptCurrInstr -_08014A60: .4byte gBattlescriptsForUsingItem -_08014A64: - ldr r0, _08014AA0 @ =gBattleCommunication - strb r1, [r0, 0x5] - ldr r3, _08014AA4 @ =gBankAttacker - mov r8, r3 - ldr r0, _08014AA8 @ =gBattlescriptCurrInstr - mov r9, r0 - ldr r1, _08014AAC @ =gBattlescriptsForUsingItem - mov r10, r1 -_08014A74: - mov r2, r8 - ldrb r0, [r2] - lsrs r0, 1 - ldr r3, _08014AB0 @ =0x000160d8 - adds r0, r3 - adds r0, r7 - ldrb r0, [r0] - lsls r0, 2 - add r0, r10 - ldr r0, [r0] - mov r1, r9 - str r0, [r1] -_08014A8C: - movs r0, 0xA - ldr r2, _08014AB4 @ =gCurrentActionFuncId - strb r0, [r2] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08014AA0: .4byte gBattleCommunication -_08014AA4: .4byte gBankAttacker -_08014AA8: .4byte gBattlescriptCurrInstr -_08014AAC: .4byte gBattlescriptsForUsingItem -_08014AB0: .4byte 0x000160d8 -_08014AB4: .4byte gCurrentActionFuncId - thumb_func_end sub_80147A0 - - thumb_func_start sub_8014AB8 -sub_8014AB8: @ 8014AB8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r5, 0 - ldr r1, _08014ADC @ =gBattleMons - movs r0, 0x58 - muls r0, r4 - adds r1, r0, r1 - ldrh r0, [r1, 0x2E] - cmp r0, 0xAF - bne _08014AE4 - ldr r1, _08014AE0 @ =gEnigmaBerries - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x7] - b _08014AEE - .align 2, 0 -_08014ADC: .4byte gBattleMons -_08014AE0: .4byte gEnigmaBerries -_08014AE4: - ldrh r0, [r1, 0x2E] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r1, r0, 24 -_08014AEE: - ldr r0, _08014B18 @ =gStringBank - strb r4, [r0] - cmp r1, 0x25 - bne _08014B28 - ldr r2, _08014B1C @ =gLastUsedItem - ldr r1, _08014B20 @ =gBattleMons - movs r0, 0x58 - muls r0, r4 - adds r0, r1 - ldrh r0, [r0, 0x2E] - strh r0, [r2] - ldr r0, _08014B24 @ =gProtectStructs - lsls r2, r4, 4 - adds r2, r0 - ldrb r1, [r2, 0x1] - movs r0, 0x19 - negs r0, r0 - ands r0, r1 - movs r1, 0x8 - b _08014B50 - .align 2, 0 -_08014B18: .4byte gStringBank -_08014B1C: .4byte gLastUsedItem -_08014B20: .4byte gBattleMons -_08014B24: .4byte gProtectStructs -_08014B28: - ldr r6, _08014B5C @ =gBattleMons - movs r2, 0x58 - adds r0, r4, 0 - muls r0, r2 - adds r3, r0, r6 - adds r0, r3, 0 - adds r0, 0x20 - ldrb r1, [r0] - cmp r1, 0x32 - bne _08014B68 - ldr r0, _08014B60 @ =gLastUsedAbility - strb r1, [r0] - ldr r0, _08014B64 @ =gProtectStructs - lsls r2, r4, 4 - adds r2, r0 - ldrb r1, [r2, 0x1] - movs r0, 0x19 - negs r0, r0 - ands r0, r1 - movs r1, 0x10 -_08014B50: - orrs r0, r1 - strb r0, [r2, 0x1] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - b _08014BC2 - .align 2, 0 -_08014B5C: .4byte gBattleMons -_08014B60: .4byte gLastUsedAbility -_08014B64: .4byte gProtectStructs -_08014B68: - ldr r0, _08014BDC @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08014BB6 - movs r1, 0x1 - adds r0, r4, 0 - eors r0, r1 - muls r0, r2 - adds r2, r0, r6 - ldrh r0, [r3, 0x6] - ldrh r1, [r2, 0x6] - cmp r0, r1 - bcs _08014BB0 - lsls r0, 7 - ldrh r1, [r2, 0x6] - bl __divsi3 - adds r4, r0, 0 - ldr r0, _08014BE0 @ =gSharedMem - ldr r1, _08014BE4 @ =0x00016078 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 1 - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - bl Random - movs r1, 0xFF - ands r1, r0 - cmp r4, r1 - bls _08014BB6 -_08014BB0: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_08014BB6: - ldr r1, _08014BE0 @ =gSharedMem - ldr r0, _08014BE4 @ =0x00016078 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08014BC2: - cmp r5, 0 - beq _08014BD4 - ldr r1, _08014BE8 @ =gCurrentTurnActionNumber - ldr r0, _08014BEC @ =gNoOfAllBanks - ldrb r0, [r0] - strb r0, [r1] - ldr r1, _08014BF0 @ =gBattleOutcome - movs r0, 0x4 - strb r0, [r1] -_08014BD4: - adds r0, r5, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08014BDC: .4byte gBattleTypeFlags -_08014BE0: .4byte gSharedMem -_08014BE4: .4byte 0x00016078 -_08014BE8: .4byte gCurrentTurnActionNumber -_08014BEC: .4byte gNoOfAllBanks -_08014BF0: .4byte gBattleOutcome - thumb_func_end sub_8014AB8 - - thumb_func_start sub_8014BF4 -sub_8014BF4: @ 8014BF4 - push {r4-r6,lr} - ldr r4, _08014C44 @ =gBankAttacker - ldr r1, _08014C48 @ =gTurnOrder - ldr r5, _08014C4C @ =gCurrentTurnActionNumber - ldrb r0, [r5] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r4] - ldr r0, _08014C50 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08014C9C - ldr r0, _08014C54 @ =gNoOfAllBanks - ldrb r1, [r0] - strb r1, [r5] - ldr r2, _08014C58 @ =gActiveBank - movs r0, 0 - strb r0, [r2] - lsls r1, 24 - cmp r1, 0 - beq _08014C88 - adds r4, r2, 0 - ldr r6, _08014C5C @ =gActionForBanks - ldr r5, _08014C60 @ =gBattleOutcome -_08014C28: - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08014C64 - ldrb r0, [r4] - adds r0, r6 - ldrb r0, [r0] - cmp r0, 0x3 - bne _08014C76 - ldrb r0, [r5] - movs r1, 0x2 - b _08014C72 - .align 2, 0 -_08014C44: .4byte gBankAttacker -_08014C48: .4byte gTurnOrder -_08014C4C: .4byte gCurrentTurnActionNumber -_08014C50: .4byte gBattleTypeFlags -_08014C54: .4byte gNoOfAllBanks -_08014C58: .4byte gActiveBank -_08014C5C: .4byte gActionForBanks -_08014C60: .4byte gBattleOutcome -_08014C64: - ldrb r0, [r4] - adds r0, r6 - ldrb r0, [r0] - cmp r0, 0x3 - bne _08014C76 - ldrb r0, [r5] - movs r1, 0x1 -_08014C72: - orrs r0, r1 - strb r0, [r5] -_08014C76: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _08014C94 @ =gNoOfAllBanks - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _08014C28 -_08014C88: - ldr r0, _08014C98 @ =gBattleOutcome - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] - b _08014D40 - .align 2, 0 -_08014C94: .4byte gNoOfAllBanks -_08014C98: .4byte gBattleOutcome -_08014C9C: - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08014CF4 - ldrb r0, [r4] - bl sub_8014AB8 - lsls r0, 24 - cmp r0, 0 - bne _08014D40 - ldr r1, _08014CDC @ =gBattleMons - ldrb r2, [r4] - movs r0, 0x58 - muls r2, r0 - adds r1, 0x50 - adds r2, r1 - ldr r0, [r2] - ldr r1, _08014CE0 @ =0xfdffffff - ands r0, r1 - str r0, [r2] - ldr r1, _08014CE4 @ =gBattleCommunication - movs r0, 0x3 - strb r0, [r1, 0x5] - ldr r1, _08014CE8 @ =gBattlescriptCurrInstr - ldr r0, _08014CEC @ =BattleScript_PrintFailedToRunString - str r0, [r1] - ldr r1, _08014CF0 @ =gCurrentActionFuncId - movs r0, 0xA - b _08014D3E - .align 2, 0 -_08014CDC: .4byte gBattleMons -_08014CE0: .4byte 0xfdffffff -_08014CE4: .4byte gBattleCommunication -_08014CE8: .4byte gBattlescriptCurrInstr -_08014CEC: .4byte BattleScript_PrintFailedToRunString -_08014CF0: .4byte gCurrentActionFuncId -_08014CF4: - ldr r1, _08014D1C @ =gBattleMons - ldrb r2, [r4] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - ldr r1, _08014D20 @ =0x0400e000 - ands r0, r1 - cmp r0, 0 - beq _08014D34 - ldr r1, _08014D24 @ =gBattleCommunication - movs r0, 0x4 - strb r0, [r1, 0x5] - ldr r1, _08014D28 @ =gBattlescriptCurrInstr - ldr r0, _08014D2C @ =BattleScript_PrintFailedToRunString - str r0, [r1] - ldr r1, _08014D30 @ =gCurrentActionFuncId - movs r0, 0xA - b _08014D3E - .align 2, 0 -_08014D1C: .4byte gBattleMons -_08014D20: .4byte 0x0400e000 -_08014D24: .4byte gBattleCommunication -_08014D28: .4byte gBattlescriptCurrInstr -_08014D2C: .4byte BattleScript_PrintFailedToRunString -_08014D30: .4byte gCurrentActionFuncId -_08014D34: - ldr r0, _08014D48 @ =gNoOfAllBanks - ldrb r0, [r0] - strb r0, [r5] - ldr r1, _08014D4C @ =gBattleOutcome - movs r0, 0x6 -_08014D3E: - strb r0, [r1] -_08014D40: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08014D48: .4byte gNoOfAllBanks -_08014D4C: .4byte gBattleOutcome - thumb_func_end sub_8014BF4 - - thumb_func_start sub_8014D50 -sub_8014D50: @ 8014D50 - ldr r2, _08014D78 @ =gBankAttacker - ldr r1, _08014D7C @ =gTurnOrder - ldr r0, _08014D80 @ =gCurrentTurnActionNumber - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r0, _08014D84 @ =gUnknown_030042A4 - movs r1, 0 - strh r1, [r0] - ldr r0, _08014D88 @ =gUnknown_030042A0 - strh r1, [r0] - ldr r1, _08014D8C @ =gBattlescriptCurrInstr - ldr r0, _08014D90 @ =gBattlescriptsForSafariActions - ldr r0, [r0] - str r0, [r1] - ldr r1, _08014D94 @ =gCurrentActionFuncId - movs r0, 0xA - strb r0, [r1] - bx lr - .align 2, 0 -_08014D78: .4byte gBankAttacker -_08014D7C: .4byte gTurnOrder -_08014D80: .4byte gCurrentTurnActionNumber -_08014D84: .4byte gUnknown_030042A4 -_08014D88: .4byte gUnknown_030042A0 -_08014D8C: .4byte gBattlescriptCurrInstr -_08014D90: .4byte gBattlescriptsForSafariActions -_08014D94: .4byte gCurrentActionFuncId - thumb_func_end sub_8014D50 - - thumb_func_start sub_8014D98 -sub_8014D98: @ 8014D98 - ldr r2, _08014DD0 @ =gBankAttacker - ldr r1, _08014DD4 @ =gTurnOrder - ldr r0, _08014DD8 @ =gCurrentTurnActionNumber - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r0, _08014DDC @ =gUnknown_030042A4 - movs r1, 0 - strh r1, [r0] - ldr r0, _08014DE0 @ =gUnknown_030042A0 - strh r1, [r0] - ldr r1, _08014DE4 @ =gNumSafariBalls - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - ldr r1, _08014DE8 @ =gLastUsedItem - movs r0, 0x5 - strh r0, [r1] - ldr r1, _08014DEC @ =gBattlescriptCurrInstr - ldr r0, _08014DF0 @ =gBattlescriptsForBallThrow - ldr r0, [r0, 0x14] - str r0, [r1] - ldr r1, _08014DF4 @ =gCurrentActionFuncId - movs r0, 0xA - strb r0, [r1] - bx lr - .align 2, 0 -_08014DD0: .4byte gBankAttacker -_08014DD4: .4byte gTurnOrder -_08014DD8: .4byte gCurrentTurnActionNumber -_08014DDC: .4byte gUnknown_030042A4 -_08014DE0: .4byte gUnknown_030042A0 -_08014DE4: .4byte gNumSafariBalls -_08014DE8: .4byte gLastUsedItem -_08014DEC: .4byte gBattlescriptCurrInstr -_08014DF0: .4byte gBattlescriptsForBallThrow -_08014DF4: .4byte gCurrentActionFuncId - thumb_func_end sub_8014D98 - - thumb_func_start sub_8014DF8 -sub_8014DF8: @ 8014DF8 - push {r4-r6,lr} - ldr r3, _08014E68 @ =gBankAttacker - ldr r1, _08014E6C @ =gTurnOrder - ldr r0, _08014E70 @ =gCurrentTurnActionNumber - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r3] - ldr r0, _08014E74 @ =gUnknown_030042A4 - movs r1, 0 - strh r1, [r0] - ldr r0, _08014E78 @ =gUnknown_030042A0 - strh r1, [r0] - ldr r6, _08014E7C @ =gBattleCommunication - ldr r2, _08014E80 @ =gBattleBufferB - ldrb r0, [r3] - lsls r0, 9 - adds r1, r2, 0x1 - adds r0, r1 - ldrb r0, [r0] - subs r0, 0x1 - strb r0, [r6, 0x5] - ldr r1, _08014E84 @ =gLastUsedItem - ldrb r0, [r3] - lsls r0, 9 - adds r2, 0x2 - adds r0, r2 - ldrb r0, [r0] - strh r0, [r1] - ldr r2, _08014E88 @ =gSharedMem - ldr r0, _08014E8C @ =0x00016087 - adds r1, r2, r0 - ldrb r0, [r1] - cmp r0, 0x2 - bhi _08014E42 - adds r0, 0x1 - strb r0, [r1] -_08014E42: - ldr r0, _08014E90 @ =0x00016088 - adds r4, r2, r0 - ldrb r5, [r4] - adds r3, r5, 0 - cmp r3, 0x1 - bls _08014E9C - ldr r2, _08014E94 @ =gUnknown_081FA70C - ldrb r1, [r1] - lsls r0, r1, 1 - adds r0, r1 - ldrb r6, [r6, 0x5] - adds r0, r6 - adds r0, r2 - ldrb r0, [r0] - cmp r3, r0 - bcs _08014E98 - movs r0, 0x1 - b _08014E9A - .align 2, 0 -_08014E68: .4byte gBankAttacker -_08014E6C: .4byte gTurnOrder -_08014E70: .4byte gCurrentTurnActionNumber -_08014E74: .4byte gUnknown_030042A4 -_08014E78: .4byte gUnknown_030042A0 -_08014E7C: .4byte gBattleCommunication -_08014E80: .4byte gBattleBufferB -_08014E84: .4byte gLastUsedItem -_08014E88: .4byte gSharedMem -_08014E8C: .4byte 0x00016087 -_08014E90: .4byte 0x00016088 -_08014E94: .4byte gUnknown_081FA70C -_08014E98: - subs r0, r5, r0 -_08014E9A: - strb r0, [r4] -_08014E9C: - ldr r1, _08014EB0 @ =gBattlescriptCurrInstr - ldr r0, _08014EB4 @ =gBattlescriptsForSafariActions - ldr r0, [r0, 0x8] - str r0, [r1] - ldr r1, _08014EB8 @ =gCurrentActionFuncId - movs r0, 0xA - strb r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08014EB0: .4byte gBattlescriptCurrInstr -_08014EB4: .4byte gBattlescriptsForSafariActions -_08014EB8: .4byte gCurrentActionFuncId - thumb_func_end sub_8014DF8 - - thumb_func_start sub_8014EBC -sub_8014EBC: @ 8014EBC - push {r4,r5,lr} - ldr r2, _08014F28 @ =gBankAttacker - ldr r1, _08014F2C @ =gTurnOrder - ldr r0, _08014F30 @ =gCurrentTurnActionNumber - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r0, _08014F34 @ =gUnknown_030042A4 - movs r5, 0 - strh r5, [r0] - ldr r0, _08014F38 @ =gUnknown_030042A0 - strh r5, [r0] - ldr r3, _08014F3C @ =gSharedMem - ldr r0, _08014F40 @ =0x00016089 - adds r2, r3, r0 - ldr r1, _08014F44 @ =gUnknown_081FA71B - subs r0, 0x3 - adds r4, r3, r0 - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - ldrb r1, [r2] - adds r0, r1 - strb r0, [r2] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x14 - bls _08014EFA - movs r0, 0x14 - strb r0, [r2] -_08014EFA: - ldr r0, _08014F48 @ =0x00016088 - adds r2, r3, r0 - ldr r1, _08014F4C @ =gUnknown_081FA71F - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - ldrb r1, [r2] - adds r0, r1 - strb r0, [r2] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x14 - bls _08014F18 - movs r0, 0x14 - strb r0, [r2] -_08014F18: - ldrb r0, [r4] - cmp r0, 0x2 - bhi _08014F54 - adds r0, 0x1 - strb r0, [r4] - ldr r0, _08014F50 @ =gBattleCommunication - strb r5, [r0, 0x5] - b _08014F5A - .align 2, 0 -_08014F28: .4byte gBankAttacker -_08014F2C: .4byte gTurnOrder -_08014F30: .4byte gCurrentTurnActionNumber -_08014F34: .4byte gUnknown_030042A4 -_08014F38: .4byte gUnknown_030042A0 -_08014F3C: .4byte gSharedMem -_08014F40: .4byte 0x00016089 -_08014F44: .4byte gUnknown_081FA71B -_08014F48: .4byte 0x00016088 -_08014F4C: .4byte gUnknown_081FA71F -_08014F50: .4byte gBattleCommunication -_08014F54: - ldr r1, _08014F70 @ =gBattleCommunication - movs r0, 0x1 - strb r0, [r1, 0x5] -_08014F5A: - ldr r1, _08014F74 @ =gBattlescriptCurrInstr - ldr r0, _08014F78 @ =gBattlescriptsForSafariActions - ldr r0, [r0, 0x4] - str r0, [r1] - ldr r1, _08014F7C @ =gCurrentActionFuncId - movs r0, 0xA - strb r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08014F70: .4byte gBattleCommunication -_08014F74: .4byte gBattlescriptCurrInstr -_08014F78: .4byte gBattlescriptsForSafariActions -_08014F7C: .4byte gCurrentActionFuncId - thumb_func_end sub_8014EBC - - thumb_func_start bs8_exit_by_flight -bs8_exit_by_flight: @ 8014F80 - push {r4,lr} - ldr r2, _08014FA8 @ =gBankAttacker - ldr r1, _08014FAC @ =gTurnOrder - ldr r4, _08014FB0 @ =gCurrentTurnActionNumber - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - movs r0, 0x11 - bl PlaySE - ldr r0, _08014FB4 @ =gNoOfAllBanks - ldrb r0, [r0] - strb r0, [r4] - ldr r1, _08014FB8 @ =gBattleOutcome - movs r0, 0x4 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08014FA8: .4byte gBankAttacker -_08014FAC: .4byte gTurnOrder -_08014FB0: .4byte gCurrentTurnActionNumber -_08014FB4: .4byte gNoOfAllBanks -_08014FB8: .4byte gBattleOutcome - thumb_func_end bs8_exit_by_flight - - thumb_func_start sub_8014FBC -sub_8014FBC: @ 8014FBC - ldr r3, _08015008 @ =gBankAttacker - ldr r1, _0801500C @ =gTurnOrder - ldr r0, _08015010 @ =gCurrentTurnActionNumber - ldrb r0, [r0] - adds r0, r1 - ldrb r2, [r0] - strb r2, [r3] - ldr r0, _08015014 @ =gUnknown_030042A4 - movs r1, 0 - strh r1, [r0] - ldr r0, _08015018 @ =gUnknown_030042A0 - strh r1, [r0] - ldr r1, _0801501C @ =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x7 - strb r0, [r1, 0x1] - strb r2, [r1, 0x2] - ldr r2, _08015020 @ =gBattlePartyID - ldrb r0, [r3] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, _08015024 @ =gBattlescriptCurrInstr - ldr r0, _08015028 @ =gBattlescriptsForSafariActions - ldr r0, [r0, 0xC] - str r0, [r1] - ldr r1, _0801502C @ =gCurrentActionFuncId - movs r0, 0xA - strb r0, [r1] - ldr r1, _08015030 @ =gUnknown_02024A76 - movs r0, 0xC - strb r0, [r1, 0x1] - bx lr - .align 2, 0 -_08015008: .4byte gBankAttacker -_0801500C: .4byte gTurnOrder -_08015010: .4byte gCurrentTurnActionNumber -_08015014: .4byte gUnknown_030042A4 -_08015018: .4byte gUnknown_030042A0 -_0801501C: .4byte gBattleTextBuff1 -_08015020: .4byte gBattlePartyID -_08015024: .4byte gBattlescriptCurrInstr -_08015028: .4byte gBattlescriptsForSafariActions -_0801502C: .4byte gCurrentActionFuncId -_08015030: .4byte gUnknown_02024A76 - thumb_func_end sub_8014FBC - - thumb_func_start bsB_exit_by_move -bsB_exit_by_move: @ 8015034 - push {lr} - bl sub_80173A4 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08015050 - ldr r0, _08015054 @ =gSharedMem - ldr r2, _08015058 @ =0x00016059 - adds r0, r2 - strb r1, [r0] - ldr r1, _0801505C @ =gCurrentActionFuncId - movs r0, 0xC - strb r0, [r1] -_08015050: - pop {r0} - bx r0 - .align 2, 0 -_08015054: .4byte gSharedMem -_08015058: .4byte 0x00016059 -_0801505C: .4byte gCurrentActionFuncId - thumb_func_end bsB_exit_by_move - - thumb_func_start sub_8015060 -sub_8015060: @ 8015060 - ldr r1, _08015080 @ =gCurrentTurnActionNumber - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r3, _08015084 @ =gCurrentActionFuncId - ldr r2, _08015088 @ =gUnknown_02024A76 - ldrb r0, [r1] - adds r0, r2 - ldrb r0, [r0] - strb r0, [r3] - ldr r2, _0801508C @ =gHitMarker - ldr r0, [r2] - ldr r1, _08015090 @ =0xf1e892af - ands r0, r1 - str r0, [r2] - bx lr - .align 2, 0 -_08015080: .4byte gCurrentTurnActionNumber -_08015084: .4byte gCurrentActionFuncId -_08015088: .4byte gUnknown_02024A76 -_0801508C: .4byte gHitMarker -_08015090: .4byte 0xf1e892af - thumb_func_end sub_8015060 - - thumb_func_start bsC_8016D70 -bsC_8016D70: @ 8015094 - push {r4,r5,lr} - ldr r1, _0801510C @ =gCurrentTurnActionNumber - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r3, _08015110 @ =gCurrentActionFuncId - ldr r2, _08015114 @ =gUnknown_02024A76 - ldrb r0, [r1] - adds r0, r2 - ldrb r0, [r0] - strb r0, [r3] - bl SpecialStatusesClear - ldr r2, _08015118 @ =gHitMarker - ldr r0, [r2] - ldr r1, _0801511C @ =0xf1e892af - ands r0, r1 - str r0, [r2] - ldr r0, _08015120 @ =gBattleMoveDamage - movs r4, 0 - str r4, [r0] - ldr r1, _08015124 @ =gSharedMem - ldr r2, _08015128 @ =0x00016002 - adds r0, r1, r2 - strb r4, [r0] - ldr r3, _0801512C @ =0x000160a1 - adds r0, r1, r3 - strb r4, [r0] - ldr r2, _08015130 @ =gMoveHitWith - ldr r5, _08015134 @ =gBankAttacker - ldrb r0, [r5] - lsls r0, 1 - adds r0, r2 - movs r2, 0 - strh r4, [r0] - ldr r3, _08015138 @ =gUnknown_02024C44 - ldrb r0, [r5] - lsls r0, 1 - adds r0, r3 - strh r4, [r0] - ldr r3, _0801513C @ =0x0001601c - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _08015140 @ =gDynamicBasePower - strh r4, [r0] - subs r3, 0x10 - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _08015144 @ =gBattleCommunication - strb r2, [r0, 0x3] - strb r2, [r0, 0x4] - ldr r3, _08015148 @ =0x00016112 - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _0801514C @ =0x00017130 - adds r1, r0 - strb r2, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0801510C: .4byte gCurrentTurnActionNumber -_08015110: .4byte gCurrentActionFuncId -_08015114: .4byte gUnknown_02024A76 -_08015118: .4byte gHitMarker -_0801511C: .4byte 0xf1e892af -_08015120: .4byte gBattleMoveDamage -_08015124: .4byte gSharedMem -_08015128: .4byte 0x00016002 -_0801512C: .4byte 0x000160a1 -_08015130: .4byte gMoveHitWith -_08015134: .4byte gBankAttacker -_08015138: .4byte gUnknown_02024C44 -_0801513C: .4byte 0x0001601c -_08015140: .4byte gDynamicBasePower -_08015144: .4byte gBattleCommunication -_08015148: .4byte 0x00016112 -_0801514C: .4byte 0x00017130 - thumb_func_end bsC_8016D70 - thumb_func_start GetBattleBank GetBattleBank: @ 8015150 push {lr} |