diff options
Diffstat (limited to 'asm')
31 files changed, 250 insertions, 24207 deletions
diff --git a/asm/battle_2.s b/asm/battle_2.s deleted file mode 100644 index 5e342a50f..000000000 --- a/asm/battle_2.s +++ /dev/null @@ -1,13887 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_800FD9C -sub_800FD9C: @ 800FD9C - push {r4,lr} - bl MoveSaveBlocks_ResetHeap - bl AllocateBattleResources - bl AllocateBattleSpritesData - bl AllocateMonSpritesGfx - ldr r4, _0800FDCC @ =gBattleTypeFlags - ldr r0, [r4] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0800FDD8 - bl HandleLinkBattleSetup - ldr r0, _0800FDD0 @ =sub_80109C8 - bl SetMainCallback2 - ldr r1, _0800FDD4 @ =gBattleCommunication - movs r0, 0 - strb r0, [r1] - b _0800FE1C - .align 2, 0 -_0800FDCC: .4byte gBattleTypeFlags -_0800FDD0: .4byte sub_80109C8 -_0800FDD4: .4byte gBattleCommunication -_0800FDD8: - bl sub_800FE24 - ldr r1, [r4] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _0800FE1C - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0800FE06 - movs r0, 0x1 - ands r1, r0 - cmp r1, 0 - beq _0800FDFE - movs r0, 0x19 - bl HelpSystem_SetSomeVariable2 - b _0800FE1C -_0800FDFE: - movs r0, 0x18 - bl HelpSystem_SetSomeVariable2 - b _0800FE1C -_0800FE06: - movs r0, 0x80 - ands r1, r0 - cmp r1, 0 - beq _0800FE16 - movs r0, 0x1A - bl HelpSystem_SetSomeVariable2 - b _0800FE1C -_0800FE16: - movs r0, 0x17 - bl HelpSystem_SetSomeVariable2 -_0800FE1C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_800FD9C - - thumb_func_start sub_800FE24 -sub_800FE24: @ 800FE24 - push {r4,r5,lr} - sub sp, 0x4 - movs r0, 0 - bl SetHBlankCallback - movs r0, 0 - bl SetVBlankCallback - movs r0, 0 - str r0, [sp] - movs r1, 0xC0 - lsls r1, 19 - ldr r2, _0800FF28 @ =0x05006000 - mov r0, sp - bl CpuSet - movs r0, 0x4C - movs r1, 0 - bl SetGpuReg - movs r0, 0x40 - movs r1, 0xF0 - bl SetGpuReg - ldr r4, _0800FF2C @ =0x00005051 - movs r0, 0x44 - adds r1, r4, 0 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0 - bl SetGpuReg - movs r0, 0x4A - movs r1, 0 - bl SetGpuReg - ldr r1, _0800FF30 @ =gBattle_WIN0H - movs r0, 0xF0 - strh r0, [r1] - ldr r0, _0800FF34 @ =gBattle_WIN0V - strh r4, [r0] - bl ScanlineEffect_Clear - ldr r0, _0800FF38 @ =gScanlineEffectRegBuffers - movs r3, 0xF0 - movs r1, 0xF0 - lsls r1, 3 - adds r2, r0, r1 - movs r1, 0x4F -_0800FE88: - strh r3, [r0] - strh r3, [r2] - adds r2, 0x2 - adds r0, 0x2 - subs r1, 0x1 - cmp r1, 0 - bge _0800FE88 - movs r1, 0x50 - ldr r4, _0800FF3C @ =gUnknown_824EFE4 - ldr r0, _0800FF38 @ =gScanlineEffectRegBuffers - ldr r3, _0800FF40 @ =0x0000ff10 - movs r5, 0x82 - lsls r5, 4 - adds r2, r0, r5 - adds r0, 0xA0 -_0800FEA6: - strh r3, [r0] - strh r3, [r2] - adds r2, 0x2 - adds r0, 0x2 - adds r1, 0x1 - cmp r1, 0x9F - ble _0800FEA6 - ldr r0, [r4] - ldr r1, [r4, 0x4] - ldr r2, [r4, 0x8] - bl ScanlineEffect_SetParams - bl ResetPaletteFade - ldr r0, _0800FF44 @ =gBattle_BG0_X - movs r1, 0 - strh r1, [r0] - ldr r0, _0800FF48 @ =gBattle_BG0_Y - strh r1, [r0] - ldr r0, _0800FF4C @ =gBattle_BG1_X - strh r1, [r0] - ldr r0, _0800FF50 @ =gBattle_BG1_Y - strh r1, [r0] - ldr r0, _0800FF54 @ =gBattle_BG2_X - strh r1, [r0] - ldr r0, _0800FF58 @ =gBattle_BG2_Y - strh r1, [r0] - ldr r0, _0800FF5C @ =gBattle_BG3_X - strh r1, [r0] - ldr r0, _0800FF60 @ =gBattle_BG3_Y - strh r1, [r0] - bl sub_807FC5C - ldr r1, _0800FF64 @ =gBattleTerrain - strb r0, [r1] - bl sub_800F34C - bl LoadBattleTextboxAndBackground - bl ResetSpriteData - bl ResetTasks - bl sub_800FAE0 - bl FreeAllSpritePalettes - ldr r1, _0800FF68 @ =gReservedSpritePaletteCount - movs r0, 0x4 - strb r0, [r1] - ldr r0, _0800FF6C @ =VBlankCB_Battle - bl SetVBlankCallback - bl SetUpBattleVars - ldr r0, _0800FF70 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0800FF78 - ldr r0, _0800FF74 @ =sub_8010BA0 - bl SetMainCallback2 - b _0800FF7E - .align 2, 0 -_0800FF28: .4byte 0x05006000 -_0800FF2C: .4byte 0x00005051 -_0800FF30: .4byte gBattle_WIN0H -_0800FF34: .4byte gBattle_WIN0V -_0800FF38: .4byte gScanlineEffectRegBuffers -_0800FF3C: .4byte gUnknown_824EFE4 -_0800FF40: .4byte 0x0000ff10 -_0800FF44: .4byte gBattle_BG0_X -_0800FF48: .4byte gBattle_BG0_Y -_0800FF4C: .4byte gBattle_BG1_X -_0800FF50: .4byte gBattle_BG1_Y -_0800FF54: .4byte gBattle_BG2_X -_0800FF58: .4byte gBattle_BG2_Y -_0800FF5C: .4byte gBattle_BG3_X -_0800FF60: .4byte gBattle_BG3_Y -_0800FF64: .4byte gBattleTerrain -_0800FF68: .4byte gReservedSpritePaletteCount -_0800FF6C: .4byte VBlankCB_Battle -_0800FF70: .4byte gBattleTypeFlags -_0800FF74: .4byte sub_8010BA0 -_0800FF78: - ldr r0, _0800FFCC @ =sub_8010508 - bl SetMainCallback2 -_0800FF7E: - ldr r0, _0800FFD0 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x2 - ands r0, r1 - cmp r0, 0 - bne _0800FF98 - ldr r0, _0800FFD4 @ =gEnemyParty - ldr r1, _0800FFD8 @ =gTrainerBattleOpponent_A - ldrh r1, [r1] - bl sub_80112E0 - bl SetWildMonHeldItem -_0800FF98: - ldr r0, _0800FFDC @ =gMain - ldr r1, _0800FFE0 @ =0x00000439 - adds r0, r1 - ldrb r1, [r0] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0] - ldr r4, _0800FFE4 @ =gPlayerParty - movs r0, 0xFA - lsls r0, 1 - adds r5, r4, r0 -_0800FFAE: - adds r0, r4, 0 - movs r1, 0x3 - bl AdjustFriendship - adds r4, 0x64 - cmp r4, r5 - ble _0800FFAE - movs r1, 0 - ldr r0, _0800FFE8 @ =gBattleCommunication - strb r1, [r0] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0800FFCC: .4byte sub_8010508 -_0800FFD0: .4byte gBattleTypeFlags -_0800FFD4: .4byte gEnemyParty -_0800FFD8: .4byte gTrainerBattleOpponent_A -_0800FFDC: .4byte gMain -_0800FFE0: .4byte 0x00000439 -_0800FFE4: .4byte gPlayerParty -_0800FFE8: .4byte gBattleCommunication - thumb_func_end sub_800FE24 - - thumb_func_start sub_800FFEC -sub_800FFEC: @ 800FFEC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r6, 0 - mov r9, r6 - movs r0, 0xCE - lsls r0, 1 - mov r10, r0 - mov r8, r6 -_08010002: - movs r0, 0x64 - mov r4, r9 - muls r4, r0 - ldr r0, _080100B0 @ =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - lsls r0, 16 - lsrs r7, r0, 16 - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData - adds r1, r0, 0 - cmp r5, 0 - beq _0801007E - cmp r5, r10 - beq _0801004A - cmp r7, 0 - beq _0801004A - cmp r1, 0 - bne _0801004A - movs r0, 0x1 - mov r2, r8 - lsls r0, r2 - orrs r6, r0 - lsls r0, r6, 16 - lsrs r6, r0, 16 -_0801004A: - cmp r5, 0 - beq _0801007E - cmp r7, 0 - beq _08010066 - cmp r5, r10 - beq _0801005A - cmp r1, 0 - beq _08010066 -_0801005A: - movs r0, 0x2 - mov r1, r8 - lsls r0, r1 - orrs r6, r0 - lsls r0, r6, 16 - lsrs r6, r0, 16 -_08010066: - cmp r5, 0 - beq _0801007E - cmp r5, r10 - beq _0801007E - cmp r7, 0 - bne _0801007E - movs r0, 0x3 - mov r2, r8 - lsls r0, r2 - orrs r6, r0 - lsls r0, r6, 16 - lsrs r6, r0, 16 -_0801007E: - movs r0, 0x2 - add r8, r0 - movs r1, 0x1 - add r9, r1 - mov r2, r9 - cmp r2, 0x5 - ble _08010002 - ldr r1, _080100B4 @ =gBattleStruct - ldr r0, [r1] - movs r2, 0xC3 - lsls r2, 1 - adds r0, r2 - strb r6, [r0] - ldr r0, [r1] - adds r2, 0x1 - adds r1, r0, r2 - lsrs r0, r6, 8 - strb r0, [r1] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080100B0: .4byte gPlayerParty -_080100B4: .4byte gBattleStruct - thumb_func_end sub_800FFEC - - thumb_func_start sub_80100B8 -sub_80100B8: @ 80100B8 - push {r4-r7,lr} - ldr r0, _08010120 @ =gBattleStruct - ldr r5, [r0] - movs r0, 0xC4 - lsls r0, 1 - adds r4, r5, r0 - bl IsEnigmaBerryValid - cmp r0, 0x1 - bne _08010134 - movs r2, 0 - ldr r7, _08010124 @ =gSaveBlock1Ptr - movs r1, 0xC8 - lsls r1, 1 - adds r5, r1 - adds r6, r7, 0 - ldr r3, _08010128 @ =0x000030ec -_080100DA: - adds r0, r4, r2 - ldr r1, [r6] - adds r1, r3 - adds r1, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x5 - ble _080100DA - adds r1, r4, r2 - movs r0, 0xFF - strb r0, [r1] - movs r2, 0 - adds r3, r5, 0 - ldr r6, _08010124 @ =gSaveBlock1Ptr - ldr r5, _0801012C @ =0x00003108 -_080100FA: - adds r0, r3, r2 - ldr r1, [r6] - adds r1, r5 - adds r1, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x11 - ble _080100FA - ldr r0, [r7] - ldr r1, _08010130 @ =0x0000311a - adds r0, r1 - ldrb r0, [r0] - strb r0, [r4, 0x7] - ldr r0, [r7] - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - b _08010174 - .align 2, 0 -_08010120: .4byte gBattleStruct -_08010124: .4byte gSaveBlock1Ptr -_08010128: .4byte 0x000030ec -_0801012C: .4byte 0x00003108 -_08010130: .4byte 0x0000311a -_08010134: - movs r0, 0xAF - bl ItemIdToBerryType - lsls r0, 24 - lsrs r0, 24 - bl sub_809C8A0 - adds r3, r0, 0 - movs r2, 0 - movs r0, 0xC8 - lsls r0, 1 - adds r5, r0 -_0801014C: - adds r0, r4, r2 - adds r1, r3, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x5 - ble _0801014C - adds r1, r4, r2 - movs r0, 0xFF - strb r0, [r1] - adds r0, r5, 0 - movs r2, 0 - adds r1, r0, 0 - adds r1, 0x11 -_08010168: - strb r2, [r1] - subs r1, 0x1 - cmp r1, r0 - bge _08010168 - movs r0, 0 - strb r0, [r4, 0x7] -_08010174: - strb r0, [r4, 0x1A] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80100B8 - - thumb_func_start sub_801017C -sub_801017C: @ 801017C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, _08010234 @ =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08010194 - b _080102C0 -_08010194: - bl IsEnigmaBerryValid - cmp r0, 0x1 - bne _08010250 - movs r5, 0 - ldr r3, _08010238 @ =gEnigmaBerries - ldr r0, _0801023C @ =gSaveBlock1Ptr - mov r8, r0 - adds r6, r3, 0 - mov r4, r8 - ldr r2, _08010240 @ =0x000030ec - adds r7, r3, 0 - adds r7, 0x38 -_080101AE: - adds r1, r5, r6 - ldr r0, [r4] - adds r0, r2 - adds r0, r5 - ldrb r0, [r0] - strb r0, [r1] - adds r1, r5, r7 - ldr r0, [r4] - adds r0, r2 - adds r0, r5 - ldrb r0, [r0] - strb r0, [r1] - adds r5, 0x1 - cmp r5, 0x5 - ble _080101AE - adds r1, r5, r3 - movs r0, 0xFF - strb r0, [r1] - adds r0, r3, 0 - adds r0, 0x38 - adds r0, r5, r0 - movs r1, 0x1 - negs r1, r1 - strb r1, [r0] - movs r5, 0 - adds r7, r3, 0 - adds r7, 0x8 - ldr r4, _0801023C @ =gSaveBlock1Ptr - ldr r2, _08010244 @ =0x00003108 - adds r6, r3, 0 - adds r6, 0x40 -_080101EC: - adds r1, r5, r7 - ldr r0, [r4] - adds r0, r2 - adds r0, r5 - ldrb r0, [r0] - strb r0, [r1] - adds r1, r5, r6 - ldr r0, [r4] - adds r0, r2 - adds r0, r5 - ldrb r0, [r0] - strb r0, [r1] - adds r5, 0x1 - cmp r5, 0x11 - ble _080101EC - mov r1, r8 - ldr r0, [r1] - ldr r2, _08010248 @ =0x0000311a - adds r0, r2 - ldrb r1, [r0] - strb r1, [r3, 0x7] - ldrb r0, [r0] - adds r1, r3, 0 - adds r1, 0x3F - strb r0, [r1] - mov r4, r8 - ldr r0, [r4] - ldr r1, _0801024C @ =0x0000311b - adds r0, r1 - ldrb r1, [r0] - strb r1, [r3, 0x1A] - ldrb r1, [r0] - adds r0, r3, 0 - adds r0, 0x52 - strb r1, [r0] - b _080103FC - .align 2, 0 -_08010234: .4byte gBattleTypeFlags -_08010238: .4byte gEnigmaBerries -_0801023C: .4byte gSaveBlock1Ptr -_08010240: .4byte 0x000030ec -_08010244: .4byte 0x00003108 -_08010248: .4byte 0x0000311a -_0801024C: .4byte 0x0000311b -_08010250: - movs r0, 0xAF - bl ItemIdToBerryType - lsls r0, 24 - lsrs r0, 24 - bl sub_809C8A0 - adds r6, r0, 0 - movs r5, 0 - ldr r4, _080102BC @ =gEnigmaBerries - adds r7, r4, 0 - adds r7, 0x38 - adds r3, r4, 0 -_0801026A: - adds r1, r5, r4 - adds r2, r6, r5 - ldrb r0, [r2] - strb r0, [r1] - adds r1, r5, r7 - ldrb r0, [r2] - strb r0, [r1] - adds r5, 0x1 - cmp r5, 0x5 - ble _0801026A - adds r1, r5, r3 - movs r0, 0xFF - strb r0, [r1] - adds r0, r3, 0 - adds r0, 0x38 - adds r0, r5, r0 - movs r1, 0x1 - negs r1, r1 - strb r1, [r0] - movs r5, 0 - adds r4, r3, 0 - adds r4, 0x8 - movs r1, 0 - adds r2, r3, 0 - adds r2, 0x40 -_0801029C: - adds r0, r5, r4 - strb r1, [r0] - adds r0, r5, r2 - strb r1, [r0] - adds r5, 0x1 - cmp r5, 0x11 - ble _0801029C - movs r1, 0 - strb r1, [r3, 0x7] - adds r0, r3, 0 - adds r0, 0x3F - strb r1, [r0] - strb r1, [r3, 0x1A] - adds r0, 0x13 - strb r1, [r0] - b _080103FC - .align 2, 0 -_080102BC: .4byte gEnigmaBerries -_080102C0: - movs r0, 0x40 - ands r1, r0 - cmp r1, 0 - beq _0801034C - movs r5, 0 - ldr r3, _08010340 @ =gEnigmaBerries - ldr r2, _08010344 @ =gLinkPlayers - mov r9, r2 - adds r6, r3, 0 - movs r4, 0x8 - adds r4, r6 - mov r8, r4 -_080102D8: - lsls r0, r5, 8 - ldr r1, _08010348 @ =gBlockRecvBuffer + 4 - adds r7, r0, r1 - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - add r0, r9 - ldrb r3, [r0, 0x18] - movs r4, 0 - adds r5, 0x1 - mov r10, r5 - lsls r1, r3, 3 - subs r0, r1, r3 - adds r5, r1, 0 - lsls r0, 2 - adds r1, r0, r6 -_080102F8: - adds r0, r7, r4 - ldrb r0, [r0] - strb r0, [r1] - adds r1, 0x1 - adds r4, 0x1 - cmp r4, 0x5 - ble _080102F8 - subs r0, r5, r3 - lsls r0, 2 - adds r1, r4, r0 - adds r1, r6 - movs r2, 0xFF - strb r2, [r1] - movs r4, 0 - mov r2, r8 - adds r1, r0, r2 - adds r2, r7, 0 - adds r2, 0x8 -_0801031C: - adds r0, r2, r4 - ldrb r0, [r0] - strb r0, [r1] - adds r1, 0x1 - adds r4, 0x1 - cmp r4, 0x11 - ble _0801031C - subs r0, r5, r3 - lsls r0, 2 - adds r0, r6 - ldrb r1, [r7, 0x7] - strb r1, [r0, 0x7] - ldrb r1, [r7, 0x1A] - strb r1, [r0, 0x1A] - mov r5, r10 - cmp r5, 0x3 - ble _080102D8 - b _080103FC - .align 2, 0 -_08010340: .4byte gEnigmaBerries -_08010344: .4byte gLinkPlayers -_08010348: .4byte gBlockRecvBuffer + 4 -_0801034C: - movs r5, 0 - ldr r4, _0801040C @ =gEnigmaBerries - mov r9, r4 -_08010352: - lsls r0, r5, 8 - ldr r1, _08010410 @ =gBlockRecvBuffer + 4 - adds r7, r0, r1 - movs r4, 0 - adds r2, r5, 0x1 - mov r10, r2 - lsls r0, r5, 3 - mov r8, r0 - adds r1, r5, 0x2 - mov r12, r1 - subs r1, r0, r5 - mov r2, r12 - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - mov r2, r9 - adds r3, r0, r2 - lsls r1, 2 - adds r2, r1, r2 -_08010378: - adds r0, r7, r4 - ldrb r1, [r0] - strb r1, [r2] - ldrb r0, [r0] - strb r0, [r3] - adds r3, 0x1 - adds r2, 0x1 - adds r4, 0x1 - cmp r4, 0x5 - ble _08010378 - mov r0, r8 - subs r3, r0, r5 - lsls r3, 2 - adds r1, r4, r3 - add r1, r9 - ldrb r0, [r1] - movs r2, 0xFF - orrs r0, r2 - strb r0, [r1] - mov r0, r12 - lsls r2, r0, 3 - subs r2, r0 - lsls r2, 2 - adds r1, r4, r2 - add r1, r9 - ldrb r0, [r1] - movs r4, 0xFF - orrs r0, r4 - strb r0, [r1] - movs r4, 0 - ldr r0, _0801040C @ =gEnigmaBerries - adds r0, 0x8 - adds r2, r0 - adds r3, r0 - adds r6, r7, 0 - adds r6, 0x8 -_080103C0: - adds r0, r6, r4 - ldrb r1, [r0] - strb r1, [r3] - ldrb r0, [r0] - strb r0, [r2] - adds r2, 0x1 - adds r3, 0x1 - adds r4, 0x1 - cmp r4, 0x11 - ble _080103C0 - mov r0, r8 - subs r2, r0, r5 - lsls r2, 2 - add r2, r9 - ldrb r0, [r7, 0x7] - strb r0, [r2, 0x7] - mov r1, r12 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r9 - ldrb r1, [r7, 0x7] - strb r1, [r0, 0x7] - ldrb r1, [r7, 0x1A] - strb r1, [r2, 0x1A] - ldrb r1, [r7, 0x1A] - strb r1, [r0, 0x1A] - mov r5, r10 - cmp r5, 0x1 - ble _08010352 -_080103FC: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0801040C: .4byte gEnigmaBerries -_08010410: .4byte gBlockRecvBuffer + 4 - thumb_func_end sub_801017C - - thumb_func_start sub_8010414 -sub_8010414: @ 8010414 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r3, r1, 24 - movs r6, 0 - ldr r0, _08010440 @ =gBlockRecvBuffer - ldrh r2, [r0] - movs r1, 0x80 - lsls r1, 1 - mov r12, r0 - cmp r2, r1 - bne _08010458 - cmp r3, 0 - bne _08010448 - ldr r0, _08010444 @ =gBattleTypeFlags - ldr r1, [r0] - movs r2, 0xC - b _0801044E - .align 2, 0 -_08010440: .4byte gBlockRecvBuffer -_08010444: .4byte gBattleTypeFlags -_08010448: - ldr r0, _0801048C @ =gBattleTypeFlags - ldr r1, [r0] - movs r2, 0x8 -_0801044E: - orrs r1, r2 - str r1, [r0] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_08010458: - cmp r6, 0 - bne _080104FC - movs r2, 0 - cmp r2, r4 - bge _0801047C - ldr r1, _08010490 @ =gBlockRecvBuffer - mov r8, r1 - movs r5, 0x80 - lsls r5, 1 -_0801046A: - adds r1, r5 - adds r2, 0x1 - cmp r2, r4 - bge _0801047C - mov r7, r8 - ldrh r0, [r7] - ldrh r7, [r1] - cmp r0, r7 - beq _0801046A -_0801047C: - cmp r2, r4 - bne _080104A4 - cmp r3, 0 - bne _08010494 - ldr r0, _0801048C @ =gBattleTypeFlags - ldr r1, [r0] - movs r2, 0xC - b _0801049A - .align 2, 0 -_0801048C: .4byte gBattleTypeFlags -_08010490: .4byte gBlockRecvBuffer -_08010494: - ldr r0, _080104EC @ =gBattleTypeFlags - ldr r1, [r0] - movs r2, 0x8 -_0801049A: - orrs r1, r2 - str r1, [r0] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_080104A4: - cmp r6, 0 - bne _080104FC - movs r2, 0 - ldr r5, _080104EC @ =gBattleTypeFlags - cmp r2, r4 - bge _080104E2 - mov r0, r12 - ldrh r1, [r0] - ldr r0, _080104F0 @ =0x00000201 - cmp r1, r0 - beq _080104DA -_080104BA: - lsls r0, r2, 8 - add r0, r12 - ldrh r0, [r0] - ldr r1, _080104F0 @ =0x00000201 - cmp r0, r1 - bls _080104CA - cmp r2, r3 - bne _080104E2 -_080104CA: - adds r2, 0x1 - cmp r2, r4 - bge _080104E2 - lsls r0, r2, 8 - add r0, r12 - ldrh r0, [r0] - cmp r0, r1 - bne _080104BA -_080104DA: - cmp r2, r3 - beq _080104BA - cmp r2, r3 - bge _080104BA -_080104E2: - cmp r2, r4 - bne _080104F4 - ldr r0, [r5] - movs r1, 0xC - b _080104F8 - .align 2, 0 -_080104EC: .4byte gBattleTypeFlags -_080104F0: .4byte 0x00000201 -_080104F4: - ldr r0, [r5] - movs r1, 0x8 -_080104F8: - orrs r0, r1 - str r0, [r5] -_080104FC: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8010414 - - thumb_func_start sub_8010508 -sub_8010508: @ 8010508 - push {r4-r6,lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl GetMultiplayerId - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08010540 @ =gBattleStruct - ldr r0, [r0] - adds r0, 0xB5 - strb r4, [r0] - movs r0, 0x1 - adds r5, r4, 0 - eors r5, r0 - ldr r0, _08010544 @ =gBattleCommunication - ldrb r0, [r0] - cmp r0, 0x10 - bls _08010536 - b _080108B8 -_08010536: - lsls r0, 2 - ldr r1, _08010548 @ =_0801054C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08010540: .4byte gBattleStruct -_08010544: .4byte gBattleCommunication -_08010548: .4byte _0801054C - .align 2, 0 -_0801054C: - .4byte _08010590 - .4byte _080105D4 - .4byte _08010670 - .4byte _080106F4 - .4byte _0801071C - .4byte _08010898 - .4byte _080108A4 - .4byte _0801074C - .4byte _08010774 - .4byte _08010898 - .4byte _080108A4 - .4byte _080107A4 - .4byte _080107CC - .4byte _08010898 - .4byte _080108A4 - .4byte _08010834 - .4byte _0801084C -_08010590: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _080105BC - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl ShowBg - bl sub_80357C8 - ldr r1, _080105CC @ =gBattleCommunication - movs r0, 0x1 - strb r0, [r1] -_080105BC: - ldr r0, _080105D0 @ =gWirelessCommType - ldrb r0, [r0] - cmp r0, 0 - bne _080105C6 - b _080108B8 -_080105C6: - bl LoadWirelessStatusIndicatorSpriteGfx - b _080108B8 - .align 2, 0 -_080105CC: .4byte gBattleCommunication -_080105D0: .4byte gWirelessCommType -_080105D4: - ldr r2, _08010640 @ =gBattleTypeFlags - ldr r1, [r2] - movs r6, 0x2 - adds r0, r1, 0 - ands r0, r6 - cmp r0, 0 - beq _08010658 - ldr r0, _08010644 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _080105EC - b _080108B8 -_080105EC: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _0801062A - ldr r4, _08010648 @ =gBattleStruct - ldr r0, [r4] - movs r5, 0xC2 - lsls r5, 1 - adds r0, r5 - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r4] - ldr r1, _0801064C @ =0x00000185 - adds r0, r1 - strb r6, [r0] - bl sub_800FFEC - bl sub_80100B8 - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - ldr r1, [r4] - adds r1, r5 - movs r2, 0x20 - bl SendBlock - ldr r0, _08010650 @ =gBattleCommunication - strb r6, [r0] -_0801062A: - ldr r0, _08010654 @ =gWirelessCommType - ldrb r0, [r0] - cmp r0, 0 - bne _08010634 - b _080108B8 -_08010634: - movs r0, 0 - movs r1, 0 - bl CreateWirelessStatusIndicatorSprite - b _080108B8 - .align 2, 0 -_08010640: .4byte gBattleTypeFlags -_08010644: .4byte gReceivedRemoteLinkPlayers -_08010648: .4byte gBattleStruct -_0801064C: .4byte 0x00000185 -_08010650: .4byte gBattleCommunication -_08010654: .4byte gWirelessCommType -_08010658: - movs r0, 0x4 - orrs r1, r0 - str r1, [r2] - ldr r1, _0801066C @ =gBattleCommunication - movs r0, 0xF - strb r0, [r1] - bl sub_801017C - b _080108B8 - .align 2, 0 -_0801066C: .4byte gBattleCommunication -_08010670: - bl GetBlockReceivedStatus - movs r1, 0x3 - ands r1, r0 - cmp r1, 0x3 - beq _0801067E - b _080108B8 -_0801067E: - bl ResetBlockReceivedFlags - movs r0, 0x2 - adds r1, r4, 0 - bl sub_8010414 - bl sub_801017C - ldr r0, _080106E0 @ =sub_800F6FC - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080106E4 @ =gTasks - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r2, r1 - movs r1, 0 - movs r0, 0x87 - lsls r0, 1 - strh r0, [r2, 0xA] - movs r0, 0x5A - strh r0, [r2, 0xC] - strh r1, [r2, 0x12] - ldr r0, _080106E8 @ =gBattleStruct - ldr r3, [r0] - movs r4, 0xC3 - lsls r4, 1 - adds r0, r3, r4 - ldrb r1, [r0] - adds r4, 0x1 - adds r0, r3, r4 - ldrb r0, [r0] - lsls r0, 8 - orrs r1, r0 - strh r1, [r2, 0xE] - ldr r0, _080106EC @ =gBlockRecvBuffer - lsls r1, r5, 8 - adds r0, 0x2 - adds r1, r0 - ldrh r0, [r1] - strh r0, [r2, 0x10] - bl SetDeoxysStats - ldr r1, _080106F0 @ =gBattleCommunication - b _080108B2 - .align 2, 0 -_080106E0: .4byte sub_800F6FC -_080106E4: .4byte gTasks -_080106E8: .4byte gBattleStruct -_080106EC: .4byte gBlockRecvBuffer -_080106F0: .4byte gBattleCommunication -_080106F4: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - bne _08010700 - b _080108B8 -_08010700: - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08010714 @ =gPlayerParty - movs r2, 0xC8 - bl SendBlock - ldr r1, _08010718 @ =gBattleCommunication - b _080108B2 - .align 2, 0 -_08010714: .4byte gPlayerParty -_08010718: .4byte gBattleCommunication -_0801071C: - bl GetBlockReceivedStatus - movs r1, 0x3 - ands r1, r0 - cmp r1, 0x3 - beq _0801072A - b _080108B8 -_0801072A: - bl ResetBlockReceivedFlags - ldr r0, _08010740 @ =gEnemyParty - lsls r1, r5, 8 - ldr r2, _08010744 @ =gBlockRecvBuffer - adds r1, r2 - movs r2, 0xC8 - bl memcpy - ldr r1, _08010748 @ =gBattleCommunication - b _080108B2 - .align 2, 0 -_08010740: .4byte gEnemyParty -_08010744: .4byte gBlockRecvBuffer -_08010748: .4byte gBattleCommunication -_0801074C: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - bne _08010758 - b _080108B8 -_08010758: - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0801076C @ =gUnknown_202434C - movs r2, 0xC8 - bl SendBlock - ldr r1, _08010770 @ =gBattleCommunication - b _080108B2 - .align 2, 0 -_0801076C: .4byte gUnknown_202434C -_08010770: .4byte gBattleCommunication -_08010774: - bl GetBlockReceivedStatus - movs r1, 0x3 - ands r1, r0 - cmp r1, 0x3 - beq _08010782 - b _080108B8 -_08010782: - bl ResetBlockReceivedFlags - ldr r0, _08010798 @ =gUnknown_20240F4 - lsls r1, r5, 8 - ldr r2, _0801079C @ =gBlockRecvBuffer - adds r1, r2 - movs r2, 0xC8 - bl memcpy - ldr r1, _080107A0 @ =gBattleCommunication - b _080108B2 - .align 2, 0 -_08010798: .4byte gUnknown_20240F4 -_0801079C: .4byte gBlockRecvBuffer -_080107A0: .4byte gBattleCommunication -_080107A4: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - bne _080107B0 - b _080108B8 -_080107B0: - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080107C4 @ =gUnknown_2024414 - movs r2, 0xC8 - bl SendBlock - ldr r1, _080107C8 @ =gBattleCommunication - b _080108B2 - .align 2, 0 -_080107C4: .4byte gUnknown_2024414 -_080107C8: .4byte gBattleCommunication -_080107CC: - bl GetBlockReceivedStatus - movs r1, 0x3 - ands r1, r0 - cmp r1, 0x3 - bne _080108B8 - bl ResetBlockReceivedFlags - ldr r4, _08010820 @ =gUnknown_20241BC - lsls r1, r5, 8 - ldr r0, _08010824 @ =gBlockRecvBuffer - adds r1, r0 - adds r0, r4, 0 - movs r2, 0xC8 - bl memcpy - ldr r1, _08010828 @ =0xfffffe70 - adds r0, r4, r1 - bl sub_8011D0C - ldr r1, _0801082C @ =0xfffffed4 - adds r0, r4, r1 - bl sub_8011D0C - adds r0, r4, 0 - subs r0, 0xC8 - bl sub_8011D0C - adds r0, r4, 0 - subs r0, 0x64 - bl sub_8011D0C - adds r0, r4, 0 - bl sub_8011D0C - adds r0, r4, 0 - adds r0, 0x64 - bl sub_8011D0C - ldr r1, _08010830 @ =gBattleCommunication - b _080108B2 - .align 2, 0 -_08010820: .4byte gUnknown_20241BC -_08010824: .4byte gBlockRecvBuffer -_08010828: .4byte 0xfffffe70 -_0801082C: .4byte 0xfffffed4 -_08010830: .4byte gBattleCommunication -_08010834: - bl sub_800D30C - ldr r0, _08010848 @ =gBattleCommunication - ldrb r1, [r0] - adds r1, 0x1 - movs r2, 0 - strb r1, [r0] - strb r2, [r0, 0x1] - strb r2, [r0, 0x2] - b _080108B8 - .align 2, 0 -_08010848: .4byte gBattleCommunication -_0801084C: - ldr r0, _08010880 @ =gUnknown_2023E83 - adds r1, r0, 0x1 - bl BattleInitAllSprites - lsls r0, 24 - cmp r0, 0 - beq _080108B8 - ldr r2, _08010884 @ =gPreBattleCallback1 - ldr r1, _08010888 @ =gMain - ldr r0, [r1] - str r0, [r2] - ldr r0, _0801088C @ =sub_80123E4 - str r0, [r1] - ldr r0, _08010890 @ =BattleMainCB2 - bl SetMainCallback2 - ldr r2, _08010894 @ =gBattleTypeFlags - ldr r1, [r2] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080108B8 - movs r0, 0x20 - orrs r1, r0 - str r1, [r2] - b _080108B8 - .align 2, 0 -_08010880: .4byte gUnknown_2023E83 -_08010884: .4byte gPreBattleCallback1 -_08010888: .4byte gMain -_0801088C: .4byte sub_80123E4 -_08010890: .4byte BattleMainCB2 -_08010894: .4byte gBattleTypeFlags -_08010898: - ldr r0, _080108C0 @ =gBattleCommunication - ldrb r1, [r0] - adds r1, 0x1 - strb r1, [r0] - movs r1, 0x1 - strb r1, [r0, 0x1] -_080108A4: - ldr r1, _080108C0 @ =gBattleCommunication - ldrb r0, [r1, 0x1] - subs r0, 0x1 - strb r0, [r1, 0x1] - lsls r0, 24 - cmp r0, 0 - bne _080108B8 -_080108B2: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080108B8: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080108C0: .4byte gBattleCommunication - thumb_func_end sub_8010508 - - thumb_func_start sub_80108C4 -sub_80108C4: @ 80108C4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r0, 0 - mov r8, r0 - ldr r1, _080109BC @ =gUnknown_2022B58 - mov r9, r1 - movs r0, 0x18 - add r0, r9 - mov r10, r0 -_080108DC: - movs r0, 0x64 - mov r4, r8 - muls r4, r0 - ldr r0, _080109C0 @ =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - mov r1, r8 - lsls r5, r1, 5 - mov r1, r9 - adds r6, r5, r1 - strh r0, [r6] - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - strh r0, [r6, 0x2] - mov r0, r9 - adds r0, 0x4 - adds r7, r5, r0 - adds r0, r4, 0 - movs r1, 0x2 - adds r2, r7, 0 - bl GetMonData - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - strb r0, [r6, 0xF] - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - strh r0, [r6, 0x10] - adds r0, r4, 0 - movs r1, 0x3A - bl GetMonData - strh r0, [r6, 0x12] - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData - mov r1, r9 - adds r1, 0x14 - adds r1, r5, r1 - str r0, [r1] - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - add r5, r10 - str r0, [r5] - adds r0, r4, 0 - bl GetMonGender - strb r0, [r6, 0x1C] - adds r0, r7, 0 - bl StripExtCtrlCodes - adds r0, r4, 0 - movs r1, 0x3 - bl GetMonData - mov r4, r8 - adds r4, 0x1 - cmp r0, 0x1 - beq _08010994 - adds r2, r7, 0 - movs r1, 0 - ldrb r0, [r2] - cmp r0, 0xFF - beq _0801097E -_08010974: - adds r1, 0x1 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0xFF - bne _08010974 -_0801097E: - cmp r1, 0x5 - bgt _0801098E - movs r3, 0 -_08010984: - adds r0, r2, r1 - strb r3, [r0] - adds r1, 0x1 - cmp r1, 0x5 - ble _08010984 -_0801098E: - adds r1, r2, r1 - movs r0, 0xFF - strb r0, [r1] -_08010994: - mov r8, r4 - cmp r4, 0x2 - ble _080108DC - ldr r0, _080109C4 @ =gBattleStruct - ldr r0, [r0] - movs r1, 0xC2 - lsls r1, 1 - adds r0, r1 - ldr r1, _080109BC @ =gUnknown_2022B58 - movs r2, 0x60 - bl memcpy - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080109BC: .4byte gUnknown_2022B58 -_080109C0: .4byte gPlayerParty -_080109C4: .4byte gBattleStruct - thumb_func_end sub_80108C4 - - thumb_func_start sub_80109C8 -sub_80109C8: @ 80109C8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - bl GetMultiplayerId - lsls r0, 24 - lsrs r6, r0, 24 - ldr r4, _08010A0C @ =gBattleStruct - ldr r0, [r4] - adds r0, 0xB5 - strb r6, [r0] - ldr r0, [r4] - movs r1, 0xB0 - adds r1, r0 - mov r9, r1 - adds r0, 0xAE - mov r8, r0 - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - ldr r5, _08010A10 @ =gBattleCommunication - ldrb r0, [r5] - cmp r0, 0x1 - beq _08010A5C - cmp r0, 0x1 - bgt _08010A14 - cmp r0, 0 - beq _08010A20 - b _08010B82 - .align 2, 0 -_08010A0C: .4byte gBattleStruct -_08010A10: .4byte gBattleCommunication -_08010A14: - cmp r0, 0x2 - beq _08010AFC - cmp r0, 0x3 - bne _08010A1E - b _08010B2A -_08010A1E: - b _08010B82 -_08010A20: - ldr r0, _08010A58 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _08010A2A - b _08010B82 -_08010A2A: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - bne _08010A36 - b _08010B82 -_08010A36: - bl sub_80108C4 - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - ldr r1, [r4] - movs r2, 0xC2 - lsls r2, 1 - adds r1, r2 - movs r2, 0x60 - bl SendBlock - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - b _08010B82 - .align 2, 0 -_08010A58: .4byte gReceivedRemoteLinkPlayers -_08010A5C: - bl GetBlockReceivedStatus - movs r1, 0xF - ands r1, r0 - cmp r1, 0xF - beq _08010A6A - b _08010B82 -_08010A6A: - bl ResetBlockReceivedFlags - movs r4, 0 - lsls r0, r6, 3 - subs r0, r6 - lsls r5, r0, 2 - movs r7, 0 -_08010A78: - cmp r4, r6 - beq _08010ABA - ldr r2, _08010A9C @ =gLinkPlayers - adds r0, r7, r2 - ldrh r1, [r0, 0x18] - movs r3, 0x1 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _08010AA0 - adds r0, r5, r2 - ldrh r1, [r0, 0x18] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _08010AAC - b _08010ABA - .align 2, 0 -_08010A9C: .4byte gLinkPlayers -_08010AA0: - adds r0, r5, r2 - ldrh r1, [r0, 0x18] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _08010ABA -_08010AAC: - lsls r1, r4, 8 - ldr r0, _08010AE4 @ =gBlockRecvBuffer - adds r1, r0 - ldr r0, _08010AE8 @ =gUnknown_2022B58 - movs r2, 0x60 - bl memcpy -_08010ABA: - adds r7, 0x1C - adds r4, 0x1 - cmp r4, 0x3 - ble _08010A78 - ldr r1, _08010AEC @ =gBattleCommunication - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r1, _08010AF0 @ =gMain - ldr r0, [r1, 0x8] - mov r2, r9 - str r0, [r2] - ldr r0, _08010AF4 @ =gBattleTypeFlags - ldr r0, [r0] - mov r2, r8 - strh r0, [r2] - ldr r0, _08010AF8 @ =sub_80109C8 - str r0, [r1, 0x8] - bl sub_8128198 - b _08010B82 - .align 2, 0 -_08010AE4: .4byte gBlockRecvBuffer -_08010AE8: .4byte gUnknown_2022B58 -_08010AEC: .4byte gBattleCommunication -_08010AF0: .4byte gMain -_08010AF4: .4byte gBattleTypeFlags -_08010AF8: .4byte sub_80109C8 -_08010AFC: - ldr r0, _08010B1C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08010B82 - movs r0, 0x3 - strb r0, [r5] - ldr r0, _08010B20 @ =gWirelessCommType - ldrb r0, [r0] - cmp r0, 0 - beq _08010B24 - bl sub_800AB9C - b _08010B82 - .align 2, 0 -_08010B1C: .4byte gPaletteFade -_08010B20: .4byte gWirelessCommType -_08010B24: - bl sub_800AAC0 - b _08010B82 -_08010B2A: - ldr r0, _08010B54 @ =gWirelessCommType - ldrb r0, [r0] - cmp r0, 0 - beq _08010B64 - bl IsRfuTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _08010B82 - ldr r1, _08010B58 @ =gBattleTypeFlags - mov r2, r8 - ldrh r0, [r2] - str r0, [r1] - ldr r1, _08010B5C @ =gMain - mov r2, r9 - ldr r0, [r2] - str r0, [r1, 0x8] - ldr r0, _08010B60 @ =sub_800FE24 - bl SetMainCallback2 - b _08010B82 - .align 2, 0 -_08010B54: .4byte gWirelessCommType -_08010B58: .4byte gBattleTypeFlags -_08010B5C: .4byte gMain -_08010B60: .4byte sub_800FE24 -_08010B64: - ldr r0, _08010B90 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _08010B82 - ldr r1, _08010B94 @ =gBattleTypeFlags - mov r2, r8 - ldrh r0, [r2] - str r0, [r1] - ldr r1, _08010B98 @ =gMain - mov r2, r9 - ldr r0, [r2] - str r0, [r1, 0x8] - ldr r0, _08010B9C @ =sub_800FE24 - bl SetMainCallback2 -_08010B82: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08010B90: .4byte gReceivedRemoteLinkPlayers -_08010B94: .4byte gBattleTypeFlags -_08010B98: .4byte gMain -_08010B9C: .4byte sub_800FE24 - thumb_func_end sub_80109C8 - - thumb_func_start sub_8010BA0 -sub_8010BA0: @ 8010BA0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - bl GetMultiplayerId - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _08010BD8 @ =gBattleStruct - ldr r0, [r0] - adds r0, 0xB5 - strb r7, [r0] - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - ldr r0, _08010BDC @ =gBattleCommunication - ldrb r0, [r0] - cmp r0, 0xC - bls _08010BCC - b _080110F0 -_08010BCC: - lsls r0, 2 - ldr r1, _08010BE0 @ =_08010BE4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08010BD8: .4byte gBattleStruct -_08010BDC: .4byte gBattleCommunication -_08010BE0: .4byte _08010BE4 - .align 2, 0 -_08010BE4: - .4byte _08010C18 - .4byte _08010C5C - .4byte _08010CD4 - .4byte _08010DB6 - .4byte _08010DE0 - .4byte _080110D0 - .4byte _080110DC - .4byte _08010ED8 - .4byte _08010F00 - .4byte _080110D0 - .4byte _080110DC - .4byte _0801106C - .4byte _08011084 -_08010C18: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _08010C44 - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl ShowBg - bl sub_80357C8 - ldr r1, _08010C54 @ =gBattleCommunication - movs r0, 0x1 - strb r0, [r1] -_08010C44: - ldr r0, _08010C58 @ =gWirelessCommType - ldrb r0, [r0] - cmp r0, 0 - bne _08010C4E - b _080110F0 -_08010C4E: - bl LoadWirelessStatusIndicatorSpriteGfx - b _080110F0 - .align 2, 0 -_08010C54: .4byte gBattleCommunication -_08010C58: .4byte gWirelessCommType -_08010C5C: - ldr r0, _08010CC0 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _08010C66 - b _080110F0 -_08010C66: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _08010CAA - ldr r4, _08010CC4 @ =gBattleStruct - ldr r0, [r4] - movs r5, 0xC2 - lsls r5, 1 - adds r0, r5 - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r4] - ldr r2, _08010CC8 @ =0x00000185 - adds r1, r0, r2 - movs r0, 0x2 - strb r0, [r1] - bl sub_800FFEC - bl sub_80100B8 - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - ldr r1, [r4] - adds r1, r5 - movs r2, 0x20 - bl SendBlock - ldr r1, _08010CCC @ =gBattleCommunication - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08010CAA: - ldr r0, _08010CD0 @ =gWirelessCommType - ldrb r0, [r0] - cmp r0, 0 - bne _08010CB4 - b _080110F0 -_08010CB4: - movs r0, 0 - movs r1, 0 - bl CreateWirelessStatusIndicatorSprite - b _080110F0 - .align 2, 0 -_08010CC0: .4byte gReceivedRemoteLinkPlayers -_08010CC4: .4byte gBattleStruct -_08010CC8: .4byte 0x00000185 -_08010CCC: .4byte gBattleCommunication -_08010CD0: .4byte gWirelessCommType -_08010CD4: - bl GetBlockReceivedStatus - movs r1, 0xF - ands r1, r0 - cmp r1, 0xF - beq _08010CE2 - b _080110F0 -_08010CE2: - bl ResetBlockReceivedFlags - movs r0, 0x4 - adds r1, r7, 0 - bl sub_8010414 - bl sub_801017C - bl SetDeoxysStats - ldr r0, _08010D4C @ =gDecompressionBuffer - ldr r1, _08010D50 @ =gPlayerParty - movs r2, 0x96 - lsls r2, 1 - bl memcpy - ldr r0, _08010D54 @ =sub_800F6FC - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08010D58 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - movs r0, 0x87 - lsls r0, 1 - strh r0, [r1, 0xA] - movs r0, 0x5A - strh r0, [r1, 0xC] - strh r2, [r1, 0x12] - strh r2, [r1, 0xE] - strh r2, [r1, 0x10] - adds r2, r1, 0 - ldr r0, _08010D5C @ =gBlockRecvBuffer - adds r3, r0, 0x2 - ldr r5, _08010D60 @ =gLinkPlayers - movs r4, 0x3F - movs r7, 0x80 - lsls r7, 1 - movs r6, 0x3 -_08010D3A: - ldrh r0, [r5, 0x18] - cmp r0, 0x1 - beq _08010D76 - cmp r0, 0x1 - bgt _08010D64 - cmp r0, 0 - beq _08010D6E - b _08010D9C - .align 2, 0 -_08010D4C: .4byte gDecompressionBuffer -_08010D50: .4byte gPlayerParty -_08010D54: .4byte sub_800F6FC -_08010D58: .4byte gTasks -_08010D5C: .4byte gBlockRecvBuffer -_08010D60: .4byte gLinkPlayers -_08010D64: - cmp r0, 0x2 - beq _08010D7E - cmp r0, 0x3 - beq _08010D8E - b _08010D9C -_08010D6E: - ldrh r0, [r3] - adds r1, r4, 0 - ands r1, r0 - b _08010D86 -_08010D76: - ldrh r0, [r3] - adds r1, r4, 0 - ands r1, r0 - b _08010D96 -_08010D7E: - ldrh r0, [r3] - adds r1, r4, 0 - ands r1, r0 - lsls r1, 6 -_08010D86: - ldrh r0, [r2, 0xE] - orrs r1, r0 - strh r1, [r2, 0xE] - b _08010D9C -_08010D8E: - ldrh r0, [r3] - adds r1, r4, 0 - ands r1, r0 - lsls r1, 6 -_08010D96: - ldrh r0, [r2, 0x10] - orrs r1, r0 - strh r1, [r2, 0x10] -_08010D9C: - adds r3, r7 - adds r5, 0x1C - subs r6, 0x1 - cmp r6, 0 - bge _08010D3A - bl ZeroPlayerPartyMons - bl ZeroEnemyPartyMons - ldr r1, _08010DD8 @ =gBattleCommunication - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08010DB6: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - bne _08010DC2 - b _080110F0 -_08010DC2: - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08010DDC @ =gDecompressionBuffer - movs r2, 0xC8 - bl SendBlock - ldr r1, _08010DD8 @ =gBattleCommunication - b _080110EA - .align 2, 0 -_08010DD8: .4byte gBattleCommunication -_08010DDC: .4byte gDecompressionBuffer -_08010DE0: - bl GetBlockReceivedStatus - movs r1, 0xF - ands r1, r0 - cmp r1, 0xF - beq _08010DEE - b _080110F0 -_08010DEE: - bl ResetBlockReceivedFlags - movs r6, 0 - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - mov r8, r0 - ldr r4, _08010E18 @ =gBlockRecvBuffer - movs r5, 0 -_08010E00: - cmp r6, r7 - bne _08010E34 - ldr r0, _08010E1C @ =gLinkPlayers - adds r0, r5, r0 - ldrh r0, [r0, 0x18] - cmp r0, 0x2 - bgt _08010E20 - cmp r0, 0x1 - bge _08010E2C - cmp r0, 0 - beq _08010E24 - b _08010EBE - .align 2, 0 -_08010E18: .4byte gBlockRecvBuffer -_08010E1C: .4byte gLinkPlayers -_08010E20: - cmp r0, 0x3 - bne _08010EBE -_08010E24: - ldr r0, _08010E28 @ =gPlayerParty - b _08010EA4 - .align 2, 0 -_08010E28: .4byte gPlayerParty -_08010E2C: - ldr r0, _08010E30 @ =gUnknown_20243B0 - b _08010EA4 - .align 2, 0 -_08010E30: .4byte gUnknown_20243B0 -_08010E34: - ldr r2, _08010E54 @ =gLinkPlayers - adds r0, r5, r2 - ldrh r1, [r0, 0x18] - movs r3, 0x1 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _08010E58 - mov r1, r8 - adds r0, r1, r2 - ldrh r1, [r0, 0x18] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _08010E66 - b _08010E8C - .align 2, 0 -_08010E54: .4byte gLinkPlayers -_08010E58: - mov r1, r8 - adds r0, r1, r2 - ldrh r1, [r0, 0x18] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _08010E8C -_08010E66: - adds r0, r5, r2 - ldrh r2, [r0, 0x18] - cmp r2, 0x2 - bgt _08010E78 - cmp r2, 0x1 - bge _08010E84 - cmp r2, 0 - beq _08010E7C - b _08010EBE -_08010E78: - cmp r2, 0x3 - bne _08010EBE -_08010E7C: - ldr r0, _08010E80 @ =gPlayerParty - b _08010EA4 - .align 2, 0 -_08010E80: .4byte gPlayerParty -_08010E84: - ldr r0, _08010E88 @ =gUnknown_20243B0 - b _08010EA4 - .align 2, 0 -_08010E88: .4byte gUnknown_20243B0 -_08010E8C: - adds r0, r5, r2 - ldrh r2, [r0, 0x18] - cmp r2, 0x2 - bgt _08010E9E - cmp r2, 0x1 - bge _08010EB4 - cmp r2, 0 - beq _08010EA2 - b _08010EBE -_08010E9E: - cmp r2, 0x3 - bne _08010EBE -_08010EA2: - ldr r0, _08010EB0 @ =gEnemyParty -_08010EA4: - adds r1, r4, 0 - movs r2, 0xC8 - bl memcpy - b _08010EBE - .align 2, 0 -_08010EB0: .4byte gEnemyParty -_08010EB4: - ldr r0, _08010ED0 @ =gUnknown_2024158 - adds r1, r4, 0 - movs r2, 0xC8 - bl memcpy -_08010EBE: - movs r2, 0x80 - lsls r2, 1 - adds r4, r2 - adds r5, 0x1C - adds r6, 0x1 - cmp r6, 0x3 - ble _08010E00 - ldr r1, _08010ED4 @ =gBattleCommunication - b _080110EA - .align 2, 0 -_08010ED0: .4byte gUnknown_2024158 -_08010ED4: .4byte gBattleCommunication -_08010ED8: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - bne _08010EE4 - b _080110F0 -_08010EE4: - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08010EF8 @ =gDecompressionBuffer + 0x0C8 - movs r2, 0x64 - bl SendBlock - ldr r1, _08010EFC @ =gBattleCommunication - b _080110EA - .align 2, 0 -_08010EF8: .4byte gDecompressionBuffer + 0x0C8 -_08010EFC: .4byte gBattleCommunication -_08010F00: - bl GetBlockReceivedStatus - movs r1, 0xF - ands r1, r0 - cmp r1, 0xF - beq _08010F0E - b _080110F0 -_08010F0E: - bl ResetBlockReceivedFlags - movs r6, 0 - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - mov r8, r0 - ldr r4, _08010F38 @ =gBlockRecvBuffer - movs r5, 0 -_08010F20: - cmp r6, r7 - bne _08010F54 - ldr r0, _08010F3C @ =gLinkPlayers - adds r0, r5, r0 - ldrh r0, [r0, 0x18] - cmp r0, 0x2 - bgt _08010F40 - cmp r0, 0x1 - bge _08010F4C - cmp r0, 0 - beq _08010F44 - b _08010FDE - .align 2, 0 -_08010F38: .4byte gBlockRecvBuffer -_08010F3C: .4byte gLinkPlayers -_08010F40: - cmp r0, 0x3 - bne _08010FDE -_08010F44: - ldr r0, _08010F48 @ =gUnknown_202434C - b _08010FC4 - .align 2, 0 -_08010F48: .4byte gUnknown_202434C -_08010F4C: - ldr r0, _08010F50 @ =gUnknown_2024478 - b _08010FC4 - .align 2, 0 -_08010F50: .4byte gUnknown_2024478 -_08010F54: - ldr r2, _08010F74 @ =gLinkPlayers - adds r0, r5, r2 - ldrh r1, [r0, 0x18] - movs r3, 0x1 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _08010F78 - mov r1, r8 - adds r0, r1, r2 - ldrh r1, [r0, 0x18] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _08010F86 - b _08010FAC - .align 2, 0 -_08010F74: .4byte gLinkPlayers -_08010F78: - mov r1, r8 - adds r0, r1, r2 - ldrh r1, [r0, 0x18] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _08010FAC -_08010F86: - adds r0, r5, r2 - ldrh r2, [r0, 0x18] - cmp r2, 0x2 - bgt _08010F98 - cmp r2, 0x1 - bge _08010FA4 - cmp r2, 0 - beq _08010F9C - b _08010FDE -_08010F98: - cmp r2, 0x3 - bne _08010FDE -_08010F9C: - ldr r0, _08010FA0 @ =gUnknown_202434C - b _08010FC4 - .align 2, 0 -_08010FA0: .4byte gUnknown_202434C -_08010FA4: - ldr r0, _08010FA8 @ =gUnknown_2024478 - b _08010FC4 - .align 2, 0 -_08010FA8: .4byte gUnknown_2024478 -_08010FAC: - adds r0, r5, r2 - ldrh r2, [r0, 0x18] - cmp r2, 0x2 - bgt _08010FBE - cmp r2, 0x1 - bge _08010FD4 - cmp r2, 0 - beq _08010FC2 - b _08010FDE -_08010FBE: - cmp r2, 0x3 - bne _08010FDE -_08010FC2: - ldr r0, _08010FD0 @ =gUnknown_20240F4 -_08010FC4: - adds r1, r4, 0 - movs r2, 0x64 - bl memcpy - b _08010FDE - .align 2, 0 -_08010FD0: .4byte gUnknown_20240F4 -_08010FD4: - ldr r0, _0801105C @ =gUnknown_2024220 - adds r1, r4, 0 - movs r2, 0x64 - bl memcpy -_08010FDE: - movs r2, 0x80 - lsls r2, 1 - adds r4, r2 - adds r5, 0x1C - adds r6, 0x1 - cmp r6, 0x3 - ble _08010F20 - ldr r4, _08011060 @ =gPlayerParty - adds r0, r4, 0 - bl sub_8011D0C - adds r0, r4, 0 - adds r0, 0x64 - bl sub_8011D0C - adds r0, r4, 0 - adds r0, 0xC8 - bl sub_8011D0C - movs r1, 0x96 - lsls r1, 1 - adds r0, r4, r1 - bl sub_8011D0C - movs r2, 0xC8 - lsls r2, 1 - adds r0, r4, r2 - bl sub_8011D0C - movs r1, 0xFA - lsls r1, 1 - adds r0, r4, r1 - bl sub_8011D0C - ldr r4, _08011064 @ =gEnemyParty - adds r0, r4, 0 - bl sub_8011D0C - adds r0, r4, 0 - adds r0, 0x64 - bl sub_8011D0C - adds r0, r4, 0 - adds r0, 0xC8 - bl sub_8011D0C - movs r2, 0x96 - lsls r2, 1 - adds r0, r4, r2 - bl sub_8011D0C - movs r1, 0xC8 - lsls r1, 1 - adds r0, r4, r1 - bl sub_8011D0C - movs r2, 0xFA - lsls r2, 1 - adds r0, r4, r2 - bl sub_8011D0C - ldr r1, _08011068 @ =gBattleCommunication - b _080110EA - .align 2, 0 -_0801105C: .4byte gUnknown_2024220 -_08011060: .4byte gPlayerParty -_08011064: .4byte gEnemyParty -_08011068: .4byte gBattleCommunication -_0801106C: - bl sub_800D30C - ldr r0, _08011080 @ =gBattleCommunication - ldrb r1, [r0] - adds r1, 0x1 - movs r2, 0 - strb r1, [r0] - strb r2, [r0, 0x1] - strb r2, [r0, 0x2] - b _080110F0 - .align 2, 0 -_08011080: .4byte gBattleCommunication -_08011084: - ldr r0, _080110B8 @ =gUnknown_2023E83 - adds r1, r0, 0x1 - bl BattleInitAllSprites - lsls r0, 24 - cmp r0, 0 - beq _080110F0 - ldr r2, _080110BC @ =gPreBattleCallback1 - ldr r1, _080110C0 @ =gMain - ldr r0, [r1] - str r0, [r2] - ldr r0, _080110C4 @ =sub_80123E4 - str r0, [r1] - ldr r0, _080110C8 @ =BattleMainCB2 - bl SetMainCallback2 - ldr r2, _080110CC @ =gBattleTypeFlags - ldr r1, [r2] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080110F0 - movs r0, 0x20 - orrs r1, r0 - str r1, [r2] - b _080110F0 - .align 2, 0 -_080110B8: .4byte gUnknown_2023E83 -_080110BC: .4byte gPreBattleCallback1 -_080110C0: .4byte gMain -_080110C4: .4byte sub_80123E4 -_080110C8: .4byte BattleMainCB2 -_080110CC: .4byte gBattleTypeFlags -_080110D0: - ldr r0, _080110FC @ =gBattleCommunication - ldrb r1, [r0] - adds r1, 0x1 - strb r1, [r0] - movs r1, 0x1 - strb r1, [r0, 0x1] -_080110DC: - ldr r1, _080110FC @ =gBattleCommunication - ldrb r0, [r1, 0x1] - subs r0, 0x1 - strb r0, [r1, 0x1] - lsls r0, 24 - cmp r0, 0 - bne _080110F0 -_080110EA: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080110F0: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080110FC: .4byte gBattleCommunication - thumb_func_end sub_8010BA0 - - thumb_func_start BattleMainCB2 -BattleMainCB2: @ 8011100 - push {lr} - sub sp, 0x4 - bl AnimateSprites - bl BuildOamBuffer - bl RunTextPrinters - bl UpdatePaletteFade - bl RunTasks - ldr r0, _08011160 @ =gMain - ldrh r1, [r0, 0x2C] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08011158 - ldr r0, _08011164 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 9 - ands r0, r1 - cmp r0, 0 - beq _08011158 - ldr r2, _08011168 @ =gSpecialVar_Result - ldr r1, _0801116C @ =gBattleOutcome - movs r0, 0x3 - strb r0, [r1] - movs r0, 0x3 - strh r0, [r2] - bl ResetPaletteFadeControl - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _08011170 @ =CB2_QuitRecordedBattle - bl SetMainCallback2 -_08011158: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_08011160: .4byte gMain -_08011164: .4byte gBattleTypeFlags -_08011168: .4byte gSpecialVar_Result -_0801116C: .4byte gBattleOutcome -_08011170: .4byte CB2_QuitRecordedBattle - thumb_func_end BattleMainCB2 - - thumb_func_start FreeRestoreBattleData -FreeRestoreBattleData: @ 8011174 - push {lr} - ldr r1, _080111AC @ =gMain - ldr r0, _080111B0 @ =gPreBattleCallback1 - ldr r0, [r0] - str r0, [r1] - ldr r2, _080111B4 @ =gScanlineEffect - movs r0, 0x3 - strb r0, [r2, 0x15] - ldr r0, _080111B8 @ =0x00000439 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - bl ZeroEnemyPartyMons - movs r0, 0x53 - bl m4aSongNumStop - bl FreeMonSpritesGfx - bl FreeBattleSpritesData - bl FreeBattleResources - pop {r0} - bx r0 - .align 2, 0 -_080111AC: .4byte gMain -_080111B0: .4byte gPreBattleCallback1 -_080111B4: .4byte gScanlineEffect -_080111B8: .4byte 0x00000439 - thumb_func_end FreeRestoreBattleData - - thumb_func_start CB2_QuitRecordedBattle -CB2_QuitRecordedBattle: @ 80111BC - push {lr} - bl UpdatePaletteFade - ldr r0, _080111E4 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080111DE - bl FreeRestoreBattleData - bl FreeAllWindowBuffers - ldr r0, _080111E8 @ =gMain - ldr r0, [r0, 0x8] - bl SetMainCallback2 -_080111DE: - pop {r0} - bx r0 - .align 2, 0 -_080111E4: .4byte gPaletteFade -_080111E8: .4byte gMain - thumb_func_end CB2_QuitRecordedBattle - - thumb_func_start sub_80111EC -sub_80111EC: @ 80111EC - movs r1, 0 - strh r1, [r0, 0x2E] - ldr r1, _080111F8 @ =sub_80111FC - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080111F8: .4byte sub_80111FC - thumb_func_end sub_80111EC - - thumb_func_start sub_80111FC -sub_80111FC: @ 80111FC - push {r4-r7,lr} - adds r5, r0, 0 - movs r0, 0x2E - ldrsh r6, [r5, r0] - cmp r6, 0x1 - beq _08011236 - cmp r6, 0x1 - bgt _08011212 - cmp r6, 0 - beq _08011218 - b _080112D0 -_08011212: - cmp r6, 0x2 - beq _080112A0 - b _080112D0 -_08011218: - ldr r4, _08011298 @ =gUnknown_2022BC0 - movs r0, 0x80 - lsls r0, 5 - bl AllocZeroed - str r0, [r4] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - strh r6, [r5, 0x30] - ldr r0, _0801129C @ =0x00000281 - strh r0, [r5, 0x32] - strh r6, [r5, 0x34] - movs r0, 0x1 - strh r0, [r5, 0x36] -_08011236: - ldrh r0, [r5, 0x36] - subs r0, 0x1 - strh r0, [r5, 0x36] - lsls r0, 16 - cmp r0, 0 - bne _080112D0 - movs r0, 0x2 - strh r0, [r5, 0x36] - movs r1, 0x30 - ldrsh r2, [r5, r1] - movs r3, 0x34 - ldrsh r0, [r5, r3] - lsls r0, 5 - adds r2, r0 - movs r3, 0x32 - ldrsh r1, [r5, r3] - subs r1, r0 - movs r3, 0 - ldr r0, _08011298 @ =gUnknown_2022BC0 - mov r12, r0 - lsls r7, r2, 1 - movs r4, 0x3D - lsls r6, r1, 1 -_08011264: - mov r1, r12 - ldr r0, [r1] - lsls r2, r3, 1 - adds r1, r7, r0 - adds r1, r2, r1 - strh r4, [r1] - adds r0, r6, r0 - adds r2, r0 - strh r4, [r2] - adds r3, 0x2 - cmp r3, 0x1D - ble _08011264 - ldrh r0, [r5, 0x34] - adds r0, 0x1 - strh r0, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x15 - bne _080112D0 - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - movs r0, 0x20 - strh r0, [r5, 0x30] - b _080112D0 - .align 2, 0 -_08011298: .4byte gUnknown_2022BC0 -_0801129C: .4byte 0x00000281 -_080112A0: - ldrh r0, [r5, 0x30] - subs r0, 0x1 - strh r0, [r5, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bne _080112D0 - ldr r4, _080112D8 @ =gUnknown_2022BC0 - ldr r0, [r4] - cmp r0, 0 - beq _080112CA - movs r2, 0x80 - lsls r2, 5 - movs r1, 0 - bl memset - ldr r0, [r4] - bl Free - movs r0, 0 - str r0, [r4] -_080112CA: - ldr r0, _080112DC @ =sub_800FD9C - bl SetMainCallback2 -_080112D0: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080112D8: .4byte gUnknown_2022BC0 -_080112DC: .4byte sub_800FD9C - thumb_func_end sub_80111FC - - thumb_func_start sub_80112E0 -sub_80112E0: @ 80112E0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - str r0, [sp, 0x10] - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x14] - movs r0, 0 - mov r9, r0 - movs r0, 0x80 - lsls r0, 3 - cmp r1, r0 - bne _08011304 - movs r0, 0 - b _080116AC -_08011304: - ldr r0, _08011334 @ =gBattleTypeFlags - ldr r0, [r0] - ldr r1, _08011338 @ =0x00080908 - ands r0, r1 - ldr r1, [sp, 0x14] - lsls r1, 2 - str r1, [sp, 0x20] - cmp r0, 0x8 - beq _08011318 - b _0801169C -_08011318: - bl ZeroEnemyPartyMons - movs r2, 0 - str r2, [sp, 0x18] - ldr r2, _0801133C @ =gTrainers - ldr r1, [sp, 0x20] - ldr r3, [sp, 0x14] - adds r0, r1, r3 - lsls r0, 3 - adds r0, r2 - adds r0, 0x20 - ldr r4, [sp, 0x18] - b _0801167E - .align 2, 0 -_08011334: .4byte gBattleTypeFlags -_08011338: .4byte 0x00080908 -_0801133C: .4byte gTrainers -_08011340: - ldr r3, [sp, 0x14] - adds r0, r1, r3 - lsls r0, 3 - adds r1, r0, r2 - ldrb r0, [r1, 0x18] - cmp r0, 0x1 - bne _08011354 - movs r4, 0x80 - mov r10, r4 - b _08011366 -_08011354: - ldrb r1, [r1, 0x2] - movs r0, 0x80 - ands r0, r1 - movs r1, 0x88 - mov r10, r1 - cmp r0, 0 - beq _08011366 - movs r2, 0x78 - mov r10, r2 -_08011366: - movs r6, 0 - ldr r0, _080113BC @ =gTrainers - ldr r2, [sp, 0x20] - ldr r3, [sp, 0x14] - adds r1, r2, r3 - lsls r1, 3 - adds r3, r0, 0x4 - adds r1, r3 - ldrb r1, [r1] - adds r4, r0, 0 - ldr r0, [sp, 0x18] - adds r0, 0x1 - str r0, [sp, 0x1C] - cmp r1, 0xFF - beq _0801139E -_08011384: - ldr r0, [sp, 0x14] - adds r1, r2, r0 - lsls r1, 3 - adds r0, r6, r1 - adds r0, r3 - ldrb r0, [r0] - add r9, r0 - adds r6, 0x1 - adds r1, r6, r1 - adds r1, r3 - ldrb r0, [r1] - cmp r0, 0xFF - bne _08011384 -_0801139E: - adds r2, r4, 0 - ldr r1, [sp, 0x20] - ldr r3, [sp, 0x14] - adds r0, r1, r3 - lsls r1, r0, 3 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x1 - beq _08011454 - cmp r0, 0x1 - bgt _080113C0 - cmp r0, 0 - beq _080113CE - b _0801166C - .align 2, 0 -_080113BC: .4byte gTrainers -_080113C0: - cmp r0, 0x2 - bne _080113C6 - b _08011514 -_080113C6: - cmp r0, 0x3 - bne _080113CC - b _080115A8 -_080113CC: - b _0801166C -_080113CE: - adds r0, r2, 0 - adds r0, 0x24 - adds r0, r1, r0 - ldr r4, [r0] - movs r6, 0 - ldr r0, [sp, 0x18] - lsls r2, r0, 3 - adds r0, r2, r4 - ldrh r1, [r0, 0x4] - movs r0, 0xB - muls r0, r1 - ldr r1, _08011450 @ =gSpeciesNames - adds r0, r1 - ldrb r0, [r0] - adds r5, r2, 0 - cmp r0, 0xFF - beq _08011410 - adds r3, r1, 0 - movs r7, 0xB -_080113F4: - adds r0, r2, r4 - ldrh r0, [r0, 0x4] - adds r1, r0, 0 - muls r1, r7 - adds r0, r6, r1 - adds r0, r3 - ldrb r0, [r0] - add r9, r0 - adds r6, 0x1 - adds r1, r6, r1 - adds r1, r3 - ldrb r0, [r1] - cmp r0, 0xFF - bne _080113F4 -_08011410: - mov r2, r9 - lsls r0, r2, 8 - add r10, r0 - adds r4, r5, r4 - ldrh r1, [r4] - lsls r0, r1, 5 - subs r0, r1 - movs r1, 0xFF - bl __divsi3 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r3, [sp, 0x18] - movs r1, 0x64 - adds r0, r3, 0 - muls r0, r1 - ldr r2, [sp, 0x10] - adds r0, r2, r0 - ldrh r1, [r4, 0x4] - ldrb r2, [r4, 0x2] - movs r3, 0x1 - str r3, [sp] - mov r3, r10 - str r3, [sp, 0x4] - movs r3, 0x2 - str r3, [sp, 0x8] - movs r3, 0 - str r3, [sp, 0xC] - adds r3, r6, 0 - bl CreateMon - b _0801166C - .align 2, 0 -_08011450: .4byte gSpeciesNames -_08011454: - adds r0, r2, 0 - adds r0, 0x24 - adds r0, r1, r0 - ldr r7, [r0] - movs r6, 0 - ldr r4, [sp, 0x18] - lsls r2, r4, 4 - adds r0, r2, r7 - ldrh r1, [r0, 0x4] - movs r0, 0xB - muls r0, r1 - ldr r1, _0801150C @ =gSpeciesNames - adds r0, r1 - ldrb r0, [r0] - mov r8, r2 - cmp r0, 0xFF - beq _08011496 - adds r3, r1, 0 - movs r4, 0xB -_0801147A: - adds r0, r2, r7 - ldrh r0, [r0, 0x4] - adds r1, r0, 0 - muls r1, r4 - adds r0, r6, r1 - adds r0, r3 - ldrb r0, [r0] - add r9, r0 - adds r6, 0x1 - adds r1, r6, r1 - adds r1, r3 - ldrb r0, [r1] - cmp r0, 0xFF - bne _0801147A -_08011496: - mov r2, r9 - lsls r0, r2, 8 - add r10, r0 - mov r3, r8 - adds r4, r3, r7 - ldrh r1, [r4] - lsls r0, r1, 5 - subs r0, r1 - movs r1, 0xFF - bl __divsi3 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, [sp, 0x18] - movs r1, 0x64 - adds r5, r0, 0 - muls r5, r1 - ldr r2, [sp, 0x10] - adds r5, r2, r5 - ldrh r1, [r4, 0x4] - ldrb r2, [r4, 0x2] - movs r0, 0x1 - str r0, [sp] - mov r3, r10 - str r3, [sp, 0x4] - movs r0, 0x2 - str r0, [sp, 0x8] - movs r0, 0 - str r0, [sp, 0xC] - adds r0, r5, 0 - adds r3, r6, 0 - bl CreateMon - movs r6, 0 - mov r0, r8 - adds r0, 0x6 - adds r4, r7, r0 -_080114E0: - adds r1, r6, 0 - adds r1, 0xD - adds r0, r5, 0 - adds r2, r4, 0 - bl SetMonData - adds r1, r6, 0 - adds r1, 0x11 - ldrh r0, [r4] - lsls r2, r0, 1 - adds r2, r0 - lsls r2, 2 - ldr r0, _08011510 @ =gBattleMoves+0x4 - adds r2, r0 - adds r0, r5, 0 - bl SetMonData - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _080114E0 - b _0801166C - .align 2, 0 -_0801150C: .4byte gSpeciesNames -_08011510: .4byte gBattleMoves+0x4 -_08011514: - adds r0, r2, 0 - adds r0, 0x24 - adds r0, r1, r0 - ldr r4, [r0] - movs r6, 0 - ldr r0, [sp, 0x18] - lsls r2, r0, 3 - adds r0, r2, r4 - ldrh r1, [r0, 0x4] - movs r0, 0xB - muls r0, r1 - ldr r1, _080115A4 @ =gSpeciesNames - adds r0, r1 - ldrb r0, [r0] - adds r5, r2, 0 - cmp r0, 0xFF - beq _08011556 - adds r3, r1, 0 - movs r7, 0xB -_0801153A: - adds r0, r2, r4 - ldrh r0, [r0, 0x4] - adds r1, r0, 0 - muls r1, r7 - adds r0, r6, r1 - adds r0, r3 - ldrb r0, [r0] - add r9, r0 - adds r6, 0x1 - adds r1, r6, r1 - adds r1, r3 - ldrb r0, [r1] - cmp r0, 0xFF - bne _0801153A -_08011556: - mov r2, r9 - lsls r0, r2, 8 - add r10, r0 - adds r5, r4 - ldrh r1, [r5] - lsls r0, r1, 5 - subs r0, r1 - movs r1, 0xFF - bl __divsi3 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r3, [sp, 0x18] - movs r0, 0x64 - adds r4, r3, 0 - muls r4, r0 - ldr r1, [sp, 0x10] - adds r4, r1, r4 - ldrh r1, [r5, 0x4] - ldrb r2, [r5, 0x2] - movs r0, 0x1 - str r0, [sp] - mov r3, r10 - str r3, [sp, 0x4] - movs r0, 0x2 - str r0, [sp, 0x8] - movs r0, 0 - str r0, [sp, 0xC] - adds r0, r4, 0 - adds r3, r6, 0 - bl CreateMon - adds r5, 0x6 - adds r0, r4, 0 - movs r1, 0xC - adds r2, r5, 0 - bl SetMonData - b _0801166C - .align 2, 0 -_080115A4: .4byte gSpeciesNames -_080115A8: - adds r0, r4, 0 - adds r0, 0x24 - adds r0, r1, r0 - ldr r7, [r0] - movs r6, 0 - ldr r4, [sp, 0x18] - lsls r2, r4, 4 - adds r0, r2, r7 - ldrh r1, [r0, 0x4] - movs r0, 0xB - muls r0, r1 - ldr r1, _080116BC @ =gSpeciesNames - adds r0, r1 - ldrb r0, [r0] - mov r8, r2 - cmp r0, 0xFF - beq _080115EA - adds r3, r1, 0 - movs r4, 0xB -_080115CE: - adds r0, r2, r7 - ldrh r0, [r0, 0x4] - adds r1, r0, 0 - muls r1, r4 - adds r0, r6, r1 - adds r0, r3 - ldrb r0, [r0] - add r9, r0 - adds r6, 0x1 - adds r1, r6, r1 - adds r1, r3 - ldrb r0, [r1] - cmp r0, 0xFF - bne _080115CE -_080115EA: - mov r2, r9 - lsls r0, r2, 8 - add r10, r0 - mov r3, r8 - adds r5, r3, r7 - ldrh r1, [r5] - lsls r0, r1, 5 - subs r0, r1 - movs r1, 0xFF - bl __divsi3 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, [sp, 0x18] - movs r1, 0x64 - adds r4, r0, 0 - muls r4, r1 - ldr r2, [sp, 0x10] - adds r4, r2, r4 - ldrh r1, [r5, 0x4] - ldrb r2, [r5, 0x2] - movs r0, 0x1 - str r0, [sp] - mov r3, r10 - str r3, [sp, 0x4] - movs r0, 0x2 - str r0, [sp, 0x8] - movs r0, 0 - str r0, [sp, 0xC] - adds r0, r4, 0 - adds r3, r6, 0 - bl CreateMon - adds r5, 0x6 - adds r0, r4, 0 - movs r1, 0xC - adds r2, r5, 0 - bl SetMonData - movs r6, 0 - adds r5, r4, 0 - mov r0, r8 - adds r0, 0x8 - adds r4, r7, r0 -_08011642: - adds r1, r6, 0 - adds r1, 0xD - adds r0, r5, 0 - adds r2, r4, 0 - bl SetMonData - adds r1, r6, 0 - adds r1, 0x11 - ldrh r0, [r4] - lsls r2, r0, 1 - adds r2, r0 - lsls r2, 2 - ldr r0, _080116C0 @ =gBattleMoves+0x4 - adds r2, r0 - adds r0, r5, 0 - bl SetMonData - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _08011642 -_0801166C: - ldr r4, [sp, 0x1C] - str r4, [sp, 0x18] - ldr r2, _080116C4 @ =gTrainers - ldr r1, [sp, 0x20] - ldr r3, [sp, 0x14] - adds r0, r1, r3 - lsls r0, 3 - adds r0, r2 - adds r0, 0x20 -_0801167E: - ldrb r0, [r0] - cmp r4, r0 - bge _08011686 - b _08011340 -_08011686: - ldr r2, _080116C8 @ =gBattleTypeFlags - ldr r1, _080116C4 @ =gTrainers - ldr r4, [sp, 0x20] - ldr r3, [sp, 0x14] - adds r0, r4, r3 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r0, 0x18] - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] -_0801169C: - ldr r0, _080116C4 @ =gTrainers - ldr r4, [sp, 0x20] - ldr r2, [sp, 0x14] - adds r1, r4, r2 - lsls r1, 3 - adds r1, r0 - adds r1, 0x20 - ldrb r0, [r1] -_080116AC: - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080116BC: .4byte gSpeciesNames -_080116C0: .4byte gBattleMoves+0x4 -_080116C4: .4byte gTrainers -_080116C8: .4byte gBattleTypeFlags - thumb_func_end sub_80112E0 - - thumb_func_start sub_80116CC -sub_80116CC: @ 80116CC - push {lr} - ldr r0, _080116EC @ =0x04000006 - ldrh r0, [r0] - subs r0, 0x6F - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x30 - bhi _080116E6 - ldr r1, _080116F0 @ =0x04000008 - movs r2, 0x98 - lsls r2, 8 - adds r0, r2, 0 - strh r0, [r1] -_080116E6: - pop {r0} - bx r0 - .align 2, 0 -_080116EC: .4byte 0x04000006 -_080116F0: .4byte 0x04000008 - thumb_func_end sub_80116CC - - thumb_func_start VBlankCB_Battle -VBlankCB_Battle: @ 80116F4 - push {lr} - bl Random - ldr r0, _08011788 @ =gBattle_BG0_X - ldrh r1, [r0] - movs r0, 0x10 - bl SetGpuReg - ldr r0, _0801178C @ =gBattle_BG0_Y - ldrh r1, [r0] - movs r0, 0x12 - bl SetGpuReg - ldr r0, _08011790 @ =gBattle_BG1_X - ldrh r1, [r0] - movs r0, 0x14 - bl SetGpuReg - ldr r0, _08011794 @ =gBattle_BG1_Y - ldrh r1, [r0] - movs r0, 0x16 - bl SetGpuReg - ldr r0, _08011798 @ =gBattle_BG2_X - ldrh r1, [r0] - movs r0, 0x18 - bl SetGpuReg - ldr r0, _0801179C @ =gBattle_BG2_Y - ldrh r1, [r0] - movs r0, 0x1A - bl SetGpuReg - ldr r0, _080117A0 @ =gBattle_BG3_X - ldrh r1, [r0] - movs r0, 0x1C - bl SetGpuReg - ldr r0, _080117A4 @ =gBattle_BG3_Y - ldrh r1, [r0] - movs r0, 0x1E - bl SetGpuReg - ldr r0, _080117A8 @ =gBattle_WIN0H - ldrh r1, [r0] - movs r0, 0x40 - bl SetGpuReg - ldr r0, _080117AC @ =gBattle_WIN0V - ldrh r1, [r0] - movs r0, 0x44 - bl SetGpuReg - ldr r0, _080117B0 @ =gUnknown_2022988 - ldrh r1, [r0] - movs r0, 0x42 - bl SetGpuReg - ldr r0, _080117B4 @ =gUnknown_202298A - ldrh r1, [r0] - movs r0, 0x46 - bl SetGpuReg - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - bl ScanlineEffect_InitHBlankDmaTransfer - pop {r0} - bx r0 - .align 2, 0 -_08011788: .4byte gBattle_BG0_X -_0801178C: .4byte gBattle_BG0_Y -_08011790: .4byte gBattle_BG1_X -_08011794: .4byte gBattle_BG1_Y -_08011798: .4byte gBattle_BG2_X -_0801179C: .4byte gBattle_BG2_Y -_080117A0: .4byte gBattle_BG3_X -_080117A4: .4byte gBattle_BG3_Y -_080117A8: .4byte gBattle_WIN0H -_080117AC: .4byte gBattle_WIN0V -_080117B0: .4byte gUnknown_2022988 -_080117B4: .4byte gUnknown_202298A - thumb_func_end VBlankCB_Battle - - thumb_func_start nullsub_9 -nullsub_9: @ 80117B8 - bx lr - thumb_func_end nullsub_9 - - thumb_func_start sub_80117BC -sub_80117BC: @ 80117BC - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080117DC - movs r1, 0x32 - ldrsh r0, [r5, r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - lsrs r0, 8 - ldrh r1, [r5, 0x30] - adds r0, r1 - strh r0, [r5, 0x20] - b _080117EE -_080117DC: - movs r1, 0x32 - ldrsh r0, [r5, r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - asrs r0, 8 - ldrh r1, [r5, 0x30] - subs r1, r0 - strh r1, [r5, 0x20] -_080117EE: - movs r1, 0xC0 - lsls r1, 1 - adds r0, r1, 0 - ldrh r1, [r5, 0x32] - adds r0, r1 - strh r0, [r5, 0x32] - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08011822 - ldr r4, _08011828 @ =0x00002710 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - adds r0, r5, 0 - bl FreeSpriteOamMatrix - adds r0, r5, 0 - bl DestroySprite -_08011822: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08011828: .4byte 0x00002710 - thumb_func_end sub_80117BC - - thumb_func_start sub_801182C -sub_801182C: @ 801182C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r0, _08011848 @ =sub_80117BC - str r0, [r4, 0x1C] - movs r0, 0x61 - bl PlaySE - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08011848: .4byte sub_80117BC - thumb_func_end sub_801182C - - thumb_func_start sub_801184C -sub_801184C: @ 801184C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - ldr r0, _08011894 @ =gBattleStruct - ldr r0, [r0] - adds r0, 0xB5 - ldrb r2, [r0] - ldr r0, _08011898 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080118BC - ldr r1, _0801189C @ =gLinkPlayers - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x18] - cmp r0, 0x1 - beq _080118A8 - cmp r0, 0x1 - bgt _080118A0 - cmp r0, 0 - beq _080118BC - b _080118C4 - .align 2, 0 -_08011894: .4byte gBattleStruct -_08011898: .4byte gBattleTypeFlags -_0801189C: .4byte gLinkPlayers -_080118A0: - cmp r0, 0x2 - beq _080118BC - cmp r0, 0x3 - bne _080118C4 -_080118A8: - ldr r0, _080118B4 @ =gEnemyParty - str r0, [sp, 0x4] - ldr r1, _080118B8 @ =gPlayerParty - str r1, [sp, 0x8] - b _080118C4 - .align 2, 0 -_080118B4: .4byte gEnemyParty -_080118B8: .4byte gPlayerParty -_080118BC: - ldr r2, _08011A10 @ =gPlayerParty - str r2, [sp, 0x4] - ldr r3, _08011A14 @ =gEnemyParty - str r3, [sp, 0x8] -_080118C4: - movs r7, 0 - movs r0, 0 - mov r8, r0 - ldr r1, [sp] - lsls r1, 2 - str r1, [sp, 0xC] - movs r2, 0xCE - lsls r2, 1 - mov r10, r2 - mov r9, r0 -_080118D8: - movs r0, 0x64 - mov r4, r8 - muls r4, r0 - ldr r3, [sp, 0x4] - adds r4, r3, r4 - adds r0, r4, 0 - movs r1, 0x41 - 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 - adds r1, r0, 0 - cmp r5, 0 - beq _08011948 - cmp r5, r10 - beq _0801191C - cmp r6, 0 - beq _0801191C - cmp r1, 0 - bne _0801191C - movs r0, 0x1 - mov r2, r9 - lsls r0, r2 - orrs r7, r0 -_0801191C: - cmp r5, 0 - beq _08011948 - cmp r6, 0 - beq _08011934 - cmp r5, r10 - beq _0801192C - cmp r1, 0 - beq _08011934 -_0801192C: - movs r0, 0x2 - mov r3, r9 - lsls r0, r3 - orrs r7, r0 -_08011934: - cmp r5, 0 - beq _08011948 - cmp r5, r10 - beq _08011948 - cmp r6, 0 - bne _08011948 - movs r0, 0x3 - mov r1, r9 - lsls r0, r1 - orrs r7, r0 -_08011948: - movs r2, 0x2 - add r9, r2 - movs r3, 0x1 - add r8, r3 - mov r0, r8 - cmp r0, 0x5 - ble _080118D8 - ldr r1, _08011A18 @ =gTasks - ldr r2, [sp, 0xC] - ldr r3, [sp] - adds r0, r2, r3 - lsls r0, 3 - adds r0, r1 - strh r7, [r0, 0xE] - movs r7, 0 - movs r0, 0 - mov r8, r0 - movs r1, 0xCE - lsls r1, 1 - mov r10, r1 - mov r9, r0 -_08011972: - movs r0, 0x64 - mov r4, r8 - muls r4, r0 - ldr r2, [sp, 0x8] - adds r4, r2, r4 - adds r0, r4, 0 - movs r1, 0x41 - 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 - adds r1, r0, 0 - cmp r5, 0 - beq _080119E2 - cmp r5, r10 - beq _080119B6 - cmp r6, 0 - beq _080119B6 - cmp r1, 0 - bne _080119B6 - movs r0, 0x1 - mov r3, r9 - lsls r0, r3 - orrs r7, r0 -_080119B6: - cmp r5, 0 - beq _080119E2 - cmp r6, 0 - beq _080119CE - cmp r5, r10 - beq _080119C6 - cmp r1, 0 - beq _080119CE -_080119C6: - movs r0, 0x2 - mov r1, r9 - lsls r0, r1 - orrs r7, r0 -_080119CE: - cmp r5, 0 - beq _080119E2 - cmp r5, r10 - beq _080119E2 - cmp r6, 0 - bne _080119E2 - movs r0, 0x3 - mov r2, r9 - lsls r0, r2 - orrs r7, r0 -_080119E2: - movs r3, 0x2 - add r9, r3 - movs r0, 0x1 - add r8, r0 - mov r1, r8 - cmp r1, 0x5 - ble _08011972 - ldr r1, _08011A18 @ =gTasks - ldr r2, [sp, 0xC] - ldr r3, [sp] - adds r0, r2, r3 - lsls r0, 3 - adds r0, r1 - strh r7, [r0, 0x10] - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08011A10: .4byte gPlayerParty -_08011A14: .4byte gEnemyParty -_08011A18: .4byte gTasks - thumb_func_end sub_801184C - - thumb_func_start sub_8011A1C -sub_8011A1C: @ 8011A1C - push {r4,lr} - sub sp, 0x4 - movs r0, 0 - bl SetHBlankCallback - movs r0, 0 - bl SetVBlankCallback - movs r0, 0 - str r0, [sp] - movs r1, 0xC0 - lsls r1, 19 - ldr r2, _08011B40 @ =0x05006000 - mov r0, sp - bl CpuSet - movs r0, 0x4C - movs r1, 0 - bl SetGpuReg - movs r0, 0x40 - movs r1, 0xF0 - bl SetGpuReg - ldr r4, _08011B44 @ =0x00005051 - movs r0, 0x44 - adds r1, r4, 0 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0 - bl SetGpuReg - movs r0, 0x4A - movs r1, 0 - bl SetGpuReg - ldr r1, _08011B48 @ =gBattle_WIN0H - movs r0, 0xF0 - strh r0, [r1] - ldr r0, _08011B4C @ =gBattle_WIN0V - strh r4, [r0] - bl ScanlineEffect_Clear - ldr r0, _08011B50 @ =gScanlineEffectRegBuffers - movs r3, 0xF0 - movs r1, 0xF0 - lsls r1, 3 - adds r2, r0, r1 - movs r1, 0x4F -_08011A80: - strh r3, [r0] - strh r3, [r2] - adds r2, 0x2 - adds r0, 0x2 - subs r1, 0x1 - cmp r1, 0 - bge _08011A80 - movs r1, 0x50 - ldr r0, _08011B50 @ =gScanlineEffectRegBuffers - ldr r3, _08011B54 @ =0x0000ff10 - movs r4, 0x82 - lsls r4, 4 - adds r2, r0, r4 - adds r0, 0xA0 -_08011A9C: - strh r3, [r0] - strh r3, [r2] - adds r2, 0x2 - adds r0, 0x2 - adds r1, 0x1 - cmp r1, 0x9F - ble _08011A9C - bl ResetPaletteFade - ldr r0, _08011B58 @ =gBattle_BG0_X - movs r4, 0 - strh r4, [r0] - ldr r0, _08011B5C @ =gBattle_BG0_Y - strh r4, [r0] - ldr r0, _08011B60 @ =gBattle_BG1_X - strh r4, [r0] - ldr r0, _08011B64 @ =gBattle_BG1_Y - strh r4, [r0] - ldr r0, _08011B68 @ =gBattle_BG2_X - strh r4, [r0] - ldr r0, _08011B6C @ =gBattle_BG2_Y - strh r4, [r0] - ldr r0, _08011B70 @ =gBattle_BG3_X - strh r4, [r0] - ldr r0, _08011B74 @ =gBattle_BG3_Y - strh r4, [r0] - bl sub_800F34C - ldr r0, _08011B78 @ =gBattleTextboxPalette - movs r1, 0 - movs r2, 0x40 - bl LoadCompressedPalette - bl sub_800F380 - bl ResetSpriteData - bl ResetTasks - bl sub_800FAE0 - movs r0, 0x4A - movs r1, 0x37 - bl SetGpuReg - bl FreeAllSpritePalettes - ldr r1, _08011B7C @ =gReservedSpritePaletteCount - movs r0, 0x4 - strb r0, [r1] - ldr r0, _08011B80 @ =VBlankCB_Battle - bl SetVBlankCallback - ldr r0, _08011B84 @ =sub_800F6FC - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08011B88 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0x87 - lsls r2, 1 - strh r2, [r1, 0xA] - movs r2, 0x5A - strh r2, [r1, 0xC] - movs r2, 0x1 - strh r2, [r1, 0x12] - bl sub_801184C - ldr r0, _08011B8C @ =sub_8011B94 - bl SetMainCallback2 - ldr r0, _08011B90 @ =gBattleCommunication - strb r4, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08011B40: .4byte 0x05006000 -_08011B44: .4byte 0x00005051 -_08011B48: .4byte gBattle_WIN0H -_08011B4C: .4byte gBattle_WIN0V -_08011B50: .4byte gScanlineEffectRegBuffers -_08011B54: .4byte 0x0000ff10 -_08011B58: .4byte gBattle_BG0_X -_08011B5C: .4byte gBattle_BG0_Y -_08011B60: .4byte gBattle_BG1_X -_08011B64: .4byte gBattle_BG1_Y -_08011B68: .4byte gBattle_BG2_X -_08011B6C: .4byte gBattle_BG2_Y -_08011B70: .4byte gBattle_BG3_X -_08011B74: .4byte gBattle_BG3_Y -_08011B78: .4byte gBattleTextboxPalette -_08011B7C: .4byte gReservedSpritePaletteCount -_08011B80: .4byte VBlankCB_Battle -_08011B84: .4byte sub_800F6FC -_08011B88: .4byte gTasks -_08011B8C: .4byte sub_8011B94 -_08011B90: .4byte gBattleCommunication - thumb_func_end sub_8011A1C - - thumb_func_start sub_8011B94 -sub_8011B94: @ 8011B94 - push {lr} - bl sub_8011BB0 - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - bl RunTasks - pop {r0} - bx r0 - thumb_func_end sub_8011B94 - - thumb_func_start sub_8011BB0 -sub_8011BB0: @ 8011BB0 - push {r4,lr} - sub sp, 0x4 - ldr r4, _08011BC8 @ =gBattleCommunication - ldrb r0, [r4] - cmp r0, 0x1 - beq _08011BEA - cmp r0, 0x1 - bgt _08011BCC - cmp r0, 0 - beq _08011BD2 - b _08011C34 - .align 2, 0 -_08011BC8: .4byte gBattleCommunication -_08011BCC: - cmp r0, 0x2 - beq _08011C10 - b _08011C34 -_08011BD2: - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0xFF - strb r0, [r4, 0x1] - b _08011C08 -_08011BEA: - ldrb r0, [r4, 0x1] - subs r0, 0x1 - strb r0, [r4, 0x1] - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08011C34 - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_08011C08: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _08011C34 -_08011C10: - ldr r0, _08011C3C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08011C34 - ldr r0, _08011C40 @ =gMain - ldr r0, [r0, 0x8] - bl SetMainCallback2 - bl sub_812C224 - bl FreeMonSpritesGfx - bl FreeBattleSpritesData - bl FreeBattleResources -_08011C34: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08011C3C: .4byte gPaletteFade -_08011C40: .4byte gMain - thumb_func_end sub_8011BB0 - - thumb_func_start sub_8011C44 -sub_8011C44: @ 8011C44 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - cmp r1, 0x6 - bhi _08011D04 - lsls r0, r1, 2 - ldr r1, _08011C60 @ =_08011C64 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08011C60: .4byte _08011C64 - .align 2, 0 -_08011C64: - .4byte _08011C80 - .4byte _08011C94 - .4byte _08011CA8 - .4byte _08011CBC - .4byte _08011CD0 - .4byte _08011CE4 - .4byte _08011CF8 -_08011C80: - ldr r0, _08011C90 @ =gUnknown_8248320 - lsls r1, r2, 2 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 30 - lsrs r0, 30 - b _08011D04 - .align 2, 0 -_08011C90: .4byte gUnknown_8248320 -_08011C94: - ldr r0, _08011CA4 @ =gUnknown_8248320 - lsls r1, r2, 2 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 28 - lsrs r0, 30 - b _08011D04 - .align 2, 0 -_08011CA4: .4byte gUnknown_8248320 -_08011CA8: - ldr r0, _08011CB8 @ =gUnknown_8248320 - lsls r1, r2, 2 - adds r1, r0 - ldrh r0, [r1] - lsls r0, 23 - lsrs r0, 27 - b _08011D04 - .align 2, 0 -_08011CB8: .4byte gUnknown_8248320 -_08011CBC: - ldr r0, _08011CCC @ =gUnknown_8248320 - lsls r1, r2, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - lsls r0, 29 - lsrs r0, 30 - b _08011D04 - .align 2, 0 -_08011CCC: .4byte gUnknown_8248320 -_08011CD0: - ldr r0, _08011CE0 @ =gUnknown_8248320 - lsls r1, r2, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - lsls r0, 28 - lsrs r0, 31 - b _08011D04 - .align 2, 0 -_08011CE0: .4byte gUnknown_8248320 -_08011CE4: - ldr r0, _08011CF4 @ =gUnknown_8248320 - lsls r1, r2, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - lsls r0, 26 - lsrs r0, 30 - b _08011D04 - .align 2, 0 -_08011CF4: .4byte gUnknown_8248320 -_08011CF8: - ldr r0, _08011D08 @ =gUnknown_8248320 - lsls r1, r2, 2 - adds r1, r0 - ldr r0, [r1] - lsls r0, 8 - lsrs r0, 22 -_08011D04: - pop {r1} - bx r1 - .align 2, 0 -_08011D08: .4byte gUnknown_8248320 - thumb_func_end sub_8011C44 - - thumb_func_start sub_8011D0C -sub_8011D0C: @ 8011D0C - push {r4,r5,lr} - sub sp, 0x10 - adds r4, r0, 0 - add r5, sp, 0xC - movs r0, 0x1 - strb r0, [r5] - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - ldr r1, _08011D5C @ =0x0000012f - cmp r0, r1 - bne _08011D54 - adds r0, r4, 0 - movs r1, 0x3 - bl GetMonData - ldrb r1, [r5] - cmp r0, r1 - beq _08011D54 - adds r0, r4, 0 - movs r1, 0x2 - mov r2, sp - bl GetMonData - ldr r1, _08011D60 @ =gUnknown_824F008 - mov r0, sp - bl StringCompareWithoutExtCtrlCodes - cmp r0, 0 - bne _08011D54 - adds r0, r4, 0 - movs r1, 0x3 - adds r2, r5, 0 - bl SetMonData -_08011D54: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08011D5C: .4byte 0x0000012f -_08011D60: .4byte gUnknown_824F008 - thumb_func_end sub_8011D0C - - thumb_func_start oac_poke_opponent -oac_poke_opponent: @ 8011D64 - push {lr} - sub sp, 0x4 - ldr r1, _08011D8C @ =sub_8011D94 - str r1, [r0, 0x1C] - movs r1, 0 - bl StartSpriteAnimIfDifferent - movs r0, 0x80 - lsls r0, 10 - ldr r1, _08011D90 @ =0x00002108 - str r1, [sp] - movs r1, 0 - movs r2, 0xA - movs r3, 0xA - bl BeginNormalPaletteFade - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_08011D8C: .4byte sub_8011D94 -_08011D90: .4byte 0x00002108 - thumb_func_end oac_poke_opponent - - thumb_func_start sub_8011D94 -sub_8011D94: @ 8011D94 - push {lr} - adds r2, r0, 0 - ldr r0, _08011DC0 @ =gIntroSlideFlags - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08011DBC - ldrh r0, [r2, 0x24] - adds r0, 0x2 - strh r0, [r2, 0x24] - lsls r0, 16 - cmp r0, 0 - bne _08011DBC - ldr r0, _08011DC4 @ =sub_8011DC8 - str r0, [r2, 0x1C] - ldrh r0, [r2, 0x32] - movs r1, 0x19 - bl PlayCry1 -_08011DBC: - pop {r0} - bx r0 - .align 2, 0 -_08011DC0: .4byte gIntroSlideFlags -_08011DC4: .4byte sub_8011DC8 - thumb_func_end sub_8011D94 - - thumb_func_start sub_8011DC8 -sub_8011DC8: @ 8011DC8 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08011E10 - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r0, 24 - bl sub_804BD94 - ldr r1, _08011E18 @ =gHealthboxSpriteIds - movs r2, 0x2E - ldrsh r0, [r4, r2] - adds r0, r1 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible - ldr r0, _08011E1C @ =nullsub_10 - str r0, [r4, 0x1C] - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnimIfDifferent - movs r0, 0x80 - lsls r0, 10 - ldr r1, _08011E20 @ =0x00002108 - str r1, [sp] - movs r1, 0 - movs r2, 0xA - movs r3, 0 - bl BeginNormalPaletteFade -_08011E10: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08011E18: .4byte gHealthboxSpriteIds -_08011E1C: .4byte nullsub_10 -_08011E20: .4byte 0x00002108 - thumb_func_end sub_8011DC8 - - thumb_func_start nullsub_10 -nullsub_10: @ 8011E24 - bx lr - thumb_func_end nullsub_10 - - thumb_func_start sub_8011E28 -sub_8011E28: @ 8011E28 - movs r1, 0x6 - strh r1, [r0, 0x34] - movs r1, 0x1 - strh r1, [r0, 0x36] - ldr r1, _08011E38 @ =sub_8011E3C - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_08011E38: .4byte sub_8011E3C - thumb_func_end sub_8011E28 - - thumb_func_start sub_8011E3C -sub_8011E3C: @ 8011E3C - push {r4,lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x36] - subs r0, 0x1 - strh r0, [r3, 0x36] - lsls r0, 16 - cmp r0, 0 - bne _08011E90 - movs r0, 0x8 - strh r0, [r3, 0x36] - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r4, 0x5 - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r3, 0x34] - subs r0, 0x1 - strh r0, [r3, 0x34] - lsls r0, 16 - asrs r2, r0, 16 - cmp r2, 0 - bne _08011E90 - ldrb r1, [r1] - adds r0, r4, 0 - ands r0, r1 - mov r1, r12 - strb r0, [r1] - ldr r0, _08011E98 @ =nullsub_10 - str r0, [r3, 0x1C] - ldr r0, _08011E9C @ =gUnknown_2022AE8 - str r2, [r0] -_08011E90: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08011E98: .4byte nullsub_10 -_08011E9C: .4byte gUnknown_2022AE8 - thumb_func_end sub_8011E3C - - thumb_func_start SpriteCB_FaintOpponentMon -SpriteCB_FaintOpponentMon: @ 8011EA0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r9, r0 - ldrh r0, [r0, 0x2E] - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _08011EC4 @ =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r6, 2 - adds r1, r0, r1 - ldrh r0, [r1, 0x2] - cmp r0, 0 - beq _08011EC8 - adds r4, r0, 0 - b _08011ECC - .align 2, 0 -_08011EC4: .4byte gBattleSpritesDataPtr -_08011EC8: - mov r0, r9 - ldrh r4, [r0, 0x32] -_08011ECC: - ldr r1, _08011F34 @ =gBattlerPartyIndexes - lsls r0, r6, 1 - adds r5, r0, r1 - ldrh r0, [r5] - movs r1, 0x64 - mov r8, r1 - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - ldr r7, _08011F38 @ =gEnemyParty - adds r0, r7 - movs r1, 0 - bl GetMonData - cmp r4, 0xC9 - bne _08011F50 - ldrh r0, [r5] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r7 - movs r1, 0 - bl GetMonData - adds r2, r0, 0 - movs r0, 0xC0 - lsls r0, 18 - ands r0, r2 - lsrs r0, 18 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r2 - lsrs r1, 12 - orrs r0, r1 - movs r1, 0xC0 - lsls r1, 2 - ands r1, r2 - lsrs r1, 6 - orrs r0, r1 - movs r1, 0x3 - ands r1, r2 - orrs r0, r1 - movs r1, 0x1C - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - bne _08011F3C - movs r0, 0xC9 - b _08011F46 - .align 2, 0 -_08011F34: .4byte gBattlerPartyIndexes -_08011F38: .4byte gEnemyParty -_08011F3C: - movs r1, 0xCE - lsls r1, 1 - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 -_08011F46: - ldr r1, _08011F4C @ =gMonFrontPicCoords - lsls r0, 2 - b _08011F88 - .align 2, 0 -_08011F4C: .4byte gMonFrontPicCoords -_08011F50: - ldr r0, _08011F68 @ =0x00000181 @ SPECIES_CASTFORM - cmp r4, r0 - bne _08011F74 - ldr r0, _08011F6C @ =gCastformFrontSpriteCoords - ldr r1, _08011F70 @ =gBattleMonForms - adds r1, r6, r1 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - b _08011F8C - .align 2, 0 -_08011F68: .4byte 0x00000181 -_08011F6C: .4byte gCastformFrontSpriteCoords -_08011F70: .4byte gBattleMonForms -_08011F74: - movs r0, 0xCE - lsls r0, 1 - cmp r4, r0 - bls _08011F84 - ldr r0, _08011F80 @ =gMonFrontPicCoords - b _08011F8A - .align 2, 0 -_08011F80: .4byte gMonFrontPicCoords -_08011F84: - ldr r1, _08011FAC @ =gMonFrontPicCoords - lsls r0, r4, 2 -_08011F88: - adds r0, r1 -_08011F8A: - ldrb r0, [r0, 0x1] -_08011F8C: - lsrs r1, r0, 3 - movs r0, 0x8 - subs r0, r1 - mov r1, r9 - strh r0, [r1, 0x34] - movs r0, 0x1 - strh r0, [r1, 0x36] - ldr r0, _08011FB0 @ =sub_8011FB4 - str r0, [r1, 0x1C] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08011FAC: .4byte gMonFrontPicCoords -_08011FB0: .4byte sub_8011FB4 - thumb_func_end SpriteCB_FaintOpponentMon - - thumb_func_start sub_8011FB4 -sub_8011FB4: @ 8011FB4 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x36] - subs r0, 0x1 - strh r0, [r4, 0x36] - lsls r0, 16 - cmp r0, 0 - bne _08012034 - movs r0, 0x2 - strh r0, [r4, 0x36] - ldrh r0, [r4, 0x26] - adds r0, 0x8 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x34] - subs r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - cmp r0, 0 - bge _08011FE8 - adds r0, r4, 0 - bl FreeSpriteOamMatrix - adds r0, r4, 0 - bl DestroySprite - b _08012034 -_08011FE8: - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r0, 24 - bl GetBattlerPosition - ldr r1, _0801203C @ =gMonSpritesGfxPtr - ldr r1, [r1] - lsls r0, 24 - lsrs r0, 22 - adds r1, 0x4 - adds r1, r0 - ldr r2, _08012040 @ =gBattleMonForms - movs r3, 0x2E - ldrsh r0, [r4, r3] - adds r0, r2 - ldrb r0, [r0] - lsls r0, 11 - ldr r1, [r1] - adds r1, r0 - movs r2, 0x34 - ldrsh r0, [r4, r2] - lsls r0, 8 - adds r1, r0 - movs r2, 0 - movs r0, 0xFF -_0801201A: - strb r2, [r1] - adds r1, 0x1 - subs r0, 0x1 - cmp r0, 0 - bge _0801201A - ldr r0, _08012040 @ =gBattleMonForms - movs r3, 0x2E - ldrsh r1, [r4, r3] - adds r1, r0 - ldrb r1, [r1] - adds r0, r4, 0 - bl StartSpriteAnim -_08012034: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801203C: .4byte gMonSpritesGfxPtr -_08012040: .4byte gBattleMonForms - thumb_func_end sub_8011FB4 - - thumb_func_start sub_8012044 -sub_8012044: @ 8012044 - movs r1, 0x8 - strh r1, [r0, 0x34] - adds r1, r0, 0 - adds r1, 0x3E - ldrb r1, [r1] - lsls r1, 29 - lsrs r1, 31 - strh r1, [r0, 0x36] - ldr r1, _0801205C @ =sub_8012060 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_0801205C: .4byte sub_8012060 - thumb_func_end sub_8012044 - - thumb_func_start sub_8012060 -sub_8012060: @ 8012060 - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x34] - subs r0, 0x1 - strh r0, [r3, 0x34] - lsls r0, 16 - cmp r0, 0 - bne _08012092 - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - movs r0, 0x8 - strh r0, [r3, 0x34] -_08012092: - pop {r0} - bx r0 - thumb_func_end sub_8012060 - - thumb_func_start sub_8012098 -sub_8012098: @ 8012098 - movs r1, 0x3E - adds r1, r0 - mov r12, r1 - movs r1, 0x1 - ldrh r2, [r0, 0x36] - ands r2, r1 - lsls r2, 2 - mov r1, r12 - ldrb r3, [r1] - movs r1, 0x5 - negs r1, r1 - ands r1, r3 - orrs r1, r2 - mov r2, r12 - strb r1, [r2] - movs r1, 0 - strh r1, [r0, 0x36] - ldr r1, _080120C0 @ =nullsub_10 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080120C0: .4byte nullsub_10 - thumb_func_end sub_8012098 - - thumb_func_start sub_80120C4 -sub_80120C4: @ 80120C4 - ldr r1, _080120CC @ =oac_poke_ally_ - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080120CC: .4byte oac_poke_ally_ - thumb_func_end sub_80120C4 - - thumb_func_start oac_poke_ally_ -oac_poke_ally_: @ 80120D0 - push {lr} - adds r2, r0, 0 - ldr r0, _080120F8 @ =gIntroSlideFlags - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080120F4 - ldrh r0, [r2, 0x24] - subs r0, 0x2 - strh r0, [r2, 0x24] - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0 - bne _080120F4 - ldr r0, _080120FC @ =nullsub_11 - str r0, [r2, 0x1C] - strh r1, [r2, 0x30] -_080120F4: - pop {r0} - bx r0 - .align 2, 0 -_080120F8: .4byte gIntroSlideFlags -_080120FC: .4byte nullsub_11 - thumb_func_end oac_poke_ally_ - - thumb_func_start sub_8012100 -sub_8012100: @ 8012100 - ldr r1, _08012108 @ =nullsub_11 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_08012108: .4byte nullsub_11 - thumb_func_end sub_8012100 - - thumb_func_start nullsub_11 -nullsub_11: @ 801210C - bx lr - thumb_func_end nullsub_11 - - thumb_func_start sub_8012110 -sub_8012110: @ 8012110 - push {lr} - adds r2, r0, 0 - ldr r0, _08012134 @ =gIntroSlideFlags - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08012130 - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x24] - adds r0, r1 - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x32] - ldrh r1, [r2, 0x26] - adds r0, r1 - strh r0, [r2, 0x26] -_08012130: - pop {r0} - bx r0 - .align 2, 0 -_08012134: .4byte gIntroSlideFlags - thumb_func_end sub_8012110 - - thumb_func_start DoBounceEffect -DoBounceEffect: @ 8012138 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - lsls r3, 24 - lsrs r3, 24 - mov r10, r3 - cmp r1, 0 - beq _08012174 - ldr r0, _08012170 @ =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r1, [r0, 0x4] - lsls r2, r4, 1 - adds r0, r2, r4 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - b _08012186 - .align 2, 0 -_08012170: .4byte gBattleSpritesDataPtr -_08012174: - ldr r0, _080121D0 @ =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r1, [r0, 0x4] - lsls r2, r4, 1 - adds r0, r2, r4 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 -_08012186: - ands r0, r1 - adds r6, r2, 0 - cmp r0, 0 - bne _0801223C - ldr r0, _080121D4 @ =SpriteCB_HealthBoxBounce - bl CreateInvisibleSpriteWithCallback - lsls r0, 24 - lsrs r5, r0, 24 - mov r0, r8 - cmp r0, 0x1 - bne _080121E0 - ldr r0, _080121D8 @ =gHealthboxSpriteIds - adds r0, r4, r0 - ldrb r7, [r0] - ldr r2, _080121D0 @ =gBattleSpritesDataPtr - ldr r0, [r2] - ldr r0, [r0, 0x4] - adds r1, r6, r4 - lsls r1, 2 - adds r0, r1, r0 - strb r5, [r0, 0x2] - ldr r0, [r2] - ldr r0, [r0, 0x4] - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x2 - orrs r0, r2 - strb r0, [r1] - ldr r2, _080121DC @ =gSprites - lsls r3, r5, 4 - adds r0, r3, r5 - lsls r0, 2 - adds r0, r2 - movs r1, 0x80 - b _0801220E - .align 2, 0 -_080121D0: .4byte gBattleSpritesDataPtr -_080121D4: .4byte SpriteCB_HealthBoxBounce -_080121D8: .4byte gHealthboxSpriteIds -_080121DC: .4byte gSprites -_080121E0: - ldr r0, _0801224C @ =gBattlerSpriteIds - adds r0, r4, r0 - ldrb r7, [r0] - ldr r2, _08012250 @ =gBattleSpritesDataPtr - ldr r0, [r2] - ldr r0, [r0, 0x4] - adds r1, r6, r4 - lsls r1, 2 - adds r0, r1, r0 - strb r5, [r0, 0x3] - ldr r0, [r2] - ldr r0, [r0, 0x4] - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - ldr r2, _08012254 @ =gSprites - lsls r3, r5, 4 - adds r0, r3, r5 - lsls r0, 2 - adds r0, r2 - movs r1, 0xC0 -_0801220E: - strh r1, [r0, 0x2E] - adds r4, r2, 0 - adds r1, r3, r5 - lsls r1, 2 - adds r1, r4 - mov r2, r9 - lsls r0, r2, 24 - asrs r0, 24 - movs r2, 0 - strh r0, [r1, 0x30] - mov r3, r10 - lsls r0, r3, 24 - asrs r0, 24 - strh r0, [r1, 0x32] - strh r7, [r1, 0x34] - mov r0, r8 - strh r0, [r1, 0x36] - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - adds r0, r4 - strh r2, [r0, 0x24] - strh r2, [r0, 0x26] -_0801223C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0801224C: .4byte gBattlerSpriteIds -_08012250: .4byte gBattleSpritesDataPtr -_08012254: .4byte gSprites - thumb_func_end DoBounceEffect - - thumb_func_start EndBounceEffect -EndBounceEffect: @ 8012258 - push {r4-r6,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x1 - bne _080122AC - ldr r6, _080122A4 @ =gBattleSpritesDataPtr - ldr r0, [r6] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r5, r0, 2 - adds r3, r5, r1 - ldrb r1, [r3] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080122FA - ldr r2, _080122A8 @ =gSprites - ldrb r1, [r3, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x34] - lsls r1, 24 - lsrs r4, r1, 24 - bl DestroySprite - ldr r0, [r6] - ldr r1, [r0, 0x4] - adds r1, r5, r1 - ldrb r2, [r1] - movs r0, 0x3 - negs r0, r0 - b _080122E6 - .align 2, 0 -_080122A4: .4byte gBattleSpritesDataPtr -_080122A8: .4byte gSprites -_080122AC: - ldr r6, _08012300 @ =gBattleSpritesDataPtr - ldr r0, [r6] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r5, r0, 2 - adds r3, r5, r1 - ldrb r1, [r3] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080122FA - ldr r2, _08012304 @ =gSprites - ldrb r1, [r3, 0x3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x34] - lsls r1, 24 - lsrs r4, r1, 24 - bl DestroySprite - ldr r0, [r6] - ldr r1, [r0, 0x4] - adds r1, r5, r1 - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 -_080122E6: - ands r0, r2 - strb r0, [r1] - ldr r0, _08012304 @ =gSprites - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - movs r0, 0 - strh r0, [r1, 0x24] - strh r0, [r1, 0x26] -_080122FA: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08012300: .4byte gBattleSpritesDataPtr -_08012304: .4byte gSprites - thumb_func_end EndBounceEffect - - thumb_func_start SpriteCB_HealthBoxBounce -SpriteCB_HealthBoxBounce: @ 8012308 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x34] - lsls r0, 24 - lsrs r5, r0, 24 - movs r1, 0x36 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _08012320 - movs r2, 0x2E - ldrsh r0, [r4, r2] - b _08012324 -_08012320: - movs r1, 0x2E - ldrsh r0, [r4, r1] -_08012324: - movs r2, 0x32 - ldrsh r1, [r4, r2] - bl Sin - ldr r2, _08012350 @ =gSprites - lsls r1, r5, 4 - adds r1, r5 - lsls r1, 2 - adds r1, r2 - ldrh r2, [r4, 0x32] - adds r0, r2 - strh r0, [r1, 0x26] - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x2E] - adds r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08012350: .4byte gSprites - thumb_func_end SpriteCB_HealthBoxBounce - - thumb_func_start sub_8012354 -sub_8012354: @ 8012354 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldr r0, _08012368 @ =sub_8012398 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08012368: .4byte sub_8012398 - thumb_func_end sub_8012354 - - thumb_func_start sub_801236C -sub_801236C: @ 801236C - push {lr} - adds r2, r0, 0 - adds r0, 0x2C - ldrb r1, [r0] - movs r0, 0x3F - ands r0, r1 - cmp r0, 0 - bne _0801238E - ldr r1, _08012394 @ =gUnknown_824F048 - adds r0, r2, 0 - adds r0, 0x2B - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - adds r0, r2, 0 - adds r0, 0x28 - strb r1, [r0] -_0801238E: - pop {r0} - bx r0 - .align 2, 0 -_08012394: .4byte gUnknown_824F048 - thumb_func_end sub_801236C - - thumb_func_start sub_8012398 -sub_8012398: @ 8012398 - push {r4,lr} - adds r4, r0, 0 - bl sub_801236C - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080123B2 - ldr r0, _080123B8 @ =nullsub_11 - str r0, [r4, 0x1C] -_080123B2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080123B8: .4byte nullsub_11 - thumb_func_end sub_8012398 - - thumb_func_start nullsub_12 -nullsub_12: @ 80123BC - bx lr - thumb_func_end nullsub_12 - - thumb_func_start BeginBattleIntro -BeginBattleIntro: @ 80123C0 - push {lr} - bl sub_8012434 - ldr r1, _080123D8 @ =gBattleCommunication - movs r0, 0 - strb r0, [r1, 0x1] - ldr r1, _080123DC @ =gBattleMainFunc - ldr r0, _080123E0 @ =BattleIntroGetMonsData - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080123D8: .4byte gBattleCommunication -_080123DC: .4byte gBattleMainFunc -_080123E0: .4byte BattleIntroGetMonsData - thumb_func_end BeginBattleIntro - - thumb_func_start sub_80123E4 -sub_80123E4: @ 80123E4 - push {r4,r5,lr} - ldr r0, _08012424 @ =gBattleMainFunc - ldr r0, [r0] - bl _call_via_r0 - ldr r1, _08012428 @ =gActiveBattler - movs r0, 0 - strb r0, [r1] - ldr r0, _0801242C @ =gBattlersCount - ldrb r0, [r0] - cmp r0, 0 - beq _0801241E - ldr r5, _08012430 @ =gBattlerControllerFuncs - adds r4, r1, 0 -_08012400: - ldrb r0, [r4] - lsls r0, 2 - adds r0, r5 - ldr r0, [r0] - bl _call_via_r0 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _0801242C @ =gBattlersCount - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _08012400 -_0801241E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08012424: .4byte gBattleMainFunc -_08012428: .4byte gActiveBattler -_0801242C: .4byte gBattlersCount -_08012430: .4byte gBattlerControllerFuncs - thumb_func_end sub_80123E4 - - thumb_func_start sub_8012434 -sub_8012434: @ 8012434 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r0, 0 - bl TurnValuesCleanUp - bl SpecialStatusesClear - movs r2, 0 - movs r3, 0 - ldr r0, _080126CC @ =gLastResultingMoves - mov r10, r0 - ldr r1, _080126D0 @ =gLastHitByType - mov r12, r1 - ldr r0, _080126D4 @ =gLastLandedMoves - mov r9, r0 - ldr r1, _080126D8 @ =gLastMoves - mov r8, r1 - ldr r4, _080126DC @ =gDisableStructs - movs r5, 0 - ldr r7, _080126E0 @ =gLastPrintedMoves - ldr r6, _080126E4 @ =gLockedMoves -_08012464: - ldr r0, _080126E8 @ =gStatuses3 - adds r0, r5, r0 - str r3, [r0] - movs r1, 0 -_0801246C: - adds r0, r4, r1 - strb r3, [r0] - adds r1, 0x1 - cmp r1, 0x1B - bls _0801246C - movs r0, 0x2 - strb r0, [r4, 0x16] - ldr r1, _080126EC @ =gUnknown_2023DD4 - adds r0, r2, r1 - strb r3, [r0] - mov r0, r8 - strh r3, [r0] - mov r1, r9 - strh r3, [r1] - mov r0, r12 - strh r3, [r0] - mov r1, r10 - strh r3, [r1] - ldr r0, _080126F0 @ =gLastHitBy - adds r1, r2, r0 - movs r0, 0xFF - strb r0, [r1] - strh r3, [r6] - strh r3, [r7] - ldr r1, _080126F4 @ =gBattleResources - ldr r0, [r1] - ldr r0, [r0, 0x4] - adds r0, r5 - str r3, [r0] - movs r0, 0x2 - add r10, r0 - add r12, r0 - add r9, r0 - add r8, r0 - adds r4, 0x1C - adds r5, 0x4 - adds r7, 0x2 - adds r6, 0x2 - adds r2, 0x1 - cmp r2, 0x3 - ble _08012464 - movs r5, 0 - ldr r3, _080126F8 @ =gSideTimers - ldr r4, _080126FC @ =gSideStatuses - movs r2, 0x1 -_080124C6: - strh r5, [r4] - movs r1, 0 -_080124CA: - adds r0, r3, r1 - strb r5, [r0] - adds r1, 0x1 - cmp r1, 0xB - bls _080124CA - adds r3, 0xC - adds r4, 0x2 - subs r2, 0x1 - cmp r2, 0 - bge _080124C6 - movs r1, 0 - ldr r2, _08012700 @ =gBattlerAttacker - strb r1, [r2] - ldr r0, _08012704 @ =gBattlerTarget - strb r1, [r0] - ldr r2, _08012708 @ =gBattleWeather - strh r1, [r2] - ldr r1, _0801270C @ =gWishFutureKnock - movs r2, 0 - movs r3, 0 -_080124F2: - adds r0, r1, r2 - strb r3, [r0] - adds r2, 0x1 - cmp r2, 0x2B - bls _080124F2 - movs r0, 0 - ldr r1, _08012710 @ =gHitMarker - str r0, [r1] - ldr r2, _08012714 @ =gBattleTypeFlags - ldr r0, [r2] - ldr r1, _08012718 @ =0x00010002 - ands r0, r1 - cmp r0, 0 - bne _08012522 - ldr r1, _0801271C @ =gSaveBlock2Ptr - ldr r0, [r1] - ldrb r1, [r0, 0x15] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08012522 - movs r0, 0x80 - ldr r2, _08012710 @ =gHitMarker - str r0, [r2] -_08012522: - ldr r1, _0801271C @ =gSaveBlock2Ptr - ldr r0, [r1] - ldrb r0, [r0, 0x15] - lsls r0, 30 - lsrs r0, 31 - movs r1, 0 - ldr r2, _08012720 @ =gBattleScripting - strb r0, [r2, 0x1D] - ldr r0, _08012724 @ =gMultiHitCounter - strb r1, [r0] - ldr r2, _08012728 @ =gBattleOutcome - strb r1, [r2] - ldr r0, _0801272C @ =gBattleControllerExecFlags - str r1, [r0] - movs r2, 0 - ldr r0, _08012730 @ =gPaydayMoney - strh r1, [r0] - ldr r1, _080126F4 @ =gBattleResources - ldr r0, [r1] - ldr r0, [r0, 0x8] - adds r0, 0x20 - strb r2, [r0] - ldr r0, [r1] - ldr r0, [r0, 0xC] - adds r0, 0x20 - strb r2, [r0] - ldr r1, _08012734 @ =gBattleCommunication - movs r2, 0 - adds r0, r1, 0x7 -_0801255C: - strb r2, [r0] - subs r0, 0x1 - cmp r0, r1 - bge _0801255C - movs r2, 0 - mov r9, r2 - ldr r0, _08012738 @ =gPauseCounterBattle - strh r2, [r0] - movs r0, 0 - ldr r1, _0801273C @ =gBattleMoveDamage - str r0, [r1] - ldr r2, _08012740 @ =gIntroSlideFlags - strh r0, [r2] - mov r1, r9 - ldr r0, _08012720 @ =gBattleScripting - strb r1, [r0, 0x18] - strb r1, [r0, 0x19] - ldr r2, _08012744 @ =gLeveledUpInBattle - strb r1, [r2] - ldr r0, _08012748 @ =gAbsentBattlerFlags - strb r1, [r0] - ldr r7, _0801274C @ =gBattleStruct - ldr r0, [r7] - adds r0, 0x6C - strb r1, [r0] - ldr r0, [r7] - adds r0, 0x79 - strb r1, [r0] - ldr r0, [r7] - adds r0, 0x7A - strb r1, [r0] - ldr r0, _08012750 @ =gEnemyParty - movs r1, 0xB - bl GetMonData - ldr r4, [r7] - adds r4, 0x7C - ldr r1, _08012754 @ =gBaseStats - mov r8, r1 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - add r1, r8 - ldrb r0, [r1, 0x8] - movs r5, 0x64 - muls r0, r5 - ldr r6, _08012758 @ =0x000004fb - adds r1, r6, 0 - bl __divsi3 - strb r0, [r4] - ldr r0, _08012750 @ =gEnemyParty - movs r1, 0xB - bl GetMonData - ldr r4, [r7] - adds r4, 0x7B - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - add r1, r8 - ldrb r0, [r1, 0x18] - muls r0, r5 - adds r1, r6, 0 - bl __divsi3 - strb r0, [r4] - ldr r0, [r7] - adds r1, r0, 0 - adds r1, 0x7B - ldrb r0, [r1] - cmp r0, 0x1 - bhi _080125F2 - movs r0, 0x2 - strb r0, [r1] -_080125F2: - ldr r0, [r7] - mov r2, r9 - strb r2, [r0, 0x12] - ldr r0, [r7] - adds r0, 0x4A - movs r1, 0x1 - strb r1, [r0] - movs r2, 0 - adds r4, r7, 0 - ldr r5, _0801275C @ =gBattleResults - adds r3, r4, 0 - movs r1, 0 -_0801260A: - ldr r0, [r3] - adds r0, r2, r0 - adds r0, 0x98 - strb r1, [r0] - ldr r0, [r3] - adds r0, r2, r0 - adds r0, 0xB8 - strb r1, [r0] - ldr r0, [r3] - adds r0, r2, r0 - adds r0, 0xC8 - strb r1, [r0] - ldr r0, [r3] - adds r0, r2, r0 - adds r0, 0xD0 - strb r1, [r0] - ldr r0, [r3] - adds r0, r2, r0 - adds r0, 0xE0 - strb r1, [r0] - ldr r0, [r3] - adds r0, r2, r0 - adds r0, 0xE8 - strb r1, [r0] - ldr r0, [r3] - adds r0, r2, r0 - adds r0, 0xF0 - strb r1, [r0] - ldr r0, [r3] - adds r0, r2, r0 - adds r0, 0xF8 - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x7 - ble _0801260A - ldr r0, [r4] - adds r0, 0x92 - movs r1, 0x6 - strb r1, [r0] - ldr r0, [r4] - adds r0, 0x93 - strb r1, [r0] - ldr r0, [r4] - adds r0, 0xDF - movs r1, 0 - strb r1, [r0] - ldr r0, _0801275C @ =gBattleResults - movs r1, 0 - movs r2, 0xA - adds r0, 0x40 -_0801266E: - strb r1, [r0] - subs r0, 0x1 - subs r2, 0x1 - cmp r2, 0 - bge _0801266E - movs r1, 0 - strb r1, [r5, 0x13] - strb r1, [r5] - strb r1, [r5, 0x1] - strb r1, [r5, 0x2] - strb r1, [r5, 0x3] - strb r1, [r5, 0x4] - ldrb r2, [r5, 0x5] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - movs r2, 0x3 - negs r2, r2 - ands r0, r2 - strb r0, [r5, 0x5] - strh r1, [r5, 0x20] - strh r1, [r5, 0x22] - strh r1, [r5, 0x24] - strh r1, [r5, 0x6] - strh r1, [r5, 0x26] - strh r1, [r5, 0x28] - movs r2, 0 - adds r4, r5, 0 - adds r4, 0x8 - movs r3, 0 - adds r1, r5, 0 - adds r1, 0x14 -_080126AE: - adds r0, r2, r4 - strb r3, [r0] - strb r3, [r1] - strb r3, [r1, 0x16] - adds r1, 0x1 - adds r2, 0x1 - cmp r2, 0x9 - ble _080126AE - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080126CC: .4byte gLastResultingMoves -_080126D0: .4byte gLastHitByType -_080126D4: .4byte gLastLandedMoves -_080126D8: .4byte gLastMoves -_080126DC: .4byte gDisableStructs -_080126E0: .4byte gLastPrintedMoves -_080126E4: .4byte gLockedMoves -_080126E8: .4byte gStatuses3 -_080126EC: .4byte gUnknown_2023DD4 -_080126F0: .4byte gLastHitBy -_080126F4: .4byte gBattleResources -_080126F8: .4byte gSideTimers -_080126FC: .4byte gSideStatuses -_08012700: .4byte gBattlerAttacker -_08012704: .4byte gBattlerTarget -_08012708: .4byte gBattleWeather -_0801270C: .4byte gWishFutureKnock -_08012710: .4byte gHitMarker -_08012714: .4byte gBattleTypeFlags -_08012718: .4byte 0x00010002 -_0801271C: .4byte gSaveBlock2Ptr -_08012720: .4byte gBattleScripting -_08012724: .4byte gMultiHitCounter -_08012728: .4byte gBattleOutcome -_0801272C: .4byte gBattleControllerExecFlags -_08012730: .4byte gPaydayMoney -_08012734: .4byte gBattleCommunication -_08012738: .4byte gPauseCounterBattle -_0801273C: .4byte gBattleMoveDamage -_08012740: .4byte gIntroSlideFlags -_08012744: .4byte gLeveledUpInBattle -_08012748: .4byte gAbsentBattlerFlags -_0801274C: .4byte gBattleStruct -_08012750: .4byte gEnemyParty -_08012754: .4byte gBaseStats -_08012758: .4byte 0x000004fb -_0801275C: .4byte gBattleResults - thumb_func_end sub_8012434 - - thumb_func_start SwitchInClearSetData -SwitchInClearSetData: @ 8012760 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - ldr r4, _080128C4 @ =gDisableStructs - ldr r5, _080128C8 @ =gActiveBattler - ldrb r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - mov r1, sp - adds r0, r4 - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldr r0, [r0] - str r0, [r1] - ldr r2, _080128CC @ =gBattleMoves - ldr r3, _080128D0 @ =gCurrentMove - ldrh r1, [r3] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - mov r9, r4 - mov r12, r5 - ldr r6, _080128D4 @ =gStatuses3 - mov r10, r6 - cmp r0, 0x7F - beq _08012838 - movs r5, 0 - mov r4, r12 - movs r3, 0x58 - ldr r2, _080128D8 @ =gBattleMons - adds r2, 0x18 - movs r1, 0x6 -_080127B0: - ldrb r0, [r4] - muls r0, r3 - adds r0, r5, r0 - adds r0, r2 - strb r1, [r0] - adds r5, 0x1 - cmp r5, 0x7 - ble _080127B0 - movs r5, 0 - ldr r7, _080128DC @ =gBattlersCount - ldrb r7, [r7] - cmp r5, r7 - bge _08012824 - ldr r0, _080128E0 @ =gUnknown_2023C34 - mov r8, r0 - ldr r3, _080128C4 @ =gDisableStructs - ldr r4, _080128D4 @ =gStatuses3 -_080127D2: - movs r0, 0x58 - muls r0, r5 - mov r1, r8 - adds r2, r0, r1 - ldr r1, [r2] - movs r0, 0x80 - lsls r0, 19 - ands r0, r1 - cmp r0, 0 - beq _080127F6 - ldrb r0, [r3, 0x14] - ldr r6, _080128C8 @ =gActiveBattler - ldrb r6, [r6] - cmp r0, r6 - bne _080127F6 - ldr r0, _080128E4 @ =0xfbffffff - ands r1, r0 - str r1, [r2] -_080127F6: - ldr r1, [r4] - movs r0, 0x18 - ands r0, r1 - cmp r0, 0 - beq _08012816 - ldrb r0, [r3, 0x15] - ldr r7, _080128C8 @ =gActiveBattler - ldrb r7, [r7] - cmp r0, r7 - bne _08012816 - movs r0, 0x19 - negs r0, r0 - ands r1, r0 - str r1, [r4] - movs r0, 0 - strb r0, [r3, 0x15] -_08012816: - adds r3, 0x1C - adds r4, 0x4 - adds r5, 0x1 - ldr r0, _080128DC @ =gBattlersCount - ldrb r0, [r0] - cmp r5, r0 - blt _080127D2 -_08012824: - ldr r1, _080128D0 @ =gCurrentMove - ldrh r0, [r1] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - ldr r2, _080128CC @ =gBattleMoves - adds r1, r2 - ldrb r0, [r1] - cmp r0, 0x7F - bne _080128F0 -_08012838: - mov r3, r12 - ldrb r1, [r3] - movs r0, 0x58 - adds r2, r1, 0 - muls r2, r0 - ldr r0, _080128D8 @ =gBattleMons - adds r0, 0x50 - adds r2, r0 - ldr r0, [r2] - ldr r1, _080128E8 @ =0x15100007 - ands r0, r1 - str r0, [r2] - ldrb r1, [r3] - lsls r1, 2 - add r1, r10 - ldr r0, [r1] - ldr r2, _080128EC @ =0x0003043f - ands r0, r2 - str r0, [r1] - movs r5, 0 - ldr r6, _080128DC @ =gBattlersCount - ldrb r6, [r6] - cmp r5, r6 - bge _0801290C - mov r7, r12 - movs r6, 0 -_0801286C: - ldrb r0, [r7] - bl GetBattlerSide - adds r4, r0, 0 - lsls r0, r5, 24 - lsrs r0, 24 - bl GetBattlerSide - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - beq _080128AC - ldr r1, _080128D4 @ =gStatuses3 - lsls r0, r5, 2 - adds r2, r0, r1 - ldr r1, [r2] - movs r0, 0x18 - ands r0, r1 - cmp r0, 0 - beq _080128AC - ldr r0, _080128C4 @ =gDisableStructs - adds r0, r6, r0 - ldrb r0, [r0, 0x15] - ldrb r3, [r7] - cmp r0, r3 - bne _080128AC - movs r0, 0x19 - negs r0, r0 - ands r1, r0 - movs r0, 0x10 - orrs r1, r0 - str r1, [r2] -_080128AC: - adds r6, 0x1C - adds r5, 0x1 - ldr r0, _080128DC @ =gBattlersCount - ldrb r0, [r0] - cmp r5, r0 - blt _0801286C - ldr r6, _080128C4 @ =gDisableStructs - mov r9, r6 - ldr r7, _080128C8 @ =gActiveBattler - mov r12, r7 - b _0801290C - .align 2, 0 -_080128C4: .4byte gDisableStructs -_080128C8: .4byte gActiveBattler -_080128CC: .4byte gBattleMoves -_080128D0: .4byte gCurrentMove -_080128D4: .4byte gStatuses3 -_080128D8: .4byte gBattleMons -_080128DC: .4byte gBattlersCount -_080128E0: .4byte gUnknown_2023C34 -_080128E4: .4byte 0xfbffffff -_080128E8: .4byte 0x15100007 -_080128EC: .4byte 0x0003043f -_080128F0: - mov r0, r12 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - ldr r1, _08012B7C @ =gBattleMons - adds r1, 0x50 - adds r0, r1 - movs r1, 0 - str r1, [r0] - mov r2, r12 - ldrb r0, [r2] - lsls r0, 2 - add r0, r10 - str r1, [r0] -_0801290C: - movs r5, 0 - ldr r7, _08012B80 @ =gBattleStruct - ldr r3, _08012B84 @ =gActionSelectionCursor - mov r10, r3 - ldr r6, _08012B88 @ =gBattlersCount - ldrb r6, [r6] - cmp r5, r6 - bge _0801296C - ldr r0, _08012B8C @ =gUnknown_2023C34 - mov r8, r0 - ldr r6, _08012B90 @ =gBitTable - ldr r4, _08012B94 @ =gActiveBattler -_08012924: - movs r0, 0x58 - muls r0, r5 - mov r1, r8 - adds r3, r0, r1 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - lsls r2, r0, 16 - ldr r1, [r3] - adds r0, r1, 0 - ands r0, r2 - cmp r0, 0 - beq _08012944 - bics r1, r2 - str r1, [r3] -_08012944: - ldr r1, [r3] - movs r0, 0xE0 - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _08012962 - ldr r0, [r7] - adds r0, r5, r0 - ldrb r0, [r0, 0x14] - ldrb r2, [r4] - cmp r0, r2 - bne _08012962 - ldr r0, _08012B98 @ =0xffff1fff - ands r1, r0 - str r1, [r3] -_08012962: - adds r5, 0x1 - ldr r3, _08012B88 @ =gBattlersCount - ldrb r3, [r3] - cmp r5, r3 - blt _08012924 -_0801296C: - mov r6, r12 - ldrb r0, [r6] - add r0, r10 - movs r1, 0 - strb r1, [r0] - ldrb r0, [r6] - ldr r2, _08012B9C @ =gMoveSelectionCursor - adds r0, r2 - strb r1, [r0] - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - mov r3, r9 - adds r1, r0, r3 - movs r5, 0 - movs r2, 0 -_0801298E: - adds r0, r1, r5 - strb r2, [r0] - adds r5, 0x1 - cmp r5, 0x1B - bls _0801298E - ldr r6, _08012BA0 @ =gCurrentMove - ldrh r0, [r6] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - ldr r0, _08012BA4 @ =gBattleMoves - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x7F - bne _08012A1A - mov r2, r12 - ldrb r1, [r2] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r9 - mov r1, sp - ldrb r1, [r1, 0xA] - strb r1, [r0, 0xA] - ldrb r1, [r2] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r9 - mov r1, sp - ldrb r1, [r1, 0x15] - strb r1, [r0, 0x15] - ldrb r0, [r2] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - add r1, r9 - mov r0, sp - ldrb r2, [r0, 0xF] - lsls r2, 28 - movs r4, 0xF - lsrs r2, 28 - ldrb r3, [r1, 0xF] - movs r0, 0x10 - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0xF] - mov r3, r12 - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r9 - mov r1, sp - ldrb r1, [r1, 0xF] - lsrs r1, 4 - lsls r1, 4 - ldrb r2, [r0, 0xF] - ands r4, r2 - orrs r4, r1 - strb r4, [r0, 0xF] - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r9 - mov r1, sp - ldrb r1, [r1, 0x14] - strb r1, [r0, 0x14] -_08012A1A: - movs r0, 0 - ldr r6, _08012BA8 @ =gMoveResultFlags - strb r0, [r6] - mov r0, r12 - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r9 - movs r2, 0 - movs r1, 0x2 - strb r1, [r0, 0x16] - mov r1, r12 - ldrb r0, [r1] - lsls r0, 1 - ldr r3, _08012BAC @ =gLastMoves - adds r0, r3 - movs r3, 0 - strh r2, [r0] - ldrb r0, [r1] - lsls r0, 1 - ldr r6, _08012BB0 @ =gLastLandedMoves - adds r0, r6 - strh r2, [r0] - ldrb r0, [r1] - lsls r0, 1 - ldr r1, _08012BB4 @ =gLastHitByType - adds r0, r1 - strh r2, [r0] - mov r6, r12 - ldrb r0, [r6] - lsls r0, 1 - ldr r1, _08012BB8 @ =gLastResultingMoves - adds r0, r1 - strh r2, [r0] - ldrb r0, [r6] - lsls r0, 1 - ldr r6, _08012BBC @ =gLastPrintedMoves - adds r0, r6 - strh r2, [r0] - mov r1, r12 - ldrb r0, [r1] - ldr r2, _08012BC0 @ =gLastHitBy - adds r0, r2 - movs r1, 0xFF - strb r1, [r0] - mov r6, r12 - ldrb r0, [r6] - ldr r1, [r7] - lsls r0, 1 - adds r0, r1 - adds r0, 0x98 - strb r3, [r0] - ldrb r0, [r6] - ldr r1, [r7] - lsls r0, 1 - adds r0, r1 - adds r0, 0x99 - strb r3, [r0] - ldrb r0, [r6] - ldr r1, [r7] - lsls r0, 3 - adds r0, r1 - adds r0, 0xE0 - strb r3, [r0] - ldrb r0, [r6] - ldr r1, [r7] - lsls r0, 3 - adds r0, r1 - adds r0, 0xE1 - strb r3, [r0] - ldrb r0, [r6] - ldr r1, [r7] - lsls r0, 3 - adds r0, r1 - adds r0, 0xE2 - strb r3, [r0] - ldrb r0, [r6] - ldr r1, [r7] - lsls r0, 3 - adds r0, r1 - adds r0, 0xE3 - strb r3, [r0] - ldrb r0, [r6] - ldr r1, [r7] - lsls r0, 3 - adds r0, r1 - adds r0, 0xE4 - strb r3, [r0] - ldrb r0, [r6] - ldr r1, [r7] - lsls r0, 3 - adds r0, r1 - adds r0, 0xE5 - strb r3, [r0] - ldrb r0, [r6] - ldr r1, [r7] - lsls r0, 3 - adds r0, r1 - adds r0, 0xE6 - strb r3, [r0] - ldrb r0, [r6] - ldr r1, [r7] - lsls r0, 3 - adds r0, r1 - adds r0, 0xE7 - strb r3, [r0] - movs r5, 0 - ldr r0, _08012B88 @ =gBattlersCount - ldrb r0, [r0] - cmp r5, r0 - bge _08012B3C - adds r4, r7, 0 -_08012AFC: - ldrb r1, [r6] - cmp r5, r1 - beq _08012B14 - ldr r0, [r4] - lsls r1, r5, 1 - adds r0, r1, r0 - adds r0, 0x98 - strb r3, [r0] - ldr r0, [r4] - adds r1, r0 - adds r1, 0x99 - strb r3, [r1] -_08012B14: - ldrb r0, [r6] - ldr r1, [r4] - lsls r0, 1 - lsls r2, r5, 3 - adds r0, r2 - adds r0, r1 - adds r0, 0xE0 - strb r3, [r0] - ldrb r0, [r6] - ldr r1, [r4] - lsls r0, 1 - adds r0, r2 - adds r0, r1 - adds r0, 0xE1 - strb r3, [r0] - adds r5, 0x1 - ldr r2, _08012B88 @ =gBattlersCount - ldrb r2, [r2] - cmp r5, r2 - blt _08012AFC -_08012B3C: - mov r3, r12 - ldrb r0, [r3] - ldr r1, [r7] - lsls r0, 1 - adds r0, r1 - adds r0, 0xC8 - movs r2, 0 - strb r2, [r0] - ldrb r0, [r3] - ldr r1, [r7] - lsls r0, 1 - adds r0, r1 - adds r0, 0xC9 - strb r2, [r0] - ldr r6, _08012BC4 @ =gBattleResources - ldr r0, [r6] - ldr r1, [r0, 0x4] - ldrb r0, [r3] - lsls r0, 2 - adds r1, r0 - movs r0, 0 - str r0, [r1] - ldr r7, _08012BA0 @ =gCurrentMove - strh r0, [r7] - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08012B7C: .4byte gBattleMons -_08012B80: .4byte gBattleStruct -_08012B84: .4byte gActionSelectionCursor -_08012B88: .4byte gBattlersCount -_08012B8C: .4byte gUnknown_2023C34 -_08012B90: .4byte gBitTable -_08012B94: .4byte gActiveBattler -_08012B98: .4byte 0xffff1fff -_08012B9C: .4byte gMoveSelectionCursor -_08012BA0: .4byte gCurrentMove -_08012BA4: .4byte gBattleMoves -_08012BA8: .4byte gMoveResultFlags -_08012BAC: .4byte gLastMoves -_08012BB0: .4byte gLastLandedMoves -_08012BB4: .4byte gLastHitByType -_08012BB8: .4byte gLastResultingMoves -_08012BBC: .4byte gLastPrintedMoves -_08012BC0: .4byte gLastHitBy -_08012BC4: .4byte gBattleResources - thumb_func_end SwitchInClearSetData - - thumb_func_start FaintClearSetData -FaintClearSetData: @ 8012BC8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r3, 0 - ldr r7, _08012F5C @ =gActiveBattler - ldr r6, _08012F60 @ =gStatuses3 - ldr r0, _08012F64 @ =gActionSelectionCursor - mov r8, r0 - ldr r1, _08012F68 @ =gMoveSelectionCursor - mov r9, r1 - ldr r2, _08012F6C @ =gProtectStructs - mov r12, r2 - adds r5, r7, 0 - movs r4, 0x58 - ldr r2, _08012F70 @ =gBattleMons - adds r2, 0x18 - movs r1, 0x6 -_08012BEE: - ldrb r0, [r5] - muls r0, r4 - adds r0, r3, r0 - adds r0, r2 - strb r1, [r0] - adds r3, 0x1 - cmp r3, 0x7 - ble _08012BEE - ldrb r1, [r7] - movs r0, 0x58 - muls r0, r1 - ldr r2, _08012F70 @ =gBattleMons - adds r2, 0x50 - adds r0, r2 - movs r1, 0 - str r1, [r0] - ldrb r0, [r7] - lsls r0, 2 - adds r0, r6 - str r1, [r0] - movs r3, 0 - ldr r0, _08012F74 @ =gBattlersCount - ldrb r0, [r0] - cmp r3, r0 - bge _08012C8A - adds r4, r2, 0 - movs r5, 0 - ldr r6, _08012F78 @ =gBitTable -_08012C26: - ldr r1, [r4] - movs r0, 0x80 - lsls r0, 19 - ands r0, r1 - cmp r0, 0 - beq _08012C44 - ldr r2, _08012F7C @ =gDisableStructs - adds r0, r5, r2 - ldrb r0, [r0, 0x14] - ldrb r2, [r7] - cmp r0, r2 - bne _08012C44 - ldr r0, _08012F80 @ =0xfbffffff - ands r1, r0 - str r1, [r4] -_08012C44: - ldrb r0, [r7] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - lsls r2, r0, 16 - ldr r1, [r4] - adds r0, r1, 0 - ands r0, r2 - cmp r0, 0 - beq _08012C5C - bics r1, r2 - str r1, [r4] -_08012C5C: - ldr r1, [r4] - movs r0, 0xE0 - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _08012C7C - ldr r2, _08012F84 @ =gBattleStruct - ldr r0, [r2] - adds r0, r3, r0 - ldrb r0, [r0, 0x14] - ldrb r2, [r7] - cmp r0, r2 - bne _08012C7C - ldr r0, _08012F88 @ =0xffff1fff - ands r1, r0 - str r1, [r4] -_08012C7C: - adds r4, 0x58 - adds r5, 0x1C - adds r3, 0x1 - ldr r0, _08012F74 @ =gBattlersCount - ldrb r0, [r0] - cmp r3, r0 - blt _08012C26 -_08012C8A: - ldrb r0, [r7] - add r0, r8 - movs r1, 0 - strb r1, [r0] - ldrb r0, [r7] - add r0, r9 - strb r1, [r0] - ldrb r1, [r7] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - ldr r2, _08012F7C @ =gDisableStructs - adds r1, r0, r2 - movs r3, 0 - movs r2, 0 -_08012CA8: - adds r0, r1, r3 - strb r2, [r0] - adds r3, 0x1 - cmp r3, 0x1B - bls _08012CA8 - ldrb r1, [r7] - lsls r1, 4 - add r1, r12 - ldrb r2, [r1] - movs r0, 0x2 - negs r0, r0 - mov r9, r0 - ands r0, r2 - strb r0, [r1] - ldrb r1, [r7] - lsls r1, 4 - add r1, r12 - ldrb r2, [r1] - movs r0, 0x3 - negs r0, r0 - mov r8, r0 - ands r0, r2 - strb r0, [r1] - ldrb r1, [r7] - lsls r1, 4 - add r1, r12 - ldrb r2, [r1] - movs r6, 0x5 - negs r6, r6 - adds r0, r6, 0 - ands r0, r2 - strb r0, [r1] - ldrb r1, [r7] - lsls r1, 4 - add r1, r12 - ldrb r2, [r1] - movs r0, 0x9 - negs r0, r0 - mov r10, r0 - ands r0, r2 - strb r0, [r1] - ldrb r1, [r7] - lsls r1, 4 - add r1, r12 - ldrb r2, [r1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldrb r1, [r7] - lsls r1, 4 - add r1, r12 - ldrb r2, [r1] - movs r5, 0x21 - negs r5, r5 - adds r0, r5, 0 - ands r0, r2 - strb r0, [r1] - ldrb r1, [r7] - lsls r1, 4 - add r1, r12 - ldrb r2, [r1] - movs r4, 0x41 - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - strb r0, [r1] - ldrb r1, [r7] - lsls r1, 4 - add r1, r12 - ldrb r2, [r1] - movs r3, 0x7F - adds r0, r3, 0 - ands r0, r2 - strb r0, [r1] - ldrb r1, [r7] - lsls r1, 4 - add r1, r12 - ldrb r2, [r1, 0x1] - mov r0, r9 - ands r0, r2 - strb r0, [r1, 0x1] - ldrb r1, [r7] - lsls r1, 4 - add r1, r12 - ldrb r2, [r1, 0x1] - mov r0, r8 - ands r0, r2 - strb r0, [r1, 0x1] - ldrb r1, [r7] - lsls r1, 4 - add r1, r12 - ldrb r2, [r1, 0x1] - adds r0, r6, 0 - ands r0, r2 - strb r0, [r1, 0x1] - ldrb r1, [r7] - lsls r1, 4 - add r1, r12 - ldrb r2, [r1, 0x1] - movs r0, 0x19 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - ldrb r0, [r7] - lsls r0, 4 - add r0, r12 - ldrb r1, [r0, 0x1] - ands r5, r1 - strb r5, [r0, 0x1] - ldrb r0, [r7] - lsls r0, 4 - add r0, r12 - ldrb r1, [r0, 0x1] - ands r4, r1 - strb r4, [r0, 0x1] - ldrb r0, [r7] - lsls r0, 4 - add r0, r12 - ldrb r1, [r0, 0x1] - ands r3, r1 - strb r3, [r0, 0x1] - ldrb r0, [r7] - lsls r0, 4 - add r0, r12 - ldrb r1, [r0, 0x2] - mov r2, r9 - ands r2, r1 - strb r2, [r0, 0x2] - ldrb r0, [r7] - lsls r0, 4 - add r0, r12 - ldrb r1, [r0, 0x2] - mov r2, r8 - ands r2, r1 - strb r2, [r0, 0x2] - ldrb r0, [r7] - lsls r0, 4 - add r0, r12 - ldrb r1, [r0, 0x2] - ands r6, r1 - strb r6, [r0, 0x2] - ldrb r0, [r7] - lsls r0, 4 - add r0, r12 - ldrb r1, [r0, 0x2] - mov r2, r10 - ands r2, r1 - strb r2, [r0, 0x2] - ldrb r1, [r7] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - ldr r1, _08012F7C @ =gDisableStructs - adds r0, r1 - movs r2, 0 - movs r1, 0x2 - strb r1, [r0, 0x16] - ldrb r0, [r7] - lsls r0, 1 - ldr r1, _08012F8C @ =gLastMoves - adds r0, r1 - movs r3, 0 - strh r2, [r0] - ldrb r0, [r7] - lsls r0, 1 - ldr r1, _08012F90 @ =gLastLandedMoves - adds r0, r1 - strh r2, [r0] - ldrb r0, [r7] - lsls r0, 1 - ldr r1, _08012F94 @ =gLastHitByType - adds r0, r1 - strh r2, [r0] - ldrb r0, [r7] - lsls r0, 1 - ldr r1, _08012F98 @ =gLastResultingMoves - adds r0, r1 - strh r2, [r0] - ldrb r0, [r7] - lsls r0, 1 - ldr r1, _08012F9C @ =gLastPrintedMoves - adds r0, r1 - strh r2, [r0] - ldrb r0, [r7] - ldr r2, _08012FA0 @ =gLastHitBy - adds r0, r2 - movs r1, 0xFF - strb r1, [r0] - ldrb r0, [r7] - ldr r2, _08012F84 @ =gBattleStruct - ldr r1, [r2] - lsls r0, 1 - adds r0, r1 - adds r0, 0xC8 - strb r3, [r0] - ldrb r0, [r7] - ldr r1, [r2] - lsls r0, 1 - adds r0, r1 - adds r0, 0xC9 - strb r3, [r0] - ldrb r0, [r7] - ldr r1, [r2] - lsls r0, 1 - adds r0, r1 - adds r0, 0x98 - strb r3, [r0] - ldrb r0, [r7] - ldr r1, [r2] - lsls r0, 1 - adds r0, r1 - adds r0, 0x99 - strb r3, [r0] - ldrb r0, [r7] - ldr r1, [r2] - lsls r0, 3 - adds r0, r1 - adds r0, 0xE0 - strb r3, [r0] - ldrb r0, [r7] - ldr r1, [r2] - lsls r0, 3 - adds r0, r1 - adds r0, 0xE1 - strb r3, [r0] - ldrb r0, [r7] - ldr r1, [r2] - lsls r0, 3 - adds r0, r1 - adds r0, 0xE2 - strb r3, [r0] - ldrb r0, [r7] - ldr r1, [r2] - lsls r0, 3 - adds r0, r1 - adds r0, 0xE3 - strb r3, [r0] - ldrb r0, [r7] - ldr r1, [r2] - lsls r0, 3 - adds r0, r1 - adds r0, 0xE4 - strb r3, [r0] - ldrb r0, [r7] - ldr r1, [r2] - lsls r0, 3 - adds r0, r1 - adds r0, 0xE5 - strb r3, [r0] - ldrb r0, [r7] - ldr r1, [r2] - lsls r0, 3 - adds r0, r1 - adds r0, 0xE6 - strb r3, [r0] - ldrb r0, [r7] - ldr r1, [r2] - lsls r0, 3 - adds r0, r1 - adds r0, 0xE7 - strb r3, [r0] - movs r3, 0 - ldr r0, _08012F74 @ =gBattlersCount - ldrb r0, [r0] - cmp r3, r0 - bge _08012F04 - adds r6, r7, 0 - adds r5, r2, 0 - movs r4, 0 -_08012EC4: - ldrb r1, [r6] - cmp r3, r1 - beq _08012EDC - ldr r0, [r5] - lsls r1, r3, 1 - adds r0, r1, r0 - adds r0, 0x98 - strb r4, [r0] - ldr r0, [r5] - adds r1, r0 - adds r1, 0x99 - strb r4, [r1] -_08012EDC: - ldrb r0, [r6] - ldr r1, [r5] - lsls r0, 1 - lsls r2, r3, 3 - adds r0, r2 - adds r0, r1 - adds r0, 0xE0 - strb r4, [r0] - ldrb r0, [r6] - ldr r1, [r5] - lsls r0, 1 - adds r0, r2 - adds r0, r1 - adds r0, 0xE1 - strb r4, [r0] - adds r3, 0x1 - ldr r2, _08012F74 @ =gBattlersCount - ldrb r2, [r2] - cmp r3, r2 - blt _08012EC4 -_08012F04: - ldr r1, _08012FA4 @ =gBattleResources - ldr r0, [r1] - ldr r1, [r0, 0x4] - ldrb r0, [r7] - lsls r0, 2 - adds r1, r0 - movs r0, 0 - str r0, [r1] - ldrb r0, [r7] - movs r3, 0x58 - adds r1, r0, 0 - muls r1, r3 - ldr r2, _08012F70 @ =gBattleMons - adds r1, r2 - ldrh r2, [r1] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - ldr r2, _08012FA8 @ =gBaseStats - adds r0, r2 - ldrb r0, [r0, 0x6] - adds r1, 0x21 - strb r0, [r1] - ldrb r0, [r7] - adds r1, r0, 0 - muls r1, r3 - ldr r0, _08012F70 @ =gBattleMons - adds r1, r0 - ldrh r2, [r1] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - ldr r2, _08012FA8 @ =gBaseStats - adds r0, r2 - ldrb r0, [r0, 0x7] - adds r1, 0x22 - strb r0, [r1] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08012F5C: .4byte gActiveBattler -_08012F60: .4byte gStatuses3 -_08012F64: .4byte gActionSelectionCursor -_08012F68: .4byte gMoveSelectionCursor -_08012F6C: .4byte gProtectStructs -_08012F70: .4byte gBattleMons -_08012F74: .4byte gBattlersCount -_08012F78: .4byte gBitTable -_08012F7C: .4byte gDisableStructs -_08012F80: .4byte 0xfbffffff -_08012F84: .4byte gBattleStruct -_08012F88: .4byte 0xffff1fff -_08012F8C: .4byte gLastMoves -_08012F90: .4byte gLastLandedMoves -_08012F94: .4byte gLastHitByType -_08012F98: .4byte gLastResultingMoves -_08012F9C: .4byte gLastPrintedMoves -_08012FA0: .4byte gLastHitBy -_08012FA4: .4byte gBattleResources -_08012FA8: .4byte gBaseStats - thumb_func_end FaintClearSetData - - thumb_func_start BattleIntroGetMonsData -BattleIntroGetMonsData: @ 8012FAC - push {r4,r5,lr} - ldr r5, _08012FBC @ =gBattleCommunication - ldrb r0, [r5] - cmp r0, 0 - beq _08012FC0 - cmp r0, 0x1 - beq _08012FE4 - b _0801301A - .align 2, 0 -_08012FBC: .4byte gBattleCommunication -_08012FC0: - ldr r4, _08012FE0 @ =gActiveBattler - ldrb r0, [r5, 0x1] - strb r0, [r4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl BtlController_EmitGetMonData - ldrb r0, [r4] - bl MarkBattlerForControllerExec - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - b _0801301A - .align 2, 0 -_08012FE0: .4byte gActiveBattler -_08012FE4: - ldr r0, _08013008 @ =gBattleControllerExecFlags - ldr r2, [r0] - cmp r2, 0 - bne _0801301A - ldrb r0, [r5, 0x1] - adds r0, 0x1 - strb r0, [r5, 0x1] - ldr r1, _0801300C @ =gBattlersCount - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bne _08013018 - ldr r1, _08013010 @ =gBattleMainFunc - ldr r0, _08013014 @ =BattleIntroPrepareBackgroundSlide - str r0, [r1] - b _0801301A - .align 2, 0 -_08013008: .4byte gBattleControllerExecFlags -_0801300C: .4byte gBattlersCount -_08013010: .4byte gBattleMainFunc -_08013014: .4byte BattleIntroPrepareBackgroundSlide -_08013018: - strb r2, [r5] -_0801301A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end BattleIntroGetMonsData - - thumb_func_start BattleIntroPrepareBackgroundSlide -BattleIntroPrepareBackgroundSlide: @ 8013020 - push {r4,r5,lr} - ldr r0, _08013058 @ =gBattleControllerExecFlags - ldr r5, [r0] - cmp r5, 0 - bne _08013050 - movs r0, 0 - bl GetBattlerAtPosition - ldr r4, _0801305C @ =gActiveBattler - strb r0, [r4] - ldr r0, _08013060 @ =gBattleTerrain - ldrb r1, [r0] - movs r0, 0 - bl BtlController_EmitIntroSlide - ldrb r0, [r4] - bl MarkBattlerForControllerExec - ldr r1, _08013064 @ =gBattleMainFunc - ldr r0, _08013068 @ =sub_8013070 - str r0, [r1] - ldr r0, _0801306C @ =gBattleCommunication - strb r5, [r0] - strb r5, [r0, 0x1] -_08013050: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08013058: .4byte gBattleControllerExecFlags -_0801305C: .4byte gActiveBattler -_08013060: .4byte gBattleTerrain -_08013064: .4byte gBattleMainFunc -_08013068: .4byte sub_8013070 -_0801306C: .4byte gBattleCommunication - thumb_func_end BattleIntroPrepareBackgroundSlide - - thumb_func_start sub_8013070 -sub_8013070: @ 8013070 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, _080130D4 @ =gBattleControllerExecFlags - ldr r1, [r0] - cmp r1, 0 - beq _08013084 - b _08013314 -_08013084: - ldr r2, _080130D8 @ =gActiveBattler - strb r1, [r2] - ldr r0, _080130DC @ =gBattlersCount - ldrb r0, [r0] - cmp r1, r0 - bcc _08013092 - b _0801330E -_08013092: - movs r7, 0x58 - ldr r0, _080130E0 @ =gBattleMons - mov r8, r0 - mov r9, r2 - movs r1, 0x48 - add r1, r8 - mov r10, r1 -_080130A0: - ldr r0, _080130E4 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080130E8 - ldr r4, _080130D8 @ =gActiveBattler - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080130E8 - ldrb r0, [r4] - muls r0, r7 - mov r2, r8 - adds r3, r0, r2 - movs r2, 0 - movs r1, 0 -_080130C6: - adds r0, r3, r2 - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x57 - bls _080130C6 - b _080131B6 - .align 2, 0 -_080130D4: .4byte gBattleControllerExecFlags -_080130D8: .4byte gActiveBattler -_080130DC: .4byte gBattlersCount -_080130E0: .4byte gBattleMons -_080130E4: .4byte gBattleTypeFlags -_080130E8: - mov r1, r9 - ldrb r0, [r1] - muls r0, r7 - mov r2, r8 - adds r3, r0, r2 - movs r2, 0 - ldr r6, _08013230 @ =gBaseStats - ldr r5, _08013234 @ =gBattleBufferB - ldr r4, _08013238 @ =gActiveBattler -_080130FA: - adds r0, r3, r2 - ldrb r1, [r4] - lsls r1, 9 - adds r1, 0x4 - adds r1, r2, r1 - adds r1, r5 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x57 - bls _080130FA - mov r1, r9 - ldrb r0, [r1] - adds r2, r0, 0 - muls r2, r7 - add r2, r8 - ldrh r1, [r2] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0, 0x6] - adds r2, 0x21 - strb r0, [r2] - mov r2, r9 - ldrb r0, [r2] - adds r2, r0, 0 - muls r2, r7 - add r2, r8 - ldrh r1, [r2] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0, 0x7] - adds r2, 0x22 - strb r0, [r2] - mov r1, r9 - ldrb r0, [r1] - adds r1, r0, 0 - muls r1, r7 - add r1, r8 - ldrh r0, [r1] - ldrb r1, [r1, 0x17] - lsrs r1, 7 - bl GetAbilityBySpecies - mov r2, r9 - ldrb r1, [r2] - muls r1, r7 - add r1, r8 - adds r1, 0x20 - strb r0, [r1] - ldrb r0, [r2] - bl GetBattlerSide - ldr r1, _0801323C @ =gBattleStruct - lsls r0, 24 - lsrs r0, 23 - adds r0, 0xA8 - ldr r1, [r1] - adds r1, r0 - mov r2, r9 - ldrb r0, [r2] - muls r0, r7 - add r0, r8 - ldrh r0, [r0, 0x28] - strh r0, [r1] - movs r2, 0 - ldr r4, _08013238 @ =gActiveBattler - movs r5, 0x58 - ldr r1, _08013240 @ =gUnknown_2023BFC - adds r6, r4, 0 - movs r0, 0x18 - negs r0, r0 - adds r0, r1 - mov r12, r0 - movs r3, 0x6 -_08013196: - ldrb r0, [r4] - muls r0, r5 - adds r0, r2, r0 - adds r0, r1 - strb r3, [r0] - adds r2, 0x1 - cmp r2, 0x7 - ble _08013196 - ldrb r0, [r6] - adds r1, r0, 0 - muls r1, r7 - mov r0, r12 - adds r0, 0x50 - adds r1, r0 - movs r0, 0 - str r0, [r1] -_080131B6: - ldr r4, _08013238 @ =gActiveBattler - ldrb r0, [r4] - bl GetBattlerPosition - lsls r0, 24 - cmp r0, 0 - bne _080131D0 - movs r0, 0 - bl BtlController_EmitDrawTrainerPic - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_080131D0: - ldr r5, _08013244 @ =gBattleTypeFlags - ldr r0, [r5] - movs r1, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0801324C - ldrb r0, [r4] - bl GetBattlerPosition - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080131F6 - movs r0, 0 - bl BtlController_EmitDrawTrainerPic - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_080131F6: - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080132C2 - ldr r0, [r5] - ldr r1, _08013248 @ =0x0001aa02 - ands r0, r1 - cmp r0, 0 - bne _080132C2 - ldrb r0, [r4] - muls r0, r7 - add r0, r8 - ldrh r0, [r0] - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - ldrb r1, [r4] - muls r1, r7 - add r1, r10 - ldr r2, [r1] - movs r1, 0x2 - bl HandleSetPokedexFlag - b _080132C2 - .align 2, 0 -_08013230: .4byte gBaseStats -_08013234: .4byte gBattleBufferB -_08013238: .4byte gActiveBattler -_0801323C: .4byte gBattleStruct -_08013240: .4byte gUnknown_2023BFC -_08013244: .4byte gBattleTypeFlags -_08013248: .4byte 0x0001aa02 -_0801324C: - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080132C2 - ldr r1, [r5] - movs r2, 0xA0 - lsls r2, 8 - ands r2, r1 - cmp r2, 0 - beq _0801328E - movs r0, 0x80 - lsls r0, 8 - cmp r2, r0 - beq _080132B4 - ldrb r0, [r4] - muls r0, r7 - add r0, r8 - ldrh r0, [r0] - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - ldrb r1, [r4] - muls r1, r7 - add r1, r10 - ldr r2, [r1] - movs r1, 0x2 - bl HandleSetPokedexFlag - b _080132B4 -_0801328E: - ldr r0, _08013324 @ =0x0001aa02 - ands r1, r0 - cmp r1, 0 - bne _080132B4 - ldrb r0, [r4] - muls r0, r7 - add r0, r8 - ldrh r0, [r0] - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - ldrb r1, [r4] - muls r1, r7 - add r1, r10 - ldr r2, [r1] - movs r1, 0x2 - bl HandleSetPokedexFlag -_080132B4: - movs r0, 0 - bl BtlController_EmitLoadMonSprite - mov r1, r9 - ldrb r0, [r1] - bl MarkBattlerForControllerExec -_080132C2: - ldr r0, _08013328 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080132F8 - ldr r4, _0801332C @ =gActiveBattler - ldrb r0, [r4] - bl GetBattlerPosition - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - beq _080132EC - ldrb r0, [r4] - bl GetBattlerPosition - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bne _080132F8 -_080132EC: - movs r0, 0 - bl BtlController_EmitDrawTrainerPic - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_080132F8: - mov r2, r9 - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - ldr r1, _08013330 @ =gBattlersCount - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcs _0801330E - b _080130A0 -_0801330E: - ldr r1, _08013334 @ =gBattleMainFunc - ldr r0, _08013338 @ =BattleIntroDrawPartySummaryScreens - str r0, [r1] -_08013314: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08013324: .4byte 0x0001aa02 -_08013328: .4byte gBattleTypeFlags -_0801332C: .4byte gActiveBattler -_08013330: .4byte gBattlersCount -_08013334: .4byte gBattleMainFunc -_08013338: .4byte BattleIntroDrawPartySummaryScreens - thumb_func_end sub_8013070 - - thumb_func_start BattleIntroDrawPartySummaryScreens -BattleIntroDrawPartySummaryScreens: @ 801333C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x30 - ldr r0, _08013394 @ =gBattleControllerExecFlags - ldr r0, [r0] - cmp r0, 0 - beq _0801334E - b _080134C8 -_0801334E: - ldr r0, _08013398 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x8 - ands r0, r1 - cmp r0, 0 - bne _0801335C - b _08013468 -_0801335C: - movs r7, 0 - add r0, sp, 0x4 - mov r8, r0 - mov r6, r8 - mov r5, sp -_08013366: - movs r0, 0x64 - adds r1, r7, 0 - muls r1, r0 - ldr r0, _0801339C @ =gEnemyParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _0801338C - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - bne _080133A4 -_0801338C: - ldr r0, _080133A0 @ =0x0000ffff - strh r0, [r5] - movs r0, 0 - b _080133B6 - .align 2, 0 -_08013394: .4byte gBattleControllerExecFlags -_08013398: .4byte gBattleTypeFlags -_0801339C: .4byte gEnemyParty -_080133A0: .4byte 0x0000ffff -_080133A4: - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - strh r0, [r5] - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData -_080133B6: - str r0, [r6] - adds r6, 0x8 - adds r5, 0x8 - adds r7, 0x1 - cmp r7, 0x5 - ble _08013366 - movs r0, 0x1 - bl GetBattlerAtPosition - ldr r4, _08013410 @ =gActiveBattler - strb r0, [r4] - movs r0, 0 - mov r1, sp - movs r2, 0x80 - bl BtlController_EmitDrawPartyStatusSummary - ldrb r0, [r4] - bl MarkBattlerForControllerExec - movs r7, 0 - mov r6, r8 - mov r5, sp -_080133E2: - movs r0, 0x64 - adds r1, r7, 0 - muls r1, r0 - ldr r0, _08013414 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _08013408 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - bne _0801341C -_08013408: - ldr r0, _08013418 @ =0x0000ffff - strh r0, [r5] - movs r0, 0 - b _0801342E - .align 2, 0 -_08013410: .4byte gActiveBattler -_08013414: .4byte gPlayerParty -_08013418: .4byte 0x0000ffff -_0801341C: - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - strh r0, [r5] - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData -_0801342E: - str r0, [r6] - adds r6, 0x8 - adds r5, 0x8 - adds r7, 0x1 - cmp r7, 0x5 - ble _080133E2 - movs r0, 0 - bl GetBattlerAtPosition - ldr r4, _0801345C @ =gActiveBattler - strb r0, [r4] - movs r0, 0 - mov r1, sp - movs r2, 0x80 - bl BtlController_EmitDrawPartyStatusSummary - ldrb r0, [r4] - bl MarkBattlerForControllerExec - ldr r1, _08013460 @ =gBattleMainFunc - ldr r0, _08013464 @ =BattleIntroPrintTrainerWantsToBattle - b _080134C6 - .align 2, 0 -_0801345C: .4byte gActiveBattler -_08013460: .4byte gBattleMainFunc -_08013464: .4byte BattleIntroPrintTrainerWantsToBattle -_08013468: - movs r7, 0 - add r6, sp, 0x4 - mov r5, sp -_0801346E: - movs r0, 0x64 - adds r1, r7, 0 - muls r1, r0 - ldr r0, _0801349C @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _08013494 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - bne _080134A4 -_08013494: - ldr r0, _080134A0 @ =0x0000ffff - strh r0, [r5] - movs r0, 0 - b _080134B6 - .align 2, 0 -_0801349C: .4byte gPlayerParty -_080134A0: .4byte 0x0000ffff -_080134A4: - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - strh r0, [r5] - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData -_080134B6: - str r0, [r6] - adds r6, 0x8 - adds r5, 0x8 - adds r7, 0x1 - cmp r7, 0x5 - ble _0801346E - ldr r1, _080134D4 @ =gBattleMainFunc - ldr r0, _080134D8 @ =sub_8013514 -_080134C6: - str r0, [r1] -_080134C8: - add sp, 0x30 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080134D4: .4byte gBattleMainFunc -_080134D8: .4byte sub_8013514 - thumb_func_end BattleIntroDrawPartySummaryScreens - - thumb_func_start BattleIntroPrintTrainerWantsToBattle -BattleIntroPrintTrainerWantsToBattle: @ 80134DC - push {lr} - ldr r0, _08013504 @ =gBattleControllerExecFlags - ldr r0, [r0] - cmp r0, 0 - bne _080134FE - movs r0, 0x1 - bl GetBattlerAtPosition - ldr r1, _08013508 @ =gActiveBattler - strb r0, [r1] - ldrb r1, [r1] - movs r0, 0 - bl PrepareStringBattle - ldr r1, _0801350C @ =gBattleMainFunc - ldr r0, _08013510 @ =sub_8013568 - str r0, [r1] -_080134FE: - pop {r0} - bx r0 - .align 2, 0 -_08013504: .4byte gBattleControllerExecFlags -_08013508: .4byte gActiveBattler -_0801350C: .4byte gBattleMainFunc -_08013510: .4byte sub_8013568 - thumb_func_end BattleIntroPrintTrainerWantsToBattle - - thumb_func_start sub_8013514 -sub_8013514: @ 8013514 - push {lr} - ldr r0, _08013550 @ =gBattleControllerExecFlags - ldr r0, [r0] - cmp r0, 0 - bne _0801354A - ldr r1, _08013554 @ =gBattleMainFunc - ldr r0, _08013558 @ =sub_80136E4 - str r0, [r1] - movs r0, 0 - movs r1, 0 - bl PrepareStringBattle - ldr r0, _0801355C @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0xA0 - lsls r1, 8 - ands r0, r1 - cmp r0, r1 - bne _0801354A - movs r0, 0x1 - bl GetBattlerAtPosition - ldr r1, _08013560 @ =gBattleScripting - strb r0, [r1, 0x17] - ldr r0, _08013564 @ =gUnknown_81D91A1 - bl BattleScriptExecute -_0801354A: - pop {r0} - bx r0 - .align 2, 0 -_08013550: .4byte gBattleControllerExecFlags -_08013554: .4byte gBattleMainFunc -_08013558: .4byte sub_80136E4 -_0801355C: .4byte gBattleTypeFlags -_08013560: .4byte gBattleScripting -_08013564: .4byte gUnknown_81D91A1 - thumb_func_end sub_8013514 - - thumb_func_start sub_8013568 -sub_8013568: @ 8013568 - push {lr} - ldr r0, _08013590 @ =gBattleControllerExecFlags - ldr r0, [r0] - cmp r0, 0 - bne _0801358A - movs r0, 0x1 - bl GetBattlerAtPosition - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x1 - bl PrepareStringBattle - ldr r1, _08013594 @ =gBattleMainFunc - ldr r0, _08013598 @ =sub_801359C - str r0, [r1] -_0801358A: - pop {r0} - bx r0 - .align 2, 0 -_08013590: .4byte gBattleControllerExecFlags -_08013594: .4byte gBattleMainFunc -_08013598: .4byte sub_801359C - thumb_func_end sub_8013568 - - thumb_func_start sub_801359C -sub_801359C: @ 801359C - push {r4,lr} - ldr r0, _08013614 @ =gBattleControllerExecFlags - ldr r1, [r0] - cmp r1, 0 - bne _0801360C - ldr r2, _08013618 @ =gActiveBattler - strb r1, [r2] - ldr r0, _0801361C @ =gBattlersCount - ldrb r0, [r0] - cmp r1, r0 - bcs _08013606 - adds r4, r2, 0 -_080135B4: - ldrb r0, [r4] - bl GetBattlerPosition - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080135CE - movs r0, 0 - bl BtlController_EmitIntroTrainerBallThrow - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_080135CE: - ldr r0, _08013620 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080135F4 - ldrb r0, [r4] - bl GetBattlerPosition - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bne _080135F4 - movs r0, 0 - bl BtlController_EmitIntroTrainerBallThrow - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_080135F4: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _0801361C @ =gBattlersCount - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _080135B4 -_08013606: - ldr r1, _08013624 @ =gBattleMainFunc - ldr r0, _08013628 @ =sub_801362C - str r0, [r1] -_0801360C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08013614: .4byte gBattleControllerExecFlags -_08013618: .4byte gActiveBattler -_0801361C: .4byte gBattlersCount -_08013620: .4byte gBattleTypeFlags -_08013624: .4byte gBattleMainFunc -_08013628: .4byte sub_801362C - thumb_func_end sub_801359C - - thumb_func_start sub_801362C -sub_801362C: @ 801362C - push {r4-r7,lr} - ldr r0, _080136A4 @ =gBattleControllerExecFlags - ldr r1, [r0] - cmp r1, 0 - bne _0801369C - ldr r2, _080136A8 @ =gActiveBattler - strb r1, [r2] - ldr r0, _080136AC @ =gBattlersCount - ldrb r0, [r0] - cmp r1, r0 - bcs _08013696 - adds r4, r2, 0 - ldr r6, _080136B0 @ =gBattleMons - movs r5, 0x58 - adds r7, r6, 0 - adds r7, 0x48 -_0801364C: - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08013684 - ldr r0, _080136B4 @ =gBattleTypeFlags - ldr r0, [r0] - ldr r1, _080136B8 @ =0x0001aa02 - ands r0, r1 - cmp r0, 0 - bne _08013684 - ldrb r0, [r4] - muls r0, r5 - adds r0, r6 - ldrh r0, [r0] - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - ldrb r1, [r4] - muls r1, r5 - adds r1, r7 - ldr r2, [r1] - movs r1, 0x2 - bl HandleSetPokedexFlag -_08013684: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _080136AC @ =gBattlersCount - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _0801364C -_08013696: - ldr r1, _080136BC @ =gBattleMainFunc - ldr r0, _080136C0 @ =sub_80136E4 - str r0, [r1] -_0801369C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080136A4: .4byte gBattleControllerExecFlags -_080136A8: .4byte gActiveBattler -_080136AC: .4byte gBattlersCount -_080136B0: .4byte gBattleMons -_080136B4: .4byte gBattleTypeFlags -_080136B8: .4byte 0x0001aa02 -_080136BC: .4byte gBattleMainFunc -_080136C0: .4byte sub_80136E4 - thumb_func_end sub_801362C - - thumb_func_start sub_80136C4 -sub_80136C4: @ 80136C4 - push {lr} - ldr r0, _080136D8 @ =gBattleControllerExecFlags - ldr r0, [r0] - cmp r0, 0 - bne _080136D4 - ldr r1, _080136DC @ =gBattleMainFunc - ldr r0, _080136E0 @ =sub_80136E4 - str r0, [r1] -_080136D4: - pop {r0} - bx r0 - .align 2, 0 -_080136D8: .4byte gBattleControllerExecFlags -_080136DC: .4byte gBattleMainFunc -_080136E0: .4byte sub_80136E4 - thumb_func_end sub_80136C4 - - thumb_func_start sub_80136E4 -sub_80136E4: @ 80136E4 - push {lr} - ldr r0, _08013718 @ =gBattleControllerExecFlags - ldr r0, [r0] - cmp r0, 0 - bne _08013712 - ldr r0, _0801371C @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0801370C - movs r0, 0 - bl GetBattlerAtPosition - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x1 - bl PrepareStringBattle -_0801370C: - ldr r1, _08013720 @ =gBattleMainFunc - ldr r0, _08013724 @ =sub_8013728 - str r0, [r1] -_08013712: - pop {r0} - bx r0 - .align 2, 0 -_08013718: .4byte gBattleControllerExecFlags -_0801371C: .4byte gBattleTypeFlags -_08013720: .4byte gBattleMainFunc -_08013724: .4byte sub_8013728 - thumb_func_end sub_80136E4 - - thumb_func_start sub_8013728 -sub_8013728: @ 8013728 - push {r4,lr} - ldr r0, _080137B4 @ =gBattleControllerExecFlags - ldr r1, [r0] - cmp r1, 0 - bne _080137AC - ldr r2, _080137B8 @ =gActiveBattler - strb r1, [r2] - ldr r0, _080137BC @ =gBattlersCount - ldrb r0, [r0] - cmp r1, r0 - bcs _08013790 - adds r4, r2, 0 -_08013740: - ldrb r0, [r4] - bl GetBattlerPosition - lsls r0, 24 - cmp r0, 0 - bne _08013758 - movs r0, 0 - bl BtlController_EmitIntroTrainerBallThrow - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_08013758: - ldr r0, _080137C0 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0801377E - ldrb r0, [r4] - bl GetBattlerPosition - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _0801377E - movs r0, 0 - bl BtlController_EmitIntroTrainerBallThrow - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_0801377E: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _080137BC @ =gBattlersCount - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _08013740 -_08013790: - ldr r2, _080137C4 @ =gBattleStruct - ldr r0, [r2] - adds r0, 0x4C - movs r1, 0 - strb r1, [r0] - ldr r0, [r2] - adds r0, 0xD9 - strb r1, [r0] - ldr r0, [r2] - adds r0, 0xB6 - strb r1, [r0] - ldr r1, _080137C8 @ =gBattleMainFunc - ldr r0, _080137CC @ =sub_801385C - str r0, [r1] -_080137AC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080137B4: .4byte gBattleControllerExecFlags -_080137B8: .4byte gActiveBattler -_080137BC: .4byte gBattlersCount -_080137C0: .4byte gBattleTypeFlags -_080137C4: .4byte gBattleStruct -_080137C8: .4byte gBattleMainFunc -_080137CC: .4byte sub_801385C - thumb_func_end sub_8013728 - - thumb_func_start sub_80137D0 -sub_80137D0: @ 80137D0 - push {r4,r5,lr} - ldr r0, _08013840 @ =gBattleControllerExecFlags - ldr r1, [r0] - cmp r1, 0 - bne _0801383A - ldr r2, _08013844 @ =gActiveBattler - strb r1, [r2] - ldr r0, _08013848 @ =gBattlersCount - ldrb r0, [r0] - cmp r1, r0 - bcs _0801381E - adds r4, r2, 0 - ldr r5, _0801384C @ =gBattlerPartyIndexes -_080137EA: - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _0801380C - ldrb r0, [r4] - lsls r0, 1 - adds r0, r5 - ldrb r1, [r0] - movs r0, 0 - movs r2, 0 - bl BtlController_EmitSwitchInAnim - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_0801380C: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _08013848 @ =gBattlersCount - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _080137EA -_0801381E: - ldr r2, _08013850 @ =gBattleStruct - ldr r0, [r2] - adds r0, 0x4C - movs r1, 0 - strb r1, [r0] - ldr r0, [r2] - adds r0, 0xD9 - strb r1, [r0] - ldr r0, [r2] - adds r0, 0xB6 - strb r1, [r0] - ldr r1, _08013854 @ =gBattleMainFunc - ldr r0, _08013858 @ =sub_801385C - str r0, [r1] -_0801383A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08013840: .4byte gBattleControllerExecFlags -_08013844: .4byte gActiveBattler -_08013848: .4byte gBattlersCount -_0801384C: .4byte gBattlerPartyIndexes -_08013850: .4byte gBattleStruct -_08013854: .4byte gBattleMainFunc -_08013858: .4byte sub_801385C - thumb_func_end sub_80137D0 - - thumb_func_start sub_801385C -sub_801385C: @ 801385C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - movs r0, 0 - mov r9, r0 - ldr r0, _080138A0 @ =gBattleControllerExecFlags - ldr r0, [r0] - cmp r0, 0 - beq _08013874 - b _08013ADA -_08013874: - ldr r0, _080138A4 @ =gBattleStruct - ldr r0, [r0] - adds r0, 0x4C - ldrb r0, [r0] - cmp r0, 0 - bne _080138FA - movs r5, 0 - ldr r1, _080138A8 @ =gBattlersCount - adds r3, r1, 0 - ldrb r0, [r1] - cmp r5, r0 - bge _0801389A - ldr r2, _080138AC @ =gBattlerByTurnOrder -_0801388E: - adds r0, r5, r2 - strb r5, [r0] - adds r5, 0x1 - ldrb r0, [r1] - cmp r5, r0 - blt _0801388E -_0801389A: - movs r5, 0 - b _080138F0 - .align 2, 0 -_080138A0: .4byte gBattleControllerExecFlags -_080138A4: .4byte gBattleStruct -_080138A8: .4byte gBattlersCount -_080138AC: .4byte gBattlerByTurnOrder -_080138B0: - adds r4, r5, 0x1 - mov r8, r4 - ldrb r1, [r1] - cmp r8, r1 - bge _080138EE - ldr r6, _08013924 @ =gBattlerByTurnOrder - ldr r3, _08013928 @ =gBattlersCount - lsls r7, r5, 24 -_080138C0: - adds r0, r5, r6 - ldrb r0, [r0] - adds r1, r4, r6 - ldrb r1, [r1] - movs r2, 0x1 - str r3, [sp, 0x4] - bl GetWhoStrikesFirst - lsls r0, 24 - ldr r3, [sp, 0x4] - cmp r0, 0 - beq _080138E4 - lsls r1, r4, 24 - lsrs r1, 24 - lsrs r0, r7, 24 - bl SwapTurnOrder - ldr r3, [sp, 0x4] -_080138E4: - adds r4, 0x1 - ldr r0, _08013928 @ =gBattlersCount - ldrb r0, [r0] - cmp r4, r0 - blt _080138C0 -_080138EE: - mov r5, r8 -_080138F0: - adds r1, r3, 0 - ldrb r0, [r3] - subs r0, 0x1 - cmp r5, r0 - blt _080138B0 -_080138FA: - ldr r4, _0801392C @ =gBattleStruct - ldr r0, [r4] - adds r0, 0xB6 - ldrb r0, [r0] - cmp r0, 0 - bne _08013930 - str r0, [sp] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0xFF - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - beq _08013930 - ldr r0, [r4] - adds r0, 0xB6 - movs r1, 0x1 - strb r1, [r0] - b _08013ADA - .align 2, 0 -_08013924: .4byte gBattlerByTurnOrder -_08013928: .4byte gBattlersCount -_0801392C: .4byte gBattleStruct -_08013930: - ldr r2, _08013AE8 @ =gBattleStruct - ldr r0, [r2] - adds r0, 0x4C - ldr r1, _08013AEC @ =gBattlersCount - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bcs _0801398A - ldr r5, _08013AF0 @ =gBattlerByTurnOrder - adds r4, r2, 0 -_08013944: - ldr r0, [r4] - adds r0, 0x4C - ldrb r0, [r0] - adds r0, r5 - ldrb r1, [r0] - movs r0, 0 - str r0, [sp] - movs r2, 0 - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - beq _0801396A - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_0801396A: - ldr r1, [r4] - adds r1, 0x4C - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - mov r1, r9 - cmp r1, 0 - beq _0801397C - b _08013ADA -_0801397C: - ldr r0, [r4] - adds r0, 0x4C - ldr r1, _08013AEC @ =gBattlersCount - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bcc _08013944 -_0801398A: - movs r0, 0 - str r0, [sp] - movs r0, 0x9 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _080139A4 - b _08013ADA -_080139A4: - str r0, [sp] - movs r0, 0xB - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - beq _080139BA - b _08013ADA -_080139BA: - ldr r2, _08013AE8 @ =gBattleStruct - ldr r0, [r2] - adds r0, 0xD9 - ldr r1, _08013AEC @ =gBattlersCount - ldrb r0, [r0] - adds r3, r1, 0 - ldrb r1, [r3] - cmp r0, r1 - bcs _08013A14 - ldr r5, _08013AF0 @ =gBattlerByTurnOrder - adds r4, r2, 0 -_080139D0: - ldr r0, [r4] - adds r0, 0xD9 - ldrb r0, [r0] - adds r0, r5 - ldrb r1, [r0] - movs r0, 0 - movs r2, 0 - str r3, [sp, 0x4] - bl ItemBattleEffects - lsls r0, 24 - ldr r3, [sp, 0x4] - cmp r0, 0 - beq _080139F6 - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_080139F6: - ldr r1, [r4] - adds r1, 0xD9 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - mov r0, r9 - cmp r0, 0 - bne _08013ADA - ldr r0, [r4] - adds r0, 0xD9 - ldr r1, _08013AEC @ =gBattlersCount - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bcc _080139D0 -_08013A14: - ldrb r0, [r3] - cmp r0, 0 - beq _08013A22 - adds r5, r0, 0 -_08013A1C: - subs r5, 0x1 - cmp r5, 0 - bne _08013A1C -_08013A22: - movs r5, 0 - ldr r1, _08013AE8 @ =gBattleStruct - mov r8, r1 - movs r7, 0x6 - ldr r6, _08013AF4 @ =gChosenActionByBattler - ldr r2, _08013AF8 @ =gChosenMoveByBattler - movs r4, 0xFF - movs r3, 0 -_08013A32: - mov r1, r8 - ldr r0, [r1] - adds r0, r5, r0 - adds r0, 0x5C - strb r7, [r0] - adds r1, r5, r6 - ldrb r0, [r1] - orrs r0, r4 - strb r0, [r1] - strh r3, [r2] - adds r2, 0x2 - adds r5, 0x1 - cmp r5, 0x3 - ble _08013A32 - movs r0, 0 - bl TurnValuesCleanUp - bl SpecialStatusesClear - ldr r0, _08013AE8 @ =gBattleStruct - ldr r0, [r0] - adds r0, 0x91 - ldr r1, _08013AFC @ =gAbsentBattlerFlags - ldrb r1, [r1] - strb r1, [r0] - ldr r1, _08013B00 @ =gBattleMainFunc - ldr r0, _08013B04 @ =sub_8014040 - str r0, [r1] - bl ResetSentPokesToOpponentValue - ldr r1, _08013B08 @ =gBattleCommunication - movs r2, 0 - adds r0, r1, 0x7 -_08013A74: - strb r2, [r0] - subs r0, 0x1 - cmp r0, r1 - bge _08013A74 - movs r5, 0 - ldr r3, _08013AEC @ =gBattlersCount - ldr r2, _08013AE8 @ =gBattleStruct - ldr r6, _08013B0C @ =gBattleScripting - ldr r7, _08013B10 @ =gMoveResultFlags - ldrb r0, [r3] - cmp r5, r0 - bge _08013AA6 - ldr r0, _08013B14 @ =gBattleMons - movs r4, 0x9 - negs r4, r4 - adds r1, r0, 0 - adds r1, 0x50 -_08013A96: - ldr r0, [r1] - ands r0, r4 - str r0, [r1] - adds r1, 0x58 - adds r5, 0x1 - ldrb r0, [r3] - cmp r5, r0 - blt _08013A96 -_08013AA6: - ldr r0, [r2] - movs r1, 0 - strb r1, [r0] - ldr r0, [r2] - strb r1, [r0, 0x1] - ldr r0, [r2] - movs r3, 0xC0 - lsls r3, 1 - adds r0, r3 - strb r1, [r0] - ldr r0, [r2] - adds r3, 0x1 - adds r0, r3 - strb r1, [r0] - movs r1, 0 - strb r1, [r6, 0x14] - ldr r0, [r2] - adds r0, 0x4D - strb r1, [r0] - ldr r0, [r2] - strb r1, [r0, 0x3] - strb r1, [r7] - bl Random - ldr r1, _08013B18 @ =gUnknown_2023E80 - strh r0, [r1] -_08013ADA: - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08013AE8: .4byte gBattleStruct -_08013AEC: .4byte gBattlersCount -_08013AF0: .4byte gBattlerByTurnOrder -_08013AF4: .4byte gChosenActionByBattler -_08013AF8: .4byte gChosenMoveByBattler -_08013AFC: .4byte gAbsentBattlerFlags -_08013B00: .4byte gBattleMainFunc -_08013B04: .4byte sub_8014040 -_08013B08: .4byte gBattleCommunication -_08013B0C: .4byte gBattleScripting -_08013B10: .4byte gMoveResultFlags -_08013B14: .4byte gBattleMons -_08013B18: .4byte gUnknown_2023E80 - thumb_func_end sub_801385C - - thumb_func_start sub_8013B1C -sub_8013B1C: @ 8013B1C - push {r4-r6,lr} - ldr r0, _08013BB4 @ =gBattleControllerExecFlags - ldr r0, [r0] - cmp r0, 0 - bne _08013BAC - ldr r1, _08013BB8 @ =gBattleMainFunc - ldr r0, _08013BBC @ =BattleTurnPassed - str r0, [r1] - ldr r3, _08013BC0 @ =gBattlersCount - ldr r1, _08013BC4 @ =gBattleCommunication - movs r2, 0 - adds r0, r1, 0x7 -_08013B34: - strb r2, [r0] - subs r0, 0x1 - cmp r0, r1 - bge _08013B34 - movs r4, 0 - ldrb r3, [r3] - cmp r4, r3 - bge _08013B86 - ldr r5, _08013BC8 @ =gBattleMons - adds r6, r5, 0 - adds r6, 0x4C -_08013B4A: - movs r0, 0x58 - adds r2, r4, 0 - muls r2, r0 - adds r1, r5, 0 - adds r1, 0x50 - adds r1, r2, r1 - ldr r3, [r1] - subs r0, 0x61 - ands r3, r0 - str r3, [r1] - adds r2, r6 - ldr r0, [r2] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - beq _08013B7C - movs r0, 0x80 - lsls r0, 5 - ands r3, r0 - cmp r3, 0 - beq _08013B7C - lsls r0, r4, 24 - lsrs r0, 24 - bl CancelMultiTurnMoves -_08013B7C: - adds r4, 0x1 - ldr r0, _08013BC0 @ =gBattlersCount - ldrb r0, [r0] - cmp r4, r0 - blt _08013B4A -_08013B86: - ldr r2, _08013BCC @ =gBattleStruct - ldr r0, [r2] - movs r1, 0 - strb r1, [r0] - ldr r0, [r2] - strb r1, [r0, 0x1] - ldr r0, [r2] - movs r3, 0xC0 - lsls r3, 1 - adds r0, r3 - strb r1, [r0] - ldr r0, [r2] - adds r3, 0x1 - adds r0, r3 - strb r1, [r0] - ldr r0, [r2] - strb r1, [r0, 0x3] - ldr r0, _08013BD0 @ =gMoveResultFlags - strb r1, [r0] -_08013BAC: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08013BB4: .4byte gBattleControllerExecFlags -_08013BB8: .4byte gBattleMainFunc -_08013BBC: .4byte BattleTurnPassed -_08013BC0: .4byte gBattlersCount -_08013BC4: .4byte gBattleCommunication -_08013BC8: .4byte gBattleMons -_08013BCC: .4byte gBattleStruct -_08013BD0: .4byte gMoveResultFlags - thumb_func_end sub_8013B1C - - thumb_func_start BattleTurnPassed -BattleTurnPassed: @ 8013BD4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r0, 0x1 - bl TurnValuesCleanUp - ldr r0, _08013C78 @ =gBattleOutcome - ldrb r0, [r0] - cmp r0, 0 - bne _08013C04 - bl DoFieldEndTurnEffects - lsls r0, 24 - cmp r0, 0 - beq _08013BF8 - b _08013D20 -_08013BF8: - bl DoBattlerEndTurnEffects - lsls r0, 24 - cmp r0, 0 - beq _08013C04 - b _08013D20 -_08013C04: - bl HandleFaintedMonActions - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _08013C12 - b _08013D20 -_08013C12: - ldr r0, _08013C7C @ =gBattleStruct - ldr r0, [r0] - adds r0, 0x4D - strb r1, [r0] - bl HandleWishPerishSongOnTurnEnd - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _08013D20 - movs r0, 0 - bl TurnValuesCleanUp - ldr r2, _08013C80 @ =gHitMarker - ldr r0, [r2] - ldr r1, _08013C84 @ =0xfffffdff - ands r0, r1 - ldr r1, _08013C88 @ =0xfff7ffff - ands r0, r1 - ldr r1, _08013C8C @ =0xffbfffff - ands r0, r1 - ldr r1, _08013C90 @ =0xffefffff - ands r0, r1 - str r0, [r2] - ldr r0, _08013C94 @ =gBattleScripting - strb r4, [r0, 0x18] - strb r4, [r0, 0x19] - strb r4, [r0, 0x14] - ldr r0, _08013C98 @ =gBattleMoveDamage - str r4, [r0] - ldr r0, _08013C9C @ =gMoveResultFlags - strb r4, [r0] - ldr r1, _08013CA0 @ =gBattleCommunication - movs r2, 0 - adds r0, r1, 0x4 -_08013C58: - strb r2, [r0] - subs r0, 0x1 - cmp r0, r1 - bge _08013C58 - ldr r0, _08013C78 @ =gBattleOutcome - ldrb r0, [r0] - cmp r0, 0 - beq _08013CB0 - ldr r1, _08013CA4 @ =gCurrentActionFuncId - movs r0, 0xC - strb r0, [r1] - ldr r1, _08013CA8 @ =gBattleMainFunc - ldr r0, _08013CAC @ =RunTurnActionsFunctions - str r0, [r1] - b _08013D20 - .align 2, 0 -_08013C78: .4byte gBattleOutcome -_08013C7C: .4byte gBattleStruct -_08013C80: .4byte gHitMarker -_08013C84: .4byte 0xfffffdff -_08013C88: .4byte 0xfff7ffff -_08013C8C: .4byte 0xffbfffff -_08013C90: .4byte 0xffefffff -_08013C94: .4byte gBattleScripting -_08013C98: .4byte gBattleMoveDamage -_08013C9C: .4byte gMoveResultFlags -_08013CA0: .4byte gBattleCommunication -_08013CA4: .4byte gCurrentActionFuncId -_08013CA8: .4byte gBattleMainFunc -_08013CAC: .4byte RunTurnActionsFunctions -_08013CB0: - ldr r1, _08013D30 @ =gBattleResults - ldrb r0, [r1, 0x13] - cmp r0, 0xFE - bhi _08013CBC - adds r0, 0x1 - strb r0, [r1, 0x13] -_08013CBC: - movs r2, 0 - ldr r4, _08013D34 @ =gBattlersCount - ldr r0, _08013D38 @ =gBattleStruct - mov r8, r0 - ldr r1, _08013D3C @ =gBattleMainFunc - mov r10, r1 - ldr r0, _08013D40 @ =gAbsentBattlerFlags - mov r12, r0 - ldr r1, _08013D44 @ =sub_8014040 - mov r9, r1 - ldrb r0, [r4] - cmp r2, r0 - bge _08013CF2 - ldr r7, _08013D48 @ =gChosenActionByBattler - movs r6, 0xFF - movs r5, 0 - ldr r3, _08013D4C @ =gChosenMoveByBattler -_08013CDE: - adds r1, r2, r7 - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - strh r5, [r3] - adds r3, 0x2 - adds r2, 0x1 - ldrb r1, [r4] - cmp r2, r1 - blt _08013CDE -_08013CF2: - movs r2, 0 - ldr r3, _08013D38 @ =gBattleStruct - movs r1, 0x6 -_08013CF8: - ldr r0, [r3] - adds r0, r2, r0 - adds r0, 0x5C - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x3 - ble _08013CF8 - mov r2, r8 - ldr r0, [r2] - adds r0, 0x91 - mov r2, r12 - ldrb r1, [r2] - strb r1, [r0] - mov r0, r9 - mov r1, r10 - str r0, [r1] - bl Random - ldr r1, _08013D50 @ =gUnknown_2023E80 - strh r0, [r1] -_08013D20: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08013D30: .4byte gBattleResults -_08013D34: .4byte gBattlersCount -_08013D38: .4byte gBattleStruct -_08013D3C: .4byte gBattleMainFunc -_08013D40: .4byte gAbsentBattlerFlags -_08013D44: .4byte sub_8014040 -_08013D48: .4byte gChosenActionByBattler -_08013D4C: .4byte gChosenMoveByBattler -_08013D50: .4byte gUnknown_2023E80 - thumb_func_end BattleTurnPassed - - thumb_func_start IsRunningFromBattleImpossible -IsRunningFromBattleImpossible: @ 8013D54 - push {r4-r7,lr} - sub sp, 0x4 - ldr r1, _08013D78 @ =gBattleMons - ldr r0, _08013D7C @ =gActiveBattler - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, r0, r1 - ldrh r0, [r1, 0x2E] - cmp r0, 0xAF - bne _08013D84 - ldr r1, _08013D80 @ =gEnigmaBerries - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x7] - b _08013D8E - .align 2, 0 -_08013D78: .4byte gBattleMons -_08013D7C: .4byte gActiveBattler -_08013D80: .4byte gEnigmaBerries -_08013D84: - ldrh r0, [r1, 0x2E] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r2, r0, 24 -_08013D8E: - ldr r1, _08013EA4 @ =gPotentialItemEffectBattler - ldr r3, _08013EA8 @ =gActiveBattler - ldrb r0, [r3] - strb r0, [r1] - cmp r2, 0x25 - bne _08013D9C - b _08013F18 -_08013D9C: - ldr r0, _08013EAC @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08013DAA - b _08013F18 -_08013DAA: - ldr r1, _08013EB0 @ =gBattleMons - ldrb r2, [r3] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x32 - bne _08013DBE - b _08013F18 -_08013DBE: - adds r0, r2, 0 - bl GetBattlerSide - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - ldr r0, _08013EB4 @ =gBattlersCount - ldrb r0, [r0] - cmp r5, r0 - bge _08013E52 - movs r7, 0 -_08013DD4: - lsrs r4, r7, 24 - adds r0, r4, 0 - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r6, r0 - beq _08013DF8 - ldr r1, _08013EB0 @ =gBattleMons - movs r0, 0x58 - muls r0, r5 - adds r0, r1 - adds r2, r0, 0 - adds r2, 0x20 - ldrb r0, [r2] - cmp r0, 0x17 - bne _08013DF8 - b _08013F20 -_08013DF8: - adds r0, r4, 0 - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r6, r0 - beq _08013E42 - ldr r3, _08013EB0 @ =gBattleMons - ldr r0, _08013EA8 @ =gActiveBattler - ldrb r0, [r0] - movs r2, 0x58 - muls r0, r2 - adds r1, r0, r3 - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1A - beq _08013E42 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x2 - beq _08013E42 - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x2 - beq _08013E42 - adds r0, r5, 0 - muls r0, r2 - adds r0, r3 - adds r2, r0, 0 - adds r2, 0x20 - ldrb r0, [r2] - cmp r0, 0x47 - bne _08013E42 - b _08013F3C -_08013E42: - movs r0, 0x80 - lsls r0, 17 - adds r7, r0 - adds r5, 0x1 - ldr r0, _08013EB4 @ =gBattlersCount - ldrb r0, [r0] - cmp r5, r0 - blt _08013DD4 -_08013E52: - ldr r4, _08013EA8 @ =gActiveBattler - ldrb r1, [r4] - movs r0, 0 - str r0, [sp] - movs r0, 0xF - movs r2, 0x2A - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - beq _08013EC4 - ldr r6, _08013EB0 @ =gBattleMons - ldrb r0, [r4] - movs r3, 0x58 - muls r0, r3 - adds r1, r0, r6 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x8 - beq _08013E8A - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x8 - bne _08013EC4 -_08013E8A: - ldr r0, _08013EB8 @ =gBattleScripting - subs r1, r5, 0x1 - strb r1, [r0, 0x17] - ldr r2, _08013EBC @ =gLastUsedAbility - adds r0, r1, 0 - muls r0, r3 - adds r0, r6 - adds r0, 0x20 - ldrb r0, [r0] - strb r0, [r2] - ldr r1, _08013EC0 @ =gBattleCommunication - movs r0, 0x2 - b _08013F5C - .align 2, 0 -_08013EA4: .4byte gPotentialItemEffectBattler -_08013EA8: .4byte gActiveBattler -_08013EAC: .4byte gBattleTypeFlags -_08013EB0: .4byte gBattleMons -_08013EB4: .4byte gBattlersCount -_08013EB8: .4byte gBattleScripting -_08013EBC: .4byte gLastUsedAbility -_08013EC0: .4byte gBattleCommunication -_08013EC4: - ldr r1, _08013EF8 @ =gBattleMons - ldr r0, _08013EFC @ =gActiveBattler - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - ldr r1, _08013F00 @ =0x0400e000 - ands r0, r1 - cmp r0, 0 - bne _08013EEE - ldr r1, _08013F04 @ =gStatuses3 - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 3 - ands r0, r1 - cmp r0, 0 - beq _08013F0C -_08013EEE: - ldr r1, _08013F08 @ =gBattleCommunication - movs r0, 0 - strb r0, [r1, 0x5] - movs r0, 0x1 - b _08013F5E - .align 2, 0 -_08013EF8: .4byte gBattleMons -_08013EFC: .4byte gActiveBattler -_08013F00: .4byte 0x0400e000 -_08013F04: .4byte gStatuses3 -_08013F08: .4byte gBattleCommunication -_08013F0C: - ldr r0, _08013F1C @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x10 - ands r0, r1 - cmp r0, 0 - bne _08013F58 -_08013F18: - movs r0, 0 - b _08013F5E - .align 2, 0 -_08013F1C: .4byte gBattleTypeFlags -_08013F20: - ldr r0, _08013F30 @ =gBattleScripting - strb r5, [r0, 0x17] - ldr r1, _08013F34 @ =gLastUsedAbility - ldrb r0, [r2] - strb r0, [r1] - ldr r1, _08013F38 @ =gBattleCommunication - movs r0, 0x2 - b _08013F5C - .align 2, 0 -_08013F30: .4byte gBattleScripting -_08013F34: .4byte gLastUsedAbility -_08013F38: .4byte gBattleCommunication -_08013F3C: - ldr r0, _08013F4C @ =gBattleScripting - strb r5, [r0, 0x17] - ldr r1, _08013F50 @ =gLastUsedAbility - ldrb r0, [r2] - strb r0, [r1] - ldr r1, _08013F54 @ =gBattleCommunication - movs r0, 0x2 - b _08013F5C - .align 2, 0 -_08013F4C: .4byte gBattleScripting -_08013F50: .4byte gLastUsedAbility -_08013F54: .4byte gBattleCommunication -_08013F58: - ldr r1, _08013F68 @ =gBattleCommunication - movs r0, 0x1 -_08013F5C: - strb r0, [r1, 0x5] -_08013F5E: - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08013F68: .4byte gBattleCommunication - thumb_func_end IsRunningFromBattleImpossible - - thumb_func_start sub_8013F6C -sub_8013F6C: @ 8013F6C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - movs r3, 0 - ldr r0, _08014008 @ =gBattlerPartyIndexes - mov r8, r0 - ldr r1, _0801400C @ =gUnknown_203B0DC - mov r12, r1 - ldr r7, _08014010 @ =gBattleStruct - lsls r0, r5, 1 - adds r4, r0, r5 - adds r6, r0, 0 -_08013F88: - mov r0, r12 - adds r2, r3, r0 - ldr r1, [r7] - adds r0, r4, r3 - adds r0, r1 - adds r0, 0x60 - ldrb r0, [r0] - strb r0, [r2] - adds r3, 0x1 - cmp r3, 0x2 - ble _08013F88 - mov r1, r8 - adds r0, r6, r1 - ldrb r0, [r0] - bl pokemon_order_func - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r7, _08014010 @ =gBattleStruct - ldr r0, [r7] - adds r0, r5, r0 - adds r0, 0x5C - ldrb r0, [r0] - bl pokemon_order_func - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_8127FF4 - ldr r0, _08014014 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08014018 - movs r3, 0 - adds r4, r7, 0 - adds r6, r5 - movs r0, 0x2 - adds r1, r5, 0 - eors r1, r0 - ldr r7, _0801400C @ =gUnknown_203B0DC - lsls r0, r1, 1 - adds r5, r0, r1 -_08013FE6: - ldr r0, [r4] - adds r1, r6, r3 - adds r1, r0 - adds r1, 0x60 - adds r2, r3, r7 - ldrb r0, [r2] - strb r0, [r1] - ldr r1, [r4] - adds r0, r5, r3 - adds r0, r1 - adds r0, 0x60 - ldrb r1, [r2] - strb r1, [r0] - adds r3, 0x1 - cmp r3, 0x2 - ble _08013FE6 - b _08014032 - .align 2, 0 -_08014008: .4byte gBattlerPartyIndexes -_0801400C: .4byte gUnknown_203B0DC -_08014010: .4byte gBattleStruct -_08014014: .4byte gBattleTypeFlags -_08014018: - movs r3, 0 - adds r2, r6, r5 - ldr r4, _0801403C @ =gUnknown_203B0DC -_0801401E: - ldr r0, [r7] - adds r1, r2, r3 - adds r1, r0 - adds r1, 0x60 - adds r0, r3, r4 - ldrb r0, [r0] - strb r0, [r1] - adds r3, 0x1 - cmp r3, 0x2 - ble _0801401E -_08014032: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0801403C: .4byte gUnknown_203B0DC - thumb_func_end sub_8013F6C - - thumb_func_start sub_8014040 -sub_8014040: @ 8014040 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - ldr r0, _0801408C @ =gBattleCommunication - movs r1, 0 - strb r1, [r0, 0x4] - ldr r0, _08014090 @ =gActiveBattler - strb r1, [r0] - ldr r0, _08014094 @ =gBattlersCount - adds r2, r0, 0 - ldrb r0, [r2] - cmp r1, r0 - bcc _08014064 - bl _08014C68 -_08014064: - ldr r4, _08014090 @ =gActiveBattler - ldrb r0, [r4] - bl GetBattlerPosition - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _0801408C @ =gBattleCommunication - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x6 - bls _08014080 - bl _08014C4E -_08014080: - lsls r0, 2 - ldr r1, _08014098 @ =_0801409C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801408C: .4byte gBattleCommunication -_08014090: .4byte gActiveBattler -_08014094: .4byte gBattlersCount -_08014098: .4byte _0801409C - .align 2, 0 -_0801409C: - .4byte _080140B8 - .4byte _080141DC - .4byte _08014764 - .4byte _08014AA0 - .4byte _08014B44 - .4byte _08014B88 - .4byte _08014C20 -_080140B8: - ldr r0, _08014150 @ =gActiveBattler - ldrb r1, [r0] - ldr r4, _08014154 @ =gBattleStruct - ldr r0, [r4] - adds r1, r0 - adds r1, 0x5C - movs r0, 0x6 - strb r0, [r1] - ldr r0, _08014158 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08014114 - movs r1, 0x2 - movs r0, 0x2 - ands r0, r5 - cmp r0, 0 - beq _08014114 - eors r5, r1 - adds r0, r5, 0 - bl GetBattlerAtPosition - ldr r1, [r4] - adds r1, 0x91 - ldrb r1, [r1] - ldr r2, _0801415C @ =gBitTable - lsls r0, 24 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _08014114 - ldr r4, _08014160 @ =gBattleCommunication - adds r0, r5, 0 - bl GetBattlerAtPosition - lsls r0, 24 - lsrs r0, 24 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0x4 - beq _08014114 - bl _08014C4E -_08014114: - ldr r0, _08014154 @ =gBattleStruct - ldr r0, [r0] - adds r0, 0x91 - ldrb r3, [r0] - ldr r1, _0801415C @ =gBitTable - ldr r4, _08014150 @ =gActiveBattler - ldrb r2, [r4] - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - ands r3, r0 - cmp r3, 0 - beq _0801417C - ldr r0, _08014164 @ =gChosenActionByBattler - adds r0, r2, r0 - movs r1, 0xD - strb r1, [r0] - ldr r0, _08014158 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08014168 - ldr r0, _08014160 @ =gBattleCommunication - ldrb r1, [r4] - adds r1, r0 - movs r0, 0x4 - strb r0, [r1] - bl _08014C4E - .align 2, 0 -_08014150: .4byte gActiveBattler -_08014154: .4byte gBattleStruct -_08014158: .4byte gBattleTypeFlags -_0801415C: .4byte gBitTable -_08014160: .4byte gBattleCommunication -_08014164: .4byte gChosenActionByBattler -_08014168: - ldr r0, _08014178 @ =gBattleCommunication - ldrb r1, [r4] - adds r1, r0 - movs r0, 0x3 - strb r0, [r1] - bl _08014C4E - .align 2, 0 -_08014178: .4byte gBattleCommunication -_0801417C: - ldr r1, _080141B0 @ =gBattleMons - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 5 - ands r0, r1 - cmp r0, 0 - bne _0801419C - movs r0, 0x80 - lsls r0, 15 - ands r1, r0 - cmp r1, 0 - beq _080141BC -_0801419C: - ldr r0, _080141B4 @ =gChosenActionByBattler - adds r0, r2, r0 - strb r3, [r0] - ldr r1, _080141B8 @ =gBattleCommunication - ldrb r0, [r4] - adds r0, r1 - movs r1, 0x3 - strb r1, [r0] - bl _08014C4E - .align 2, 0 -_080141B0: .4byte gBattleMons -_080141B4: .4byte gChosenActionByBattler -_080141B8: .4byte gBattleCommunication -_080141BC: - ldr r0, _080141D4 @ =gChosenActionByBattler - ldrb r1, [r0] - ldr r0, _080141D8 @ =gBattleBufferB - ldrb r2, [r0, 0x1] - ldrb r0, [r0, 0x2] - lsls r0, 8 - orrs r2, r0 - movs r0, 0 - bl BtlController_EmitChooseAction - bl _08014B26 - .align 2, 0 -_080141D4: .4byte gChosenActionByBattler -_080141D8: .4byte gBattleBufferB -_080141DC: - ldr r4, _08014234 @ =gBattleControllerExecFlags - ldr r1, _08014238 @ =gBitTable - ldr r3, _0801423C @ =gActiveBattler - ldrb r5, [r3] - lsls r0, r5, 2 - adds r0, r1 - ldr r2, [r0] - lsls r0, r2, 4 - movs r1, 0xF0 - lsls r1, 24 - orrs r0, r1 - orrs r0, r2 - lsls r1, r2, 8 - orrs r0, r1 - lsls r2, 12 - orrs r0, r2 - ldr r1, [r4] - ands r1, r0 - mov r8, r3 - cmp r1, 0 - beq _0801420A - bl _08014C4E -_0801420A: - ldr r2, _08014240 @ =gChosenActionByBattler - adds r2, r5, r2 - ldr r1, _08014244 @ =gBattleBufferB - lsls r0, r5, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldrb r0, [r3] - lsls r0, 9 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0xC - bls _08014228 - b _080146AC -_08014228: - lsls r0, 2 - ldr r1, _08014248 @ =_0801424C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08014234: .4byte gBattleControllerExecFlags -_08014238: .4byte gBitTable -_0801423C: .4byte gActiveBattler -_08014240: .4byte gChosenActionByBattler -_08014244: .4byte gBattleBufferB -_08014248: .4byte _0801424C - .align 2, 0 -_0801424C: - .4byte _08014280 - .4byte _080143D4 - .4byte _08014450 - .4byte _080146AC - .4byte _080146AC - .4byte _08014620 - .4byte _080146AC - .4byte _080146AC - .4byte _080146AC - .4byte _080146AC - .4byte _080146AC - .4byte _080146AC - .4byte _08014670 -_08014280: - bl AreAllMovesUnusable - lsls r0, 24 - cmp r0, 0 - beq _080142D8 - ldr r0, _080142C8 @ =gBattleCommunication - ldr r3, _080142CC @ =gActiveBattler - ldrb r1, [r3] - adds r1, r0 - movs r4, 0 - movs r0, 0x5 - strb r0, [r1] - ldrb r1, [r3] - ldr r2, _080142D0 @ =gBattleStruct - ldr r0, [r2] - adds r1, r0 - adds r1, 0x54 - strb r4, [r1] - ldrb r1, [r3] - ldr r0, [r2] - adds r1, r0 - adds r1, 0x84 - movs r0, 0x3 - strb r0, [r1] - ldrb r1, [r3] - ldr r2, [r2] - adds r2, r1, r2 - ldr r0, _080142D4 @ =gBattleBufferB - lsls r1, 9 - adds r0, 0x3 - adds r1, r0 - ldrb r0, [r1] - strb r0, [r2, 0xC] - bl _08014C78 - .align 2, 0 -_080142C8: .4byte gBattleCommunication -_080142CC: .4byte gActiveBattler -_080142D0: .4byte gBattleStruct -_080142D4: .4byte gBattleBufferB -_080142D8: - ldr r3, _08014318 @ =gDisableStructs - ldr r5, _0801431C @ =gActiveBattler - ldrb r4, [r5] - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r0, r3 - ldrh r2, [r0, 0x6] - cmp r2, 0 - beq _0801432C - ldr r1, _08014320 @ =gChosenMoveByBattler - lsls r0, r4, 1 - adds r0, r1 - strh r2, [r0] - ldrb r2, [r5] - ldr r0, _08014324 @ =gBattleStruct - ldr r1, [r0] - adds r1, r2, r1 - adds r1, 0x80 - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0xC] - strb r0, [r1] - ldr r1, _08014328 @ =gBattleCommunication - ldrb r0, [r5] - adds r0, r1 - movs r1, 0x3 - strb r1, [r0] - bl _08014C78 - .align 2, 0 -_08014318: .4byte gDisableStructs -_0801431C: .4byte gActiveBattler -_08014320: .4byte gChosenMoveByBattler -_08014324: .4byte gBattleStruct -_08014328: .4byte gBattleCommunication -_0801432C: - add r2, sp, 0x4 - ldr r3, _080143CC @ =gBattleMons - movs r1, 0x58 - adds r0, r4, 0 - muls r0, r1 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r2, 0x10] - ldrb r0, [r5] - muls r0, r1 - adds r0, r3 - adds r0, 0x21 - ldrb r0, [r0] - strb r0, [r2, 0x12] - ldrb r0, [r5] - muls r0, r1 - adds r0, r3 - adds r0, 0x22 - ldrb r0, [r0] - strb r0, [r2, 0x13] - movs r4, 0 - mov r1, sp - adds r1, 0xC - str r1, [sp, 0x18] - add r2, sp, 0x10 - mov r10, r2 - mov r8, r3 - adds r7, r5, 0 - movs r6, 0x58 - movs r3, 0xC - add r3, r8 - mov r9, r3 - add r5, sp, 0x4 -_0801436E: - lsls r2, r4, 1 - ldrb r0, [r7] - muls r0, r6 - adds r0, r2, r0 - add r0, r9 - ldrh r0, [r0] - strh r0, [r5] - ldr r0, [sp, 0x18] - adds r3, r0, r4 - ldrb r0, [r7] - muls r0, r6 - adds r0, r4, r0 - mov r1, r8 - adds r1, 0x24 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r3] - ldrb r0, [r7] - adds r1, r0, 0 - muls r1, r6 - adds r2, r1 - add r2, r9 - ldrh r0, [r2] - add r1, r8 - adds r1, 0x3B - ldrb r1, [r1] - lsls r2, r4, 24 - lsrs r2, 24 - bl CalculatePPWithBonus - mov r2, r10 - adds r1, r2, r4 - strb r0, [r1] - adds r5, 0x2 - adds r4, 0x1 - cmp r4, 0x3 - ble _0801436E - ldr r0, _080143D0 @ =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x1 - ands r1, r0 - movs r0, 0 - movs r2, 0 - add r3, sp, 0x4 - bl BtlController_EmitChooseMove - b _0801460E - .align 2, 0 -_080143CC: .4byte gBattleMons -_080143D0: .4byte gBattleTypeFlags -_080143D4: - ldr r0, _08014410 @ =gBattleTypeFlags - ldr r0, [r0] - ldr r1, _08014414 @ =0x00000902 - ands r0, r1 - cmp r0, 0 - beq _08014428 - ldr r1, _08014418 @ =gSelectionBattleScripts - mov r3, r8 - ldrb r0, [r3] - lsls r0, 2 - adds r0, r1 - ldr r1, _0801441C @ =gUnknown_81D96A4 - str r1, [r0] - ldr r0, _08014420 @ =gBattleCommunication - ldrb r1, [r3] - adds r1, r0 - movs r3, 0 - movs r0, 0x5 - strb r0, [r1] - mov r0, r8 - ldrb r1, [r0] - ldr r2, _08014424 @ =gBattleStruct - ldr r0, [r2] - adds r1, r0 - adds r1, 0x54 - strb r3, [r1] - mov r1, r8 - ldrb r0, [r1] - b _0801472C - .align 2, 0 -_08014410: .4byte gBattleTypeFlags -_08014414: .4byte 0x00000902 -_08014418: .4byte gSelectionBattleScripts -_0801441C: .4byte gUnknown_81D96A4 -_08014420: .4byte gBattleCommunication -_08014424: .4byte gBattleStruct -_08014428: - ldr r2, _08014448 @ =gBattleStruct - ldr r4, _0801444C @ =gActiveBattler - ldrb r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - adds r0, 0x60 - ldr r1, [r2] - adds r1, r0 - movs r0, 0 - bl BtlController_EmitChooseItem - ldrb r0, [r4] - bl MarkBattlerForControllerExec - b _080146AC - .align 2, 0 -_08014448: .4byte gBattleStruct -_0801444C: .4byte gActiveBattler -_08014450: - ldr r5, _080144A8 @ =gActiveBattler - ldrb r0, [r5] - ldr r3, _080144AC @ =gBattleStruct - ldr r1, [r3] - adds r1, r0, r1 - adds r1, 0x58 - ldr r2, _080144B0 @ =gBattlerPartyIndexes - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1] - ldr r7, _080144B4 @ =gBattleMons - ldrb r2, [r5] - movs r6, 0x58 - adds r0, r2, 0 - muls r0, r6 - adds r1, r7, 0 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - ldr r1, _080144B8 @ =0x0400e000 - ands r0, r1 - cmp r0, 0 - bne _08014492 - ldr r0, _080144BC @ =gStatuses3 - lsls r1, r2, 2 - adds r1, r0 - ldr r1, [r1] - movs r0, 0x80 - lsls r0, 3 - ands r1, r0 - cmp r1, 0 - beq _080144C0 -_08014492: - lsls r1, r2, 1 - adds r1, r2 - adds r1, 0x60 - ldr r0, [r3] - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x2 - movs r2, 0x6 - b _080145DE - .align 2, 0 -_080144A8: .4byte gActiveBattler -_080144AC: .4byte gBattleStruct -_080144B0: .4byte gBattlerPartyIndexes -_080144B4: .4byte gBattleMons -_080144B8: .4byte 0x0400e000 -_080144BC: .4byte gStatuses3 -_080144C0: - str r1, [sp] - movs r0, 0xC - adds r1, r2, 0 - movs r2, 0x17 - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _08014548 - ldrb r1, [r5] - str r4, [sp] - movs r0, 0xC - movs r2, 0x47 - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _08014510 - ldrb r0, [r5] - muls r0, r6 - adds r1, r0, r7 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x2 - beq _08014510 - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x2 - beq _08014510 - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1A - bne _08014548 -_08014510: - ldr r5, _08014574 @ =gActiveBattler - ldrb r1, [r5] - movs r0, 0 - str r0, [sp] - movs r0, 0xF - movs r2, 0x2A - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _08014584 - ldr r2, _08014578 @ =gBattleMons - ldrb r1, [r5] - movs r0, 0x58 - muls r0, r1 - adds r1, r0, r2 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x8 - beq _08014548 - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x8 - bne _08014584 -_08014548: - subs r1, r4, 0x1 - lsls r1, 4 - movs r0, 0x4 - orrs r1, r0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _0801457C @ =gLastUsedAbility - ldrb r3, [r0] - ldr r4, _08014580 @ =gBattleStruct - ldr r0, _08014574 @ =gActiveBattler - ldrb r0, [r0] - lsls r2, r0, 1 - adds r2, r0 - adds r2, 0x60 - ldr r0, [r4] - adds r0, r2 - str r0, [sp] - movs r0, 0 - movs r2, 0x6 - bl BtlController_EmitChoosePokemon - b _0801460E - .align 2, 0 -_08014574: .4byte gActiveBattler -_08014578: .4byte gBattleMons -_0801457C: .4byte gLastUsedAbility -_08014580: .4byte gBattleStruct -_08014584: - ldr r0, _080145A8 @ =gActiveBattler - ldrb r1, [r0] - mov r8, r0 - cmp r1, 0x2 - bne _080145B4 - ldr r0, _080145AC @ =gChosenActionByBattler - ldrb r0, [r0] - cmp r0, 0x2 - bne _080145B4 - ldr r0, _080145B0 @ =gBattleStruct - ldr r3, [r0] - adds r0, r3, 0 - adds r0, 0x5C - ldrb r2, [r0] - mov r0, r8 - ldrb r1, [r0] - b _080145D0 - .align 2, 0 -_080145A8: .4byte gActiveBattler -_080145AC: .4byte gChosenActionByBattler -_080145B0: .4byte gBattleStruct -_080145B4: - mov r1, r8 - ldrb r0, [r1] - cmp r0, 0x3 - bne _080145F0 - ldr r0, _080145E8 @ =gChosenActionByBattler - ldrb r0, [r0, 0x1] - cmp r0, 0x2 - bne _080145F0 - ldr r0, _080145EC @ =gBattleStruct - ldr r3, [r0] - adds r0, r3, 0 - adds r0, 0x5D - ldrb r2, [r0] - ldrb r1, [r1] -_080145D0: - lsls r0, r1, 1 - adds r0, r1 - adds r0, 0x60 - adds r3, r0 - str r3, [sp] - movs r0, 0 - movs r1, 0 -_080145DE: - movs r3, 0 - bl BtlController_EmitChoosePokemon - b _0801460E - .align 2, 0 -_080145E8: .4byte gChosenActionByBattler -_080145EC: .4byte gBattleStruct -_080145F0: - ldr r2, _08014618 @ =gBattleStruct - ldr r0, _0801461C @ =gActiveBattler - ldrb r0, [r0] - lsls r1, r0, 1 - adds r1, r0 - adds r1, 0x60 - ldr r0, [r2] - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0 - movs r2, 0x6 - movs r3, 0 - bl BtlController_EmitChoosePokemon -_0801460E: - ldr r0, _0801461C @ =gActiveBattler - ldrb r0, [r0] - bl MarkBattlerForControllerExec - b _080146AC - .align 2, 0 -_08014618: .4byte gBattleStruct -_0801461C: .4byte gActiveBattler -_08014620: - bl IsPlayerPartyAndPokemonStorageFull - lsls r0, 24 - cmp r0, 0 - beq _080146AC - ldr r1, _0801465C @ =gSelectionBattleScripts - ldr r3, _08014660 @ =gActiveBattler - ldrb r0, [r3] - lsls r0, 2 - adds r0, r1 - ldr r1, _08014664 @ =gUnknown_81D8949 - str r1, [r0] - ldr r0, _08014668 @ =gBattleCommunication - ldrb r1, [r3] - adds r1, r0 - movs r4, 0 - movs r0, 0x5 - strb r0, [r1] - ldrb r1, [r3] - ldr r2, _0801466C @ =gBattleStruct - ldr r0, [r2] - adds r1, r0 - adds r1, 0x54 - strb r4, [r1] - ldrb r0, [r3] - ldr r1, [r2] - adds r0, r1 - adds r0, 0x84 - strb r4, [r0] - b _08014C78 - .align 2, 0 -_0801465C: .4byte gSelectionBattleScripts -_08014660: .4byte gActiveBattler -_08014664: .4byte gUnknown_81D8949 -_08014668: .4byte gBattleCommunication -_0801466C: .4byte gBattleStruct -_08014670: - ldr r4, _080146A8 @ =gBattleCommunication - mov r2, r8 - ldrb r1, [r2] - adds r1, r4 - movs r5, 0 - movs r0, 0x6 - strb r0, [r1] - ldrb r0, [r2] - bl GetBattlerPosition - movs r1, 0x2 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl GetBattlerAtPosition - lsls r0, 24 - lsrs r0, 24 - adds r0, r4 - strb r5, [r0] - movs r0, 0 - bl BtlController_EmitEndBounceEffect - mov r3, r8 - ldrb r0, [r3] - bl MarkBattlerForControllerExec - b _08014C78 - .align 2, 0 -_080146A8: .4byte gBattleCommunication -_080146AC: - ldr r0, _080146D8 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0xA - ands r0, r1 - cmp r0, 0x8 - bne _080146EC - ldr r0, _080146DC @ =gBattleBufferB - ldr r4, _080146E0 @ =gActiveBattler - ldrb r1, [r4] - lsls r1, 9 - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x3 - bne _080146EC - ldr r0, _080146E4 @ =gUnknown_81D8924 - bl BattleScriptExecute - ldr r1, _080146E8 @ =gBattleCommunication - ldrb r0, [r4] - adds r0, r1 - b _08014926 - .align 2, 0 -_080146D8: .4byte gBattleTypeFlags -_080146DC: .4byte gBattleBufferB -_080146E0: .4byte gActiveBattler -_080146E4: .4byte gUnknown_81D8924 -_080146E8: .4byte gBattleCommunication -_080146EC: - bl IsRunningFromBattleImpossible - lsls r0, 24 - cmp r0, 0 - beq _08014750 - ldr r0, _08014738 @ =gBattleBufferB - ldr r4, _0801473C @ =gActiveBattler - ldrb r2, [r4] - lsls r1, r2, 9 - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x3 - bne _08014750 - ldr r1, _08014740 @ =gSelectionBattleScripts - lsls r0, r2, 2 - adds r0, r1 - ldr r1, _08014744 @ =gUnknown_81D8943 - str r1, [r0] - ldr r0, _08014748 @ =gBattleCommunication - ldrb r1, [r4] - adds r1, r0 - movs r3, 0 - movs r0, 0x5 - strb r0, [r1] - ldrb r1, [r4] - ldr r2, _0801474C @ =gBattleStruct - ldr r0, [r2] - adds r1, r0 - adds r1, 0x54 - strb r3, [r1] - ldrb r0, [r4] -_0801472C: - ldr r1, [r2] - adds r0, r1 - adds r0, 0x84 - strb r3, [r0] - b _08014C78 - .align 2, 0 -_08014738: .4byte gBattleBufferB -_0801473C: .4byte gActiveBattler -_08014740: .4byte gSelectionBattleScripts -_08014744: .4byte gUnknown_81D8943 -_08014748: .4byte gBattleCommunication -_0801474C: .4byte gBattleStruct -_08014750: - ldr r2, _0801475C @ =gBattleCommunication - ldr r0, _08014760 @ =gActiveBattler - ldrb r1, [r0] - adds r1, r2 - b _08014B32 - .align 2, 0 -_0801475C: .4byte gBattleCommunication -_08014760: .4byte gActiveBattler -_08014764: - ldr r4, _080147A8 @ =gBattleControllerExecFlags - ldr r1, _080147AC @ =gBitTable - ldr r3, _080147B0 @ =gActiveBattler - ldrb r5, [r3] - lsls r0, r5, 2 - adds r0, r1 - ldr r2, [r0] - lsls r0, r2, 4 - movs r1, 0xF0 - lsls r1, 24 - orrs r0, r1 - orrs r0, r2 - lsls r1, r2, 8 - orrs r0, r1 - lsls r2, 12 - orrs r0, r2 - ldr r1, [r4] - ands r1, r0 - mov r8, r3 - cmp r1, 0 - beq _08014790 - b _08014C4E -_08014790: - ldr r1, _080147B4 @ =gChosenActionByBattler - adds r0, r5, r1 - ldrb r0, [r0] - adds r3, r1, 0 - cmp r0, 0x9 - bls _0801479E - b _08014C4E -_0801479E: - lsls r0, 2 - ldr r1, _080147B8 @ =_080147BC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080147A8: .4byte gBattleControllerExecFlags -_080147AC: .4byte gBitTable -_080147B0: .4byte gActiveBattler -_080147B4: .4byte gChosenActionByBattler -_080147B8: .4byte _080147BC - .align 2, 0 -_080147BC: - .4byte _080147E4 - .4byte _080148D8 - .4byte _08014910 - .4byte _08014A08 - .4byte _08014A2C - .4byte _08014A40 - .4byte _08014A54 - .4byte _08014A54 - .4byte _08014A68 - .4byte _08014A8C -_080147E4: - ldr r0, _08014804 @ =gBattleBufferB - mov r1, r8 - ldrb r4, [r1] - lsls r1, r4, 9 - adds r2, r0, 0x1 - adds r1, r2 - ldrb r1, [r1] - adds r7, r0, 0 - cmp r1, 0x9 - bgt _08014808 - cmp r1, 0x3 - blt _08014808 - adds r0, r4, r3 - strb r1, [r0] - b _08014C78 - .align 2, 0 -_08014804: .4byte gBattleBufferB -_08014808: - adds r3, r7, 0 - mov r5, r8 - ldrb r4, [r5] - lsls r1, r4, 9 - adds r6, r3, 0x2 - adds r0, r1, r6 - ldrb r2, [r0] - adds r3, 0x3 - mov r9, r3 - add r1, r9 - ldrb r0, [r1] - lsls r0, 8 - orrs r2, r0 - ldr r0, _08014830 @ =0x0000ffff - cmp r2, r0 - bne _08014838 - ldr r0, _08014834 @ =gBattleCommunication - adds r0, r4, r0 - b _08014926 - .align 2, 0 -_08014830: .4byte 0x0000ffff -_08014834: .4byte gBattleCommunication -_08014838: - bl TrySetCantSelectMoveBattleScript - lsls r0, 24 - cmp r0, 0 - beq _0801487C - ldr r0, _08014874 @ =gBattleCommunication - ldrb r1, [r5] - adds r1, r0 - movs r3, 0 - movs r0, 0x5 - strb r0, [r1] - ldrb r1, [r5] - ldr r2, _08014878 @ =gBattleStruct - ldr r0, [r2] - adds r1, r0 - adds r1, 0x54 - strb r3, [r1] - ldrb r0, [r5] - lsls r0, 9 - adds r1, r7, 0x1 - adds r0, r1 - strb r3, [r0] - ldrb r1, [r5] - ldr r0, [r2] - adds r1, r0 - adds r1, 0x84 - movs r0, 0x1 - strb r0, [r1] - b _08014C78 - .align 2, 0 -_08014874: .4byte gBattleCommunication -_08014878: .4byte gBattleStruct -_0801487C: - mov r2, r8 - ldrb r0, [r2] - ldr r4, _080148C8 @ =gBattleStruct - ldr r1, [r4] - adds r1, r0, r1 - adds r1, 0x80 - lsls r0, 9 - adds r0, r6 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _080148CC @ =gChosenMoveByBattler - ldrb r2, [r2] - lsls r5, r2, 1 - adds r5, r0 - ldr r3, _080148D0 @ =gBattleMons - ldr r4, [r4] - adds r0, r2, r4 - adds r0, 0x80 - ldrb r0, [r0] - lsls r0, 1 - movs r1, 0x58 - muls r1, r2 - adds r0, r1 - adds r3, 0xC - adds r0, r3 - ldrh r0, [r0] - strh r0, [r5] - mov r3, r8 - ldrb r0, [r3] - adds r4, r0, r4 - lsls r0, 9 - add r0, r9 - ldrb r0, [r0] - strb r0, [r4, 0xC] - ldr r0, _080148D4 @ =gBattleCommunication - ldrb r1, [r3] - b _08014B30 - .align 2, 0 -_080148C8: .4byte gBattleStruct -_080148CC: .4byte gChosenMoveByBattler -_080148D0: .4byte gBattleMons -_080148D4: .4byte gBattleCommunication -_080148D8: - ldr r2, _08014900 @ =gBattleBufferB - ldr r5, _08014904 @ =gActiveBattler - ldrb r4, [r5] - lsls r1, r4, 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 - cmp r3, 0 - bne _080148F6 - b _08014C48 -_080148F6: - ldr r0, _08014908 @ =gLastUsedItem - strh r3, [r0] - ldr r0, _0801490C @ =gBattleCommunication - ldrb r1, [r5] - b _08014B30 - .align 2, 0 -_08014900: .4byte gBattleBufferB -_08014904: .4byte gActiveBattler -_08014908: .4byte gLastUsedItem -_0801490C: .4byte gBattleCommunication -_08014910: - ldr r6, _0801492C @ =gBattleBufferB - ldr r7, _08014930 @ =gActiveBattler - ldrb r2, [r7] - lsls r0, r2, 9 - adds r1, r6, 0x1 - adds r0, r1 - ldrb r1, [r0] - cmp r1, 0x6 - bne _08014938 - ldr r0, _08014934 @ =gBattleCommunication - adds r0, r2, r0 -_08014926: - movs r1, 0 - strb r1, [r0] - b _08014C4E - .align 2, 0 -_0801492C: .4byte gBattleBufferB -_08014930: .4byte gActiveBattler -_08014934: .4byte gBattleCommunication -_08014938: - ldr r0, _080149FC @ =gBattleStruct - mov r12, r0 - ldr r0, [r0] - adds r0, r2, r0 - adds r0, 0x5C - strb r1, [r0] - ldr r0, _08014A00 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080149F6 - ldrb r0, [r7] - mov r1, r12 - ldr r2, [r1] - lsls r1, r0, 1 - adds r1, r0 - adds r1, r2 - adds r1, 0x60 - ldrb r2, [r1] - movs r0, 0xF - ands r0, r2 - strb r0, [r1] - ldrb r0, [r7] - mov r2, r12 - ldr r1, [r2] - lsls r2, r0, 1 - adds r2, r0 - adds r2, r1 - adds r2, 0x60 - lsls r0, 9 - adds r5, r6, 0x2 - adds r0, r5 - ldrb r1, [r0] - movs r3, 0xF0 - adds r0, r3, 0 - ands r0, r1 - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r7] - mov r0, r12 - ldr r2, [r0] - lsls r0, r1, 1 - adds r0, r1 - adds r0, r2 - adds r0, 0x61 - lsls r1, 9 - adds r6, 0x3 - adds r1, r6 - ldrb r1, [r1] - strb r1, [r0] - ldrb r0, [r7] - movs r4, 0x2 - eors r0, r4 - mov r1, r12 - ldr r2, [r1] - lsls r1, r0, 1 - adds r1, r0 - adds r1, r2 - adds r1, 0x60 - ldrb r2, [r1] - adds r0, r3, 0 - ands r0, r2 - strb r0, [r1] - ldrb r0, [r7] - eors r0, r4 - mov r1, r12 - ldr r2, [r1] - lsls r1, r0, 1 - adds r1, r0 - adds r1, r2 - adds r1, 0x60 - ldrb r0, [r7] - lsls r0, 9 - adds r0, r5 - ldrb r0, [r0] - ands r3, r0 - lsrs r3, 4 - ldrb r0, [r1] - orrs r3, r0 - strb r3, [r1] - ldrb r0, [r7] - eors r4, r0 - mov r2, r12 - ldr r0, [r2] - lsls r1, r4, 1 - adds r1, r4 - adds r1, r0 - adds r1, 0x62 - ldrb r0, [r7] - lsls r0, 9 - adds r0, r6 - ldrb r0, [r0] - strb r0, [r1] -_080149F6: - ldr r0, _08014A04 @ =gBattleCommunication - ldrb r1, [r7] - b _08014B30 - .align 2, 0 -_080149FC: .4byte gBattleStruct -_08014A00: .4byte gBattleTypeFlags -_08014A04: .4byte gBattleCommunication -_08014A08: - ldr r2, _08014A20 @ =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 8 - orrs r0, r1 - str r0, [r2] - ldr r2, _08014A24 @ =gBattleCommunication - ldr r0, _08014A28 @ =gActiveBattler - ldrb r1, [r0] - adds r1, r2 - b _08014B32 - .align 2, 0 -_08014A20: .4byte gHitMarker -_08014A24: .4byte gBattleCommunication -_08014A28: .4byte gActiveBattler -_08014A2C: - ldr r2, _08014A38 @ =gBattleCommunication - ldr r0, _08014A3C @ =gActiveBattler - ldrb r1, [r0] - adds r1, r2 - b _08014B32 - .align 2, 0 -_08014A38: .4byte gBattleCommunication -_08014A3C: .4byte gActiveBattler -_08014A40: - ldr r2, _08014A4C @ =gBattleCommunication - ldr r0, _08014A50 @ =gActiveBattler - ldrb r1, [r0] - adds r1, r2 - b _08014B32 - .align 2, 0 -_08014A4C: .4byte gBattleCommunication -_08014A50: .4byte gActiveBattler -_08014A54: - ldr r2, _08014A60 @ =gBattleCommunication - ldr r0, _08014A64 @ =gActiveBattler - ldrb r1, [r0] - adds r1, r2 - b _08014B32 - .align 2, 0 -_08014A60: .4byte gBattleCommunication -_08014A64: .4byte gActiveBattler -_08014A68: - ldr r2, _08014A80 @ =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 8 - orrs r0, r1 - str r0, [r2] - ldr r2, _08014A84 @ =gBattleCommunication - ldr r0, _08014A88 @ =gActiveBattler - ldrb r1, [r0] - adds r1, r2 - b _08014B32 - .align 2, 0 -_08014A80: .4byte gHitMarker -_08014A84: .4byte gBattleCommunication -_08014A88: .4byte gActiveBattler -_08014A8C: - ldr r2, _08014A98 @ =gBattleCommunication - ldr r0, _08014A9C @ =gActiveBattler - ldrb r1, [r0] - adds r1, r2 - b _08014B32 - .align 2, 0 -_08014A98: .4byte gBattleCommunication -_08014A9C: .4byte gActiveBattler -_08014AA0: - ldr r3, _08014B08 @ =gBattleControllerExecFlags - ldr r4, _08014B0C @ =gBitTable - ldr r0, _08014B10 @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 2 - adds r0, r4 - ldr r2, [r0] - lsls r1, r2, 4 - movs r0, 0xF0 - lsls r0, 24 - orrs r1, r0 - orrs r1, r2 - lsls r0, r2, 8 - orrs r1, r0 - lsls r2, 12 - orrs r1, r2 - ldr r0, [r3] - ands r0, r1 - cmp r0, 0 - beq _08014ACA - b _08014C4E -_08014ACA: - ldr r0, _08014B14 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x41 - ands r0, r1 - cmp r0, 0x1 - bne _08014AFE - movs r1, 0x2 - movs r0, 0x2 - ands r0, r5 - cmp r0, 0 - bne _08014AFE - adds r0, r5, 0 - eors r0, r1 - bl GetBattlerAtPosition - ldr r1, _08014B18 @ =gBattleStruct - ldr r1, [r1] - adds r1, 0x91 - ldrb r1, [r1] - lsls r0, 24 - lsrs r0, 22 - adds r0, r4 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08014B1C -_08014AFE: - movs r0, 0 - movs r1, 0 - bl BtlController_EmitLinkStandbyMsg - b _08014B24 - .align 2, 0 -_08014B08: .4byte gBattleControllerExecFlags -_08014B0C: .4byte gBitTable -_08014B10: .4byte gActiveBattler -_08014B14: .4byte gBattleTypeFlags -_08014B18: .4byte gBattleStruct -_08014B1C: - movs r0, 0 - movs r1, 0x1 - bl BtlController_EmitLinkStandbyMsg -_08014B24: - ldr r4, _08014B3C @ =gActiveBattler -_08014B26: - ldrb r0, [r4] - bl MarkBattlerForControllerExec - ldr r0, _08014B40 @ =gBattleCommunication - ldrb r1, [r4] -_08014B30: - adds r1, r0 -_08014B32: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08014C4E - .align 2, 0 -_08014B3C: .4byte gActiveBattler -_08014B40: .4byte gBattleCommunication -_08014B44: - ldr r3, _08014B78 @ =gBattleControllerExecFlags - ldr r1, _08014B7C @ =gBitTable - ldr r0, _08014B80 @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r2, [r0] - lsls r1, r2, 4 - movs r0, 0xF0 - lsls r0, 24 - orrs r1, r0 - orrs r1, r2 - lsls r0, r2, 8 - orrs r1, r0 - lsls r2, 12 - orrs r1, r2 - ldr r0, [r3] - ands r0, r1 - cmp r0, 0 - bne _08014C4E - ldr r1, _08014B84 @ =gBattleCommunication - ldrb r0, [r1, 0x4] - adds r0, 0x1 - strb r0, [r1, 0x4] - b _08014C4E - .align 2, 0 -_08014B78: .4byte gBattleControllerExecFlags -_08014B7C: .4byte gBitTable -_08014B80: .4byte gActiveBattler -_08014B84: .4byte gBattleCommunication -_08014B88: - ldr r5, _08014BA8 @ =gActiveBattler - ldrb r2, [r5] - ldr r0, _08014BAC @ =gBattleStruct - ldr r0, [r0] - adds r1, r2, r0 - adds r0, r1, 0 - adds r0, 0x54 - ldrb r0, [r0] - cmp r0, 0 - beq _08014BB4 - ldr r0, _08014BB0 @ =gBattleCommunication - adds r0, r2, r0 - adds r1, 0x84 - ldrb r1, [r1] - strb r1, [r0] - b _08014C4E - .align 2, 0 -_08014BA8: .4byte gActiveBattler -_08014BAC: .4byte gBattleStruct -_08014BB0: .4byte gBattleCommunication -_08014BB4: - ldr r0, _08014C08 @ =gBattlerAttacker - strb r2, [r0] - ldr r7, _08014C0C @ =gBattlescriptCurrInstr - ldr r6, _08014C10 @ =gSelectionBattleScripts - ldrb r0, [r5] - lsls r0, 2 - adds r0, r6 - ldr r4, [r0] - str r4, [r7] - ldr r3, _08014C14 @ =gBattleControllerExecFlags - ldr r1, _08014C18 @ =gBitTable - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r2, [r0] - lsls r1, r2, 4 - movs r0, 0xF0 - lsls r0, 24 - orrs r1, r0 - orrs r1, r2 - lsls r0, r2, 8 - orrs r1, r0 - lsls r2, 12 - orrs r1, r2 - ldr r0, [r3] - ands r0, r1 - cmp r0, 0 - bne _08014BFA - ldr r0, _08014C1C @ =gBattleScriptingCommandsTable - ldrb r1, [r4] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - bl _call_via_r0 -_08014BFA: - ldrb r0, [r5] - lsls r0, 2 - adds r0, r6 - ldr r1, [r7] - str r1, [r0] - b _08014C4E - .align 2, 0 -_08014C08: .4byte gBattlerAttacker -_08014C0C: .4byte gBattlescriptCurrInstr -_08014C10: .4byte gSelectionBattleScripts -_08014C14: .4byte gBattleControllerExecFlags -_08014C18: .4byte gBitTable -_08014C1C: .4byte gBattleScriptingCommandsTable -_08014C20: - ldr r3, _08014C88 @ =gBattleControllerExecFlags - ldr r1, _08014C8C @ =gBitTable - ldr r0, _08014C90 @ =gActiveBattler - ldrb r4, [r0] - lsls r0, r4, 2 - adds r0, r1 - ldr r2, [r0] - lsls r0, r2, 4 - movs r1, 0xF0 - lsls r1, 24 - orrs r0, r1 - orrs r0, r2 - lsls r1, r2, 8 - orrs r0, r1 - lsls r2, 12 - orrs r0, r2 - ldr r3, [r3] - ands r3, r0 - cmp r3, 0 - bne _08014C4E -_08014C48: - ldr r0, _08014C94 @ =gBattleCommunication - adds r0, r4, r0 - strb r3, [r0] -_08014C4E: - ldr r0, _08014C90 @ =gActiveBattler - ldrb r1, [r0] - adds r1, 0x1 - strb r1, [r0] - ldr r0, _08014C98 @ =gBattlersCount - lsls r1, 24 - lsrs r1, 24 - adds r2, r0, 0 - ldrb r3, [r2] - cmp r1, r3 - bcs _08014C68 - bl _08014064 -_08014C68: - ldr r0, _08014C94 @ =gBattleCommunication - ldrb r0, [r0, 0x4] - ldrb r2, [r2] - cmp r0, r2 - bne _08014C78 - ldr r1, _08014C9C @ =gBattleMainFunc - ldr r0, _08014CA0 @ =sub_80150A8 - str r0, [r1] -_08014C78: - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08014C88: .4byte gBattleControllerExecFlags -_08014C8C: .4byte gBitTable -_08014C90: .4byte gActiveBattler -_08014C94: .4byte gBattleCommunication -_08014C98: .4byte gBattlersCount -_08014C9C: .4byte gBattleMainFunc -_08014CA0: .4byte sub_80150A8 - thumb_func_end sub_8014040 - - thumb_func_start SwapTurnOrder -SwapTurnOrder: @ 8014CA4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _08014CD0 @ =gActionsByTurnOrder - adds r4, r0, r2 - ldrb r5, [r4] - adds r2, r1, r2 - ldrb r3, [r2] - strb r3, [r4] - strb r5, [r2] - ldr r2, _08014CD4 @ =gBattlerByTurnOrder - adds r0, r2 - ldrb r5, [r0] - adds r1, r2 - ldrb r2, [r1] - strb r2, [r0] - strb r5, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08014CD0: .4byte gActionsByTurnOrder -_08014CD4: .4byte gBattlerByTurnOrder - thumb_func_end SwapTurnOrder - - thumb_func_start GetWhoStrikesFirst -GetWhoStrikesFirst: @ 8014CD8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - bne _08014DA0 - ldr r1, [sp, 0x8] - str r1, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - bne _08014DA0 - ldr r1, _08014D58 @ =gBattleMons - movs r0, 0x58 - mov r2, r9 - muls r2, r0 - adds r0, r2, 0 - adds r0, r1 - adds r0, 0x20 - ldrb r3, [r0] - cmp r3, 0x21 - bne _08014D44 - ldr r0, _08014D5C @ =gBattleWeather - ldrh r1, [r0] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - bne _08014D54 -_08014D44: - cmp r3, 0x22 - bne _08014D60 - ldr r0, _08014D5C @ =gBattleWeather - ldrh r1, [r0] - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - beq _08014D60 -_08014D54: - movs r3, 0x2 - b _08014D62 - .align 2, 0 -_08014D58: .4byte gBattleMons -_08014D5C: .4byte gBattleWeather -_08014D60: - movs r3, 0x1 -_08014D62: - movs r0, 0x58 - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - ldr r2, _08014D98 @ =gBattleMons - adds r0, r2 - adds r0, 0x20 - ldrb r2, [r0] - cmp r2, 0x21 - bne _08014D82 - ldr r0, _08014D9C @ =gBattleWeather - ldrh r1, [r0] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - bne _08014D92 -_08014D82: - cmp r2, 0x22 - bne _08014DA2 - ldr r0, _08014D9C @ =gBattleWeather - ldrh r1, [r0] - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - beq _08014DA2 -_08014D92: - movs r7, 0x2 - b _08014DA4 - .align 2, 0 -_08014D98: .4byte gBattleMons -_08014D9C: .4byte gBattleWeather -_08014DA0: - movs r3, 0x1 -_08014DA2: - movs r7, 0x1 -_08014DA4: - ldr r1, _08014DE8 @ =gBattleMons - movs r0, 0x58 - mov r2, r9 - muls r2, r0 - adds r0, r2, 0 - adds r4, r0, r1 - ldrh r0, [r4, 0x6] - muls r3, r0 - ldr r2, _08014DEC @ =gStatStageRatios - movs r1, 0x1B - ldrsb r1, [r4, r1] - lsls r1, 1 - adds r0, r1, r2 - ldrb r0, [r0] - muls r0, r3 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - bl __divsi3 - mov r8, r0 - ldrh r0, [r4, 0x2E] - cmp r0, 0xAF - bne _08014DF4 - ldr r1, _08014DF0 @ =gEnigmaBerries - mov r3, r9 - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r6, [r0, 0x7] - ldrb r5, [r0, 0x1A] - b _08014E08 - .align 2, 0 -_08014DE8: .4byte gBattleMons -_08014DEC: .4byte gStatStageRatios -_08014DF0: .4byte gEnigmaBerries -_08014DF4: - ldrh r0, [r4, 0x2E] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r6, r0, 24 - ldrh r0, [r4, 0x2E] - bl ItemId_GetHoldEffectParam - lsls r0, 24 - lsrs r5, r0, 24 -_08014E08: - ldr r0, _08014EC4 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08014E3C - ldr r0, _08014EC8 @ =0x00000822 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08014E3C - mov r0, r9 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _08014E3C - movs r0, 0x6E - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - movs r1, 0x64 - bl __udivsi3 - mov r8, r0 -_08014E3C: - cmp r6, 0x18 - bne _08014E46 - mov r2, r8 - lsrs r2, 1 - mov r8, r2 -_08014E46: - ldr r1, _08014ECC @ =gBattleMons - movs r0, 0x58 - mov r3, r9 - muls r3, r0 - adds r0, r3, 0 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08014E64 - mov r0, r8 - lsrs r0, 2 - mov r8, r0 -_08014E64: - cmp r6, 0x1A - bne _08014E80 - ldr r0, _08014ED0 @ =gUnknown_2023E80 - ldrh r4, [r0] - lsls r0, r5, 16 - subs r0, r5 - movs r1, 0x64 - bl __divsi3 - cmp r4, r0 - bge _08014E80 - movs r1, 0x1 - negs r1, r1 - mov r8, r1 -_08014E80: - ldr r1, _08014ECC @ =gBattleMons - movs r0, 0x58 - mov r2, r10 - muls r2, r0 - adds r0, r2, 0 - adds r4, r0, r1 - ldrh r0, [r4, 0x6] - adds r3, r0, 0 - muls r3, r7 - ldr r2, _08014ED4 @ =gStatStageRatios - movs r1, 0x1B - ldrsb r1, [r4, r1] - lsls r1, 1 - adds r0, r1, r2 - ldrb r0, [r0] - muls r0, r3 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - bl __divsi3 - adds r7, r0, 0 - ldrh r0, [r4, 0x2E] - cmp r0, 0xAF - bne _08014EDC - ldr r1, _08014ED8 @ =gEnigmaBerries - mov r3, r10 - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r6, [r0, 0x7] - ldrb r5, [r0, 0x1A] - b _08014EF0 - .align 2, 0 -_08014EC4: .4byte gBattleTypeFlags -_08014EC8: .4byte 0x00000822 -_08014ECC: .4byte gBattleMons -_08014ED0: .4byte gUnknown_2023E80 -_08014ED4: .4byte gStatStageRatios -_08014ED8: .4byte gEnigmaBerries -_08014EDC: - ldrh r0, [r4, 0x2E] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r6, r0, 24 - ldrh r0, [r4, 0x2E] - bl ItemId_GetHoldEffectParam - lsls r0, 24 - lsrs r5, r0, 24 -_08014EF0: - ldr r0, _08014F68 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08014F20 - ldr r0, _08014F6C @ =0x00000822 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08014F20 - mov r0, r10 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _08014F20 - movs r0, 0x6E - muls r0, r7 - movs r1, 0x64 - bl __udivsi3 - adds r7, r0, 0 -_08014F20: - cmp r6, 0x18 - bne _08014F26 - lsrs r7, 1 -_08014F26: - ldr r2, _08014F70 @ =gBattleMons - movs r0, 0x58 - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - adds r1, r2, 0 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08014F42 - lsrs r7, 2 -_08014F42: - cmp r6, 0x1A - bne _08014F5C - ldr r0, _08014F74 @ =gUnknown_2023E80 - ldrh r4, [r0] - lsls r0, r5, 16 - subs r0, r5 - movs r1, 0x64 - bl __divsi3 - cmp r4, r0 - bge _08014F5C - movs r7, 0x1 - negs r7, r7 -_08014F5C: - ldr r2, [sp, 0x4] - cmp r2, 0 - beq _08014F78 - movs r3, 0 - b _08015014 - .align 2, 0 -_08014F68: .4byte gBattleTypeFlags -_08014F6C: .4byte 0x00000822 -_08014F70: .4byte gBattleMons -_08014F74: .4byte gUnknown_2023E80 -_08014F78: - ldr r0, _08014F98 @ =gChosenActionByBattler - mov r3, r9 - adds r1, r3, r0 - ldrb r1, [r1] - adds r2, r0, 0 - cmp r1, 0 - bne _08014FC8 - ldr r0, _08014F9C @ =gProtectStructs - lsls r1, r3, 4 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 29 - cmp r0, 0 - bge _08014FA0 - movs r3, 0xA5 - b _08014FCA - .align 2, 0 -_08014F98: .4byte gChosenActionByBattler -_08014F9C: .4byte gProtectStructs -_08014FA0: - ldr r0, _08014FC0 @ =gBattleStruct - ldr r0, [r0] - add r0, r9 - adds r0, 0x80 - ldrb r0, [r0] - lsls r0, 1 - movs r1, 0x58 - mov r3, r9 - muls r3, r1 - adds r1, r3, 0 - adds r0, r1 - ldr r1, _08014FC4 @ =gBattleMons - adds r1, 0xC - adds r0, r1 - ldrh r3, [r0] - b _08014FCA - .align 2, 0 -_08014FC0: .4byte gBattleStruct -_08014FC4: .4byte gBattleMons -_08014FC8: - movs r3, 0 -_08014FCA: - mov r1, r10 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _08015014 - ldr r0, _08014FE8 @ =gProtectStructs - lsls r1, 4 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 29 - cmp r0, 0 - bge _08014FEC - movs r2, 0xA5 - b _08015016 - .align 2, 0 -_08014FE8: .4byte gProtectStructs -_08014FEC: - ldr r0, _0801500C @ =gBattleStruct - ldr r0, [r0] - add r0, r10 - adds r0, 0x80 - ldrb r0, [r0] - lsls r0, 1 - movs r1, 0x58 - mov r2, r10 - muls r2, r1 - adds r1, r2, 0 - adds r0, r1 - ldr r1, _08015010 @ =gBattleMons - adds r1, 0xC - adds r0, r1 - ldrh r2, [r0] - b _08015016 - .align 2, 0 -_0801500C: .4byte gBattleStruct -_08015010: .4byte gBattleMons -_08015014: - movs r2, 0 -_08015016: - ldr r4, _08015060 @ =gBattleMoves - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r4 - movs r1, 0x7 - ldrsb r1, [r0, r1] - lsls r3, r2, 1 - cmp r1, 0 - bne _0801503A - adds r0, r3, r2 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x7] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _08015078 -_0801503A: - adds r0, r3, r2 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x7] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - bne _0801506E - cmp r8, r7 - bne _08015064 - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _08015064 - movs r3, 0x2 - b _08015094 - .align 2, 0 -_08015060: .4byte gBattleMoves -_08015064: - cmp r8, r7 - bcs _08015096 - movs r0, 0x1 - str r0, [sp, 0x8] - b _08015096 -_0801506E: - cmp r1, r0 - bge _08015096 - movs r1, 0x1 - str r1, [sp, 0x8] - b _08015096 -_08015078: - cmp r8, r7 - bne _0801508E - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _0801508E - movs r2, 0x2 - str r2, [sp, 0x8] - b _08015096 -_0801508E: - cmp r8, r7 - bcs _08015096 - movs r3, 0x1 -_08015094: - str r3, [sp, 0x8] -_08015096: - ldr r0, [sp, 0x8] - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end GetWhoStrikesFirst - - thumb_func_start sub_80150A8 -sub_80150A8: @ 80150A8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r3, 0 - ldr r0, _080150FC @ =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08015114 - ldr r0, _08015100 @ =gActiveBattler - strb r3, [r0] - ldr r4, _08015104 @ =gBattlersCount - mov r8, r0 - ldrb r0, [r4] - cmp r3, r0 - bcc _080150D0 - b _080152FA -_080150D0: - ldr r7, _08015108 @ =gActionsByTurnOrder - ldr r6, _0801510C @ =gChosenActionByBattler - mov r2, r8 - ldr r5, _08015110 @ =gBattlerByTurnOrder -_080150D8: - adds r1, r3, r7 - ldrb r0, [r2] - adds r0, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r1, r3, r5 - ldrb r0, [r2] - strb r0, [r1] - adds r3, 0x1 - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r4] - cmp r0, r1 - bcc _080150D8 - b _080152FA - .align 2, 0 -_080150FC: .4byte gBattleTypeFlags -_08015100: .4byte gActiveBattler -_08015104: .4byte gBattlersCount -_08015108: .4byte gActionsByTurnOrder -_0801510C: .4byte gChosenActionByBattler -_08015110: .4byte gBattlerByTurnOrder -_08015114: - movs r0, 0x2 - ands r1, r0 - cmp r1, 0 - beq _08015164 - ldr r0, _08015158 @ =gActiveBattler - strb r3, [r0] - ldr r1, _0801515C @ =gBattlersCount - mov r8, r0 - adds r2, r1, 0 - ldrb r2, [r2] - cmp r3, r2 - bcs _08015174 - ldr r0, _08015160 @ =gChosenActionByBattler - ldrb r1, [r0] - adds r4, r0, 0 - cmp r1, 0x3 - beq _08015172 -_08015136: - mov r7, r8 - ldrb r0, [r7] - adds r0, 0x1 - strb r0, [r7] - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0801515C @ =gBattlersCount - ldrb r1, [r1] - cmp r0, r1 - bcs _08015174 - ldrb r0, [r7] - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0x3 - bne _08015136 - b _08015172 - .align 2, 0 -_08015158: .4byte gActiveBattler -_0801515C: .4byte gBattlersCount -_08015160: .4byte gChosenActionByBattler -_08015164: - ldr r0, _080151D8 @ =gChosenActionByBattler - ldrb r0, [r0] - ldr r2, _080151DC @ =gActiveBattler - mov r8, r2 - cmp r0, 0x3 - bne _08015174 - strb r3, [r2] -_08015172: - movs r3, 0x5 -_08015174: - cmp r3, 0x5 - bne _080151F8 - ldr r6, _080151E0 @ =gActionsByTurnOrder - ldr r1, _080151D8 @ =gChosenActionByBattler - mov r3, r8 - ldrb r0, [r3] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r6] - ldr r2, _080151E4 @ =gBattlerByTurnOrder - ldrb r0, [r3] - strb r0, [r2] - movs r3, 0x1 - movs r5, 0 - adds r4, r1, 0 - ldr r7, _080151E8 @ =gBattleMainFunc - mov r10, r7 - ldr r0, _080151EC @ =CheckFocusPunch_ClearVarsBeforeTurnStarts - mov r12, r0 - ldr r1, _080151F0 @ =gBattleStruct - mov r9, r1 - ldr r7, _080151F4 @ =gBattlersCount - ldrb r7, [r7] - cmp r5, r7 - bge _080151CC - adds r7, r6, 0 - adds r6, r4, 0 - adds r4, r2, 0 - ldr r2, _080151F4 @ =gBattlersCount -_080151AE: - mov r0, r8 - ldrb r0, [r0] - cmp r5, r0 - beq _080151C4 - adds r1, r3, r7 - adds r0, r5, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, r4 - strb r5, [r0] - adds r3, 0x1 -_080151C4: - adds r5, 0x1 - ldrb r1, [r2] - cmp r5, r1 - blt _080151AE -_080151CC: - mov r2, r12 - mov r3, r10 - str r2, [r3] - mov r7, r9 - ldr r0, [r7] - b _08015304 - .align 2, 0 -_080151D8: .4byte gChosenActionByBattler -_080151DC: .4byte gActiveBattler -_080151E0: .4byte gActionsByTurnOrder -_080151E4: .4byte gBattlerByTurnOrder -_080151E8: .4byte gBattleMainFunc -_080151EC: .4byte CheckFocusPunch_ClearVarsBeforeTurnStarts -_080151F0: .4byte gBattleStruct -_080151F4: .4byte gBattlersCount -_080151F8: - movs r0, 0 - mov r1, r8 - strb r0, [r1] - ldr r2, _08015288 @ =gBattlersCount - ldrb r0, [r2] - cmp r0, 0 - beq _0801523E - ldr r6, _0801528C @ =gChosenActionByBattler - mov r2, r8 - ldr r5, _08015290 @ =gActionsByTurnOrder - ldr r4, _08015294 @ =gBattlerByTurnOrder -_0801520E: - ldrb r0, [r2] - adds r0, r6 - ldrb r1, [r0] - subs r0, r1, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _0801522C - adds r0, r3, r5 - strb r1, [r0] - adds r1, r3, r4 - mov r7, r8 - ldrb r0, [r7] - strb r0, [r1] - adds r3, 0x1 -_0801522C: - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08015288 @ =gBattlersCount - ldrb r1, [r1] - cmp r0, r1 - bcc _0801520E -_0801523E: - movs r0, 0 - mov r2, r8 - strb r0, [r2] - ldr r7, _08015288 @ =gBattlersCount - ldrb r0, [r7] - cmp r0, 0 - beq _08015282 - ldr r6, _0801528C @ =gChosenActionByBattler - ldr r5, _08015290 @ =gActionsByTurnOrder - ldr r4, _08015294 @ =gBattlerByTurnOrder -_08015252: - ldrb r0, [r2] - adds r0, r6 - ldrb r1, [r0] - subs r0, r1, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _08015270 - adds r0, r3, r5 - strb r1, [r0] - adds r1, r3, r4 - mov r7, r8 - ldrb r0, [r7] - strb r0, [r1] - adds r3, 0x1 -_08015270: - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08015288 @ =gBattlersCount - ldrb r1, [r1] - cmp r0, r1 - bcc _08015252 -_08015282: - movs r5, 0 - b _080152F0 - .align 2, 0 -_08015288: .4byte gBattlersCount -_0801528C: .4byte gChosenActionByBattler -_08015290: .4byte gActionsByTurnOrder -_08015294: .4byte gBattlerByTurnOrder -_08015298: - adds r4, r5, 0x1 - adds r7, r4, 0 - ldrb r1, [r1] - cmp r7, r1 - bge _080152EE - ldr r6, _08015318 @ =gActionsByTurnOrder - lsls r2, r5, 24 - mov r8, r2 -_080152A8: - ldr r0, _0801531C @ =gBattlerByTurnOrder - adds r1, r5, r0 - ldrb r3, [r1] - adds r0, r4, r0 - ldrb r1, [r0] - adds r0, r5, r6 - ldrb r2, [r0] - cmp r2, 0x1 - beq _080152E4 - adds r0, r4, r6 - ldrb r0, [r0] - cmp r0, 0x1 - beq _080152E4 - cmp r2, 0x2 - beq _080152E4 - cmp r0, 0x2 - beq _080152E4 - adds r0, r3, 0 - movs r2, 0 - bl GetWhoStrikesFirst - lsls r0, 24 - cmp r0, 0 - beq _080152E4 - lsls r1, r4, 24 - lsrs r1, 24 - mov r3, r8 - lsrs r0, r3, 24 - bl SwapTurnOrder -_080152E4: - adds r4, 0x1 - ldr r0, _08015320 @ =gBattlersCount - ldrb r0, [r0] - cmp r4, r0 - blt _080152A8 -_080152EE: - adds r5, r7, 0 -_080152F0: - ldr r1, _08015320 @ =gBattlersCount - ldrb r0, [r1] - subs r0, 0x1 - cmp r5, r0 - blt _08015298 -_080152FA: - ldr r1, _08015324 @ =gBattleMainFunc - ldr r0, _08015328 @ =CheckFocusPunch_ClearVarsBeforeTurnStarts - str r0, [r1] - ldr r0, _0801532C @ =gBattleStruct - ldr r0, [r0] -_08015304: - adds r0, 0x48 - movs r1, 0 - strb r1, [r0] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08015318: .4byte gActionsByTurnOrder -_0801531C: .4byte gBattlerByTurnOrder -_08015320: .4byte gBattlersCount -_08015324: .4byte gBattleMainFunc -_08015328: .4byte CheckFocusPunch_ClearVarsBeforeTurnStarts -_0801532C: .4byte gBattleStruct - thumb_func_end sub_80150A8 - - thumb_func_start TurnValuesCleanUp -TurnValuesCleanUp: @ 8015330 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r1, _08015388 @ =gActiveBattler - movs r0, 0 - strb r0, [r1] - ldr r0, _0801538C @ =gBattlersCount - ldrb r2, [r0] - adds r5, r1, 0 - cmp r2, 0 - beq _08015428 - ldr r7, _08015390 @ =gProtectStructs - adds r6, r5, 0 - ldr r0, _08015394 @ =gUnknown_2023C34 - mov r12, r0 - ldr r1, _08015398 @ =gDisableStructs - mov r8, r1 - mov r10, r8 -_0801535E: - mov r2, r9 - cmp r2, 0 - beq _0801539C - ldrb r1, [r6] - lsls r1, 4 - adds r1, r7 - ldrb r2, [r1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldrb r1, [r6] - lsls r1, 4 - adds r1, r7 - ldrb r2, [r1] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - b _080153F8 - .align 2, 0 -_08015388: .4byte gActiveBattler -_0801538C: .4byte gBattlersCount -_08015390: .4byte gProtectStructs -_08015394: .4byte gUnknown_2023C34 -_08015398: .4byte gDisableStructs -_0801539C: - ldrb r0, [r6] - lsls r0, 4 - adds r2, r0, r7 - movs r1, 0 - mov r4, r10 - movs r3, 0 -_080153A8: - adds r0, r2, r1 - strb r3, [r0] - adds r1, 0x1 - cmp r1, 0xF - bls _080153A8 - ldrb r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r0, r4 - ldrb r0, [r1, 0x16] - cmp r0, 0 - beq _080153C6 - subs r0, 0x1 - strb r0, [r1, 0x16] -_080153C6: - ldrb r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r0, r4 - ldrb r0, [r1, 0x19] - cmp r0, 0 - beq _080153F8 - subs r0, 0x1 - strb r0, [r1, 0x19] - ldrb r2, [r5] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x19] - cmp r0, 0 - bne _080153F8 - movs r0, 0x58 - muls r2, r0 - add r2, r12 - ldr r0, [r2] - ldr r1, _08015440 @ =0xffbfffff - ands r0, r1 - str r0, [r2] -_080153F8: - ldrb r2, [r5] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - add r0, r8 - ldrb r0, [r0, 0xA] - cmp r0, 0 - bne _08015416 - movs r0, 0x58 - muls r2, r0 - add r2, r12 - ldr r0, [r2] - ldr r1, _08015444 @ =0xfeffffff - ands r0, r1 - str r0, [r2] -_08015416: - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08015448 @ =gBattlersCount - ldrb r1, [r1] - cmp r0, r1 - bcc _0801535E -_08015428: - movs r0, 0 - ldr r2, _0801544C @ =gSideTimers - strb r0, [r2, 0x8] - strb r0, [r2, 0x14] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08015440: .4byte 0xffbfffff -_08015444: .4byte 0xfeffffff -_08015448: .4byte gBattlersCount -_0801544C: .4byte gSideTimers - thumb_func_end TurnValuesCleanUp - - thumb_func_start SpecialStatusesClear -SpecialStatusesClear: @ 8015450 - push {r4-r6,lr} - ldr r2, _08015494 @ =gActiveBattler - movs r0, 0 - strb r0, [r2] - ldr r0, _08015498 @ =gBattlersCount - ldrb r1, [r0] - adds r6, r0, 0 - cmp r1, 0 - beq _0801548E - adds r3, r2, 0 - movs r4, 0 - ldr r5, _0801549C @ =gSpecialStatuses -_08015468: - ldrb r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, r0, r5 - movs r1, 0 -_08015474: - adds r0, r2, r1 - strb r4, [r0] - adds r1, 0x1 - cmp r1, 0x13 - bls _08015474 - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r6] - cmp r0, r1 - bcc _08015468 -_0801548E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08015494: .4byte gActiveBattler -_08015498: .4byte gBattlersCount -_0801549C: .4byte gSpecialStatuses - thumb_func_end SpecialStatusesClear - - thumb_func_start CheckFocusPunch_ClearVarsBeforeTurnStarts -CheckFocusPunch_ClearVarsBeforeTurnStarts: @ 80154A0 - push {r4-r7,lr} - ldr r0, _08015528 @ =gHitMarker - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - bne _0801555E - ldr r2, _0801552C @ =gBattleStruct - ldr r0, [r2] - adds r0, 0x48 - ldr r1, _08015530 @ =gBattlersCount - ldrb r0, [r0] - mov r12, r2 - adds r6, r1, 0 - ldrb r1, [r6] - cmp r0, r1 - bcs _0801555E - ldr r5, _08015534 @ =gActiveBattler - ldr r4, _08015538 @ =gBattlerAttacker - movs r7, 0x84 - lsls r7, 1 -_080154CC: - ldr r1, [r2] - adds r1, 0x48 - ldrb r0, [r1] - strb r0, [r4] - strb r0, [r5] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r1, _0801553C @ =gChosenMoveByBattler - ldrb r3, [r5] - lsls r0, r3, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r7 - bne _08015550 - ldr r1, _08015540 @ =gBattleMons - movs r0, 0x58 - muls r0, r3 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - bne _08015550 - ldr r2, _08015544 @ =gDisableStructs - ldrb r1, [r4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x18] - lsls r0, 31 - cmp r0, 0 - bne _08015550 - ldr r0, _08015548 @ =gProtectStructs - lsls r1, r3, 4 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 29 - cmp r0, 0 - blt _08015550 - ldr r0, _0801554C @ =gUnknown_81D9015 - bl BattleScriptExecute - b _08015598 - .align 2, 0 -_08015528: .4byte gHitMarker -_0801552C: .4byte gBattleStruct -_08015530: .4byte gBattlersCount -_08015534: .4byte gActiveBattler -_08015538: .4byte gBattlerAttacker -_0801553C: .4byte gChosenMoveByBattler -_08015540: .4byte gBattleMons -_08015544: .4byte gDisableStructs -_08015548: .4byte gProtectStructs -_0801554C: .4byte gUnknown_81D9015 -_08015550: - mov r2, r12 - ldr r0, [r2] - adds r0, 0x48 - ldrb r0, [r0] - ldrb r1, [r6] - cmp r0, r1 - bcc _080154CC -_0801555E: - bl TryClearRageStatuses - ldr r1, _080155A0 @ =gCurrentTurnActionNumber - movs r0, 0 - strb r0, [r1] - ldr r1, _080155A4 @ =gCurrentActionFuncId - ldr r0, _080155A8 @ =gActionsByTurnOrder - movs r3, 0 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _080155AC @ =gDynamicBasePower - movs r2, 0 - strh r3, [r0] - ldr r0, _080155B0 @ =gBattleStruct - ldr r0, [r0] - strb r2, [r0, 0x13] - ldr r1, _080155B4 @ =gBattleMainFunc - ldr r0, _080155B8 @ =RunTurnActionsFunctions - str r0, [r1] - ldr r0, _080155BC @ =gBattleCommunication - strb r2, [r0, 0x3] - strb r2, [r0, 0x4] - ldr r0, _080155C0 @ =gBattleScripting - strb r2, [r0, 0x16] - ldr r0, _080155C4 @ =gBattleResources - ldr r0, [r0] - ldr r0, [r0, 0x8] - adds r0, 0x20 - strb r2, [r0] -_08015598: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080155A0: .4byte gCurrentTurnActionNumber -_080155A4: .4byte gCurrentActionFuncId -_080155A8: .4byte gActionsByTurnOrder -_080155AC: .4byte gDynamicBasePower -_080155B0: .4byte gBattleStruct -_080155B4: .4byte gBattleMainFunc -_080155B8: .4byte RunTurnActionsFunctions -_080155BC: .4byte gBattleCommunication -_080155C0: .4byte gBattleScripting -_080155C4: .4byte gBattleResources - thumb_func_end CheckFocusPunch_ClearVarsBeforeTurnStarts - - thumb_func_start RunTurnActionsFunctions -RunTurnActionsFunctions: @ 80155C8 - push {r4-r6,lr} - ldr r6, _0801561C @ =gBattleOutcome - ldrb r0, [r6] - ldr r2, _08015620 @ =gCurrentActionFuncId - cmp r0, 0 - beq _080155D8 - movs r0, 0xC - strb r0, [r2] -_080155D8: - ldr r5, _08015624 @ =gBattleStruct - ldr r0, [r5] - adds r0, 0x4B - ldr r4, _08015628 @ =gCurrentTurnActionNumber - ldrb r1, [r4] - strb r1, [r0] - ldr r1, _0801562C @ =gUnknown_8250038 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _08015630 @ =gBattlersCount - ldrb r1, [r4] - ldrb r0, [r0] - cmp r1, r0 - bcc _08015644 - ldr r2, _08015634 @ =gHitMarker - ldr r0, [r2] - ldr r1, _08015638 @ =0xffefffff - ands r0, r1 - str r0, [r2] - ldr r3, _0801563C @ =gBattleMainFunc - ldr r2, _08015640 @ =gUnknown_8250070 - ldrb r1, [r6] - movs r0, 0x7F - ands r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - str r0, [r3] - b _0801565C - .align 2, 0 -_0801561C: .4byte gBattleOutcome -_08015620: .4byte gCurrentActionFuncId -_08015624: .4byte gBattleStruct -_08015628: .4byte gCurrentTurnActionNumber -_0801562C: .4byte gUnknown_8250038 -_08015630: .4byte gBattlersCount -_08015634: .4byte gHitMarker -_08015638: .4byte 0xffefffff -_0801563C: .4byte gBattleMainFunc -_08015640: .4byte gUnknown_8250070 -_08015644: - ldr r0, [r5] - adds r0, 0x4B - ldrb r0, [r0] - cmp r0, r1 - beq _0801565C - ldr r2, _08015664 @ =gHitMarker - ldr r0, [r2] - ldr r1, _08015668 @ =0xfffffdff - ands r0, r1 - ldr r1, _0801566C @ =0xfff7ffff - ands r0, r1 - str r0, [r2] -_0801565C: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08015664: .4byte gHitMarker -_08015668: .4byte 0xfffffdff -_0801566C: .4byte 0xfff7ffff - thumb_func_end RunTurnActionsFunctions - - thumb_func_start sub_8015670 -sub_8015670: @ 8015670 - push {r4,lr} - ldr r1, _080156A8 @ =gCurrentActionFuncId - movs r0, 0 - strb r0, [r1] - ldr r0, _080156AC @ =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080156C4 - ldr r1, _080156B0 @ =gBattleTextBuff1 - ldr r4, _080156B4 @ =gBattleOutcome - ldrb r0, [r4] - strb r0, [r1] - movs r0, 0 - bl GetBattlerAtPosition - ldr r1, _080156B8 @ =gBattlerAttacker - strb r0, [r1] - ldr r1, _080156BC @ =gBattlescriptCurrInstr - ldr r0, _080156C0 @ =gUnknown_81D88CC - str r0, [r1] - ldrb r1, [r4] - movs r0, 0x7F - ands r0, r1 - strb r0, [r4] - b _0801576E - .align 2, 0 -_080156A8: .4byte gCurrentActionFuncId -_080156AC: .4byte gBattleTypeFlags -_080156B0: .4byte gBattleTextBuff1 -_080156B4: .4byte gBattleOutcome -_080156B8: .4byte gBattlerAttacker -_080156BC: .4byte gBattlescriptCurrInstr -_080156C0: .4byte gUnknown_81D88CC -_080156C4: - ldr r0, _080156E0 @ =0x00080900 - ands r0, r1 - cmp r0, 0 - beq _080156EC - bl BattleStopLowHpSound - movs r0, 0x9B - lsls r0, 1 - bl PlayBGM - ldr r1, _080156E4 @ =gBattlescriptCurrInstr - ldr r0, _080156E8 @ =gUnknown_81D88D7 - b _0801576C - .align 2, 0 -_080156E0: .4byte 0x00080900 -_080156E4: .4byte gBattlescriptCurrInstr -_080156E8: .4byte gUnknown_81D88D7 -_080156EC: - movs r0, 0xA - ands r1, r0 - cmp r1, 0x8 - bne _08015768 - bl BattleStopLowHpSound - ldr r1, _08015720 @ =gBattlescriptCurrInstr - ldr r0, _08015724 @ =gUnknown_81D87EF - str r0, [r1] - ldr r2, _08015728 @ =gTrainers - ldr r0, _0801572C @ =gTrainerBattleOpponent_A - ldrh r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0, 0x1] - subs r0, 0x53 - cmp r0, 0x7 - bhi _0801575E - lsls r0, 2 - ldr r1, _08015730 @ =_08015734 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08015720: .4byte gBattlescriptCurrInstr -_08015724: .4byte gUnknown_81D87EF -_08015728: .4byte gTrainers -_0801572C: .4byte gTrainerBattleOpponent_A -_08015730: .4byte _08015734 - .align 2, 0 -_08015734: - .4byte _0801575E - .4byte _08015754 - .4byte _0801575E - .4byte _0801575E - .4byte _0801575E - .4byte _0801575E - .4byte _0801575E - .4byte _08015754 -_08015754: - movs r0, 0x9C - lsls r0, 1 - bl PlayBGM - b _0801576E -_0801575E: - movs r0, 0x9B - lsls r0, 1 - bl PlayBGM - b _0801576E -_08015768: - ldr r1, _0801577C @ =gBattlescriptCurrInstr - ldr r0, _08015780 @ =gUnknown_81D8803 -_0801576C: - str r0, [r1] -_0801576E: - ldr r1, _08015784 @ =gBattleMainFunc - ldr r0, _08015788 @ =sub_8015910 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801577C: .4byte gBattlescriptCurrInstr -_08015780: .4byte gUnknown_81D8803 -_08015784: .4byte gBattleMainFunc -_08015788: .4byte sub_8015910 - thumb_func_end sub_8015670 - - thumb_func_start sub_801578C -sub_801578C: @ 801578C - push {r4,lr} - ldr r1, _080157C4 @ =gCurrentActionFuncId - movs r0, 0 - strb r0, [r1] - ldr r0, _080157C8 @ =gBattleTypeFlags - ldr r1, [r0] - movs r4, 0x2 - adds r0, r1, 0 - ands r0, r4 - cmp r0, 0 - beq _080157E0 - ldr r1, _080157CC @ =gBattleTextBuff1 - ldr r4, _080157D0 @ =gBattleOutcome - ldrb r0, [r4] - strb r0, [r1] - movs r0, 0 - bl GetBattlerAtPosition - ldr r1, _080157D4 @ =gBattlerAttacker - strb r0, [r1] - ldr r1, _080157D8 @ =gBattlescriptCurrInstr - ldr r0, _080157DC @ =gUnknown_81D88CC - str r0, [r1] - ldrb r1, [r4] - movs r0, 0x7F - ands r0, r1 - strb r0, [r4] - b _08015830 - .align 2, 0 -_080157C4: .4byte gCurrentActionFuncId -_080157C8: .4byte gBattleTypeFlags -_080157CC: .4byte gBattleTextBuff1 -_080157D0: .4byte gBattleOutcome -_080157D4: .4byte gBattlerAttacker -_080157D8: .4byte gBattlescriptCurrInstr -_080157DC: .4byte gUnknown_81D88CC -_080157E0: - movs r0, 0x8 - ands r1, r0 - cmp r1, 0 - beq _08015824 - bl ScrSpecial_GetTrainerBattleMode - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x9 - bne _08015824 - bl sub_80803D8 - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _0801580C - ldr r1, _08015808 @ =gBattleCommunication - movs r0, 0x1 - strb r0, [r1, 0x5] - b _08015810 - .align 2, 0 -_08015808: .4byte gBattleCommunication -_0801580C: - ldr r0, _0801581C @ =gBattleCommunication - strb r4, [r0, 0x5] -_08015810: - movs r0, 0x1 - bl GetBattlerAtPosition - ldr r1, _08015820 @ =gBattlerAttacker - strb r0, [r1] - b _0801582A - .align 2, 0 -_0801581C: .4byte gBattleCommunication -_08015820: .4byte gBattlerAttacker -_08015824: - ldr r1, _0801583C @ =gBattleCommunication - movs r0, 0 - strb r0, [r1, 0x5] -_0801582A: - ldr r1, _08015840 @ =gBattlescriptCurrInstr - ldr r0, _08015844 @ =gUnknown_81D8806 - str r0, [r1] -_08015830: - ldr r1, _08015848 @ =gBattleMainFunc - ldr r0, _0801584C @ =sub_8015910 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801583C: .4byte gBattleCommunication -_08015840: .4byte gBattlescriptCurrInstr -_08015844: .4byte gUnknown_81D8806 -_08015848: .4byte gBattleMainFunc -_0801584C: .4byte sub_8015910 - thumb_func_end sub_801578C - - thumb_func_start sub_8015850 -sub_8015850: @ 8015850 - push {lr} - ldr r1, _08015878 @ =gCurrentActionFuncId - movs r0, 0 - strb r0, [r1] - ldr r1, _0801587C @ =gProtectStructs - ldr r0, _08015880 @ =gBattlerAttacker - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0x1] - lsls r0, 27 - lsrs r0, 30 - cmp r0, 0x1 - beq _0801588C - cmp r0, 0x2 - beq _0801589C - ldr r1, _08015884 @ =gBattlescriptCurrInstr - ldr r0, _08015888 @ =gUnknown_81D8916 - b _080158A0 - .align 2, 0 -_08015878: .4byte gCurrentActionFuncId -_0801587C: .4byte gProtectStructs -_08015880: .4byte gBattlerAttacker -_08015884: .4byte gBattlescriptCurrInstr -_08015888: .4byte gUnknown_81D8916 -_0801588C: - ldr r1, _08015894 @ =gBattlescriptCurrInstr - ldr r0, _08015898 @ =gUnknown_81D8901 - b _080158A0 - .align 2, 0 -_08015894: .4byte gBattlescriptCurrInstr -_08015898: .4byte gUnknown_81D8901 -_0801589C: - ldr r1, _080158AC @ =gBattlescriptCurrInstr - ldr r0, _080158B0 @ =gUnknown_81D890F -_080158A0: - str r0, [r1] - ldr r1, _080158B4 @ =gBattleMainFunc - ldr r0, _080158B8 @ =sub_8015910 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080158AC: .4byte gBattlescriptCurrInstr -_080158B0: .4byte gUnknown_81D890F -_080158B4: .4byte gBattleMainFunc -_080158B8: .4byte sub_8015910 - thumb_func_end sub_8015850 - - thumb_func_start sub_80158BC -sub_80158BC: @ 80158BC - ldr r1, _080158F0 @ =gCurrentActionFuncId - movs r0, 0 - strb r0, [r1] - ldr r1, _080158F4 @ =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x7 - strb r0, [r1, 0x1] - ldr r2, _080158F8 @ =gBattlerAttacker - ldrb r0, [r2] - strb r0, [r1, 0x2] - ldr r3, _080158FC @ =gBattlerPartyIndexes - 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, _08015900 @ =gBattlescriptCurrInstr - ldr r0, _08015904 @ =gUnknown_81D891D - str r0, [r1] - ldr r1, _08015908 @ =gBattleMainFunc - ldr r0, _0801590C @ =sub_8015910 - str r0, [r1] - bx lr - .align 2, 0 -_080158F0: .4byte gCurrentActionFuncId -_080158F4: .4byte gBattleTextBuff1 -_080158F8: .4byte gBattlerAttacker -_080158FC: .4byte gBattlerPartyIndexes -_08015900: .4byte gBattlescriptCurrInstr -_08015904: .4byte gUnknown_81D891D -_08015908: .4byte gBattleMainFunc -_0801590C: .4byte sub_8015910 - thumb_func_end sub_80158BC - - thumb_func_start sub_8015910 -sub_8015910: @ 8015910 - push {r4-r7,lr} - ldr r0, _08015974 @ =gCurrentActionFuncId - ldrb r0, [r0] - subs r0, 0xB - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08015A04 - ldr r0, _08015978 @ =gBattleTypeFlags - ldr r1, [r0] - ldr r0, _0801597C @ =0x00080b92 - ands r1, r0 - cmp r1, 0 - bne _080159BC - ldr r2, _08015980 @ =gActiveBattler - strb r1, [r2] - ldr r0, _08015984 @ =gBattlersCount - ldrb r0, [r0] - cmp r1, r0 - bcs _080159BC - adds r4, r2, 0 - ldr r6, _08015988 @ =gBattleMons - movs r5, 0x58 - adds r7, r6, 0 - adds r7, 0x30 -_08015942: - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080159AA - ldr r2, _0801598C @ =gBattleResults - ldrh r0, [r2, 0x6] - cmp r0, 0 - bne _08015990 - 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 _080159AA - .align 2, 0 -_08015974: .4byte gCurrentActionFuncId -_08015978: .4byte gBattleTypeFlags -_0801597C: .4byte 0x00080b92 -_08015980: .4byte gActiveBattler -_08015984: .4byte gBattlersCount -_08015988: .4byte gBattleMons -_0801598C: .4byte gBattleResults -_08015990: - 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 -_080159AA: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _080159EC @ =gBattlersCount - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _08015942 -_080159BC: - bl sub_812BFDC - ldr r0, _080159F0 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080159D0 - bl sub_810CB90 -_080159D0: - movs r0, 0x3 - bl BeginFastPaletteFade - movs r0, 0x5 - bl FadeOutMapMusic - ldr r1, _080159F4 @ =gBattleMainFunc - ldr r0, _080159F8 @ =sub_8015A30 - str r0, [r1] - ldr r1, _080159FC @ =gUnknown_300537C - ldr r0, _08015A00 @ =BattleMainCB2 - str r0, [r1] - b _08015A1E - .align 2, 0 -_080159EC: .4byte gBattlersCount -_080159F0: .4byte gBattleTypeFlags -_080159F4: .4byte gBattleMainFunc -_080159F8: .4byte sub_8015A30 -_080159FC: .4byte gUnknown_300537C -_08015A00: .4byte BattleMainCB2 -_08015A04: - ldr r0, _08015A24 @ =gBattleControllerExecFlags - ldr r0, [r0] - cmp r0, 0 - bne _08015A1E - ldr r1, _08015A28 @ =gBattleScriptingCommandsTable - ldr r0, _08015A2C @ =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 -_08015A1E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08015A24: .4byte gBattleControllerExecFlags -_08015A28: .4byte gBattleScriptingCommandsTable -_08015A2C: .4byte gBattlescriptCurrInstr - thumb_func_end sub_8015910 - - thumb_func_start sub_8015A30 -sub_8015A30: @ 8015A30 - push {lr} - ldr r0, _08015A58 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08015A8E - bl ResetSpriteData - ldr r0, _08015A5C @ =gLeveledUpInBattle - ldrb r0, [r0] - cmp r0, 0 - beq _08015A52 - ldr r0, _08015A60 @ =gBattleOutcome - ldrb r0, [r0] - cmp r0, 0x1 - beq _08015A6C -_08015A52: - ldr r1, _08015A64 @ =gBattleMainFunc - ldr r0, _08015A68 @ =ReturnFromBattleToOverworld - b _08015A70 - .align 2, 0 -_08015A58: .4byte gPaletteFade -_08015A5C: .4byte gLeveledUpInBattle -_08015A60: .4byte gBattleOutcome -_08015A64: .4byte gBattleMainFunc -_08015A68: .4byte ReturnFromBattleToOverworld -_08015A6C: - ldr r1, _08015A94 @ =gBattleMainFunc - ldr r0, _08015A98 @ =sub_8015AA0 -_08015A70: - str r0, [r1] - bl FreeAllWindowBuffers - ldr r0, _08015A9C @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08015A8E - bl FreeMonSpritesGfx - bl FreeBattleSpritesData - bl FreeBattleResources -_08015A8E: - pop {r0} - bx r0 - .align 2, 0 -_08015A94: .4byte gBattleMainFunc -_08015A98: .4byte sub_8015AA0 -_08015A9C: .4byte gBattleTypeFlags - thumb_func_end sub_8015A30 - - thumb_func_start sub_8015AA0 -sub_8015AA0: @ 8015AA0 - push {r4,r5,lr} - ldr r0, _08015AF4 @ =gLeveledUpInBattle - ldrb r1, [r0] - adds r3, r0, 0 - cmp r1, 0 - beq _08015B16 -_08015AAC: - movs r5, 0 -_08015AAE: - ldrb r2, [r3] - ldr r0, _08015AF8 @ =gBitTable - lsls r1, r5, 2 - adds r1, r0 - ldr r1, [r1] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _08015B08 - bics r2, r1 - strb r2, [r3] - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _08015AFC @ =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 _08015B08 - ldr r0, _08015B00 @ =gBattleMainFunc - ldr r1, _08015B04 @ =sub_8015B30 - str r1, [r0] - lsls r3, r5, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r2, 0 - movs r2, 0x81 - bl EvolutionScene - b _08015B1C - .align 2, 0 -_08015AF4: .4byte gLeveledUpInBattle -_08015AF8: .4byte gBitTable -_08015AFC: .4byte gPlayerParty -_08015B00: .4byte gBattleMainFunc -_08015B04: .4byte sub_8015B30 -_08015B08: - adds r5, 0x1 - ldr r3, _08015B24 @ =gLeveledUpInBattle - cmp r5, 0x5 - ble _08015AAE - ldrb r0, [r3] - cmp r0, 0 - bne _08015AAC -_08015B16: - ldr r1, _08015B28 @ =gBattleMainFunc - ldr r0, _08015B2C @ =ReturnFromBattleToOverworld - str r0, [r1] -_08015B1C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08015B24: .4byte gLeveledUpInBattle -_08015B28: .4byte gBattleMainFunc -_08015B2C: .4byte ReturnFromBattleToOverworld - thumb_func_end sub_8015AA0 - - thumb_func_start sub_8015B30 -sub_8015B30: @ 8015B30 - push {lr} - ldr r0, _08015B48 @ =gMain - ldr r1, [r0, 0x4] - ldr r0, _08015B4C @ =BattleMainCB2 - cmp r1, r0 - bne _08015B42 - ldr r1, _08015B50 @ =gBattleMainFunc - ldr r0, _08015B54 @ =sub_8015AA0 - str r0, [r1] -_08015B42: - pop {r0} - bx r0 - .align 2, 0 -_08015B48: .4byte gMain -_08015B4C: .4byte BattleMainCB2 -_08015B50: .4byte gBattleMainFunc -_08015B54: .4byte sub_8015AA0 - thumb_func_end sub_8015B30 - - thumb_func_start ReturnFromBattleToOverworld -ReturnFromBattleToOverworld: @ 8015B58 - push {r4-r6,lr} - ldr r6, _08015BDC @ =gBattleTypeFlags - ldr r0, [r6] - movs r5, 0x2 - ands r0, r5 - cmp r0, 0 - bne _08015B74 - ldr r4, _08015BE0 @ =gPlayerParty - adds r0, r4, 0 - bl sub_8043A68 - adds r0, r4, 0 - bl sub_8043B40 -_08015B74: - ldr r4, [r6] - adds r0, r4, 0 - ands r0, r5 - cmp r0, 0 - beq _08015B86 - ldr r0, _08015BE4 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _08015BD4 -_08015B86: - ldr r1, _08015BE8 @ =gSpecialVar_Result - ldr r5, _08015BEC @ =gBattleOutcome - ldrb r0, [r5] - strh r0, [r1] - ldr r3, _08015BF0 @ =gMain - ldr r0, _08015BF4 @ =0x00000439 - adds r2, r3, r0 - ldrb r1, [r2] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r0, _08015BF8 @ =gPreBattleCallback1 - ldr r0, [r0] - str r0, [r3] - movs r0, 0x80 - lsls r0, 3 - ands r4, r0 - cmp r4, 0 - beq _08015BC6 - ldr r0, _08015BFC @ =gEnemyParty - bl UpdateRoamerHPStatus - ldrb r1, [r5] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08015BC2 - cmp r1, 0x7 - bne _08015BC6 -_08015BC2: - bl SetRoamerInactive -_08015BC6: - movs r0, 0x53 - bl m4aSongNumStop - ldr r0, _08015BF0 @ =gMain - ldr r0, [r0, 0x8] - bl SetMainCallback2 -_08015BD4: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08015BDC: .4byte gBattleTypeFlags -_08015BE0: .4byte gPlayerParty -_08015BE4: .4byte gReceivedRemoteLinkPlayers -_08015BE8: .4byte gSpecialVar_Result -_08015BEC: .4byte gBattleOutcome -_08015BF0: .4byte gMain -_08015BF4: .4byte 0x00000439 -_08015BF8: .4byte gPreBattleCallback1 -_08015BFC: .4byte gEnemyParty - thumb_func_end ReturnFromBattleToOverworld - - thumb_func_start RunBattleScriptCommands_PopCallbacksStack -RunBattleScriptCommands_PopCallbacksStack: @ 8015C00 - push {lr} - ldr r0, _08015C3C @ =gCurrentActionFuncId - ldrb r0, [r0] - subs r0, 0xB - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08015C48 - ldr r3, _08015C40 @ =gBattleResources - ldr r0, [r3] - ldr r0, [r0, 0xC] - adds r1, r0, 0 - adds r1, 0x20 - ldrb r0, [r1] - cmp r0, 0 - beq _08015C24 - subs r0, 0x1 - strb r0, [r1] -_08015C24: - ldr r2, _08015C44 @ =gBattleMainFunc - ldr r0, [r3] - ldr r1, [r0, 0xC] - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - lsls r0, 2 - adds r1, r0 - ldr r0, [r1] - str r0, [r2] - b _08015C62 - .align 2, 0 -_08015C3C: .4byte gCurrentActionFuncId -_08015C40: .4byte gBattleResources -_08015C44: .4byte gBattleMainFunc -_08015C48: - ldr r0, _08015C68 @ =gBattleControllerExecFlags - ldr r0, [r0] - cmp r0, 0 - bne _08015C62 - ldr r1, _08015C6C @ =gBattleScriptingCommandsTable - ldr r0, _08015C70 @ =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 -_08015C62: - pop {r0} - bx r0 - .align 2, 0 -_08015C68: .4byte gBattleControllerExecFlags -_08015C6C: .4byte gBattleScriptingCommandsTable -_08015C70: .4byte gBattlescriptCurrInstr - thumb_func_end RunBattleScriptCommands_PopCallbacksStack - - thumb_func_start RunBattleScriptCommands -RunBattleScriptCommands: @ 8015C74 - push {lr} - ldr r0, _08015C94 @ =gBattleControllerExecFlags - ldr r0, [r0] - cmp r0, 0 - bne _08015C90 - ldr r1, _08015C98 @ =gBattleScriptingCommandsTable - ldr r0, _08015C9C @ =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 -_08015C90: - pop {r0} - bx r0 - .align 2, 0 -_08015C94: .4byte gBattleControllerExecFlags -_08015C98: .4byte gBattleScriptingCommandsTable -_08015C9C: .4byte gBattlescriptCurrInstr - thumb_func_end RunBattleScriptCommands - - thumb_func_start sub_8015CA0 -sub_8015CA0: @ 8015CA0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r0, 0x4 - str r0, [sp] - ldr r6, _08015CE0 @ =gBattlerAttacker - ldr r1, _08015CE4 @ =gBattlerByTurnOrder - ldr r0, _08015CE8 @ =gCurrentTurnActionNumber - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r6] - ldr r1, _08015CEC @ =gBattleStruct - ldr r3, [r1] - adds r0, r3, 0 - adds r0, 0x91 - ldrb r2, [r0] - ldr r1, _08015CF0 @ =gBitTable - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ands r2, r0 - cmp r2, 0 - beq _08015CF8 - ldr r1, _08015CF4 @ =gCurrentActionFuncId - movs r0, 0xC - b _0801634C - .align 2, 0 -_08015CE0: .4byte gBattlerAttacker -_08015CE4: .4byte gBattlerByTurnOrder -_08015CE8: .4byte gCurrentTurnActionNumber -_08015CEC: .4byte gBattleStruct -_08015CF0: .4byte gBitTable -_08015CF4: .4byte gCurrentActionFuncId -_08015CF8: - ldr r1, _08015D6C @ =gCritMultiplier - movs r0, 0x1 - strb r0, [r1] - ldr r1, _08015D70 @ =gBattleScripting - movs r0, 0x1 - strb r0, [r1, 0xE] - adds r0, r3, 0 - adds r0, 0xB7 - strb r2, [r0] - ldr r0, _08015D74 @ =gMoveResultFlags - strb r2, [r0] - ldr r0, _08015D78 @ =gMultiHitCounter - strb r2, [r0] - ldr r0, _08015D7C @ =gBattleCommunication - strb r2, [r0, 0x6] - ldr r2, _08015D80 @ =gCurrMovePos - ldr r3, _08015D84 @ =gChosenMovePos - mov r9, r3 - ldrb r0, [r6] - ldr r4, _08015D88 @ =gBattleStruct - ldr r1, [r4] - adds r0, r1 - adds r0, 0x80 - ldrb r0, [r0] - strb r0, [r3] - strb r0, [r2] - ldr r1, _08015D8C @ =gProtectStructs - ldrb r4, [r6] - lsls r0, r4, 4 - adds r3, r0, r1 - ldrb r1, [r3] - lsls r0, r1, 29 - mov r8, r2 - cmp r0, 0 - bge _08015D9C - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - ldr r2, _08015D90 @ =gCurrentMove - ldr r1, _08015D94 @ =gChosenMove - movs r0, 0xA5 - strh r0, [r1] - strh r0, [r2] - ldr r2, _08015D98 @ =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, [r6] - ldr r3, _08015D88 @ =gBattleStruct - ldr r2, [r3] - b _08015EF6 - .align 2, 0 -_08015D6C: .4byte gCritMultiplier -_08015D70: .4byte gBattleScripting -_08015D74: .4byte gMoveResultFlags -_08015D78: .4byte gMultiHitCounter -_08015D7C: .4byte gBattleCommunication -_08015D80: .4byte gCurrMovePos -_08015D84: .4byte gChosenMovePos -_08015D88: .4byte gBattleStruct -_08015D8C: .4byte gProtectStructs -_08015D90: .4byte gCurrentMove -_08015D94: .4byte gChosenMove -_08015D98: .4byte gHitMarker -_08015D9C: - ldr r0, _08015DD4 @ =gBattleMons - movs r1, 0x58 - adds r5, r4, 0 - muls r5, r1 - adds r1, r0, 0 - adds r1, 0x50 - adds r1, r5, r1 - ldr r2, [r1] - movs r1, 0x80 - lsls r1, 5 - ands r1, r2 - mov r10, r0 - cmp r1, 0 - bne _08015DC2 - movs r7, 0x80 - lsls r7, 15 - ands r7, r2 - cmp r7, 0 - beq _08015DE4 -_08015DC2: - ldr r3, _08015DD8 @ =gCurrentMove - ldr r2, _08015DDC @ =gChosenMove - ldr r1, _08015DE0 @ =gLockedMoves - lsls r0, r4, 1 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] - strh r0, [r3] - b _08015F18 - .align 2, 0 -_08015DD4: .4byte gBattleMons -_08015DD8: .4byte gCurrentMove -_08015DDC: .4byte gChosenMove -_08015DE0: .4byte gLockedMoves -_08015DE4: - ldr r3, _08015E38 @ =gDisableStructs - mov r12, r3 - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - add r0, r12 - ldrh r4, [r0, 0x6] - adds r2, r4, 0 - cmp r2, 0 - beq _08015EBC - ldrb r3, [r0, 0xC] - lsls r0, r3, 1 - adds r0, r5 - mov r5, r10 - adds r5, 0xC - adds r0, r5 - ldrh r1, [r0] - cmp r2, r1 - bne _08015E48 - ldr r2, _08015E3C @ =gCurrentMove - ldr r0, _08015E40 @ =gChosenMove - strh r4, [r0] - strh r4, [r2] - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r12 - ldrb r0, [r0, 0xC] - mov r4, r9 - strb r0, [r4] - mov r1, r8 - strb r0, [r1] - ldrh r0, [r2] - movs r1, 0 - bl GetMoveTarget - ldrb r1, [r6] - ldr r3, _08015E44 @ =gBattleStruct - ldr r2, [r3] - b _08015EF6 - .align 2, 0 -_08015E38: .4byte gDisableStructs -_08015E3C: .4byte gCurrentMove -_08015E40: .4byte gChosenMove -_08015E44: .4byte gBattleStruct -_08015E48: - cmp r2, 0 - beq _08015EBC - cmp r2, r1 - beq _08015EBC - mov r4, r9 - strb r3, [r4] - mov r0, r8 - strb r3, [r0] - ldr r3, _08015EB0 @ =gCurrentMove - ldr r2, _08015EB4 @ =gChosenMove - ldrb r0, [r0] - lsls r0, 1 - ldrb r1, [r6] - movs r4, 0x58 - muls r1, r4 - adds r0, r1 - adds r0, r5 - ldrh r0, [r0] - strh r0, [r2] - strh r0, [r3] - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r12 - movs r2, 0 - strh r7, [r0, 0x6] - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r12 - strb r2, [r0, 0xC] - ldrb r0, [r6] - 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, [r6] - ldr r3, _08015EB8 @ =gBattleStruct - ldr r2, [r3] - b _08015EF6 - .align 2, 0 -_08015EB0: .4byte gCurrentMove -_08015EB4: .4byte gChosenMove -_08015EB8: .4byte gBattleStruct -_08015EBC: - mov r4, r8 - ldrb r0, [r4] - lsls r0, 1 - ldr r4, _08015EFC @ =gBattlerAttacker - ldrb r2, [r4] - movs r1, 0x58 - muls r1, r2 - adds r0, r1 - mov r1, r10 - adds r1, 0xC - adds r0, r1 - ldr r1, _08015F00 @ =gChosenMoveByBattler - lsls r2, 1 - adds r2, r1 - ldrh r3, [r0] - ldrh r2, [r2] - cmp r3, r2 - beq _08015F10 - ldr r1, _08015F04 @ =gCurrentMove - ldr r0, _08015F08 @ =gChosenMove - strh r3, [r0] - strh r3, [r1] - ldrh r0, [r1] - movs r1, 0 - bl GetMoveTarget - ldrb r1, [r4] - ldr r2, _08015F0C @ =gBattleStruct - ldr r2, [r2] -_08015EF6: - adds r1, r2 - strb r0, [r1, 0xC] - b _08015F18 - .align 2, 0 -_08015EFC: .4byte gBattlerAttacker -_08015F00: .4byte gChosenMoveByBattler -_08015F04: .4byte gCurrentMove -_08015F08: .4byte gChosenMove -_08015F0C: .4byte gBattleStruct -_08015F10: - ldr r1, _08015F30 @ =gCurrentMove - ldr r0, _08015F34 @ =gChosenMove - strh r3, [r0] - strh r3, [r1] -_08015F18: - ldr r0, _08015F38 @ =gBattlerAttacker - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _08015F40 - ldr r0, _08015F3C @ =gBattleResults - ldr r1, _08015F30 @ =gCurrentMove - ldrh r1, [r1] - strh r1, [r0, 0x22] - b _08015F48 - .align 2, 0 -_08015F30: .4byte gCurrentMove -_08015F34: .4byte gChosenMove -_08015F38: .4byte gBattlerAttacker -_08015F3C: .4byte gBattleResults -_08015F40: - ldr r0, _08015FAC @ =gBattleResults - ldr r1, _08015FB0 @ =gCurrentMove - ldrh r1, [r1] - strh r1, [r0, 0x24] -_08015F48: - ldr r4, _08015FB4 @ =gBattlerAttacker - ldrb r0, [r4] - bl GetBattlerSide - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _08015FB8 @ =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 _08015FC8 - ldr r2, _08015FBC @ =gBattleMoves - ldr r0, _08015FB0 @ =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 _08015FC8 - ldrb r0, [r3] - bl GetBattlerSide - adds r4, r0, 0 - ldrb r0, [r5, 0x9] - bl GetBattlerSide - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - beq _08015FC8 - ldr r1, _08015FC0 @ =gBattleMons - ldrb r2, [r5, 0x9] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _08015FC8 - ldr r0, _08015FC4 @ =gBattlerTarget - strb r2, [r0] - b _0801632C - .align 2, 0 -_08015FAC: .4byte gBattleResults -_08015FB0: .4byte gCurrentMove -_08015FB4: .4byte gBattlerAttacker -_08015FB8: .4byte gSideTimers -_08015FBC: .4byte gBattleMoves -_08015FC0: .4byte gBattleMons -_08015FC4: .4byte gBattlerTarget -_08015FC8: - ldr r2, _080160E4 @ =gBattleTypeFlags - ldr r1, [r2] - movs r0, 0x1 - ands r1, r0 - ldr r3, _080160E8 @ =gBattlerAttacker - adds r7, r2, 0 - cmp r1, 0 - bne _08015FDA - b _080162A0 -_08015FDA: - ldr r1, _080160EC @ =gSideTimers - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 2 - adds r0, r1 - ldrb r5, [r0, 0x8] - cmp r5, 0 - beq _08015FEC - b _080161F8 -_08015FEC: - ldr r2, _080160F0 @ =gBattleMoves - ldr r0, _080160F4 @ =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 _08016008 - ldrb r0, [r4, 0x6] - cmp r0, 0x10 - bne _08016008 - b _080161F8 -_08016008: - ldr r3, _080160F8 @ =gBattleMons - ldr r2, _080160E8 @ =gBattlerAttacker - ldrb r6, [r2] - ldr r0, _080160FC @ =gBattleStruct - ldr r0, [r0] - adds r0, r6, r0 - ldrb r1, [r0, 0xC] - movs r0, 0x58 - muls r0, r1 - adds r0, r3 - adds r0, 0x20 - ldrb r0, [r0] - adds r3, r2, 0 - cmp r0, 0x1F - bne _08016028 - b _080161F8 -_08016028: - ldrb r0, [r4, 0x2] - cmp r0, 0xD - beq _08016030 - b _080161F8 -_08016030: - adds r0, r6, 0 - bl GetBattlerSide - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _08016100 @ =gActiveBattler - strb r5, [r1] - ldr r0, _08016104 @ =gBattlersCount - ldrb r0, [r0] - cmp r5, r0 - bcs _080160A8 - adds r4, r1, 0 -_08016048: - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r6, r0 - beq _08016096 - ldr r0, _080160E8 @ =gBattlerAttacker - ldrb r1, [r0] - ldr r0, _080160FC @ =gBattleStruct - ldr r0, [r0] - adds r1, r0 - ldrb r0, [r1, 0xC] - ldrb r1, [r4] - cmp r0, r1 - beq _08016096 - ldr r1, _080160F8 @ =gBattleMons - ldrb r2, [r4] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1F - bne _08016096 - adds r0, r2, 0 - bl GetBattlerTurnOrderNum - lsls r0, 24 - lsrs r0, 24 - ldr r3, [sp] - cmp r0, r3 - bcs _08016096 - ldrb r0, [r4] - bl GetBattlerTurnOrderNum - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] -_08016096: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _08016104 @ =gBattlersCount - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _08016048 -_080160A8: - ldr r4, [sp] - cmp r4, 0x4 - beq _080160B0 - b _080161AA -_080160B0: - ldr r2, _080160F0 @ =gBattleMoves - ldr r0, _08016108 @ =gChosenMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x6] - ands r4, r0 - cmp r4, 0 - beq _08016130 - ldr r0, _080160E8 @ =gBattlerAttacker - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _08016110 - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _0801610C - movs r0, 0x1 - b _08016122 - .align 2, 0 -_080160E4: .4byte gBattleTypeFlags -_080160E8: .4byte gBattlerAttacker -_080160EC: .4byte gSideTimers -_080160F0: .4byte gBattleMoves -_080160F4: .4byte gCurrentMove -_080160F8: .4byte gBattleMons -_080160FC: .4byte gBattleStruct -_08016100: .4byte gActiveBattler -_08016104: .4byte gBattlersCount -_08016108: .4byte gChosenMove -_0801610C: - movs r0, 0x3 - b _08016122 -_08016110: - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _08016120 - movs r0, 0 - b _08016122 -_08016120: - movs r0, 0x2 -_08016122: - bl GetBattlerAtPosition - ldr r1, _0801612C @ =gBattlerTarget - strb r0, [r1] - b _08016140 - .align 2, 0 -_0801612C: .4byte gBattlerTarget -_08016130: - ldr r2, _08016178 @ =gBattlerTarget - ldr r0, _0801617C @ =gBattlerAttacker - ldrb r0, [r0] - ldr r1, _08016180 @ =gBattleStruct - ldr r1, [r1] - adds r0, r1 - ldrb r0, [r0, 0xC] - strb r0, [r2] -_08016140: - ldr r7, _08016184 @ =gAbsentBattlerFlags - ldrb r0, [r7] - ldr r1, _08016188 @ =gBitTable - mov r8, r1 - ldr r5, _08016178 @ =gBattlerTarget - ldrb r1, [r5] - lsls r1, 2 - add r1, r8 - ldr r1, [r1] - ands r0, r1 - cmp r0, 0 - bne _0801615A - b _0801632C -_0801615A: - ldr r6, _0801617C @ =gBattlerAttacker - ldrb r0, [r6] - bl GetBattlerSide - adds r4, r0, 0 - ldrb r0, [r5] - bl GetBattlerSide - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - beq _0801618C - ldrb r0, [r5] - b _0801631A - .align 2, 0 -_08016178: .4byte gBattlerTarget -_0801617C: .4byte gBattlerAttacker -_08016180: .4byte gBattleStruct -_08016184: .4byte gAbsentBattlerFlags -_08016188: .4byte gBitTable -_0801618C: - ldrb r0, [r6] - bl GetBattlerPosition - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl GetBattlerAtPosition - strb r0, [r5] - ldrb r1, [r7] - ldrb r2, [r5] - lsls r0, r2, 2 - add r0, r8 - b _08016310 -_080161AA: - ldr r4, _080161E4 @ =gActiveBattler - ldr r0, _080161E8 @ =gBattlerByTurnOrder - ldr r3, [sp] - adds r0, r3, r0 - ldrb r0, [r0] - strb r0, [r4] - ldrb r0, [r4] - ldr r2, _080161EC @ =gBattleMons - movs r1, 0x58 - muls r1, r0 - adds r1, r2 - adds r1, 0x20 - ldrb r1, [r1] - bl RecordAbilityBattle - ldr r2, _080161F0 @ =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, _080161F4 @ =gBattlerTarget - ldrb r0, [r4] - strb r0, [r1] - b _0801632C - .align 2, 0 -_080161E4: .4byte gActiveBattler -_080161E8: .4byte gBattlerByTurnOrder -_080161EC: .4byte gBattleMons -_080161F0: .4byte gSpecialStatuses -_080161F4: .4byte gBattlerTarget -_080161F8: - ldr r0, [r7] - movs r4, 0x1 - ands r0, r4 - cmp r0, 0 - beq _080162A0 - ldr r2, _08016238 @ =gBattleMoves - ldr r0, _0801623C @ =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 _080162A0 - ldrb r0, [r3] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _08016244 - bl Random - adds r1, r4, 0 - ands r1, r0 - cmp r1, 0 - beq _08016240 - movs r0, 0x1 - b _08016256 - .align 2, 0 -_08016238: .4byte gBattleMoves -_0801623C: .4byte gChosenMove -_08016240: - movs r0, 0x3 - b _08016256 -_08016244: - bl Random - adds r1, r4, 0 - ands r1, r0 - cmp r1, 0 - beq _08016254 - movs r0, 0 - b _08016256 -_08016254: - movs r0, 0x2 -_08016256: - bl GetBattlerAtPosition - ldr r1, _08016290 @ =gBattlerTarget - strb r0, [r1] - ldr r0, _08016294 @ =gAbsentBattlerFlags - ldrb r1, [r0] - ldr r2, _08016298 @ =gBitTable - ldr r5, _08016290 @ =gBattlerTarget - ldrb r0, [r5] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _0801632C - ldr r0, _0801629C @ =gBattlerAttacker - ldrb r0, [r0] - bl GetBattlerSide - adds r4, r0, 0 - ldrb r0, [r5] - bl GetBattlerSide - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - beq _0801632C - ldrb r0, [r5] - b _0801631A - .align 2, 0 -_08016290: .4byte gBattlerTarget -_08016294: .4byte gAbsentBattlerFlags -_08016298: .4byte gBitTable -_0801629C: .4byte gBattlerAttacker -_080162A0: - ldr r5, _080162E4 @ =gBattlerTarget - adds r2, r3, 0 - ldrb r0, [r2] - ldr r1, _080162E8 @ =gBattleStruct - ldr r1, [r1] - adds r0, r1 - ldrb r0, [r0, 0xC] - strb r0, [r5] - ldr r6, _080162EC @ =gAbsentBattlerFlags - ldrb r1, [r6] - ldr r7, _080162F0 @ =gBitTable - ldrb r0, [r5] - lsls r0, 2 - adds r0, r7 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _0801632C - ldrb r0, [r2] - str r3, [sp, 0x4] - bl GetBattlerSide - adds r4, r0, 0 - ldrb r0, [r5] - bl GetBattlerSide - lsls r4, 24 - lsls r0, 24 - ldr r3, [sp, 0x4] - cmp r4, r0 - beq _080162F4 - ldrb r0, [r5] - b _0801631A - .align 2, 0 -_080162E4: .4byte gBattlerTarget -_080162E8: .4byte gBattleStruct -_080162EC: .4byte gAbsentBattlerFlags -_080162F0: .4byte gBitTable -_080162F4: - ldrb r0, [r3] - bl GetBattlerPosition - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl GetBattlerAtPosition - strb r0, [r5] - ldrb r1, [r6] - ldrb r2, [r5] - lsls r0, r2, 2 - adds r0, r7 -_08016310: - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _0801632C - adds r0, r2, 0 -_0801631A: - bl GetBattlerPosition - movs r1, 0x2 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl GetBattlerAtPosition - strb r0, [r5] -_0801632C: - ldr r4, _08016360 @ =gBattlescriptCurrInstr - ldr r3, _08016364 @ =gBattleScriptsForMoveEffects - ldr r2, _08016368 @ =gBattleMoves - ldr r0, _0801636C @ =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, _08016370 @ =gCurrentActionFuncId - movs r0, 0xA -_0801634C: - strb r0, [r1] - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08016360: .4byte gBattlescriptCurrInstr -_08016364: .4byte gBattleScriptsForMoveEffects -_08016368: .4byte gBattleMoves -_0801636C: .4byte gCurrentMove -_08016370: .4byte gCurrentActionFuncId - thumb_func_end sub_8015CA0 - - thumb_func_start sub_8016374 -sub_8016374: @ 8016374 - push {r4,lr} - ldr r3, _080163E0 @ =gBattlerAttacker - ldr r1, _080163E4 @ =gBattlerByTurnOrder - ldr r0, _080163E8 @ =gCurrentTurnActionNumber - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r3] - ldr r0, _080163EC @ =gBattle_BG0_X - movs r2, 0 - strh r2, [r0] - ldr r0, _080163F0 @ =gBattle_BG0_Y - strh r2, [r0] - ldr r1, _080163F4 @ =gActionSelectionCursor - ldrb r0, [r3] - adds r0, r1 - strb r2, [r0] - ldr r1, _080163F8 @ =gMoveSelectionCursor - ldrb r0, [r3] - adds r0, r1 - strb r2, [r0] - ldr r2, _080163FC @ =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r2] - movs r0, 0x7 - strb r0, [r2, 0x1] - ldrb r4, [r3] - strb r4, [r2, 0x2] - ldrb r0, [r3] - ldr r1, _08016400 @ =gBattleStruct - ldr r1, [r1] - adds r0, r1 - adds r0, 0x58 - ldrb r0, [r0] - strb r0, [r2, 0x3] - movs r0, 0xFF - strb r0, [r2, 0x4] - ldr r0, _08016404 @ =gBattleScripting - strb r4, [r0, 0x17] - ldr r1, _08016408 @ =gBattlescriptCurrInstr - ldr r0, _0801640C @ =gUnknown_81D894D - str r0, [r1] - ldr r1, _08016410 @ =gCurrentActionFuncId - movs r0, 0xA - strb r0, [r1] - ldr r1, _08016414 @ =gBattleResults - ldrb r0, [r1, 0x2] - cmp r0, 0xFE - bhi _080163DA - adds r0, 0x1 - strb r0, [r1, 0x2] -_080163DA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080163E0: .4byte gBattlerAttacker -_080163E4: .4byte gBattlerByTurnOrder -_080163E8: .4byte gCurrentTurnActionNumber -_080163EC: .4byte gBattle_BG0_X -_080163F0: .4byte gBattle_BG0_Y -_080163F4: .4byte gActionSelectionCursor -_080163F8: .4byte gMoveSelectionCursor -_080163FC: .4byte gBattleTextBuff1 -_08016400: .4byte gBattleStruct -_08016404: .4byte gBattleScripting -_08016408: .4byte gBattlescriptCurrInstr -_0801640C: .4byte gUnknown_81D894D -_08016410: .4byte gCurrentActionFuncId -_08016414: .4byte gBattleResults - thumb_func_end sub_8016374 - - thumb_func_start sub_8016418 -sub_8016418: @ 8016418 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r4, _08016474 @ =gBattlerAttacker - ldr r2, _08016478 @ =gBattlerTarget - ldr r1, _0801647C @ =gBattlerByTurnOrder - ldr r0, _08016480 @ =gCurrentTurnActionNumber - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - strb r0, [r4] - ldr r0, _08016484 @ =gBattle_BG0_X - movs r1, 0 - strh r1, [r0] - ldr r0, _08016488 @ =gBattle_BG0_Y - strh r1, [r0] - ldrb r0, [r4] - bl ClearFuryCutterDestinyBondGrudge - ldr r5, _0801648C @ =gLastUsedItem - ldr r2, _08016490 @ =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] - adds r1, r3, 0 - cmp r1, 0xC - bhi _0801649C - ldr r2, _08016494 @ =gBattlescriptCurrInstr - ldr r1, _08016498 @ =gUnknown_81D99B0 - ldrh r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [r2] - b _080164FC - .align 2, 0 -_08016474: .4byte gBattlerAttacker -_08016478: .4byte gBattlerTarget -_0801647C: .4byte gBattlerByTurnOrder -_08016480: .4byte gCurrentTurnActionNumber -_08016484: .4byte gBattle_BG0_X -_08016488: .4byte gBattle_BG0_Y -_0801648C: .4byte gLastUsedItem -_08016490: .4byte gBattleBufferB -_08016494: .4byte gBattlescriptCurrInstr -_08016498: .4byte gUnknown_81D99B0 -_0801649C: - adds r0, r3, 0 - subs r0, 0x50 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _080164C4 - ldr r0, _080164B8 @ =gBattlescriptCurrInstr - ldr r1, _080164BC @ =gUnknown_81D99FC - ldr r1, [r1] - str r1, [r0] - ldr r1, _080164C0 @ =gCurrentActionFuncId - mov r10, r1 - b _0801671E - .align 2, 0 -_080164B8: .4byte gBattlescriptCurrInstr -_080164BC: .4byte gUnknown_81D99FC -_080164C0: .4byte gCurrentActionFuncId -_080164C4: - movs r0, 0xAF - lsls r0, 1 - cmp r1, r0 - bne _080164E8 - ldr r0, _080164DC @ =gBattlescriptCurrInstr - ldr r1, _080164E0 @ =gUnknown_81D99FC - ldr r1, [r1, 0x4] - str r1, [r0] - ldr r2, _080164E4 @ =gCurrentActionFuncId - mov r10, r2 - b _0801671E - .align 2, 0 -_080164DC: .4byte gBattlescriptCurrInstr -_080164E0: .4byte gUnknown_81D99FC -_080164E4: .4byte gCurrentActionFuncId -_080164E8: - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _08016510 - ldr r0, _08016504 @ =gBattlescriptCurrInstr - ldr r1, _08016508 @ =gUnknown_81D99E4 - ldr r1, [r1] - str r1, [r0] -_080164FC: - ldr r0, _0801650C @ =gCurrentActionFuncId - mov r10, r0 - b _0801671E - .align 2, 0 -_08016504: .4byte gBattlescriptCurrInstr -_08016508: .4byte gUnknown_81D99E4 -_0801650C: .4byte gCurrentActionFuncId -_08016510: - ldr r3, _08016548 @ =gBattleScripting - ldrb r0, [r4] - strb r0, [r3, 0x17] - lsls r0, 24 - lsrs r0, 25 - ldr r2, _0801654C @ =gBattleStruct - ldr r1, [r2] - adds r0, r1 - adds r0, 0xC4 - ldrb r0, [r0] - subs r0, 0x1 - mov r8, r4 - ldr r1, _08016550 @ =gBattlescriptCurrInstr - mov r9, r1 - ldr r6, _08016554 @ =gUnknown_81D99E4 - mov r12, r3 - adds r7, r2, 0 - ldr r2, _08016558 @ =gCurrentActionFuncId - mov r10, r2 - cmp r0, 0x4 - bls _0801653C - b _08016706 -_0801653C: - lsls r0, 2 - ldr r1, _0801655C @ =_08016560 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08016548: .4byte gBattleScripting -_0801654C: .4byte gBattleStruct -_08016550: .4byte gBattlescriptCurrInstr -_08016554: .4byte gUnknown_81D99E4 -_08016558: .4byte gCurrentActionFuncId -_0801655C: .4byte _08016560 - .align 2, 0 -_08016560: - .4byte _08016706 - .4byte _08016706 - .4byte _08016574 - .4byte _08016608 - .4byte _080166D8 -_08016574: - ldr r5, _080165AC @ =gBattleCommunication - movs r0, 0 - strb r0, [r5, 0x5] - ldr r2, _080165B0 @ =gBattlerAttacker - ldrb r0, [r2] - lsrs r0, 1 - ldr r1, [r7] - adds r0, r1 - adds r0, 0xC6 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - mov r8, r2 - cmp r0, 0 - beq _080165C0 - movs r0, 0x3E - ands r0, r1 - ldr r1, _080165B4 @ =gBattlescriptCurrInstr - mov r9, r1 - ldr r6, _080165B8 @ =gUnknown_81D99E4 - ldr r2, _080165BC @ =gCurrentActionFuncId - mov r10, r2 - cmp r0, 0 - bne _080165A6 - b _08016706 -_080165A6: - movs r0, 0x5 - strb r0, [r5, 0x5] - b _08016706 - .align 2, 0 -_080165AC: .4byte gBattleCommunication -_080165B0: .4byte gBattlerAttacker -_080165B4: .4byte gBattlescriptCurrInstr -_080165B8: .4byte gUnknown_81D99E4 -_080165BC: .4byte gCurrentActionFuncId -_080165C0: - ldr r0, _080165FC @ =gBattlescriptCurrInstr - mov r9, r0 - ldr r6, _08016600 @ =gUnknown_81D99E4 - ldr r1, _08016604 @ =gCurrentActionFuncId - mov r10, r1 - mov r4, r8 - adds r3, r7, 0 - adds r2, r5, 0 -_080165D0: - ldrb r1, [r4] - lsrs r1, 1 - ldr r0, [r3] - adds r1, r0 - adds r1, 0xC6 - ldrb r0, [r1] - lsrs r0, 1 - strb r0, [r1] - ldrb r0, [r2, 0x5] - adds r0, 0x1 - strb r0, [r2, 0x5] - ldrb r0, [r4] - lsrs r0, 1 - ldr r1, [r3] - adds r0, r1 - adds r0, 0xC6 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080165D0 - b _08016706 - .align 2, 0 -_080165FC: .4byte gBattlescriptCurrInstr -_08016600: .4byte gUnknown_81D99E4 -_08016604: .4byte gCurrentActionFuncId -_08016608: - ldr r3, _0801663C @ =gBattleCommunication - movs r0, 0x4 - strb r0, [r3, 0x5] - ldr r2, _08016640 @ =gBattlerAttacker - ldrb r0, [r2] - lsrs r0, 1 - ldr r1, [r7] - adds r0, r1 - adds r6, r0, 0 - adds r6, 0xC6 - ldrb r1, [r6] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - mov r8, r2 - cmp r5, 0 - beq _08016650 - movs r0, 0x5 - strb r0, [r3, 0x5] - ldr r2, _08016644 @ =gBattlescriptCurrInstr - mov r9, r2 - ldr r6, _08016648 @ =gUnknown_81D99E4 - ldr r0, _0801664C @ =gCurrentActionFuncId - mov r10, r0 - b _08016706 - .align 2, 0 -_0801663C: .4byte gBattleCommunication -_08016640: .4byte gBattlerAttacker -_08016644: .4byte gBattlescriptCurrInstr -_08016648: .4byte gUnknown_81D99E4 -_0801664C: .4byte gCurrentActionFuncId -_08016650: - ldr r3, _080166C4 @ =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, _080166C8 @ =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 r1, _080166CC @ =gBattlescriptCurrInstr - mov r9, r1 - ldr r6, _080166D0 @ =gUnknown_81D99E4 - ldr r0, _080166D4 @ =gCurrentActionFuncId - mov r10, r0 - cmp r2, 0 - bne _080166B4 - mov r5, r8 - adds r4, r7, 0 - adds r2, r3, 0 -_0801668A: - ldrb r1, [r5] - lsrs r1, 1 - ldr r0, [r4] - adds r1, r0 - adds r1, 0xC6 - ldrb r0, [r1] - lsrs r0, 1 - strb r0, [r1] - ldrb r0, [r2, 0x2] - adds r0, 0x1 - strb r0, [r2, 0x2] - ldrb r0, [r5] - lsrs r0, 1 - ldr r1, [r4] - adds r0, r1 - adds r0, 0xC6 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0801668A -_080166B4: - ldrb r0, [r3, 0x2] - adds r0, 0xE - movs r1, 0 - mov r2, r12 - strb r0, [r2, 0x10] - strb r1, [r2, 0x11] - b _08016706 - .align 2, 0 -_080166C4: .4byte gBattleTextBuff1 -_080166C8: .4byte gBattleTextBuff2 -_080166CC: .4byte gBattlescriptCurrInstr -_080166D0: .4byte gUnknown_81D99E4 -_080166D4: .4byte gCurrentActionFuncId -_080166D8: - ldr r0, _080166EC @ =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x1 - ands r1, r0 - cmp r1, 0 - beq _080166F4 - ldr r1, _080166F0 @ =gBattleCommunication - movs r0, 0x2 - strb r0, [r1, 0x5] - b _080166F8 - .align 2, 0 -_080166EC: .4byte gBattleTypeFlags -_080166F0: .4byte gBattleCommunication -_080166F4: - ldr r0, _08016734 @ =gBattleCommunication - strb r1, [r0, 0x5] -_080166F8: - ldr r0, _08016738 @ =gBattlerAttacker - mov r8, r0 - ldr r1, _0801673C @ =gBattlescriptCurrInstr - mov r9, r1 - ldr r6, _08016740 @ =gUnknown_81D99E4 - ldr r2, _08016744 @ =gCurrentActionFuncId - mov r10, r2 -_08016706: - mov r1, r8 - ldrb r0, [r1] - lsrs r0, 1 - ldr r1, [r7] - adds r0, r1 - adds r0, 0xC4 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - mov r2, r9 - str r0, [r2] -_0801671E: - movs r0, 0xA - mov r1, r10 - strb r0, [r1] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08016734: .4byte gBattleCommunication -_08016738: .4byte gBattlerAttacker -_0801673C: .4byte gBattlescriptCurrInstr -_08016740: .4byte gUnknown_81D99E4 -_08016744: .4byte gCurrentActionFuncId - thumb_func_end sub_8016418 - - thumb_func_start TryRunFromBattle -TryRunFromBattle: @ 8016748 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r6, 0 - ldr r1, _0801676C @ =gBattleMons - movs r0, 0x58 - muls r0, r4 - adds r1, r0, r1 - ldrh r0, [r1, 0x2E] - cmp r0, 0xAF - bne _08016774 - ldr r1, _08016770 @ =gEnigmaBerries - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x7] - b _0801677E - .align 2, 0 -_0801676C: .4byte gBattleMons -_08016770: .4byte gEnigmaBerries -_08016774: - ldrh r0, [r1, 0x2E] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r1, r0, 24 -_0801677E: - ldr r0, _080167AC @ =gPotentialItemEffectBattler - strb r4, [r0] - cmp r1, 0x25 - bne _080167BC - ldr r2, _080167B0 @ =gLastUsedItem - ldr r1, _080167B4 @ =gBattleMons - movs r0, 0x58 - muls r0, r4 - adds r0, r1 - ldrh r0, [r0, 0x2E] - strh r0, [r2] - ldr r0, _080167B8 @ =gProtectStructs - lsls r2, r4, 4 - adds r2, r0 - ldrb r1, [r2, 0x1] - movs r0, 0x19 - negs r0, r0 - ands r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r2, 0x1] - b _08016816 - .align 2, 0 -_080167AC: .4byte gPotentialItemEffectBattler -_080167B0: .4byte gLastUsedItem -_080167B4: .4byte gBattleMons -_080167B8: .4byte gProtectStructs -_080167BC: - ldr r7, _080167EC @ =gBattleMons - movs r2, 0x58 - adds r0, r4, 0 - muls r0, r2 - adds r5, r0, r7 - adds r0, r5, 0 - adds r0, 0x20 - ldrb r1, [r0] - cmp r1, 0x32 - bne _080167F8 - ldr r0, _080167F0 @ =gLastUsedAbility - strb r1, [r0] - ldr r0, _080167F4 @ =gProtectStructs - lsls r2, r4, 4 - adds r2, r0 - ldrb r1, [r2, 0x1] - movs r0, 0x19 - negs r0, r0 - ands r0, r1 - movs r1, 0x10 - orrs r0, r1 - strb r0, [r2, 0x1] - b _08016816 - .align 2, 0 -_080167EC: .4byte gBattleMons -_080167F0: .4byte gLastUsedAbility -_080167F4: .4byte gProtectStructs -_080167F8: - ldr r0, _08016820 @ =gBattleTypeFlags - ldr r3, [r0] - movs r0, 0xA0 - lsls r0, 8 - ands r0, r3 - movs r1, 0x80 - lsls r1, 8 - cmp r0, r1 - bne _08016824 - adds r0, r4, 0 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _0801687A -_08016816: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - b _0801687A - .align 2, 0 -_08016820: .4byte gBattleTypeFlags -_08016824: - movs r0, 0x1 - ands r3, r0 - cmp r3, 0 - bne _0801686E - movs r1, 0x1 - adds r0, r4, 0 - eors r0, r1 - muls r0, r2 - adds r2, r0, r7 - ldrh r0, [r5, 0x6] - ldrh r1, [r2, 0x6] - cmp r0, r1 - bcs _08016868 - lsls r0, 7 - ldrh r1, [r2, 0x6] - bl __divsi3 - adds r4, r0, 0 - ldr r0, _08016894 @ =gBattleStruct - ldr r0, [r0] - adds r0, 0x6C - 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 _0801686E -_08016868: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_0801686E: - ldr r0, _08016894 @ =gBattleStruct - ldr r1, [r0] - adds r1, 0x6C - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_0801687A: - cmp r6, 0 - beq _0801688C - ldr r1, _08016898 @ =gCurrentTurnActionNumber - ldr r0, _0801689C @ =gBattlersCount - ldrb r0, [r0] - strb r0, [r1] - ldr r1, _080168A0 @ =gBattleOutcome - movs r0, 0x4 - strb r0, [r1] -_0801688C: - adds r0, r6, 0 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08016894: .4byte gBattleStruct -_08016898: .4byte gCurrentTurnActionNumber -_0801689C: .4byte gBattlersCount -_080168A0: .4byte gBattleOutcome - thumb_func_end TryRunFromBattle - - thumb_func_start sub_80168A4 -sub_80168A4: @ 80168A4 - push {r4-r6,lr} - ldr r4, _080168F4 @ =gBattlerAttacker - ldr r1, _080168F8 @ =gBattlerByTurnOrder - ldr r5, _080168FC @ =gCurrentTurnActionNumber - ldrb r0, [r5] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r4] - ldr r0, _08016900 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0801694C - ldr r0, _08016904 @ =gBattlersCount - ldrb r1, [r0] - strb r1, [r5] - ldr r2, _08016908 @ =gActiveBattler - movs r0, 0 - strb r0, [r2] - lsls r1, 24 - cmp r1, 0 - beq _08016938 - adds r4, r2, 0 - ldr r6, _0801690C @ =gChosenActionByBattler - ldr r5, _08016910 @ =gBattleOutcome -_080168D8: - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _08016914 - ldrb r0, [r4] - adds r0, r6 - ldrb r0, [r0] - cmp r0, 0x3 - bne _08016926 - ldrb r0, [r5] - movs r1, 0x2 - b _08016922 - .align 2, 0 -_080168F4: .4byte gBattlerAttacker -_080168F8: .4byte gBattlerByTurnOrder -_080168FC: .4byte gCurrentTurnActionNumber -_08016900: .4byte gBattleTypeFlags -_08016904: .4byte gBattlersCount -_08016908: .4byte gActiveBattler -_0801690C: .4byte gChosenActionByBattler -_08016910: .4byte gBattleOutcome -_08016914: - ldrb r0, [r4] - adds r0, r6 - ldrb r0, [r0] - cmp r0, 0x3 - bne _08016926 - ldrb r0, [r5] - movs r1, 0x1 -_08016922: - orrs r0, r1 - strb r0, [r5] -_08016926: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _08016944 @ =gBattlersCount - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _080168D8 -_08016938: - ldr r0, _08016948 @ =gBattleOutcome - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] - b _080169D8 - .align 2, 0 -_08016944: .4byte gBattlersCount -_08016948: .4byte gBattleOutcome -_0801694C: - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _0801698C - ldrb r0, [r4] - bl TryRunFromBattle - lsls r0, 24 - cmp r0, 0 - bne _080169D8 - ldrb r0, [r4] - bl ClearFuryCutterDestinyBondGrudge - ldr r1, _0801697C @ =gBattleCommunication - movs r0, 0x3 - strb r0, [r1, 0x5] - ldr r1, _08016980 @ =gBattlescriptCurrInstr - ldr r0, _08016984 @ =gUnknown_81D893A - str r0, [r1] - ldr r1, _08016988 @ =gCurrentActionFuncId - movs r0, 0xA - b _080169D6 - .align 2, 0 -_0801697C: .4byte gBattleCommunication -_08016980: .4byte gBattlescriptCurrInstr -_08016984: .4byte gUnknown_81D893A -_08016988: .4byte gCurrentActionFuncId -_0801698C: - ldr r1, _080169B4 @ =gBattleMons - ldrb r2, [r4] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - ldr r1, _080169B8 @ =0x0400e000 - ands r0, r1 - cmp r0, 0 - beq _080169CC - ldr r1, _080169BC @ =gBattleCommunication - movs r0, 0x4 - strb r0, [r1, 0x5] - ldr r1, _080169C0 @ =gBattlescriptCurrInstr - ldr r0, _080169C4 @ =gUnknown_81D893A - str r0, [r1] - ldr r1, _080169C8 @ =gCurrentActionFuncId - movs r0, 0xA - b _080169D6 - .align 2, 0 -_080169B4: .4byte gBattleMons -_080169B8: .4byte 0x0400e000 -_080169BC: .4byte gBattleCommunication -_080169C0: .4byte gBattlescriptCurrInstr -_080169C4: .4byte gUnknown_81D893A -_080169C8: .4byte gCurrentActionFuncId -_080169CC: - ldr r0, _080169E0 @ =gBattlersCount - ldrb r0, [r0] - strb r0, [r5] - ldr r1, _080169E4 @ =gBattleOutcome - movs r0, 0x6 -_080169D6: - strb r0, [r1] -_080169D8: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080169E0: .4byte gBattlersCount -_080169E4: .4byte gBattleOutcome - thumb_func_end sub_80168A4 - - thumb_func_start sub_80169E8 -sub_80169E8: @ 80169E8 - push {r4,r5,lr} - ldr r2, _08016A44 @ =gBattlerAttacker - ldr r1, _08016A48 @ =gBattlerByTurnOrder - ldr r0, _08016A4C @ =gCurrentTurnActionNumber - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r0, _08016A50 @ =gBattle_BG0_X - movs r5, 0 - strh r5, [r0] - ldr r0, _08016A54 @ =gBattle_BG0_Y - strh r5, [r0] - ldr r4, _08016A58 @ =gBattleStruct - ldr r1, [r4] - adds r2, r1, 0 - adds r2, 0x79 - ldrb r0, [r2] - cmp r0, 0 - beq _08016A74 - subs r0, 0x1 - strb r0, [r2] - ldr r0, [r4] - adds r0, 0x79 - ldrb r0, [r0] - cmp r0, 0 - bne _08016A68 - ldr r0, _08016A5C @ =gEnemyParty - movs r1, 0xB - bl GetMonData - ldr r4, [r4] - adds r4, 0x7C - ldr r2, _08016A60 @ =gBaseStats - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r1, [r1, 0x8] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08016A64 @ =0x000004fb - bl __divsi3 - strb r0, [r4] - b _08016A98 - .align 2, 0 -_08016A44: .4byte gBattlerAttacker -_08016A48: .4byte gBattlerByTurnOrder -_08016A4C: .4byte gCurrentTurnActionNumber -_08016A50: .4byte gBattle_BG0_X -_08016A54: .4byte gBattle_BG0_Y -_08016A58: .4byte gBattleStruct -_08016A5C: .4byte gEnemyParty -_08016A60: .4byte gBaseStats -_08016A64: .4byte 0x000004fb -_08016A68: - ldr r1, _08016A70 @ =gBattleCommunication - movs r0, 0x1 - strb r0, [r1, 0x5] - b _08016A9C - .align 2, 0 -_08016A70: .4byte gBattleCommunication -_08016A74: - adds r1, 0x7A - ldrb r0, [r1] - cmp r0, 0 - beq _08016A98 - subs r0, 0x1 - strb r0, [r1] - ldr r0, [r4] - adds r0, 0x7A - ldrb r0, [r0] - cmp r0, 0 - beq _08016A98 - ldr r1, _08016A94 @ =gBattleCommunication - movs r0, 0x2 - strb r0, [r1, 0x5] - b _08016A9C - .align 2, 0 -_08016A94: .4byte gBattleCommunication -_08016A98: - ldr r0, _08016AB0 @ =gBattleCommunication - strb r5, [r0, 0x5] -_08016A9C: - ldr r1, _08016AB4 @ =gBattlescriptCurrInstr - ldr r0, _08016AB8 @ =gUnknown_81D9A04 - ldr r0, [r0] - str r0, [r1] - ldr r1, _08016ABC @ =gCurrentActionFuncId - movs r0, 0xA - strb r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08016AB0: .4byte gBattleCommunication -_08016AB4: .4byte gBattlescriptCurrInstr -_08016AB8: .4byte gUnknown_81D9A04 -_08016ABC: .4byte gCurrentActionFuncId - thumb_func_end sub_80169E8 - - thumb_func_start sub_8016AC0 -sub_8016AC0: @ 8016AC0 - ldr r2, _08016AF8 @ =gBattlerAttacker - ldr r1, _08016AFC @ =gBattlerByTurnOrder - ldr r0, _08016B00 @ =gCurrentTurnActionNumber - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r0, _08016B04 @ =gBattle_BG0_X - movs r1, 0 - strh r1, [r0] - ldr r0, _08016B08 @ =gBattle_BG0_Y - strh r1, [r0] - ldr r1, _08016B0C @ =gNumSafariBalls - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - ldr r1, _08016B10 @ =gLastUsedItem - movs r0, 0x5 - strh r0, [r1] - ldr r1, _08016B14 @ =gBattlescriptCurrInstr - ldr r0, _08016B18 @ =gUnknown_81D99B0 - ldr r0, [r0, 0x14] - str r0, [r1] - ldr r1, _08016B1C @ =gCurrentActionFuncId - movs r0, 0xA - strb r0, [r1] - bx lr - .align 2, 0 -_08016AF8: .4byte gBattlerAttacker -_08016AFC: .4byte gBattlerByTurnOrder -_08016B00: .4byte gCurrentTurnActionNumber -_08016B04: .4byte gBattle_BG0_X -_08016B08: .4byte gBattle_BG0_Y -_08016B0C: .4byte gNumSafariBalls -_08016B10: .4byte gLastUsedItem -_08016B14: .4byte gBattlescriptCurrInstr -_08016B18: .4byte gUnknown_81D99B0 -_08016B1C: .4byte gCurrentActionFuncId - thumb_func_end sub_8016AC0 - - thumb_func_start sub_8016B20 -sub_8016B20: @ 8016B20 - push {r4-r7,lr} - ldr r2, _08016B9C @ =gBattlerAttacker - ldr r1, _08016BA0 @ =gBattlerByTurnOrder - ldr r0, _08016BA4 @ =gCurrentTurnActionNumber - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r0, _08016BA8 @ =gBattle_BG0_X - movs r7, 0 - strh r7, [r0] - ldr r0, _08016BAC @ =gBattle_BG0_Y - strh r7, [r0] - bl Random - ldr r6, _08016BB0 @ =gBattleStruct - ldr r5, [r6] - adds r5, 0x7A - ldrb r4, [r5] - adds r4, 0x2 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x5 - bl __umodsi3 - adds r0, r4 - strb r0, [r5] - ldr r0, [r6] - adds r1, r0, 0 - adds r1, 0x7A - ldrb r0, [r1] - cmp r0, 0x6 - bls _08016B66 - movs r0, 0x6 - strb r0, [r1] -_08016B66: - ldr r0, [r6] - adds r0, 0x79 - strb r7, [r0] - ldr r1, [r6] - adds r1, 0x7C - ldrb r0, [r1] - lsrs r0, 1 - strb r0, [r1] - ldr r0, [r6] - adds r1, r0, 0 - adds r1, 0x7C - ldrb r0, [r1] - cmp r0, 0x2 - bhi _08016B86 - movs r0, 0x3 - strb r0, [r1] -_08016B86: - ldr r1, _08016BB4 @ =gBattlescriptCurrInstr - ldr r0, _08016BB8 @ =gUnknown_81D9A04 - ldr r0, [r0, 0x8] - str r0, [r1] - ldr r1, _08016BBC @ =gCurrentActionFuncId - movs r0, 0xA - strb r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08016B9C: .4byte gBattlerAttacker -_08016BA0: .4byte gBattlerByTurnOrder -_08016BA4: .4byte gCurrentTurnActionNumber -_08016BA8: .4byte gBattle_BG0_X -_08016BAC: .4byte gBattle_BG0_Y -_08016BB0: .4byte gBattleStruct -_08016BB4: .4byte gBattlescriptCurrInstr -_08016BB8: .4byte gUnknown_81D9A04 -_08016BBC: .4byte gCurrentActionFuncId - thumb_func_end sub_8016B20 - - thumb_func_start sub_8016BC0 -sub_8016BC0: @ 8016BC0 - push {r4-r7,lr} - ldr r2, _08016C3C @ =gBattlerAttacker - ldr r1, _08016C40 @ =gBattlerByTurnOrder - ldr r0, _08016C44 @ =gCurrentTurnActionNumber - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r0, _08016C48 @ =gBattle_BG0_X - movs r7, 0 - strh r7, [r0] - ldr r0, _08016C4C @ =gBattle_BG0_Y - strh r7, [r0] - bl Random - ldr r6, _08016C50 @ =gBattleStruct - ldr r5, [r6] - adds r5, 0x79 - ldrb r4, [r5] - adds r4, 0x2 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x5 - bl __umodsi3 - adds r0, r4 - strb r0, [r5] - ldr r0, [r6] - adds r1, r0, 0 - adds r1, 0x79 - ldrb r0, [r1] - cmp r0, 0x6 - bls _08016C06 - movs r0, 0x6 - strb r0, [r1] -_08016C06: - ldr r0, [r6] - adds r0, 0x7A - strb r7, [r0] - ldr r1, [r6] - adds r1, 0x7C - ldrb r0, [r1] - lsls r0, 1 - strb r0, [r1] - ldr r0, [r6] - adds r1, r0, 0 - adds r1, 0x7C - ldrb r0, [r1] - cmp r0, 0x14 - bls _08016C26 - movs r0, 0x14 - strb r0, [r1] -_08016C26: - ldr r1, _08016C54 @ =gBattlescriptCurrInstr - ldr r0, _08016C58 @ =gUnknown_81D9A04 - ldr r0, [r0, 0x4] - str r0, [r1] - ldr r1, _08016C5C @ =gCurrentActionFuncId - movs r0, 0xA - strb r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08016C3C: .4byte gBattlerAttacker -_08016C40: .4byte gBattlerByTurnOrder -_08016C44: .4byte gCurrentTurnActionNumber -_08016C48: .4byte gBattle_BG0_X -_08016C4C: .4byte gBattle_BG0_Y -_08016C50: .4byte gBattleStruct -_08016C54: .4byte gBattlescriptCurrInstr -_08016C58: .4byte gUnknown_81D9A04 -_08016C5C: .4byte gCurrentActionFuncId - thumb_func_end sub_8016BC0 - - thumb_func_start HandleAction_SafriZoneRun -HandleAction_SafriZoneRun: @ 8016C60 - push {r4,lr} - ldr r2, _08016C88 @ =gBattlerAttacker - ldr r1, _08016C8C @ =gBattlerByTurnOrder - ldr r4, _08016C90 @ =gCurrentTurnActionNumber - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - movs r0, 0x11 - bl PlaySE - ldr r0, _08016C94 @ =gBattlersCount - ldrb r0, [r0] - strb r0, [r4] - ldr r1, _08016C98 @ =gBattleOutcome - movs r0, 0x4 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08016C88: .4byte gBattlerAttacker -_08016C8C: .4byte gBattlerByTurnOrder -_08016C90: .4byte gCurrentTurnActionNumber -_08016C94: .4byte gBattlersCount -_08016C98: .4byte gBattleOutcome - thumb_func_end HandleAction_SafriZoneRun - - thumb_func_start HandleAction_Action9 -HandleAction_Action9: @ 8016C9C - ldr r3, _08016CE8 @ =gBattlerAttacker - ldr r1, _08016CEC @ =gBattlerByTurnOrder - ldr r0, _08016CF0 @ =gCurrentTurnActionNumber - ldrb r0, [r0] - adds r0, r1 - ldrb r2, [r0] - strb r2, [r3] - ldr r0, _08016CF4 @ =gBattle_BG0_X - movs r1, 0 - strh r1, [r0] - ldr r0, _08016CF8 @ =gBattle_BG0_Y - strh r1, [r0] - ldr r1, _08016CFC @ =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x7 - strb r0, [r1, 0x1] - strb r2, [r1, 0x2] - ldr r2, _08016D00 @ =gBattlerPartyIndexes - 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, _08016D04 @ =gBattlescriptCurrInstr - ldr r0, _08016D08 @ =gUnknown_81D9A04 - ldr r0, [r0, 0xC] - str r0, [r1] - ldr r1, _08016D0C @ =gCurrentActionFuncId - movs r0, 0xA - strb r0, [r1] - ldr r1, _08016D10 @ =gActionsByTurnOrder - movs r0, 0xC - strb r0, [r1, 0x1] - bx lr - .align 2, 0 -_08016CE8: .4byte gBattlerAttacker -_08016CEC: .4byte gBattlerByTurnOrder -_08016CF0: .4byte gCurrentTurnActionNumber -_08016CF4: .4byte gBattle_BG0_X -_08016CF8: .4byte gBattle_BG0_Y -_08016CFC: .4byte gBattleTextBuff1 -_08016D00: .4byte gBattlerPartyIndexes -_08016D04: .4byte gBattlescriptCurrInstr -_08016D08: .4byte gUnknown_81D9A04 -_08016D0C: .4byte gCurrentActionFuncId -_08016D10: .4byte gActionsByTurnOrder - thumb_func_end HandleAction_Action9 - - thumb_func_start HandleAction_Action11 -HandleAction_Action11: @ 8016D14 - push {lr} - bl HandleFaintedMonActions - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08016D30 - ldr r0, _08016D34 @ =gBattleStruct - ldr r0, [r0] - adds r0, 0x4D - strb r1, [r0] - ldr r1, _08016D38 @ =gCurrentActionFuncId - movs r0, 0xC - strb r0, [r1] -_08016D30: - pop {r0} - bx r0 - .align 2, 0 -_08016D34: .4byte gBattleStruct -_08016D38: .4byte gCurrentActionFuncId - thumb_func_end HandleAction_Action11 - - thumb_func_start HandleAction_NothingIsFainted -HandleAction_NothingIsFainted: @ 8016D3C - ldr r1, _08016D5C @ =gCurrentTurnActionNumber - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r3, _08016D60 @ =gCurrentActionFuncId - ldr r2, _08016D64 @ =gActionsByTurnOrder - ldrb r0, [r1] - adds r0, r2 - ldrb r0, [r0] - strb r0, [r3] - ldr r2, _08016D68 @ =gHitMarker - ldr r0, [r2] - ldr r1, _08016D6C @ =0xf1e892af - ands r0, r1 - str r0, [r2] - bx lr - .align 2, 0 -_08016D5C: .4byte gCurrentTurnActionNumber -_08016D60: .4byte gCurrentActionFuncId -_08016D64: .4byte gActionsByTurnOrder -_08016D68: .4byte gHitMarker -_08016D6C: .4byte 0xf1e892af - thumb_func_end HandleAction_NothingIsFainted - - thumb_func_start HandleAction_ActionFinished -HandleAction_ActionFinished: @ 8016D70 - push {r4,r5,lr} - ldr r1, _08016DE4 @ =gCurrentTurnActionNumber - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r3, _08016DE8 @ =gCurrentActionFuncId - ldr r2, _08016DEC @ =gActionsByTurnOrder - ldrb r0, [r1] - adds r0, r2 - ldrb r0, [r0] - strb r0, [r3] - bl SpecialStatusesClear - ldr r2, _08016DF0 @ =gHitMarker - ldr r0, [r2] - ldr r1, _08016DF4 @ =0xf1e892af - ands r0, r1 - str r0, [r2] - ldr r0, _08016DF8 @ =gCurrentMove - movs r1, 0 - strh r1, [r0] - ldr r0, _08016DFC @ =gBattleMoveDamage - movs r4, 0 - str r4, [r0] - ldr r0, _08016E00 @ =gMoveResultFlags - strb r1, [r0] - ldr r5, _08016E04 @ =gBattleScripting - strb r1, [r5, 0x18] - strb r1, [r5, 0x19] - ldr r2, _08016E08 @ =gLastLandedMoves - ldr r3, _08016E0C @ =gBattlerAttacker - ldrb r0, [r3] - lsls r0, 1 - adds r0, r2 - strh r4, [r0] - ldr r2, _08016E10 @ =gLastHitByType - ldrb r0, [r3] - lsls r0, 1 - adds r0, r2 - strh r4, [r0] - ldr r0, _08016E14 @ =gBattleStruct - ldr r0, [r0] - strb r1, [r0, 0x13] - ldr r0, _08016E18 @ =gDynamicBasePower - strh r4, [r0] - strb r1, [r5, 0x14] - ldr r0, _08016E1C @ =gBattleCommunication - strb r1, [r0, 0x3] - strb r1, [r0, 0x4] - strb r1, [r5, 0x16] - ldr r0, _08016E20 @ =gBattleResources - ldr r0, [r0] - ldr r0, [r0, 0x8] - adds r0, 0x20 - strb r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08016DE4: .4byte gCurrentTurnActionNumber -_08016DE8: .4byte gCurrentActionFuncId -_08016DEC: .4byte gActionsByTurnOrder -_08016DF0: .4byte gHitMarker -_08016DF4: .4byte 0xf1e892af -_08016DF8: .4byte gCurrentMove -_08016DFC: .4byte gBattleMoveDamage -_08016E00: .4byte gMoveResultFlags -_08016E04: .4byte gBattleScripting -_08016E08: .4byte gLastLandedMoves -_08016E0C: .4byte gBattlerAttacker -_08016E10: .4byte gLastHitByType -_08016E14: .4byte gBattleStruct -_08016E18: .4byte gDynamicBasePower -_08016E1C: .4byte gBattleCommunication -_08016E20: .4byte gBattleResources - thumb_func_end HandleAction_ActionFinished - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_anim.s b/asm/battle_anim.s index d5e389807..d9471c9dd 100644 --- a/asm/battle_anim.s +++ b/asm/battle_anim.s @@ -281,9 +281,9 @@ _08072706: strh r1, [r0] ldr r0, _08072734 @ =gBattle_WIN0V strh r1, [r0] - ldr r0, _08072738 @ =gUnknown_2022988 + ldr r0, _08072738 @ =gBattle_WIN1H strh r1, [r0] - ldr r0, _0807273C @ =gUnknown_202298A + ldr r0, _0807273C @ =gBattle_WIN1V strh r1, [r0] add sp, 0x4 pop {r3-r5} @@ -298,8 +298,8 @@ _08072728: .4byte 0x0000ffff _0807272C: .4byte gMPlayInfo_BGM _08072730: .4byte gBattle_WIN0H _08072734: .4byte gBattle_WIN0V -_08072738: .4byte gUnknown_2022988 -_0807273C: .4byte gUnknown_202298A +_08072738: .4byte gBattle_WIN1H +_0807273C: .4byte gBattle_WIN1V thumb_func_end LaunchBattleAnimation thumb_func_start DestroyAnimSprite diff --git a/asm/battle_anim_effects_2.s b/asm/battle_anim_effects_2.s index 67ac6a13e..24921239f 100644 --- a/asm/battle_anim_effects_2.s +++ b/asm/battle_anim_effects_2.s @@ -3902,7 +3902,7 @@ _080A8C60: subs r0, r4 strh r0, [r1] _080A8C6A: - ldr r1, _080A8C80 @ =sub_8075D9C + ldr r1, _080A8C80 @ =AnimSpriteOnMonPos str r1, [r6, 0x1C] adds r0, r6, 0 bl _call_via_r1 @@ -3912,7 +3912,7 @@ _080A8C6A: bx r0 .align 2, 0 _080A8C7C: .4byte gBattleAnimArgs -_080A8C80: .4byte sub_8075D9C +_080A8C80: .4byte AnimSpriteOnMonPos thumb_func_end sub_80A8BC4 thumb_func_start sub_80A8C84 @@ -4233,7 +4233,7 @@ _080A8F0E: adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim - ldr r1, _080A8F34 @ =sub_8075D9C + ldr r1, _080A8F34 @ =AnimSpriteOnMonPos str r1, [r4, 0x1C] adds r0, r4, 0 bl _call_via_r1 @@ -4244,7 +4244,7 @@ _080A8F0E: _080A8F28: .4byte 0x000027db _080A8F2C: .4byte 0x01010000 _080A8F30: .4byte gBattleAnimArgs -_080A8F34: .4byte sub_8075D9C +_080A8F34: .4byte AnimSpriteOnMonPos thumb_func_end sub_80A8EE8 thumb_func_start sub_80A8F38 diff --git a/asm/battle_anim_effects_3.s b/asm/battle_anim_effects_3.s index 004ad8786..9c98d7f36 100644 --- a/asm/battle_anim_effects_3.s +++ b/asm/battle_anim_effects_3.s @@ -1481,11 +1481,11 @@ sub_80DEDD8: @ 80DEDD8 ldr r1, _080DEE14 @ =0x00001f3f movs r0, 0x48 bl SetGpuReg - ldr r1, _080DEE18 @ =gUnknown_2022988 + ldr r1, _080DEE18 @ =gBattle_WIN1H ldr r2, _080DEE1C @ =0x000098f0 adds r0, r2, 0 strh r0, [r1] - ldr r1, _080DEE20 @ =gUnknown_202298A + ldr r1, _080DEE20 @ =gBattle_WIN1V movs r0, 0xA0 strh r0, [r1] ldr r0, _080DEE24 @ =gBattle_WIN0H @@ -1499,19 +1499,19 @@ sub_80DEDD8: @ 80DEDD8 b _080DEE5C .align 2, 0 _080DEE14: .4byte 0x00001f3f -_080DEE18: .4byte gUnknown_2022988 +_080DEE18: .4byte gBattle_WIN1H _080DEE1C: .4byte 0x000098f0 -_080DEE20: .4byte gUnknown_202298A +_080DEE20: .4byte gBattle_WIN1V _080DEE24: .4byte gBattle_WIN0H _080DEE28: .4byte gBattle_WIN0V _080DEE2C: ldr r1, _080DEE68 @ =0x00001f3f movs r0, 0x48 bl SetGpuReg - ldr r1, _080DEE6C @ =gUnknown_2022988 + ldr r1, _080DEE6C @ =gBattle_WIN1H movs r0, 0xF0 strh r0, [r1] - ldr r4, _080DEE70 @ =gUnknown_202298A + ldr r4, _080DEE70 @ =gBattle_WIN1V ldr r1, _080DEE74 @ =0x000078a0 adds r0, r1, 0 strh r0, [r4] @@ -1533,8 +1533,8 @@ _080DEE5C: bx r0 .align 2, 0 _080DEE68: .4byte 0x00001f3f -_080DEE6C: .4byte gUnknown_2022988 -_080DEE70: .4byte gUnknown_202298A +_080DEE6C: .4byte gBattle_WIN1H +_080DEE70: .4byte gBattle_WIN1V _080DEE74: .4byte 0x000078a0 thumb_func_end sub_80DEDD8 @@ -1546,10 +1546,10 @@ sub_80DEE78: @ 80DEE78 ldr r1, _080DEEB0 @ =0x00003f3f movs r0, 0x48 bl SetGpuReg - ldr r0, _080DEEB4 @ =gUnknown_2022988 + ldr r0, _080DEEB4 @ =gBattle_WIN1H movs r1, 0 strh r1, [r0] - ldr r0, _080DEEB8 @ =gUnknown_202298A + ldr r0, _080DEEB8 @ =gBattle_WIN1V strh r1, [r0] bl IsContest lsls r0, 24 @@ -1567,8 +1567,8 @@ _080DEEA4: bx r0 .align 2, 0 _080DEEB0: .4byte 0x00003f3f -_080DEEB4: .4byte gUnknown_2022988 -_080DEEB8: .4byte gUnknown_202298A +_080DEEB4: .4byte gBattle_WIN1H +_080DEEB8: .4byte gBattle_WIN1V thumb_func_end sub_80DEE78 thumb_func_start sub_80DEEBC diff --git a/asm/battle_1.s b/asm/battle_bg.s index 0b8ad7365..6db40cb4d 100644 --- a/asm/battle_1.s +++ b/asm/battle_bg.s @@ -179,7 +179,7 @@ sub_800F324: @ 800F324 push {lr} movs r0, 0 bl ResetBgsAndClearDma3BusyFlags - ldr r1, _0800F344 @ =gUnknown_8248320 + ldr r1, _0800F344 @ =gBattleBgTemplates movs r0, 0 movs r2, 0x4 bl InitBgsFromTemplates @@ -189,7 +189,7 @@ sub_800F324: @ 800F324 pop {r0} bx r0 .align 2, 0 -_0800F344: .4byte gUnknown_8248320 +_0800F344: .4byte gBattleBgTemplates _0800F348: .4byte gUnknown_8248330 thumb_func_end sub_800F324 @@ -217,8 +217,8 @@ sub_800F34C: @ 800F34C _0800F37C: .4byte 0x0000b040 thumb_func_end sub_800F34C - thumb_func_start sub_800F380 -sub_800F380: @ 800F380 + thumb_func_start LoadBattleMenuWindowGfx +LoadBattleMenuWindowGfx: @ 800F380 push {r4,r5,lr} movs r0, 0x2 movs r1, 0x12 @@ -278,7 +278,7 @@ _0800F3FC: .4byte 0x0000675a _0800F400: .4byte gPlttBufferFaded + 0xB8 _0800F404: .4byte gBattleTypeFlags _0800F408: .4byte 0x00010010 - thumb_func_end sub_800F380 + thumb_func_end LoadBattleMenuWindowGfx thumb_func_start sub_800F40C sub_800F40C: @ 800F40C @@ -309,7 +309,7 @@ LoadBattleTextboxAndBackground: @ 800F420 movs r1, 0 movs r2, 0x40 bl LoadCompressedPalette - bl sub_800F380 + bl LoadBattleMenuWindowGfx bl sub_800F40C pop {r0} bx r0 @@ -1143,8 +1143,8 @@ _0800FAD8: .4byte 0x000003ff _0800FADC: .4byte 0xfffffc00 thumb_func_end sub_800F6FC - thumb_func_start sub_800FAE0 -sub_800FAE0: @ 800FAE0 + thumb_func_start DrawBattleEntryBackground +DrawBattleEntryBackground: @ 800FAE0 push {r4,lr} ldr r0, _0800FB64 @ =gBattleTypeFlags ldr r1, [r0] @@ -1287,7 +1287,7 @@ _0800FC26: pop {r4} pop {r0} bx r0 - thumb_func_end sub_800FAE0 + thumb_func_end DrawBattleEntryBackground thumb_func_start sub_800FC2C sub_800FC2C: @ 800FC2C @@ -1459,7 +1459,7 @@ _0800FD68: .align 2, 0 _0800FD88: .4byte gUnknown_824EE34 _0800FD8C: - bl sub_800F380 + bl LoadBattleMenuWindowGfx b _0800FD94 _0800FD92: movs r4, 0x1 diff --git a/asm/battle_controller_oak.s b/asm/battle_controller_oak.s deleted file mode 100644 index 47230be60..000000000 --- a/asm/battle_controller_oak.s +++ /dev/null @@ -1,7887 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start nullsub_81 -nullsub_81: @ 80E75AC - bx lr - thumb_func_end nullsub_81 - - thumb_func_start SetControllerToOakOrOldman -SetControllerToOakOrOldman: @ 80E75B0 - ldr r1, _080E75DC @ =gBattlerControllerFuncs - ldr r0, _080E75E0 @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _080E75E4 @ =sub_80E75EC - str r1, [r0] - ldr r2, _080E75E8 @ =gBattleStruct - ldr r0, [r2] - adds r0, 0x94 - movs r1, 0 - strb r1, [r0] - ldr r0, [r2] - adds r0, 0x95 - strb r1, [r0] - ldr r0, [r2] - adds r0, 0x96 - strb r1, [r0] - ldr r0, [r2] - adds r0, 0x97 - strb r1, [r0] - bx lr - .align 2, 0 -_080E75DC: .4byte gBattlerControllerFuncs -_080E75E0: .4byte gActiveBattler -_080E75E4: .4byte sub_80E75EC -_080E75E8: .4byte gBattleStruct - thumb_func_end SetControllerToOakOrOldman - - thumb_func_start sub_80E75EC -sub_80E75EC: @ 80E75EC - push {lr} - ldr r2, _080E7620 @ =gBattleControllerExecFlags - ldr r1, _080E7624 @ =gBitTable - ldr r0, _080E7628 @ =gActiveBattler - ldrb r3, [r0] - lsls r0, r3, 2 - adds r0, r1 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _080E7638 - ldr r0, _080E762C @ =gBattleBufferA - lsls r1, r3, 9 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x38 - bhi _080E7634 - ldr r0, _080E7630 @ =gUnknown_84020F8 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - bl _call_via_r0 - b _080E7638 - .align 2, 0 -_080E7620: .4byte gBattleControllerExecFlags -_080E7624: .4byte gBitTable -_080E7628: .4byte gActiveBattler -_080E762C: .4byte gBattleBufferA -_080E7630: .4byte gUnknown_84020F8 -_080E7634: - bl WallyBufferExecCompleted -_080E7638: - pop {r0} - bx r0 - thumb_func_end sub_80E75EC - - thumb_func_start sub_80E763C -sub_80E763C: @ 80E763C - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r7, _080E769C @ =gBattleBufferA - ldr r4, _080E76A0 @ =gActiveBattler - ldrb r0, [r4] - lsls r2, r0, 9 - adds r1, r7, 0x2 - adds r1, r2, r1 - ldrb r5, [r1] - adds r1, r7, 0x3 - adds r2, r1 - ldrb r1, [r2] - lsls r1, 8 - orrs r5, r1 - movs r1, 0x1 - movs r2, 0x7 - movs r3, 0x1 - bl DoBounceEffect - ldrb r0, [r4] - movs r1, 0 - movs r2, 0x7 - movs r3, 0x1 - bl DoBounceEffect - ldr r0, _080E76A4 @ =gMain - ldrh r1, [r0, 0x2E] - movs r2, 0x1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _080E76D4 - movs r0, 0x5 - bl PlaySE - ldr r1, _080E76A8 @ =gActionSelectionCursor - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _080E76BC - cmp r0, 0x1 - bgt _080E76AC - cmp r0, 0 - beq _080E76B6 - b _080E781A - .align 2, 0 -_080E769C: .4byte gBattleBufferA -_080E76A0: .4byte gActiveBattler -_080E76A4: .4byte gMain -_080E76A8: .4byte gActionSelectionCursor -_080E76AC: - cmp r0, 0x2 - beq _080E76C2 - cmp r0, 0x3 - beq _080E76C8 - b _080E781A -_080E76B6: - movs r0, 0x1 - movs r1, 0 - b _080E7814 -_080E76BC: - movs r0, 0x1 - movs r1, 0x1 - b _080E7814 -_080E76C2: - movs r0, 0x1 - movs r1, 0x2 - b _080E7814 -_080E76C8: - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0 - bl BtlController_EmitTwoReturnValues - b _080E781A -_080E76D4: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080E770C - ldr r5, _080E7708 @ =gActionSelectionCursor - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _080E76EE - b _080E7838 -_080E76EE: - movs r0, 0x5 - bl PlaySE - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - bl ActionSelectionDestroyCursorAt - ldrb r1, [r4] - adds r1, r5 - ldrb r0, [r1] - movs r2, 0x1 - b _080E7794 - .align 2, 0 -_080E7708: .4byte gActionSelectionCursor -_080E770C: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080E7744 - ldr r5, _080E7740 @ =gActionSelectionCursor - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _080E7726 - b _080E7838 -_080E7726: - movs r0, 0x5 - bl PlaySE - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - bl ActionSelectionDestroyCursorAt - ldrb r1, [r4] - adds r1, r5 - ldrb r0, [r1] - movs r2, 0x1 - b _080E7794 - .align 2, 0 -_080E7740: .4byte gActionSelectionCursor -_080E7744: - movs r0, 0x40 - mov r8, r0 - ands r0, r1 - cmp r0, 0 - beq _080E7764 - ldr r5, _080E7760 @ =gActionSelectionCursor - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E7838 - b _080E777C - .align 2, 0 -_080E7760: .4byte gActionSelectionCursor -_080E7764: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080E77AC - ldr r5, _080E77A8 @ =gActionSelectionCursor - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _080E7838 -_080E777C: - movs r0, 0x5 - bl PlaySE - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - bl ActionSelectionDestroyCursorAt - ldrb r1, [r4] - adds r1, r5 - ldrb r0, [r1] - movs r2, 0x2 -_080E7794: - eors r0, r2 - strb r0, [r1] - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - movs r1, 0 - bl ActionSelectionCreateCursorAt - b _080E7838 - .align 2, 0 -_080E77A8: .4byte gActionSelectionCursor -_080E77AC: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E782C - ldr r6, _080E7820 @ =gBattleTypeFlags - ldr r0, [r6] - ands r0, r2 - cmp r0, 0 - beq _080E7838 - ldrb r0, [r4] - bl GetBattlerPosition - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _080E7838 - movs r0, 0 - bl GetBattlerAtPosition - ldr r1, _080E7824 @ =gAbsentBattlerFlags - ldrb r1, [r1] - ldr r2, _080E7828 @ =gBitTable - lsls r0, 24 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _080E7838 - ldr r0, [r6] - mov r1, r8 - ands r0, r1 - cmp r0, 0 - bne _080E7838 - ldrb r0, [r4] - lsls r0, 9 - adds r1, r7, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080E780A - cmp r5, 0xC - bhi _080E7838 - adds r0, r5, 0 - movs r1, 0x1 - bl AddBagItem -_080E780A: - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - movs r1, 0xC -_080E7814: - movs r2, 0 - bl BtlController_EmitTwoReturnValues -_080E781A: - bl WallyBufferExecCompleted - b _080E7838 - .align 2, 0 -_080E7820: .4byte gBattleTypeFlags -_080E7824: .4byte gAbsentBattlerFlags -_080E7828: .4byte gBitTable -_080E782C: - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080E7838 - bl SwapHpBarsWithHpText -_080E7838: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80E763C - - thumb_func_start sub_80E7844 -sub_80E7844: @ 80E7844 - push {r4,lr} - ldr r1, _080E7860 @ =gBattleStruct - ldr r2, [r1] - adds r0, r2, 0 - adds r0, 0x94 - ldrb r0, [r0] - adds r4, r1, 0 - cmp r0, 0x1 - beq _080E787C - cmp r0, 0x1 - bgt _080E7864 - cmp r0, 0 - beq _080E786A - b _080E78D8 - .align 2, 0 -_080E7860: .4byte gBattleStruct -_080E7864: - cmp r0, 0x2 - beq _080E78B4 - b _080E78D8 -_080E786A: - adds r1, r2, 0 - adds r1, 0x96 - movs r0, 0x40 - strb r0, [r1] - ldr r1, [r4] - adds r1, 0x94 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080E787C: - ldr r1, [r4] - adds r1, 0x96 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bne _080E78D8 - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl ActionSelectionDestroyCursorAt - movs r0, 0x1 - movs r1, 0 - bl ActionSelectionCreateCursorAt - ldr r0, [r4] - adds r0, 0x96 - movs r1, 0x40 - strb r1, [r0] - ldr r1, [r4] - adds r1, 0x94 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080E78D8 -_080E78B4: - adds r1, r2, 0 - adds r1, 0x96 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bne _080E78D8 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0 - bl BtlController_EmitTwoReturnValues - bl WallyBufferExecCompleted -_080E78D8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80E7844 - - thumb_func_start sub_80E78E0 -sub_80E78E0: @ 80E78E0 - push {lr} - ldr r2, _080E7908 @ =gSprites - ldr r1, _080E790C @ =gBattlerSpriteIds - ldr r0, _080E7910 @ =gActiveBattler - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _080E7914 @ =SpriteCallbackDummy - cmp r1, r0 - bne _080E7904 - bl WallyBufferExecCompleted -_080E7904: - pop {r0} - bx r0 - .align 2, 0 -_080E7908: .4byte gSprites -_080E790C: .4byte gBattlerSpriteIds -_080E7910: .4byte gActiveBattler -_080E7914: .4byte SpriteCallbackDummy - thumb_func_end sub_80E78E0 - - thumb_func_start sub_80E7918 -sub_80E7918: @ 80E7918 - push {lr} - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - bne _080E792A - bl WallyBufferExecCompleted -_080E792A: - pop {r0} - bx r0 - thumb_func_end sub_80E7918 - - thumb_func_start sub_80E7930 -sub_80E7930: @ 80E7930 - push {lr} - ldr r0, _080E7960 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080E795A - ldr r2, _080E7964 @ =gMain - ldr r0, _080E7968 @ =0x00000439 - adds r3, r2, r0 - ldrb r1, [r3] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - ldr r0, _080E796C @ =gPreBattleCallback1 - ldr r0, [r0] - str r0, [r2] - ldr r0, [r2, 0x8] - bl SetMainCallback2 -_080E795A: - pop {r0} - bx r0 - .align 2, 0 -_080E7960: .4byte gPaletteFade -_080E7964: .4byte gMain -_080E7968: .4byte 0x00000439 -_080E796C: .4byte gPreBattleCallback1 - thumb_func_end sub_80E7930 - - thumb_func_start sub_80E7970 -sub_80E7970: @ 80E7970 - push {lr} - ldr r0, _080E7984 @ =gDoingBattleAnim - ldrb r0, [r0] - cmp r0, 0 - bne _080E797E - bl WallyBufferExecCompleted -_080E797E: - pop {r0} - bx r0 - .align 2, 0 -_080E7984: .4byte gDoingBattleAnim - thumb_func_end sub_80E7970 - - thumb_func_start sub_80E7988 -sub_80E7988: @ 80E7988 - push {lr} - bl HandleInputChooseMove - ldr r2, _080E79AC @ =gBattleControllerExecFlags - ldr r1, _080E79B0 @ =gBitTable - ldr r0, _080E79B4 @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _080E79A8 - bl WallyBufferExecCompleted -_080E79A8: - pop {r0} - bx r0 - .align 2, 0 -_080E79AC: .4byte gBattleControllerExecFlags -_080E79B0: .4byte gBitTable -_080E79B4: .4byte gActiveBattler - thumb_func_end sub_80E7988 - - thumb_func_start sub_80E79B8 -sub_80E79B8: @ 80E79B8 - push {r4,lr} - ldr r0, _080E79FC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080E79F6 - ldr r1, _080E7A00 @ =gBattlerControllerFuncs - ldr r2, _080E7A04 @ =gActiveBattler - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, _080E7A08 @ =sub_80E7A14 - str r1, [r0] - ldr r3, _080E7A0C @ =gTasks - ldr r1, _080E7A10 @ =gUnknown_3004FFC - ldrb r0, [r2] - adds r0, r1 - ldrb r0, [r0] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r3 - ldrb r4, [r1, 0x8] - bl DestroyTask - bl FreeAllWindowBuffers - adds r0, r4, 0 - bl OpenPartyMenuInBattle -_080E79F6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E79FC: .4byte gPaletteFade -_080E7A00: .4byte gBattlerControllerFuncs -_080E7A04: .4byte gActiveBattler -_080E7A08: .4byte sub_80E7A14 -_080E7A0C: .4byte gTasks -_080E7A10: .4byte gUnknown_3004FFC - thumb_func_end sub_80E79B8 - - thumb_func_start sub_80E7A14 -sub_80E7A14: @ 80E7A14 - push {lr} - ldr r0, _080E7A44 @ =gMain - ldr r1, [r0, 0x4] - ldr r0, _080E7A48 @ =BattleMainCB2 - cmp r1, r0 - bne _080E7A6A - ldr r0, _080E7A4C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080E7A6A - ldr r0, _080E7A50 @ =gUnknown_203B0C0 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080E7A5C - ldr r0, _080E7A54 @ =gUnknown_203B0C1 - ldrb r1, [r0] - ldr r2, _080E7A58 @ =gUnknown_203B0DC - movs r0, 0x1 - bl BtlController_EmitChosenMonReturnValue - b _080E7A66 - .align 2, 0 -_080E7A44: .4byte gMain -_080E7A48: .4byte BattleMainCB2 -_080E7A4C: .4byte gPaletteFade -_080E7A50: .4byte gUnknown_203B0C0 -_080E7A54: .4byte gUnknown_203B0C1 -_080E7A58: .4byte gUnknown_203B0DC -_080E7A5C: - movs r0, 0x1 - movs r1, 0x6 - movs r2, 0 - bl BtlController_EmitChosenMonReturnValue -_080E7A66: - bl WallyBufferExecCompleted -_080E7A6A: - pop {r0} - bx r0 - thumb_func_end sub_80E7A14 - - thumb_func_start sub_80E7A70 -sub_80E7A70: @ 80E7A70 - push {lr} - ldr r0, _080E7AA8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080E7AC0 - ldr r1, _080E7AAC @ =gBattlerControllerFuncs - ldr r0, _080E7AB0 @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _080E7AB4 @ =sub_80E7AC4 - str r1, [r0] - bl nullsub_44 - bl FreeAllWindowBuffers - ldr r0, _080E7AB8 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080E7ABC - bl sub_8107ECC - b _080E7AC0 - .align 2, 0 -_080E7AA8: .4byte gPaletteFade -_080E7AAC: .4byte gBattlerControllerFuncs -_080E7AB0: .4byte gActiveBattler -_080E7AB4: .4byte sub_80E7AC4 -_080E7AB8: .4byte gBattleTypeFlags -_080E7ABC: - bl sub_810AF74 -_080E7AC0: - pop {r0} - bx r0 - thumb_func_end sub_80E7A70 - - thumb_func_start sub_80E7AC4 -sub_80E7AC4: @ 80E7AC4 - push {lr} - ldr r0, _080E7B14 @ =gMain - ldr r1, [r0, 0x4] - ldr r0, _080E7B18 @ =BattleMainCB2 - cmp r1, r0 - bne _080E7B42 - ldr r0, _080E7B1C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080E7B42 - movs r0, 0x4 - bl sub_80EB2E0 - lsls r0, 24 - cmp r0, 0 - bne _080E7B34 - ldr r0, _080E7B20 @ =gSpecialVar_ItemId - ldrh r0, [r0] - cmp r0, 0xD - bne _080E7B34 - ldr r0, _080E7B24 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080E7B34 - movs r0, 0x4 - bl sub_80EB2F4 - ldr r1, _080E7B28 @ =gBattlerControllerFuncs - ldr r0, _080E7B2C @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _080E7B30 @ =sub_80E8704 - str r1, [r0] - b _080E7B42 - .align 2, 0 -_080E7B14: .4byte gMain -_080E7B18: .4byte BattleMainCB2 -_080E7B1C: .4byte gPaletteFade -_080E7B20: .4byte gSpecialVar_ItemId -_080E7B24: .4byte gBattleTypeFlags -_080E7B28: .4byte gBattlerControllerFuncs -_080E7B2C: .4byte gActiveBattler -_080E7B30: .4byte sub_80E8704 -_080E7B34: - ldr r0, _080E7B48 @ =gSpecialVar_ItemId - ldrh r1, [r0] - movs r0, 0x1 - bl BtlController_EmitOneReturnValue - bl WallyBufferExecCompleted -_080E7B42: - pop {r0} - bx r0 - .align 2, 0 -_080E7B48: .4byte gSpecialVar_ItemId - thumb_func_end sub_80E7AC4 - - thumb_func_start sub_80E7B4C -sub_80E7B4C: @ 80E7B4C - push {r4-r7,lr} - ldr r4, _080E7CB0 @ =gBattleSpritesDataPtr - ldr r0, [r4] - ldr r5, _080E7CB4 @ =gActiveBattler - ldrb r2, [r5] - ldr r1, [r0, 0x4] - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r7, 0x88 - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - bne _080E7B80 - ldr r0, _080E7CB8 @ =gBattlerPartyIndexes - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _080E7CBC @ =gPlayerParty - adds r1, r0 - adds r0, r2, 0 - bl sub_80F1720 -_080E7B80: - ldr r1, [r4] - ldrb r0, [r5] - movs r6, 0x2 - adds r2, r6, 0 - eors r2, r0 - ldr r1, [r1, 0x4] - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - bne _080E7BB2 - ldr r0, _080E7CB8 @ =gBattlerPartyIndexes - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _080E7CBC @ =gPlayerParty - adds r1, r0 - adds r0, r2, 0 - bl sub_80F1720 -_080E7BB2: - ldr r0, [r4] - ldrb r2, [r5] - ldr r3, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0] - movs r4, 0x8 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - bne _080E7CA8 - adds r1, r6, 0 - eors r1, r2 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0] - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - bne _080E7CA8 - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - beq _080E7C46 - ldr r0, _080E7CC0 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - bne _080E7C46 - ldr r1, _080E7CC4 @ =gUnknown_3004FFC - ldrb r0, [r5] - eors r0, r6 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E7CC8 @ =gSprites - adds r0, r1 - bl DestroySprite - ldr r4, _080E7CCC @ =gHealthboxSpriteIds - ldrb r0, [r5] - adds r1, r6, 0 - eors r1, r0 - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, _080E7CB8 @ =gBattlerPartyIndexes - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, _080E7CBC @ =gPlayerParty - adds r1, r2 - movs r2, 0 - bl UpdateHealthboxAttribute - ldrb r0, [r5] - eors r0, r6 - bl sub_804BD94 - ldrb r0, [r5] - eors r0, r6 - adds r0, r4 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible -_080E7C46: - ldr r1, _080E7CC4 @ =gUnknown_3004FFC - ldr r4, _080E7CB4 @ =gActiveBattler - ldrb r0, [r4] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E7CC8 @ =gSprites - adds r0, r1 - bl DestroySprite - ldr r5, _080E7CCC @ =gHealthboxSpriteIds - ldrb r1, [r4] - adds r0, r1, r5 - ldrb r0, [r0] - ldr r2, _080E7CB8 @ =gBattlerPartyIndexes - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, _080E7CBC @ =gPlayerParty - adds r1, r2 - movs r2, 0 - bl UpdateHealthboxAttribute - ldrb r0, [r4] - bl sub_804BD94 - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible - ldr r0, _080E7CB0 @ =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r2, [r0, 0x8] - ldrb r1, [r2, 0x9] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x9] - ldr r1, _080E7CD0 @ =gBattlerControllerFuncs - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _080E7CD4 @ =sub_80E7CD8 - str r1, [r0] -_080E7CA8: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E7CB0: .4byte gBattleSpritesDataPtr -_080E7CB4: .4byte gActiveBattler -_080E7CB8: .4byte gBattlerPartyIndexes -_080E7CBC: .4byte gPlayerParty -_080E7CC0: .4byte gBattleTypeFlags -_080E7CC4: .4byte gUnknown_3004FFC -_080E7CC8: .4byte gSprites -_080E7CCC: .4byte gHealthboxSpriteIds -_080E7CD0: .4byte gBattlerControllerFuncs -_080E7CD4: .4byte sub_80E7CD8 - thumb_func_end sub_80E7B4C - - thumb_func_start sub_80E7CD8 -sub_80E7CD8: @ 80E7CD8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r4, 0 - ldr r2, _080E7DD8 @ =gSprites - ldr r0, _080E7DDC @ =gHealthboxSpriteIds - ldr r1, _080E7DE0 @ =gActiveBattler - mov r8, r1 - ldrb r3, [r1] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _080E7DE4 @ =SpriteCallbackDummy - cmp r1, r0 - bne _080E7D02 - movs r4, 0x1 -_080E7D02: - cmp r4, 0 - beq _080E7DCE - ldr r7, _080E7DE8 @ =gBattleSpritesDataPtr - ldr r0, [r7] - ldr r4, [r0, 0x4] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r2, r0, r4 - ldrb r1, [r2, 0x1] - movs r5, 0x1 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _080E7DCE - movs r6, 0x2 - adds r1, r6, 0 - eors r1, r3 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x1] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _080E7DCE - ldrb r1, [r2] - movs r3, 0x7F - adds r0, r3, 0 - ands r0, r1 - strb r0, [r2] - ldr r0, [r7] - mov r1, r8 - ldrb r2, [r1] - ldr r0, [r0, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r4, 0x2 - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - strb r0, [r1, 0x1] - ldr r2, [r7] - mov r1, r8 - ldrb r0, [r1] - adds r1, r6, 0 - eors r1, r0 - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - ands r3, r1 - strb r3, [r0] - ldr r2, [r7] - mov r1, r8 - ldrb r0, [r1] - adds r1, r6, 0 - eors r1, r0 - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1] - ands r4, r1 - strb r4, [r0, 0x1] - ldr r4, _080E7DEC @ =0x000027f9 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - ldr r0, _080E7DF0 @ =c3_0802FDF4 - movs r1, 0xA - bl CreateTask - ldr r2, _080E7DF4 @ =gBattlerPartyIndexes - mov r0, r8 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, _080E7DF8 @ =gPlayerParty - adds r0, r2 - bl HandleLowHpMusicChange - ldr r1, _080E7DFC @ =gBattlerControllerFuncs - mov r2, r8 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, _080E7E00 @ =sub_80E835C - str r1, [r0] -_080E7DCE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E7DD8: .4byte gSprites -_080E7DDC: .4byte gHealthboxSpriteIds -_080E7DE0: .4byte gActiveBattler -_080E7DE4: .4byte SpriteCallbackDummy -_080E7DE8: .4byte gBattleSpritesDataPtr -_080E7DEC: .4byte 0x000027f9 -_080E7DF0: .4byte c3_0802FDF4 -_080E7DF4: .4byte gBattlerPartyIndexes -_080E7DF8: .4byte gPlayerParty -_080E7DFC: .4byte gBattlerControllerFuncs -_080E7E00: .4byte sub_80E835C - thumb_func_end sub_80E7CD8 - - thumb_func_start sub_80E7E04 -sub_80E7E04: @ 80E7E04 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r1, _080E7F04 @ =gTasks - lsls r0, 2 - add r0, r9 - lsls r0, 3 - adds r0, r1 - mov r8, r0 - ldrb r0, [r0, 0x8] - mov r10, r0 - mov r1, r8 - ldrb r7, [r1, 0xC] - str r7, [sp, 0x8] - ldrh r2, [r1, 0xA] - str r2, [sp, 0xC] - bl IsDoubleBattle - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080E7E4A - ldr r1, _080E7F08 @ =gBattlerPartyIndexes - lsls r0, r7, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r10, r0 - bne _080E7E4A - b _080E7F60 -_080E7E4A: - movs r0, 0x64 - mov r1, r10 - muls r1, r0 - ldr r0, _080E7F0C @ =gPlayerParty - adds r6, r1, r0 - adds r0, r6, 0 - movs r1, 0xB - bl GetMonData - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r6, 0 - movs r1, 0x38 - bl GetMonData - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - movs r1, 0x19 - bl GetMonData - str r0, [sp, 0x4] - ldr r3, _080E7F10 @ =gExperienceTables - adds r4, 0x1 - lsls r4, 2 - ldr r2, _080E7F14 @ =gBaseStats - lsls r1, r5, 3 - subs r1, r5 - lsls r1, 2 - adds r1, r2 - ldrb r2, [r1, 0x13] - movs r1, 0xCA - lsls r1, 1 - muls r1, r2 - adds r4, r1 - adds r4, r3 - ldr r2, [r4] - str r2, [sp] - ldr r3, [sp, 0xC] - lsls r1, r3, 16 - asrs r1, 16 - adds r0, r1 - cmp r0, r2 - bcc _080E7F38 - adds r0, r6, 0 - movs r1, 0x19 - mov r2, sp - bl SetMonData - adds r0, r6, 0 - bl CalculateMonStats - ldr r2, [sp] - add r0, sp, 0x4 - ldrh r0, [r0] - subs r2, r0 - ldr r0, [sp, 0xC] - subs r2, r0, r2 - ldr r4, _080E7F18 @ =gActiveBattler - ldrb r5, [r4] - strb r7, [r4] - lsls r2, 16 - lsrs r2, 16 - movs r0, 0x1 - movs r1, 0xB - bl BtlController_EmitTwoReturnValues - strb r5, [r4] - bl IsDoubleBattle - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080E7F20 - ldr r2, _080E7F08 @ =gBattlerPartyIndexes - lsls r0, r7, 1 - adds r0, r2 - mov r1, r10 - ldrh r0, [r0] - cmp r1, r0 - beq _080E7EFE - movs r0, 0x2 - eors r7, r0 - lsls r0, r7, 1 - adds r0, r2 - ldrh r0, [r0] - cmp r1, r0 - bne _080E7F20 -_080E7EFE: - ldr r0, _080E7F1C @ =sub_80E8190 - b _080E7F62 - .align 2, 0 -_080E7F04: .4byte gTasks -_080E7F08: .4byte gBattlerPartyIndexes -_080E7F0C: .4byte gPlayerParty -_080E7F10: .4byte gExperienceTables -_080E7F14: .4byte gBaseStats -_080E7F18: .4byte gActiveBattler -_080E7F1C: .4byte sub_80E8190 -_080E7F20: - ldr r0, _080E7F30 @ =gTasks - mov r2, r9 - lsls r1, r2, 2 - add r1, r9 - lsls r1, 3 - adds r1, r0 - ldr r0, _080E7F34 @ =sub_80E82A8 - b _080E7F64 - .align 2, 0 -_080E7F30: .4byte gTasks -_080E7F34: .4byte sub_80E82A8 -_080E7F38: - str r0, [sp, 0x4] - add r2, sp, 0x4 - adds r0, r6, 0 - movs r1, 0x19 - bl SetMonData - ldr r1, _080E7F58 @ =gBattlerControllerFuncs - ldr r3, [sp, 0x8] - lsls r0, r3, 2 - adds r0, r1 - ldr r1, _080E7F5C @ =sub_80E8930 - str r1, [r0] - mov r0, r9 - bl DestroyTask - b _080E7F66 - .align 2, 0 -_080E7F58: .4byte gBattlerControllerFuncs -_080E7F5C: .4byte sub_80E8930 -_080E7F60: - ldr r0, _080E7F78 @ =sub_80E7F7C -_080E7F62: - mov r1, r8 -_080E7F64: - str r0, [r1] -_080E7F66: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E7F78: .4byte sub_80E7F7C - thumb_func_end sub_80E7E04 - - thumb_func_start sub_80E7F7C -sub_80E7F7C: @ 80E7F7C - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080E8034 @ =gTasks - lsls r2, r0, 2 - mov r8, r2 - add r8, r0 - mov r0, r8 - lsls r0, 3 - mov r8, r0 - add r8, r1 - mov r2, r8 - ldrb r1, [r2, 0x8] - movs r0, 0xA - ldrsh r2, [r2, r0] - mov r9, r2 - mov r2, r8 - ldrb r2, [r2, 0xC] - mov r10, r2 - movs r0, 0x64 - adds r6, r1, 0 - muls r6, r0 - ldr r0, _080E8038 @ =gPlayerParty - adds r6, r0 - adds r0, r6, 0 - movs r1, 0x38 - bl GetMonData - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - movs r1, 0xB - bl GetMonData - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r6, 0 - movs r1, 0x19 - bl GetMonData - adds r3, r0, 0 - ldr r6, _080E803C @ =gExperienceTables - lsls r1, r4, 2 - ldr r2, _080E8040 @ =gBaseStats - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - adds r0, r2 - ldrb r2, [r0, 0x13] - movs r0, 0xCA - lsls r0, 1 - muls r0, r2 - adds r1, r0 - adds r1, r6 - ldr r1, [r1] - subs r3, r1 - adds r4, 0x1 - lsls r4, 2 - adds r4, r0 - adds r4, r6 - ldr r2, [r4] - subs r2, r1 - ldr r0, _080E8044 @ =gHealthboxSpriteIds - add r0, r10 - ldrb r1, [r0] - mov r0, r9 - negs r0, r0 - str r0, [sp] - mov r0, r10 - bl SetBattleBarStruct - movs r0, 0x1B - bl PlaySE - ldr r0, _080E8048 @ =sub_80E804C - mov r1, r8 - str r0, [r1] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E8034: .4byte gTasks -_080E8038: .4byte gPlayerParty -_080E803C: .4byte gExperienceTables -_080E8040: .4byte gBaseStats -_080E8044: .4byte gHealthboxSpriteIds -_080E8048: .4byte sub_80E804C - thumb_func_end sub_80E7F7C - - thumb_func_start sub_80E804C -sub_80E804C: @ 80E804C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r1, _080E8078 @ =gTasks - lsls r0, 2 - add r0, r8 - lsls r0, 3 - adds r6, r0, r1 - ldrh r1, [r6, 0x1C] - movs r2, 0x1C - ldrsh r0, [r6, r2] - cmp r0, 0xC - bgt _080E807C - adds r0, r1, 0x1 - strh r0, [r6, 0x1C] - b _080E8178 - .align 2, 0 -_080E8078: .4byte gTasks -_080E807C: - ldrb r0, [r6, 0x8] - mov r9, r0 - ldrh r2, [r6, 0xA] - mov r10, r2 - ldrb r7, [r6, 0xC] - ldr r5, _080E8144 @ =gHealthboxSpriteIds - adds r5, r7, r5 - ldrb r1, [r5] - adds r0, r7, 0 - movs r2, 0x1 - movs r3, 0 - bl MoveBattleBar - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r5] - bl SetHealthboxSpriteVisible - lsls r4, 16 - asrs r4, 16 - movs r0, 0x1 - negs r0, r0 - cmp r4, r0 - bne _080E8178 - movs r0, 0x1B - bl m4aSongNumStop - movs r0, 0x64 - mov r1, r9 - muls r1, r0 - ldr r0, _080E8148 @ =gPlayerParty - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0x38 - bl GetMonData - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x19 - bl GetMonData - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - ldr r3, _080E814C @ =gExperienceTables - adds r4, 0x1 - lsls r4, 2 - ldr r2, _080E8150 @ =gBaseStats - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r1, [r1, 0x13] - movs r0, 0xCA - lsls r0, 1 - muls r0, r1 - adds r4, r0 - adds r4, r3 - ldr r1, [r4] - str r1, [sp] - mov r2, r10 - lsls r0, r2, 16 - asrs r4, r0, 16 - ldr r0, [sp, 0x4] - adds r0, r4 - cmp r0, r1 - blt _080E815C - adds r0, r5, 0 - movs r1, 0x19 - mov r2, sp - bl SetMonData - adds r0, r5, 0 - bl CalculateMonStats - ldr r2, [sp] - add r0, sp, 0x4 - ldrh r0, [r0] - subs r2, r0 - subs r2, r4, r2 - ldr r4, _080E8154 @ =gActiveBattler - ldrb r5, [r4] - strb r7, [r4] - lsls r2, 16 - lsrs r2, 16 - movs r0, 0x1 - movs r1, 0xB - bl BtlController_EmitTwoReturnValues - strb r5, [r4] - ldr r0, _080E8158 @ =sub_80E8190 - str r0, [r6] - b _080E8178 - .align 2, 0 -_080E8144: .4byte gHealthboxSpriteIds -_080E8148: .4byte gPlayerParty -_080E814C: .4byte gExperienceTables -_080E8150: .4byte gBaseStats -_080E8154: .4byte gActiveBattler -_080E8158: .4byte sub_80E8190 -_080E815C: - str r0, [sp, 0x4] - add r2, sp, 0x4 - adds r0, r5, 0 - movs r1, 0x19 - bl SetMonData - ldr r1, _080E8188 @ =gBattlerControllerFuncs - lsls r0, r7, 2 - adds r0, r1 - ldr r1, _080E818C @ =sub_80E8930 - str r1, [r0] - mov r0, r8 - bl DestroyTask -_080E8178: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E8188: .4byte gBattlerControllerFuncs -_080E818C: .4byte sub_80E8930 - thumb_func_end sub_80E804C - - thumb_func_start sub_80E8190 -sub_80E8190: @ 80E8190 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080E81E4 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldrb r4, [r0, 0xC] - ldrb r6, [r0, 0x8] - bl IsDoubleBattle - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080E81C4 - ldr r1, _080E81E8 @ =gBattlerPartyIndexes - movs r0, 0x2 - adds r2, r4, 0 - eors r2, r0 - lsls r0, r2, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r6, r0 - bne _080E81C4 - adds r4, r2, 0 -_080E81C4: - adds r0, r4, 0 - adds r1, r4, 0 - adds r2, r4, 0 - movs r3, 0 - bl InitAndLaunchSpecialAnimation - ldr r0, _080E81E4 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080E81EC @ =sub_80E81F0 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E81E4: .4byte gTasks -_080E81E8: .4byte gBattlerPartyIndexes -_080E81EC: .4byte sub_80E81F0 - thumb_func_end sub_80E8190 - - thumb_func_start sub_80E81F0 -sub_80E81F0: @ 80E81F0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080E825C @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r2, r0, r1 - ldrb r5, [r2, 0xC] - ldr r0, _080E8260 @ =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r1, [r0, 0x4] - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _080E8292 - ldrb r4, [r2, 0x8] - movs r0, 0x64 - adds r1, r4, 0 - muls r1, r0 - ldr r0, _080E8264 @ =gPlayerParty - adds r7, r1, r0 - adds r0, r7, 0 - movs r1, 0x38 - bl GetMonData - bl IsDoubleBattle - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080E8270 - ldr r1, _080E8268 @ =gBattlerPartyIndexes - movs r0, 0x2 - adds r2, r5, 0 - eors r2, r0 - lsls r0, r2, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r4, r0 - bne _080E8270 - ldr r0, _080E826C @ =gHealthboxSpriteIds - adds r0, r2, r0 - ldrb r0, [r0] - adds r1, r7, 0 - movs r2, 0 - bl UpdateHealthboxAttribute - b _080E8284 - .align 2, 0 -_080E825C: .4byte gTasks -_080E8260: .4byte gBattleSpritesDataPtr -_080E8264: .4byte gPlayerParty -_080E8268: .4byte gBattlerPartyIndexes -_080E826C: .4byte gHealthboxSpriteIds -_080E8270: - ldr r0, _080E8298 @ =gHealthboxSpriteIds - adds r0, r5, r0 - ldrb r0, [r0] - movs r1, 0x64 - muls r1, r4 - ldr r2, _080E829C @ =gPlayerParty - adds r1, r2 - movs r2, 0 - bl UpdateHealthboxAttribute -_080E8284: - ldr r0, _080E82A0 @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, _080E82A4 @ =sub_80E82A8 - str r0, [r1] -_080E8292: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E8298: .4byte gHealthboxSpriteIds -_080E829C: .4byte gPlayerParty -_080E82A0: .4byte gTasks -_080E82A4: .4byte sub_80E82A8 - thumb_func_end sub_80E81F0 - - thumb_func_start sub_80E82A8 -sub_80E82A8: @ 80E82A8 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _080E82E4 @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - ldrb r1, [r4, 0x8] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080E82E8 @ =gPlayerParty - adds r0, r1 - movs r1, 0x38 - bl GetMonData - ldrb r0, [r4, 0xC] - ldr r1, _080E82EC @ =gBattlerControllerFuncs - lsls r0, 2 - adds r0, r1 - ldr r1, _080E82F0 @ =sub_80E8930 - str r1, [r0] - adds r0, r5, 0 - bl DestroyTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E82E4: .4byte gTasks -_080E82E8: .4byte gPlayerParty -_080E82EC: .4byte gBattlerControllerFuncs -_080E82F0: .4byte sub_80E8930 - thumb_func_end sub_80E82A8 - - thumb_func_start sub_80E82F4 -sub_80E82F4: @ 80E82F4 - push {r4-r6,lr} - ldr r6, _080E834C @ =gSprites - ldr r5, _080E8350 @ =gBattlerSpriteIds - ldr r4, _080E8354 @ =gActiveBattler - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, r0, r6 - movs r1, 0x22 - ldrsh r0, [r2, r1] - movs r3, 0x26 - ldrsh r1, [r2, r3] - adds r0, r1 - cmp r0, 0xA0 - ble _080E8344 - ldrb r0, [r2, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl DestroySprite - ldr r1, _080E8358 @ =gHealthboxSpriteIds - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible - bl WallyBufferExecCompleted -_080E8344: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E834C: .4byte gSprites -_080E8350: .4byte gBattlerSpriteIds -_080E8354: .4byte gActiveBattler -_080E8358: .4byte gHealthboxSpriteIds - thumb_func_end sub_80E82F4 - - thumb_func_start sub_80E835C -sub_80E835C: @ 80E835C - push {r4-r7,lr} - sub sp, 0x4 - ldr r1, _080E837C @ =gBattleStruct - ldr r0, [r1] - adds r0, 0x94 - ldrb r0, [r0] - adds r7, r1, 0 - cmp r0, 0x8 - bls _080E8370 - b _080E855E -_080E8370: - lsls r0, 2 - ldr r1, _080E8380 @ =_080E8384 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E837C: .4byte gBattleStruct -_080E8380: .4byte _080E8384 - .align 2, 0 -_080E8384: - .4byte _080E83A8 - .4byte _080E83F0 - .4byte _080E8408 - .4byte _080E8420 - .4byte _080E8468 - .4byte _080E8490 - .4byte _080E84D8 - .4byte _080E8500 - .4byte _080E8530 -_080E83A8: - ldr r0, _080E83EC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - beq _080E83BA - b _080E855E -_080E83BA: - ldr r4, [r7] - adds r5, r4, 0 - adds r5, 0x95 - adds r4, 0x97 - movs r0, 0x1 - bl GetBattlerAtPosition - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80EEFC8 - movs r0, 0x82 - negs r0, r0 - str r6, [sp] - movs r1, 0x4 - movs r2, 0 - movs r3, 0x8 - bl BeginNormalPaletteFade - ldr r1, [r7] - b _080E8522 - .align 2, 0 -_080E83EC: .4byte gPaletteFade -_080E83F0: - ldr r0, _080E8404 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080E83FE - b _080E855E -_080E83FE: - bl sub_80EB30C - b _080E851E - .align 2, 0 -_080E8404: .4byte gPaletteFade -_080E8408: - ldr r0, _080E8418 @ =gUnknown_83FDAE2 - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r0, _080E841C @ =gDisplayedStringBattle - movs r1, 0x18 - bl BattlePutTextOnWindow - b _080E851E - .align 2, 0 -_080E8418: .4byte gUnknown_83FDAE2 -_080E841C: .4byte gDisplayedStringBattle -_080E8420: - movs r0, 0x18 - bl IsTextPrinterActive - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0 - beq _080E8430 - b _080E855E -_080E8430: - ldr r2, _080E8460 @ =gBitTable - ldr r4, _080E8464 @ =gBattleStruct - ldr r0, [r4] - adds r1, r0, 0 - adds r1, 0x95 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r2 - adds r0, 0x97 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldr r1, [r1] - ldr r0, [r0] - orrs r1, r0 - lsls r0, r1, 16 - str r3, [sp] - movs r1, 0x4 - movs r2, 0x8 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, [r4] - b _080E8522 - .align 2, 0 -_080E8460: .4byte gBitTable -_080E8464: .4byte gBattleStruct -_080E8468: - ldr r0, _080E8484 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080E855E - ldr r0, _080E8488 @ =gUnknown_83FDB92 - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r0, _080E848C @ =gDisplayedStringBattle - movs r1, 0x18 - bl BattlePutTextOnWindow - b _080E851E - .align 2, 0 -_080E8484: .4byte gPaletteFade -_080E8488: .4byte gUnknown_83FDB92 -_080E848C: .4byte gDisplayedStringBattle -_080E8490: - movs r0, 0x18 - bl IsTextPrinterActive - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0 - bne _080E855E - ldr r2, _080E84D0 @ =gBitTable - ldr r4, _080E84D4 @ =gBattleStruct - ldr r0, [r4] - adds r1, r0, 0 - adds r1, 0x95 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r2 - adds r0, 0x97 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldr r1, [r1] - ldr r0, [r0] - orrs r1, r0 - lsls r0, r1, 16 - str r3, [sp] - movs r1, 0x4 - movs r2, 0 - movs r3, 0x8 - bl BeginNormalPaletteFade - ldr r1, [r4] - b _080E8522 - .align 2, 0 -_080E84D0: .4byte gBitTable -_080E84D4: .4byte gBattleStruct -_080E84D8: - ldr r0, _080E84F4 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080E855E - ldr r0, _080E84F8 @ =gUnknown_83FDBEF - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r0, _080E84FC @ =gDisplayedStringBattle - movs r1, 0x18 - bl BattlePutTextOnWindow - b _080E851E - .align 2, 0 -_080E84F4: .4byte gPaletteFade -_080E84F8: .4byte gUnknown_83FDBEF -_080E84FC: .4byte gDisplayedStringBattle -_080E8500: - movs r0, 0x18 - bl IsTextPrinterActive - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _080E855E - movs r0, 0x82 - negs r0, r0 - str r1, [sp] - movs r1, 0x4 - movs r2, 0x8 - movs r3, 0 - bl BeginNormalPaletteFade -_080E851E: - ldr r0, _080E852C @ =gBattleStruct - ldr r1, [r0] -_080E8522: - adds r1, 0x94 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080E855E - .align 2, 0 -_080E852C: .4byte gBattleStruct -_080E8530: - ldr r0, _080E8568 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080E855E - movs r0, 0x1 - bl GetBattlerAtPosition - lsls r0, 24 - lsrs r0, 24 - bl sub_80EF0E0 - bl sub_80EB524 - ldr r0, _080E856C @ =gBattleStruct - ldr r0, [r0] - adds r0, 0x94 - strb r4, [r0] - bl WallyBufferExecCompleted -_080E855E: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E8568: .4byte gPaletteFade -_080E856C: .4byte gBattleStruct - thumb_func_end sub_80E835C - - thumb_func_start sub_80E8570 -sub_80E8570: @ 80E8570 - push {lr} - ldr r0, _080E8580 @ =gUnknown_83FDC58 - movs r1, 0x1 - bl sub_80E85D4 - pop {r0} - bx r0 - .align 2, 0 -_080E8580: .4byte gUnknown_83FDC58 - thumb_func_end sub_80E8570 - - thumb_func_start sub_80E8584 -sub_80E8584: @ 80E8584 - push {lr} - ldr r0, _080E8594 @ =gUnknown_83FDC95 - movs r1, 0x40 - bl sub_80E85D4 - pop {r0} - bx r0 - .align 2, 0 -_080E8594: .4byte gUnknown_83FDC95 - thumb_func_end sub_80E8584 - - thumb_func_start sub_80E8598 -sub_80E8598: @ 80E8598 - push {lr} - ldr r0, _080E85A8 @ =gUnknown_83FDD23 - movs r1, 0x1 - bl sub_80E85D4 - pop {r0} - bx r0 - .align 2, 0 -_080E85A8: .4byte gUnknown_83FDD23 - thumb_func_end sub_80E8598 - - thumb_func_start sub_80E85AC -sub_80E85AC: @ 80E85AC - push {lr} - ldr r0, _080E85BC @ =gUnknown_83FDD64 - movs r1, 0x40 - bl sub_80E85D4 - pop {r0} - bx r0 - .align 2, 0 -_080E85BC: .4byte gUnknown_83FDD64 - thumb_func_end sub_80E85AC - - thumb_func_start sub_80E85C0 -sub_80E85C0: @ 80E85C0 - push {lr} - ldr r0, _080E85D0 @ =gUnknown_83FDDEB - movs r1, 0x40 - bl sub_80E85D4 - pop {r0} - bx r0 - .align 2, 0 -_080E85D0: .4byte gUnknown_83FDDEB - thumb_func_end sub_80E85C0 - - thumb_func_start sub_80E85D4 -sub_80E85D4: @ 80E85D4 - push {r4,r5,lr} - sub sp, 0x4 - adds r2, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - ldr r1, _080E85F8 @ =gBattleStruct - ldr r0, [r1] - adds r0, 0x94 - ldrb r0, [r0] - adds r5, r1, 0 - cmp r0, 0x5 - bls _080E85EE - b _080E86F2 -_080E85EE: - lsls r0, 2 - ldr r1, _080E85FC @ =_080E8600 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E85F8: .4byte gBattleStruct -_080E85FC: .4byte _080E8600 - .align 2, 0 -_080E8600: - .4byte _080E8618 - .4byte _080E8634 - .4byte _080E865A - .4byte _080E8670 - .4byte _080E8684 - .4byte _080E86B4 -_080E8618: - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - bne _080E86F2 - ldr r1, _080E8630 @ =gBattleStruct - ldr r0, [r1] - adds r0, 0x97 - strb r4, [r0] - ldr r1, [r1] - b _080E86A6 - .align 2, 0 -_080E8630: .4byte gBattleStruct -_080E8634: - ldr r1, [r5] - adds r1, 0x97 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _080E86F2 - movs r0, 0x82 - negs r0, r0 - str r1, [sp] - movs r1, 0x4 - movs r2, 0 - movs r3, 0x8 - bl BeginNormalPaletteFade - ldr r1, [r5] - b _080E86A6 -_080E865A: - ldr r0, _080E866C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080E86F2 - bl sub_80EB30C - b _080E86A2 - .align 2, 0 -_080E866C: .4byte gPaletteFade -_080E8670: - adds r0, r2, 0 - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r0, _080E8680 @ =gDisplayedStringBattle - movs r1, 0x18 - bl BattlePutTextOnWindow - b _080E86A2 - .align 2, 0 -_080E8680: .4byte gDisplayedStringBattle -_080E8684: - movs r0, 0x18 - bl IsTextPrinterActive - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _080E86F2 - movs r0, 0x82 - negs r0, r0 - str r1, [sp] - movs r1, 0x4 - movs r2, 0x8 - movs r3, 0 - bl BeginNormalPaletteFade -_080E86A2: - ldr r0, _080E86B0 @ =gBattleStruct - ldr r1, [r0] -_080E86A6: - adds r1, 0x94 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080E86F2 - .align 2, 0 -_080E86B0: .4byte gBattleStruct -_080E86B4: - ldr r0, _080E86D8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080E86F2 - bl sub_80EB524 - ldr r0, _080E86DC @ =gActiveBattler - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080E86E0 - bl WallyBufferExecCompleted - b _080E86E4 - .align 2, 0 -_080E86D8: .4byte gPaletteFade -_080E86DC: .4byte gActiveBattler -_080E86E0: - bl OpponentBufferExecCompleted -_080E86E4: - ldr r0, _080E86FC @ =gBattleCommunication - movs r1, 0 - strb r1, [r0, 0x7] - ldr r0, _080E8700 @ =gBattleStruct - ldr r0, [r0] - adds r0, 0x94 - strb r1, [r0] -_080E86F2: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E86FC: .4byte gBattleCommunication -_080E8700: .4byte gBattleStruct - thumb_func_end sub_80E85D4 - - thumb_func_start sub_80E8704 -sub_80E8704: @ 80E8704 - push {r4,r5,lr} - sub sp, 0x4 - ldr r1, _080E8724 @ =gBattleStruct - ldr r0, [r1] - adds r0, 0x94 - ldrb r0, [r0] - adds r5, r1, 0 - cmp r0, 0x6 - bls _080E8718 - b _080E88AA -_080E8718: - lsls r0, 2 - ldr r1, _080E8728 @ =_080E872C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E8724: .4byte gBattleStruct -_080E8728: .4byte _080E872C - .align 2, 0 -_080E872C: - .4byte _080E8748 - .4byte _080E8788 - .4byte _080E87D0 - .4byte _080E87E8 - .4byte _080E8800 - .4byte _080E8848 - .4byte _080E8880 -_080E8748: - ldr r0, _080E8780 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080E875A - b _080E88AA -_080E875A: - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x95 - adds r1, 0x97 - ldr r2, _080E8784 @ =gActiveBattler - ldrb r2, [r2] - bl sub_80EEFC8 - movs r0, 0x82 - negs r0, r0 - str r4, [sp] - movs r1, 0x4 - movs r2, 0 - movs r3, 0x8 - bl BeginNormalPaletteFade - ldr r1, [r5] - b _080E886C - .align 2, 0 -_080E8780: .4byte gPaletteFade -_080E8784: .4byte gActiveBattler -_080E8788: - ldr r0, _080E87C8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - beq _080E879A - b _080E88AA -_080E879A: - ldr r2, _080E87CC @ =gBitTable - ldr r0, [r5] - adds r1, r0, 0 - adds r1, 0x95 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r2 - adds r0, 0x97 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldr r1, [r1] - ldr r0, [r0] - orrs r1, r0 - lsls r0, r1, 16 - str r3, [sp] - movs r1, 0x4 - movs r2, 0x8 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, [r5] - b _080E886C - .align 2, 0 -_080E87C8: .4byte gPaletteFade -_080E87CC: .4byte gBitTable -_080E87D0: - ldr r0, _080E87E4 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080E88AA - bl sub_80EB30C - b _080E8868 - .align 2, 0 -_080E87E4: .4byte gPaletteFade -_080E87E8: - ldr r0, _080E87F8 @ =gUnknown_83FDCD2 - bl BattleStringExpandPlaceholdersToDisplayedString - ldr r0, _080E87FC @ =gDisplayedStringBattle - movs r1, 0x18 - bl BattlePutTextOnWindow - b _080E8868 - .align 2, 0 -_080E87F8: .4byte gUnknown_83FDCD2 -_080E87FC: .4byte gDisplayedStringBattle -_080E8800: - movs r0, 0x18 - bl IsTextPrinterActive - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0 - bne _080E88AA - ldr r2, _080E8840 @ =gBitTable - ldr r4, _080E8844 @ =gBattleStruct - ldr r0, [r4] - adds r1, r0, 0 - adds r1, 0x95 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r2 - adds r0, 0x97 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldr r1, [r1] - ldr r0, [r0] - orrs r1, r0 - lsls r0, r1, 16 - str r3, [sp] - movs r1, 0x4 - movs r2, 0 - movs r3, 0x8 - bl BeginNormalPaletteFade - ldr r1, [r4] - b _080E886C - .align 2, 0 -_080E8840: .4byte gBitTable -_080E8844: .4byte gBattleStruct -_080E8848: - ldr r0, _080E8878 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _080E88AA - movs r0, 0x82 - negs r0, r0 - str r1, [sp] - movs r1, 0x4 - movs r2, 0x8 - movs r3, 0 - bl BeginNormalPaletteFade -_080E8868: - ldr r0, _080E887C @ =gBattleStruct - ldr r1, [r0] -_080E886C: - adds r1, 0x94 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080E88AA - .align 2, 0 -_080E8878: .4byte gPaletteFade -_080E887C: .4byte gBattleStruct -_080E8880: - ldr r0, _080E88B4 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080E88AA - bl sub_80EB524 - ldr r0, _080E88B8 @ =gSpecialVar_ItemId - ldrh r1, [r0] - movs r0, 0x1 - bl BtlController_EmitOneReturnValue - bl WallyBufferExecCompleted - ldr r0, _080E88BC @ =gBattleStruct - ldr r0, [r0] - adds r0, 0x94 - strb r4, [r0] -_080E88AA: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E88B4: .4byte gPaletteFade -_080E88B8: .4byte gSpecialVar_ItemId -_080E88BC: .4byte gBattleStruct - thumb_func_end sub_80E8704 - - thumb_func_start sub_80E88C0 -sub_80E88C0: @ 80E88C0 - push {r4-r6,lr} - ldr r5, _080E8900 @ =gActiveBattler - ldrb r0, [r5] - ldr r6, _080E8904 @ =gHealthboxSpriteIds - adds r1, r0, r6 - ldrb r1, [r1] - movs r2, 0 - movs r3, 0 - bl MoveBattleBar - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r5] - adds r0, r6 - ldrb r0, [r0] - bl SetHealthboxSpriteVisible - lsls r4, 16 - asrs r1, r4, 16 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _080E8908 - ldrb r0, [r5] - adds r0, r6 - ldrb r0, [r0] - movs r2, 0 - bl UpdateHpTextInHealthbox - b _080E8922 - .align 2, 0 -_080E8900: .4byte gActiveBattler -_080E8904: .4byte gHealthboxSpriteIds -_080E8908: - ldr r2, _080E8928 @ =gBattlerPartyIndexes - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, _080E892C @ =gPlayerParty - adds r0, r2 - bl HandleLowHpMusicChange - bl WallyBufferExecCompleted -_080E8922: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E8928: .4byte gBattlerPartyIndexes -_080E892C: .4byte gPlayerParty - thumb_func_end sub_80E88C0 - - thumb_func_start sub_80E8930 -sub_80E8930: @ 80E8930 - push {lr} - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - bne _080E8942 - bl WallyBufferExecCompleted -_080E8942: - pop {r0} - bx r0 - thumb_func_end sub_80E8930 - - thumb_func_start DoHitAnimBlinkSpriteEffect_3 -DoHitAnimBlinkSpriteEffect_3: @ 80E8948 - push {r4,lr} - ldr r1, _080E8984 @ =gBattlerSpriteIds - ldr r0, _080E8988 @ =gActiveBattler - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - ldr r2, _080E898C @ =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r2 - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x20 - bne _080E8994 - movs r3, 0 - movs r0, 0 - strh r0, [r4, 0x30] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - subs r0, 0x5 - ands r0, r1 - strb r0, [r2] - ldr r0, _080E8990 @ =gDoingBattleAnim - strb r3, [r0] - bl WallyBufferExecCompleted - b _080E89BE - .align 2, 0 -_080E8984: .4byte gBattlerSpriteIds -_080E8988: .4byte gActiveBattler -_080E898C: .4byte gSprites -_080E8990: .4byte gDoingBattleAnim -_080E8994: - ldrh r0, [r4, 0x30] - movs r1, 0x3 - ands r0, r1 - cmp r0, 0 - bne _080E89B8 - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080E89B8: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] -_080E89BE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end DoHitAnimBlinkSpriteEffect_3 - - thumb_func_start sub_80E89C4 -sub_80E89C4: @ 80E89C4 - push {r4-r6,lr} - ldr r0, _080E8A20 @ =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r6, _080E8A24 @ =gActiveBattler - ldrb r2, [r6] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _080E8A18 - ldr r5, _080E8A28 @ =gBattlerSpriteIds - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _080E8A2C @ =gSprites - adds r0, r4 - bl FreeSpriteOamMatrix - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - ldr r1, _080E8A30 @ =gHealthboxSpriteIds - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible - bl WallyBufferExecCompleted -_080E8A18: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E8A20: .4byte gBattleSpritesDataPtr -_080E8A24: .4byte gActiveBattler -_080E8A28: .4byte gBattlerSpriteIds -_080E8A2C: .4byte gSprites -_080E8A30: .4byte gHealthboxSpriteIds - thumb_func_end sub_80E89C4 - - thumb_func_start sub_80E8A34 -sub_80E8A34: @ 80E8A34 - push {lr} - ldr r2, _080E8A5C @ =gSprites - ldr r1, _080E8A60 @ =gBattlerSpriteIds - ldr r0, _080E8A64 @ =gActiveBattler - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _080E8A68 @ =SpriteCallbackDummy - cmp r1, r0 - bne _080E8A58 - bl WallyBufferExecCompleted -_080E8A58: - pop {r0} - bx r0 - .align 2, 0 -_080E8A5C: .4byte gSprites -_080E8A60: .4byte gBattlerSpriteIds -_080E8A64: .4byte gActiveBattler -_080E8A68: .4byte SpriteCallbackDummy - thumb_func_end sub_80E8A34 - - thumb_func_start CompleteOnFinishedBattleAnimation_4 -CompleteOnFinishedBattleAnimation_4: @ 80E8A6C - push {lr} - ldr r0, _080E8A94 @ =gBattleSpritesDataPtr - ldr r2, [r0] - ldr r0, _080E8A98 @ =gActiveBattler - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _080E8A8E - bl WallyBufferExecCompleted -_080E8A8E: - pop {r0} - bx r0 - .align 2, 0 -_080E8A94: .4byte gBattleSpritesDataPtr -_080E8A98: .4byte gActiveBattler - thumb_func_end CompleteOnFinishedBattleAnimation_4 - - thumb_func_start WallyBufferExecCompleted -WallyBufferExecCompleted: @ 80E8A9C - push {r4,lr} - sub sp, 0x4 - ldr r1, _080E8ADC @ =gBattlerControllerFuncs - ldr r4, _080E8AE0 @ =gActiveBattler - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _080E8AE4 @ =sub_80E75EC - str r1, [r0] - ldr r0, _080E8AE8 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E8AF0 - bl GetMultiplayerId - mov r1, sp - strb r0, [r1] - movs r0, 0x2 - movs r1, 0x4 - mov r2, sp - bl PrepareBufferDataTransferLink - ldr r1, _080E8AEC @ =gBattleBufferA - ldrb r0, [r4] - lsls r0, 9 - adds r0, r1 - movs r1, 0x38 - strb r1, [r0] - b _080E8B02 - .align 2, 0 -_080E8ADC: .4byte gBattlerControllerFuncs -_080E8AE0: .4byte gActiveBattler -_080E8AE4: .4byte sub_80E75EC -_080E8AE8: .4byte gBattleTypeFlags -_080E8AEC: .4byte gBattleBufferA -_080E8AF0: - ldr r2, _080E8B0C @ =gBattleControllerExecFlags - ldr r1, _080E8B10 @ =gBitTable - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - ldr r0, [r2] - bics r0, r1 - str r0, [r2] -_080E8B02: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E8B0C: .4byte gBattleControllerExecFlags -_080E8B10: .4byte gBitTable - thumb_func_end WallyBufferExecCompleted - - thumb_func_start CompleteOnFinishedStatusAnimation_4 -CompleteOnFinishedStatusAnimation_4: @ 80E8B14 - push {lr} - ldr r0, _080E8B3C @ =gBattleSpritesDataPtr - ldr r2, [r0] - ldr r0, _080E8B40 @ =gActiveBattler - ldrb r1, [r0] - ldr r2, [r2, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _080E8B36 - bl WallyBufferExecCompleted -_080E8B36: - pop {r0} - bx r0 - .align 2, 0 -_080E8B3C: .4byte gBattleSpritesDataPtr -_080E8B40: .4byte gActiveBattler - thumb_func_end CompleteOnFinishedStatusAnimation_4 - - thumb_func_start WallyHandleGetMonData -WallyHandleGetMonData: @ 80E8B44 - push {r4-r6,lr} - sub sp, 0x100 - movs r6, 0 - ldr r1, _080E8B70 @ =gBattleBufferA - ldr r0, _080E8B74 @ =gActiveBattler - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0 - bne _080E8B7C - ldr r0, _080E8B78 @ =gBattlerPartyIndexes - lsls r1, r2, 1 - adds r1, r0 - ldrb r0, [r1] - mov r1, sp - bl CopyWallyMonData - adds r6, r0, 0 - b _080E8B9E - .align 2, 0 -_080E8B70: .4byte gBattleBufferA -_080E8B74: .4byte gActiveBattler -_080E8B78: .4byte gBattlerPartyIndexes -_080E8B7C: - ldrb r4, [r1] - movs r5, 0 -_080E8B80: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _080E8B96 - lsls r0, r5, 24 - lsrs r0, 24 - mov r2, sp - adds r1, r2, r6 - bl CopyWallyMonData - adds r6, r0 -_080E8B96: - lsrs r4, 1 - adds r5, 0x1 - cmp r5, 0x5 - ble _080E8B80 -_080E8B9E: - lsls r1, r6, 16 - lsrs r1, 16 - movs r0, 0x1 - mov r2, sp - bl BtlController_EmitDataTransfer - bl WallyBufferExecCompleted - add sp, 0x100 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end WallyHandleGetMonData - - thumb_func_start CopyWallyMonData -CopyWallyMonData: @ 80E8BB8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x90 - adds r7, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0 - ldr r2, _080E8BEC @ =gBattleBufferA - ldr r3, _080E8BF0 @ =gActiveBattler - ldrb r0, [r3] - lsls r0, 9 - adds r1, r2, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x3B - bls _080E8BE2 - bl _080E934E -_080E8BE2: - lsls r0, 2 - ldr r1, _080E8BF4 @ =_080E8BF8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E8BEC: .4byte gBattleBufferA -_080E8BF0: .4byte gActiveBattler -_080E8BF4: .4byte _080E8BF8 - .align 2, 0 -_080E8BF8: - .4byte _080E8CE8 - .4byte _080E8F0C - .4byte _080E8F1C - .4byte _080E8F2C - .4byte _080E8F94 - .4byte _080E8F94 - .4byte _080E8F94 - .4byte _080E8F94 - .4byte _080E8FB0 - .4byte _080E8FEC - .4byte _080E8FEC - .4byte _080E8FEC - .4byte _080E8FEC - .4byte _080E934E - .4byte _080E934E - .4byte _080E934E - .4byte _080E934E - .4byte _080E9008 - .4byte _080E9018 - .4byte _080E9048 - .4byte _080E9058 - .4byte _080E9068 - .4byte _080E9078 - .4byte _080E9088 - .4byte _080E9098 - .4byte _080E90A8 - .4byte _080E90B8 - .4byte _080E90C8 - .4byte _080E90D8 - .4byte _080E90E8 - .4byte _080E90F8 - .4byte _080E9108 - .4byte _080E9158 - .4byte _080E9168 - .4byte _080E9178 - .4byte _080E9188 - .4byte _080E9198 - .4byte _080E91A8 - .4byte _080E91B8 - .4byte _080E91C8 - .4byte _080E91D8 - .4byte _080E920C - .4byte _080E921C - .4byte _080E922C - .4byte _080E923C - .4byte _080E924C - .4byte _080E925C - .4byte _080E926C - .4byte _080E927C - .4byte _080E929C - .4byte _080E92AC - .4byte _080E92BC - .4byte _080E92CC - .4byte _080E92DC - .4byte _080E92EC - .4byte _080E92FC - .4byte _080E930C - .4byte _080E931C - .4byte _080E932C - .4byte _080E933C -_080E8CE8: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _080E8EFC @ =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - mov r1, sp - strh r0, [r1] - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2E] - movs r6, 0 - add r0, sp, 0x24 - mov r9, r0 - movs r1, 0x3B - add r1, sp - mov r10, r1 - mov r2, sp - adds r2, 0x2B - str r2, [sp, 0x80] - mov r0, sp - adds r0, 0x2A - str r0, [sp, 0x7C] - mov r1, sp - adds r1, 0x68 - str r1, [sp, 0x8C] - adds r2, 0x5 - str r2, [sp, 0x84] - adds r0, 0x12 - str r0, [sp, 0x88] - mov r8, r4 - add r4, sp, 0xC -_080E8D34: - adds r1, r6, 0 - adds r1, 0xD - mov r0, r8 - bl GetMonData - strh r0, [r4] - adds r1, r6, 0 - adds r1, 0x11 - mov r0, r8 - bl GetMonData - mov r2, r9 - adds r1, r2, r6 - strb r0, [r1] - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _080E8D34 - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _080E8EFC @ =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x15 - bl GetMonData - mov r1, r10 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - ldr r2, [sp, 0x80] - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x19 - bl GetMonData - str r0, [sp, 0x44] - adds r0, r4, 0 - movs r1, 0x27 - bl GetMonData - mov r3, sp - movs r5, 0x1F - ands r0, r5 - ldrb r2, [r3, 0x14] - movs r1, 0x20 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x14] - adds r0, r4, 0 - movs r1, 0x28 - bl GetMonData - mov r3, sp - movs r6, 0x1F - ands r0, r6 - lsls r0, 5 - ldrh r2, [r3, 0x14] - ldr r1, _080E8F00 @ =0xfffffc1f - ands r1, r2 - orrs r1, r0 - strh r1, [r3, 0x14] - adds r0, r4, 0 - movs r1, 0x29 - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, 2 - ldrb r2, [r3, 0x15] - movs r1, 0x7D - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x15] - adds r0, r4, 0 - movs r1, 0x2A - bl GetMonData - movs r1, 0x1F - ands r1, r0 - lsls r1, 15 - ldr r0, [sp, 0x14] - ldr r2, _080E8F04 @ =0xfff07fff - ands r0, r2 - orrs r0, r1 - str r0, [sp, 0x14] - adds r0, r4, 0 - movs r1, 0x2B - bl GetMonData - mov r3, sp - ands r0, r6 - lsls r0, 4 - ldrh r2, [r3, 0x16] - ldr r1, _080E8F08 @ =0xfffffe0f - ands r1, r2 - orrs r1, r0 - strh r1, [r3, 0x16] - adds r0, r4, 0 - movs r1, 0x2C - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, 1 - ldrb r2, [r3, 0x17] - movs r1, 0x3F - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - str r0, [sp, 0x48] - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData - str r0, [sp, 0x4C] - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - ldr r1, [sp, 0x7C] - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - mov r1, sp - strh r0, [r1, 0x28] - adds r0, r4, 0 - movs r1, 0x3A - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2C] - adds r0, r4, 0 - movs r1, 0x3B - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2] - adds r0, r4, 0 - movs r1, 0x3C - bl GetMonData - mov r1, sp - strh r0, [r1, 0x4] - adds r0, r4, 0 - movs r1, 0x3D - bl GetMonData - mov r1, sp - strh r0, [r1, 0x6] - adds r0, r4, 0 - movs r1, 0x3E - bl GetMonData - mov r1, sp - strh r0, [r1, 0x8] - adds r0, r4, 0 - movs r1, 0x3F - bl GetMonData - mov r1, sp - strh r0, [r1, 0xA] - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - mov r3, sp - movs r1, 0x1 - ands r0, r1 - lsls r0, 6 - ldrb r2, [r3, 0x17] - movs r1, 0x41 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0x2E - bl GetMonData - mov r3, sp - lsls r0, 7 - ldrb r2, [r3, 0x17] - movs r1, 0x7F - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0x1 - bl GetMonData - str r0, [sp, 0x54] - adds r0, r4, 0 - movs r1, 0x2 - ldr r2, [sp, 0x8C] - bl GetMonData - ldr r0, [sp, 0x84] - ldr r1, [sp, 0x8C] - bl StringCopy10 - adds r0, r4, 0 - movs r1, 0x7 - ldr r2, [sp, 0x88] - bl GetMonData - mov r2, sp - movs r6, 0 -_080E8EEC: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, 0x1 - cmp r6, 0x57 - bls _080E8EEC - b _080E934E - .align 2, 0 -_080E8EFC: .4byte gPlayerParty -_080E8F00: .4byte 0xfffffc1f -_080E8F04: .4byte 0xfff07fff -_080E8F08: .4byte 0xfffffe0f -_080E8F0C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E8F18 @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - b _080E9286 - .align 2, 0 -_080E8F18: .4byte gPlayerParty -_080E8F1C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E8F28 @ =gPlayerParty - adds r0, r1 - movs r1, 0xC - b _080E9286 - .align 2, 0 -_080E8F28: .4byte gPlayerParty -_080E8F2C: - movs r6, 0 - add r2, sp, 0x58 - mov r9, r2 - add r0, sp, 0x60 - mov r10, r0 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _080E8F90 @ =gPlayerParty - adds r4, r1, r0 - mov r8, r9 -_080E8F42: - adds r1, r6, 0 - adds r1, 0xD - adds r0, r4, 0 - bl GetMonData - mov r1, r8 - strh r0, [r1] - adds r1, r6, 0 - adds r1, 0x11 - adds r0, r4, 0 - bl GetMonData - mov r2, r10 - adds r1, r2, r6 - strb r0, [r1] - movs r0, 0x2 - add r8, r0 - adds r6, 0x1 - cmp r6, 0x3 - ble _080E8F42 - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E8F90 @ =gPlayerParty - adds r0, r1 - movs r1, 0x15 - bl GetMonData - mov r1, r9 - strb r0, [r1, 0xC] - mov r2, r9 - movs r6, 0 -_080E8F80: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, 0x1 - cmp r6, 0xF - bls _080E8F80 - b _080E934E - .align 2, 0 -_080E8F90: .4byte gPlayerParty -_080E8F94: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E8FAC @ =gPlayerParty - adds r0, r1 - ldrb r1, [r3] - lsls r1, 9 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - adds r1, 0x9 - b _080E9286 - .align 2, 0 -_080E8FAC: .4byte gPlayerParty -_080E8FB0: - movs r6, 0 - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r2, _080E8FE8 @ =gPlayerParty - mov r8, r2 -_080E8FBC: - adds r1, r6, 0 - adds r1, 0x11 - mov r2, r8 - adds r0, r4, r2 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, 0x1 - cmp r6, 0x3 - ble _080E8FBC - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E8FE8 @ =gPlayerParty - adds r0, r1 - movs r1, 0x15 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, 0x1 - b _080E934E - .align 2, 0 -_080E8FE8: .4byte gPlayerParty -_080E8FEC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9004 @ =gPlayerParty - adds r0, r1 - ldrb r1, [r3] - lsls r1, 9 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - adds r1, 0x8 - b _080E9346 - .align 2, 0 -_080E9004: .4byte gPlayerParty -_080E9008: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9014 @ =gPlayerParty - adds r0, r1 - movs r1, 0x1 - b _080E9022 - .align 2, 0 -_080E9014: .4byte gPlayerParty -_080E9018: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9044 @ =gPlayerParty - adds r0, r1 - movs r1, 0x19 -_080E9022: - bl GetMonData - adds r1, r0, 0 - strb r1, [r7] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r0, 16 - strb r0, [r7, 0x2] - movs r6, 0x3 - b _080E934E - .align 2, 0 -_080E9044: .4byte gPlayerParty -_080E9048: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9054 @ =gPlayerParty - adds r0, r1 - movs r1, 0x1A - b _080E9346 - .align 2, 0 -_080E9054: .4byte gPlayerParty -_080E9058: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9064 @ =gPlayerParty - adds r0, r1 - movs r1, 0x1B - b _080E9346 - .align 2, 0 -_080E9064: .4byte gPlayerParty -_080E9068: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9074 @ =gPlayerParty - adds r0, r1 - movs r1, 0x1C - b _080E9346 - .align 2, 0 -_080E9074: .4byte gPlayerParty -_080E9078: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9084 @ =gPlayerParty - adds r0, r1 - movs r1, 0x1D - b _080E9346 - .align 2, 0 -_080E9084: .4byte gPlayerParty -_080E9088: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9094 @ =gPlayerParty - adds r0, r1 - movs r1, 0x1E - b _080E9346 - .align 2, 0 -_080E9094: .4byte gPlayerParty -_080E9098: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E90A4 @ =gPlayerParty - adds r0, r1 - movs r1, 0x1F - b _080E9346 - .align 2, 0 -_080E90A4: .4byte gPlayerParty -_080E90A8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E90B4 @ =gPlayerParty - adds r0, r1 - movs r1, 0x20 - b _080E9346 - .align 2, 0 -_080E90B4: .4byte gPlayerParty -_080E90B8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E90C4 @ =gPlayerParty - adds r0, r1 - movs r1, 0x22 - b _080E9346 - .align 2, 0 -_080E90C4: .4byte gPlayerParty -_080E90C8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E90D4 @ =gPlayerParty - adds r0, r1 - movs r1, 0x23 - b _080E9346 - .align 2, 0 -_080E90D4: .4byte gPlayerParty -_080E90D8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E90E4 @ =gPlayerParty - adds r0, r1 - movs r1, 0x24 - b _080E9346 - .align 2, 0 -_080E90E4: .4byte gPlayerParty -_080E90E8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E90F4 @ =gPlayerParty - adds r0, r1 - movs r1, 0x25 - b _080E9346 - .align 2, 0 -_080E90F4: .4byte gPlayerParty -_080E90F8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9104 @ =gPlayerParty - adds r0, r1 - movs r1, 0x26 - b _080E9346 - .align 2, 0 -_080E9104: .4byte gPlayerParty -_080E9108: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _080E9154 @ =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x27 - bl GetMonData - strb r0, [r7] - adds r0, r4, 0 - movs r1, 0x28 - bl GetMonData - strb r0, [r7, 0x1] - adds r0, r4, 0 - movs r1, 0x29 - bl GetMonData - strb r0, [r7, 0x2] - adds r0, r4, 0 - movs r1, 0x2A - bl GetMonData - strb r0, [r7, 0x3] - adds r0, r4, 0 - movs r1, 0x2B - bl GetMonData - strb r0, [r7, 0x4] - adds r0, r4, 0 - movs r1, 0x2C - bl GetMonData - strb r0, [r7, 0x5] - movs r6, 0x6 - b _080E934E - .align 2, 0 -_080E9154: .4byte gPlayerParty -_080E9158: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9164 @ =gPlayerParty - adds r0, r1 - movs r1, 0x27 - b _080E9346 - .align 2, 0 -_080E9164: .4byte gPlayerParty -_080E9168: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9174 @ =gPlayerParty - adds r0, r1 - movs r1, 0x28 - b _080E9346 - .align 2, 0 -_080E9174: .4byte gPlayerParty -_080E9178: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9184 @ =gPlayerParty - adds r0, r1 - movs r1, 0x29 - b _080E9346 - .align 2, 0 -_080E9184: .4byte gPlayerParty -_080E9188: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9194 @ =gPlayerParty - adds r0, r1 - movs r1, 0x2A - b _080E9346 - .align 2, 0 -_080E9194: .4byte gPlayerParty -_080E9198: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E91A4 @ =gPlayerParty - adds r0, r1 - movs r1, 0x2B - b _080E9346 - .align 2, 0 -_080E91A4: .4byte gPlayerParty -_080E91A8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E91B4 @ =gPlayerParty - adds r0, r1 - movs r1, 0x2C - b _080E9346 - .align 2, 0 -_080E91B4: .4byte gPlayerParty -_080E91B8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E91C4 @ =gPlayerParty - adds r0, r1 - movs r1, 0 - b _080E91E2 - .align 2, 0 -_080E91C4: .4byte gPlayerParty -_080E91C8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E91D4 @ =gPlayerParty - adds r0, r1 - movs r1, 0x9 - b _080E9286 - .align 2, 0 -_080E91D4: .4byte gPlayerParty -_080E91D8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9208 @ =gPlayerParty - adds r0, r1 - movs r1, 0x37 -_080E91E2: - bl GetMonData - adds r1, r0, 0 - strb r1, [r7] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r0, 16 - strb r0, [r7, 0x2] - lsrs r0, r1, 24 - strb r0, [r7, 0x3] - movs r6, 0x4 - b _080E934E - .align 2, 0 -_080E9208: .4byte gPlayerParty -_080E920C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9218 @ =gPlayerParty - adds r0, r1 - movs r1, 0x38 - b _080E9346 - .align 2, 0 -_080E9218: .4byte gPlayerParty -_080E921C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9228 @ =gPlayerParty - adds r0, r1 - movs r1, 0x39 - b _080E9286 - .align 2, 0 -_080E9228: .4byte gPlayerParty -_080E922C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9238 @ =gPlayerParty - adds r0, r1 - movs r1, 0x3A - b _080E9286 - .align 2, 0 -_080E9238: .4byte gPlayerParty -_080E923C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9248 @ =gPlayerParty - adds r0, r1 - movs r1, 0x3B - b _080E9286 - .align 2, 0 -_080E9248: .4byte gPlayerParty -_080E924C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9258 @ =gPlayerParty - adds r0, r1 - movs r1, 0x3C - b _080E9286 - .align 2, 0 -_080E9258: .4byte gPlayerParty -_080E925C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9268 @ =gPlayerParty - adds r0, r1 - movs r1, 0x3D - b _080E9286 - .align 2, 0 -_080E9268: .4byte gPlayerParty -_080E926C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9278 @ =gPlayerParty - adds r0, r1 - movs r1, 0x3E - b _080E9286 - .align 2, 0 -_080E9278: .4byte gPlayerParty -_080E927C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9298 @ =gPlayerParty - adds r0, r1 - movs r1, 0x3F -_080E9286: - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - strb r0, [r7] - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r6, 0x2 - b _080E934E - .align 2, 0 -_080E9298: .4byte gPlayerParty -_080E929C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E92A8 @ =gPlayerParty - adds r0, r1 - movs r1, 0x16 - b _080E9346 - .align 2, 0 -_080E92A8: .4byte gPlayerParty -_080E92AC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E92B8 @ =gPlayerParty - adds r0, r1 - movs r1, 0x17 - b _080E9346 - .align 2, 0 -_080E92B8: .4byte gPlayerParty -_080E92BC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E92C8 @ =gPlayerParty - adds r0, r1 - movs r1, 0x18 - b _080E9346 - .align 2, 0 -_080E92C8: .4byte gPlayerParty -_080E92CC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E92D8 @ =gPlayerParty - adds r0, r1 - movs r1, 0x21 - b _080E9346 - .align 2, 0 -_080E92D8: .4byte gPlayerParty -_080E92DC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E92E8 @ =gPlayerParty - adds r0, r1 - movs r1, 0x2F - b _080E9346 - .align 2, 0 -_080E92E8: .4byte gPlayerParty -_080E92EC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E92F8 @ =gPlayerParty - adds r0, r1 - movs r1, 0x30 - b _080E9346 - .align 2, 0 -_080E92F8: .4byte gPlayerParty -_080E92FC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9308 @ =gPlayerParty - adds r0, r1 - movs r1, 0x32 - b _080E9346 - .align 2, 0 -_080E9308: .4byte gPlayerParty -_080E930C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9318 @ =gPlayerParty - adds r0, r1 - movs r1, 0x33 - b _080E9346 - .align 2, 0 -_080E9318: .4byte gPlayerParty -_080E931C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9328 @ =gPlayerParty - adds r0, r1 - movs r1, 0x34 - b _080E9346 - .align 2, 0 -_080E9328: .4byte gPlayerParty -_080E932C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9338 @ =gPlayerParty - adds r0, r1 - movs r1, 0x35 - b _080E9346 - .align 2, 0 -_080E9338: .4byte gPlayerParty -_080E933C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9360 @ =gPlayerParty - adds r0, r1 - movs r1, 0x36 -_080E9346: - bl GetMonData - strb r0, [r7] - movs r6, 0x1 -_080E934E: - adds r0, r6, 0 - add sp, 0x90 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080E9360: .4byte gPlayerParty - thumb_func_end CopyWallyMonData - - thumb_func_start WallyHandleGetRawMonData -WallyHandleGetRawMonData: @ 80E9364 - push {lr} - bl PlayerHandleGetRawMonData - pop {r0} - bx r0 - thumb_func_end WallyHandleGetRawMonData - - thumb_func_start WallyHandleSetMonData -WallyHandleSetMonData: @ 80E9370 - push {r4,r5,lr} - ldr r1, _080E9394 @ =gBattleBufferA - ldr r0, _080E9398 @ =gActiveBattler - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0 - bne _080E93A0 - ldr r0, _080E939C @ =gBattlerPartyIndexes - lsls r1, r2, 1 - adds r1, r0 - ldrb r0, [r1] - bl SetWallyMonData - b _080E93BE - .align 2, 0 -_080E9394: .4byte gBattleBufferA -_080E9398: .4byte gActiveBattler -_080E939C: .4byte gBattlerPartyIndexes -_080E93A0: - ldrb r4, [r1] - movs r5, 0 -_080E93A4: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _080E93B2 - adds r0, r5, 0 - bl SetWallyMonData -_080E93B2: - lsrs r4, 1 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _080E93A4 -_080E93BE: - bl WallyBufferExecCompleted - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end WallyHandleSetMonData - - thumb_func_start SetWallyMonData -SetWallyMonData: @ 80E93C8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x34 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080E9400 @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 9 - ldr r2, _080E9404 @ =gUnknown_2022BC7 - adds r3, r0, r2 - adds r6, r3, 0 - subs r1, r2, 0x2 - adds r0, r1 - ldrb r0, [r0] - adds r7, r2, 0 - cmp r0, 0x3B - bls _080E93F4 - bl _080E9D8E -_080E93F4: - lsls r0, 2 - ldr r1, _080E9408 @ =_080E940C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E9400: .4byte gActiveBattler -_080E9404: .4byte gUnknown_2022BC7 -_080E9408: .4byte _080E940C - .align 2, 0 -_080E940C: - .4byte _080E94FC - .4byte _080E9694 - .4byte _080E96B4 - .4byte _080E96D4 - .4byte _080E972C - .4byte _080E972C - .4byte _080E972C - .4byte _080E972C - .4byte _080E9754 - .4byte _080E97B8 - .4byte _080E97B8 - .4byte _080E97B8 - .4byte _080E97B8 - .4byte _080E9D8E - .4byte _080E9D8E - .4byte _080E9D8E - .4byte _080E9D8E - .4byte _080E97E8 - .4byte _080E9808 - .4byte _080E9828 - .4byte _080E9848 - .4byte _080E9868 - .4byte _080E9888 - .4byte _080E98A8 - .4byte _080E98C8 - .4byte _080E98E8 - .4byte _080E9908 - .4byte _080E9928 - .4byte _080E9948 - .4byte _080E9968 - .4byte _080E9988 - .4byte _080E99A8 - .4byte _080E9A18 - .4byte _080E9A38 - .4byte _080E9A58 - .4byte _080E9A78 - .4byte _080E9A98 - .4byte _080E9AB8 - .4byte _080E9AD8 - .4byte _080E9AF8 - .4byte _080E9B18 - .4byte _080E9B38 - .4byte _080E9B58 - .4byte _080E9B78 - .4byte _080E9B98 - .4byte _080E9BB8 - .4byte _080E9BD8 - .4byte _080E9BF8 - .4byte _080E9C18 - .4byte _080E9C38 - .4byte _080E9C58 - .4byte _080E9C78 - .4byte _080E9C98 - .4byte _080E9CB8 - .4byte _080E9CD8 - .4byte _080E9CF8 - .4byte _080E9D18 - .4byte _080E9D38 - .4byte _080E9D58 - .4byte _080E9D78 -_080E94FC: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _080E9690 @ =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - adds r2, r6, 0 - bl SetMonData - adds r2, r6, 0 - adds r2, 0x2E - adds r0, r4, 0 - movs r1, 0xC - bl SetMonData - movs r0, 0 - mov r8, r0 - movs r0, 0x3B - adds r0, r6 - mov r10, r0 - adds r0, r6, 0 - adds r0, 0x2B - str r0, [sp, 0x20] - adds r0, 0x19 - str r0, [sp, 0x28] - adds r0, 0x4 - str r0, [sp, 0x2C] - adds r0, 0x4 - str r0, [sp, 0x30] - subs r0, 0x22 - str r0, [sp, 0x1C] - subs r0, 0x2 - str r0, [sp, 0x18] - adds r0, 0x4 - str r0, [sp, 0x24] - adds r0, r6, 0x2 - str r0, [sp, 0x4] - adds r0, r6, 0x4 - str r0, [sp, 0x8] - adds r0, r6, 0x6 - str r0, [sp, 0xC] - adds r0, 0x2 - str r0, [sp, 0x10] - adds r0, 0x2 - str r0, [sp, 0x14] - mov r9, r4 - adds r7, r6, 0 - adds r7, 0x24 - adds r4, r6, 0 - adds r4, 0xC -_080E9562: - mov r1, r8 - adds r1, 0xD - mov r0, r9 - adds r2, r4, 0 - bl SetMonData - mov r1, r8 - adds r1, 0x11 - mov r0, r9 - adds r2, r7, 0 - bl SetMonData - adds r7, 0x1 - adds r4, 0x2 - movs r0, 0x1 - add r8, r0 - mov r0, r8 - cmp r0, 0x3 - ble _080E9562 - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _080E9690 @ =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x15 - mov r2, r10 - bl SetMonData - adds r0, r4, 0 - movs r1, 0x20 - ldr r2, [sp, 0x20] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x19 - ldr r2, [sp, 0x28] - bl SetMonData - ldrb r0, [r6, 0x14] - lsls r0, 27 - lsrs r0, 27 - mov r1, sp - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x27 - mov r2, sp - bl SetMonData - mov r1, sp - ldrh r0, [r6, 0x14] - lsls r0, 22 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x28 - mov r2, sp - bl SetMonData - mov r1, sp - ldrb r0, [r6, 0x15] - lsls r0, 25 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x29 - mov r2, sp - bl SetMonData - mov r1, sp - ldr r0, [r6, 0x14] - lsls r0, 12 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2A - mov r2, sp - bl SetMonData - mov r1, sp - ldrh r0, [r6, 0x16] - lsls r0, 23 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2B - mov r2, sp - bl SetMonData - mov r1, sp - ldrb r0, [r6, 0x17] - lsls r0, 26 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2C - mov r2, sp - bl SetMonData - adds r0, r4, 0 - movs r1, 0 - ldr r2, [sp, 0x2C] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x37 - ldr r2, [sp, 0x30] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x38 - ldr r2, [sp, 0x1C] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x39 - ldr r2, [sp, 0x18] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3A - ldr r2, [sp, 0x24] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3B - ldr r2, [sp, 0x4] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3C - ldr r2, [sp, 0x8] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3D - ldr r2, [sp, 0xC] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3E - ldr r2, [sp, 0x10] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3F - ldr r2, [sp, 0x14] - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9690: .4byte gPlayerParty -_080E9694: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E96AC @ =gPlayerParty - adds r0, r1 - ldr r1, _080E96B0 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0xB - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E96AC: .4byte gPlayerParty -_080E96B0: .4byte gActiveBattler -_080E96B4: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E96CC @ =gPlayerParty - adds r0, r1 - ldr r1, _080E96D0 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0xC - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E96CC: .4byte gPlayerParty -_080E96D0: .4byte gActiveBattler -_080E96D4: - movs r0, 0 - mov r8, r0 - movs r0, 0xC - adds r0, r3 - mov r9, r0 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _080E9728 @ =gPlayerParty - adds r7, r1, r0 - adds r6, r3, 0 - adds r6, 0x8 - adds r4, r3, 0 -_080E96EE: - mov r1, r8 - adds r1, 0xD - adds r0, r7, 0 - adds r2, r4, 0 - bl SetMonData - mov r1, r8 - adds r1, 0x11 - adds r0, r7, 0 - adds r2, r6, 0 - bl SetMonData - adds r6, 0x1 - adds r4, 0x2 - movs r0, 0x1 - add r8, r0 - mov r0, r8 - cmp r0, 0x3 - ble _080E96EE - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9728 @ =gPlayerParty - adds r0, r1 - movs r1, 0x15 - mov r2, r9 - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9728: .4byte gPlayerParty -_080E972C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9748 @ =gPlayerParty - adds r0, r1 - ldr r3, _080E974C @ =gBattleBufferA - ldr r1, _080E9750 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r1, r3, 0x1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, 0x9 - b _080E97D0 - .align 2, 0 -_080E9748: .4byte gPlayerParty -_080E974C: .4byte gBattleBufferA -_080E9750: .4byte gActiveBattler -_080E9754: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _080E97B0 @ =gPlayerParty - adds r4, r0 - ldr r5, _080E97B4 @ =gActiveBattler - ldrb r2, [r5] - lsls r2, 9 - adds r2, r7 - adds r0, r4, 0 - movs r1, 0x11 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x1 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x12 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x2 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x13 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x3 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x14 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x4 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x15 - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E97B0: .4byte gPlayerParty -_080E97B4: .4byte gActiveBattler -_080E97B8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E97DC @ =gPlayerParty - adds r0, r1 - ldr r3, _080E97E0 @ =gBattleBufferA - ldr r1, _080E97E4 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r1, r3, 0x1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, 0x8 -_080E97D0: - adds r3, 0x3 - adds r2, r3 - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E97DC: .4byte gPlayerParty -_080E97E0: .4byte gBattleBufferA -_080E97E4: .4byte gActiveBattler -_080E97E8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9800 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9804 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1 - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9800: .4byte gPlayerParty -_080E9804: .4byte gActiveBattler -_080E9808: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9820 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9824 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x19 - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9820: .4byte gPlayerParty -_080E9824: .4byte gActiveBattler -_080E9828: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9840 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9844 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1A - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9840: .4byte gPlayerParty -_080E9844: .4byte gActiveBattler -_080E9848: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9860 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9864 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1B - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9860: .4byte gPlayerParty -_080E9864: .4byte gActiveBattler -_080E9868: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9880 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9884 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1C - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9880: .4byte gPlayerParty -_080E9884: .4byte gActiveBattler -_080E9888: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E98A0 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E98A4 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1D - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E98A0: .4byte gPlayerParty -_080E98A4: .4byte gActiveBattler -_080E98A8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E98C0 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E98C4 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1E - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E98C0: .4byte gPlayerParty -_080E98C4: .4byte gActiveBattler -_080E98C8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E98E0 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E98E4 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1F - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E98E0: .4byte gPlayerParty -_080E98E4: .4byte gActiveBattler -_080E98E8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9900 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9904 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x20 - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9900: .4byte gPlayerParty -_080E9904: .4byte gActiveBattler -_080E9908: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9920 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9924 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x22 - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9920: .4byte gPlayerParty -_080E9924: .4byte gActiveBattler -_080E9928: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9940 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9944 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x23 - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9940: .4byte gPlayerParty -_080E9944: .4byte gActiveBattler -_080E9948: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9960 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9964 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x24 - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9960: .4byte gPlayerParty -_080E9964: .4byte gActiveBattler -_080E9968: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9980 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9984 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x25 - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9980: .4byte gPlayerParty -_080E9984: .4byte gActiveBattler -_080E9988: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E99A0 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E99A4 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x26 - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E99A0: .4byte gPlayerParty -_080E99A4: .4byte gActiveBattler -_080E99A8: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _080E9A10 @ =gPlayerParty - adds r4, r0 - ldr r5, _080E9A14 @ =gActiveBattler - ldrb r2, [r5] - lsls r2, 9 - adds r2, r7 - adds r0, r4, 0 - movs r1, 0x27 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x1 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x28 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x2 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x29 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x3 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x2A - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x4 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x2B - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x5 - adds r2, r0 - adds r0, r4, 0 - b _080E9AC8 - .align 2, 0 -_080E9A10: .4byte gPlayerParty -_080E9A14: .4byte gActiveBattler -_080E9A18: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9A30 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9A34 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x27 - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9A30: .4byte gPlayerParty -_080E9A34: .4byte gActiveBattler -_080E9A38: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9A50 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9A54 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x28 - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9A50: .4byte gPlayerParty -_080E9A54: .4byte gActiveBattler -_080E9A58: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9A70 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9A74 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x29 - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9A70: .4byte gPlayerParty -_080E9A74: .4byte gActiveBattler -_080E9A78: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9A90 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9A94 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x2A - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9A90: .4byte gPlayerParty -_080E9A94: .4byte gActiveBattler -_080E9A98: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9AB0 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9AB4 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x2B - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9AB0: .4byte gPlayerParty -_080E9AB4: .4byte gActiveBattler -_080E9AB8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9AD0 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9AD4 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 -_080E9AC8: - movs r1, 0x2C - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9AD0: .4byte gPlayerParty -_080E9AD4: .4byte gActiveBattler -_080E9AD8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9AF0 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9AF4 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0 - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9AF0: .4byte gPlayerParty -_080E9AF4: .4byte gActiveBattler -_080E9AF8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9B10 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9B14 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x9 - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9B10: .4byte gPlayerParty -_080E9B14: .4byte gActiveBattler -_080E9B18: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9B30 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9B34 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x37 - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9B30: .4byte gPlayerParty -_080E9B34: .4byte gActiveBattler -_080E9B38: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9B50 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9B54 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x38 - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9B50: .4byte gPlayerParty -_080E9B54: .4byte gActiveBattler -_080E9B58: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9B70 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9B74 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x39 - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9B70: .4byte gPlayerParty -_080E9B74: .4byte gActiveBattler -_080E9B78: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9B90 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9B94 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3A - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9B90: .4byte gPlayerParty -_080E9B94: .4byte gActiveBattler -_080E9B98: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9BB0 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9BB4 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3B - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9BB0: .4byte gPlayerParty -_080E9BB4: .4byte gActiveBattler -_080E9BB8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9BD0 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9BD4 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3C - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9BD0: .4byte gPlayerParty -_080E9BD4: .4byte gActiveBattler -_080E9BD8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9BF0 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9BF4 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3D - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9BF0: .4byte gPlayerParty -_080E9BF4: .4byte gActiveBattler -_080E9BF8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9C10 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9C14 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3E - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9C10: .4byte gPlayerParty -_080E9C14: .4byte gActiveBattler -_080E9C18: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9C30 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9C34 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3F - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9C30: .4byte gPlayerParty -_080E9C34: .4byte gActiveBattler -_080E9C38: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9C50 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9C54 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x16 - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9C50: .4byte gPlayerParty -_080E9C54: .4byte gActiveBattler -_080E9C58: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9C70 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9C74 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x17 - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9C70: .4byte gPlayerParty -_080E9C74: .4byte gActiveBattler -_080E9C78: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9C90 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9C94 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x18 - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9C90: .4byte gPlayerParty -_080E9C94: .4byte gActiveBattler -_080E9C98: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9CB0 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9CB4 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x21 - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9CB0: .4byte gPlayerParty -_080E9CB4: .4byte gActiveBattler -_080E9CB8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9CD0 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9CD4 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x2F - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9CD0: .4byte gPlayerParty -_080E9CD4: .4byte gActiveBattler -_080E9CD8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9CF0 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9CF4 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x30 - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9CF0: .4byte gPlayerParty -_080E9CF4: .4byte gActiveBattler -_080E9CF8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9D10 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9D14 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x32 - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9D10: .4byte gPlayerParty -_080E9D14: .4byte gActiveBattler -_080E9D18: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9D30 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9D34 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x33 - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9D30: .4byte gPlayerParty -_080E9D34: .4byte gActiveBattler -_080E9D38: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9D50 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9D54 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x34 - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9D50: .4byte gPlayerParty -_080E9D54: .4byte gActiveBattler -_080E9D58: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9D70 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9D74 @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x35 - bl SetMonData - b _080E9D8E - .align 2, 0 -_080E9D70: .4byte gPlayerParty -_080E9D74: .4byte gActiveBattler -_080E9D78: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080E9DB8 @ =gPlayerParty - adds r0, r1 - ldr r1, _080E9DBC @ =gActiveBattler - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x36 - bl SetMonData -_080E9D8E: - ldr r2, _080E9DC0 @ =gBattlerPartyIndexes - ldr r0, _080E9DBC @ =gActiveBattler - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, _080E9DB8 @ =gPlayerParty - adds r0, r2 - bl HandleLowHpMusicChange - add sp, 0x34 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E9DB8: .4byte gPlayerParty -_080E9DBC: .4byte gActiveBattler -_080E9DC0: .4byte gBattlerPartyIndexes - thumb_func_end SetWallyMonData - - thumb_func_start sub_80E9DC4 -sub_80E9DC4: @ 80E9DC4 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_80E9DC4 - - thumb_func_start sub_80E9DD0 -sub_80E9DD0: @ 80E9DD0 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_80E9DD0 - - thumb_func_start sub_80E9DDC -sub_80E9DDC: @ 80E9DDC - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_80E9DDC - - thumb_func_start WallyHandleReturnMonToBall -WallyHandleReturnMonToBall: @ 80E9DE8 - push {r4-r6,lr} - ldr r0, _080E9E14 @ =gBattleBufferA - ldr r6, _080E9E18 @ =gActiveBattler - ldrb r2, [r6] - lsls r1, r2, 9 - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - bne _080E9E24 - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x1 - bl InitAndLaunchSpecialAnimation - ldr r0, _080E9E1C @ =gBattlerControllerFuncs - ldrb r1, [r6] - lsls r1, 2 - adds r1, r0 - ldr r0, _080E9E20 @ =sub_80E89C4 - str r0, [r1] - b _080E9E5A - .align 2, 0 -_080E9E14: .4byte gBattleBufferA -_080E9E18: .4byte gActiveBattler -_080E9E1C: .4byte gBattlerControllerFuncs -_080E9E20: .4byte sub_80E89C4 -_080E9E24: - ldr r5, _080E9E60 @ =gBattlerSpriteIds - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _080E9E64 @ =gSprites - adds r0, r4 - bl FreeSpriteOamMatrix - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - ldr r1, _080E9E68 @ =gHealthboxSpriteIds - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - bl SetHealthboxSpriteInvisible - bl WallyBufferExecCompleted -_080E9E5A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E9E60: .4byte gBattlerSpriteIds -_080E9E64: .4byte gSprites -_080E9E68: .4byte gHealthboxSpriteIds - thumb_func_end WallyHandleReturnMonToBall - - thumb_func_start sub_80E9E6C -sub_80E9E6C: @ 80E9E6C - push {r4-r6,lr} - ldr r0, _080E9EC8 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080E9EE0 - ldr r4, _080E9ECC @ =gSaveBlock2Ptr - ldr r0, [r4] - ldrb r0, [r0, 0x8] - ldr r6, _080E9ED0 @ =gActiveBattler - ldrb r1, [r6] - bl DecompressTrainerBackPalette - ldr r0, [r4] - ldrb r5, [r0, 0x8] - ldrb r0, [r6] - bl GetBattlerPosition - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl SetMultiuseSpriteTemplateToTrainerBack - ldr r0, _080E9ED4 @ =gMultiuseSpriteTemplate - ldr r2, _080E9ED8 @ =gTrainerBackPicCoords - ldr r1, [r4] - ldrb r1, [r1, 0x8] - lsls r1, 2 - adds r1, r2 - ldrb r1, [r1] - movs r2, 0x8 - subs r2, r1 - lsls r2, 18 - movs r1, 0xA0 - lsls r1, 15 - adds r2, r1 - asrs r2, 16 - movs r1, 0x50 - movs r3, 0x1E - bl CreateSprite - ldr r2, _080E9EDC @ =gBattlerSpriteIds - ldrb r1, [r6] - b _080E9F1C - .align 2, 0 -_080E9EC8: .4byte gBattleTypeFlags -_080E9ECC: .4byte gSaveBlock2Ptr -_080E9ED0: .4byte gActiveBattler -_080E9ED4: .4byte gMultiuseSpriteTemplate -_080E9ED8: .4byte gTrainerBackPicCoords -_080E9EDC: .4byte gBattlerSpriteIds -_080E9EE0: - ldr r4, _080E9F8C @ =gActiveBattler - ldrb r1, [r4] - movs r0, 0x5 - bl DecompressTrainerBackPalette - ldrb r0, [r4] - bl GetBattlerPosition - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x5 - bl SetMultiuseSpriteTemplateToTrainerBack - ldr r0, _080E9F90 @ =gMultiuseSpriteTemplate - ldr r1, _080E9F94 @ =gTrainerBackPicCoords - ldrb r1, [r1, 0x14] - movs r2, 0x8 - subs r2, r1 - lsls r2, 18 - movs r1, 0xA0 - lsls r1, 15 - adds r2, r1 - asrs r2, 16 - movs r1, 0x50 - movs r3, 0x1E - bl CreateSprite - ldr r2, _080E9F98 @ =gBattlerSpriteIds - ldrb r1, [r4] -_080E9F1C: - adds r1, r2 - strb r0, [r1] - ldr r4, _080E9F9C @ =gSprites - ldr r5, _080E9F98 @ =gBattlerSpriteIds - ldr r6, _080E9F8C @ =gActiveBattler - ldrb r3, [r6] - adds r0, r3, r5 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - lsls r3, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0xF0 - strh r1, [r0, 0x24] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, _080E9FA0 @ =0x0000fffe - strh r1, [r0, 0x2E] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, _080E9FA4 @ =sub_8033EEC - str r1, [r0] - ldr r1, _080E9FA8 @ =gBattlerControllerFuncs - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, _080E9FAC @ =sub_80E78E0 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E9F8C: .4byte gActiveBattler -_080E9F90: .4byte gMultiuseSpriteTemplate -_080E9F94: .4byte gTrainerBackPicCoords -_080E9F98: .4byte gBattlerSpriteIds -_080E9F9C: .4byte gSprites -_080E9FA0: .4byte 0x0000fffe -_080E9FA4: .4byte sub_8033EEC -_080E9FA8: .4byte gBattlerControllerFuncs -_080E9FAC: .4byte sub_80E78E0 - thumb_func_end sub_80E9E6C - - thumb_func_start sub_80E9FB0 -sub_80E9FB0: @ 80E9FB0 - push {r4-r6,lr} - ldr r0, _080EA00C @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080EA024 - ldr r4, _080EA010 @ =gSaveBlock2Ptr - ldr r0, [r4] - ldrb r0, [r0, 0x8] - ldr r6, _080EA014 @ =gActiveBattler - ldrb r1, [r6] - bl DecompressTrainerBackPalette - ldr r0, [r4] - ldrb r5, [r0, 0x8] - ldrb r0, [r6] - bl GetBattlerPosition - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl SetMultiuseSpriteTemplateToTrainerBack - ldr r0, _080EA018 @ =gMultiuseSpriteTemplate - ldr r2, _080EA01C @ =gTrainerBackPicCoords - ldr r1, [r4] - ldrb r1, [r1, 0x8] - lsls r1, 2 - adds r1, r2 - ldrb r1, [r1] - movs r2, 0x8 - subs r2, r1 - lsls r2, 18 - movs r1, 0xA0 - lsls r1, 15 - adds r2, r1 - asrs r2, 16 - movs r1, 0x50 - movs r3, 0x1E - bl CreateSprite - ldr r2, _080EA020 @ =gBattlerSpriteIds - ldrb r1, [r6] - b _080EA060 - .align 2, 0 -_080EA00C: .4byte gBattleTypeFlags -_080EA010: .4byte gSaveBlock2Ptr -_080EA014: .4byte gActiveBattler -_080EA018: .4byte gMultiuseSpriteTemplate -_080EA01C: .4byte gTrainerBackPicCoords -_080EA020: .4byte gBattlerSpriteIds -_080EA024: - ldr r4, _080EA0D0 @ =gActiveBattler - ldrb r1, [r4] - movs r0, 0x5 - bl DecompressTrainerBackPalette - ldrb r0, [r4] - bl GetBattlerPosition - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x5 - bl SetMultiuseSpriteTemplateToTrainerBack - ldr r0, _080EA0D4 @ =gMultiuseSpriteTemplate - ldr r1, _080EA0D8 @ =gTrainerBackPicCoords - ldrb r1, [r1, 0x14] - movs r2, 0x8 - subs r2, r1 - lsls r2, 18 - movs r1, 0xA0 - lsls r1, 15 - adds r2, r1 - asrs r2, 16 - movs r1, 0x50 - movs r3, 0x1E - bl CreateSprite - ldr r2, _080EA0DC @ =gBattlerSpriteIds - ldrb r1, [r4] -_080EA060: - adds r1, r2 - strb r0, [r1] - ldr r4, _080EA0E0 @ =gSprites - ldr r5, _080EA0DC @ =gBattlerSpriteIds - ldr r6, _080EA0D0 @ =gActiveBattler - ldrb r3, [r6] - adds r0, r3, r5 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - lsls r3, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, _080EA0E4 @ =0x0000ffa0 - strh r1, [r0, 0x24] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x2 - strh r1, [r0, 0x2E] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, _080EA0E8 @ =sub_8033EEC - str r1, [r0] - ldr r1, _080EA0EC @ =gBattlerControllerFuncs - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, _080EA0F0 @ =sub_80E8A34 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EA0D0: .4byte gActiveBattler -_080EA0D4: .4byte gMultiuseSpriteTemplate -_080EA0D8: .4byte gTrainerBackPicCoords -_080EA0DC: .4byte gBattlerSpriteIds -_080EA0E0: .4byte gSprites -_080EA0E4: .4byte 0x0000ffa0 -_080EA0E8: .4byte sub_8033EEC -_080EA0EC: .4byte gBattlerControllerFuncs -_080EA0F0: .4byte sub_80E8A34 - thumb_func_end sub_80E9FB0 - - thumb_func_start sub_80EA0F4 -sub_80EA0F4: @ 80EA0F4 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_80EA0F4 - - thumb_func_start sub_80EA100 -sub_80EA100: @ 80EA100 - push {r4-r6,lr} - ldr r6, _080EA14C @ =gBattleSpritesDataPtr - ldr r4, [r6] - ldr r5, _080EA150 @ =gActiveBattler - ldrb r2, [r5] - ldr r0, [r4, 0x4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r3, r1, r0 - ldrb r0, [r3, 0x4] - cmp r0, 0 - bne _080EA154 - ldr r1, [r4] - lsls r0, r2, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080EA134 - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl InitAndLaunchSpecialAnimation -_080EA134: - ldr r0, [r6] - ldrb r1, [r5] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x4] - adds r1, 0x1 - strb r1, [r0, 0x4] - b _080EA1CA - .align 2, 0 -_080EA14C: .4byte gBattleSpritesDataPtr -_080EA150: .4byte gActiveBattler -_080EA154: - ldrb r1, [r3] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080EA1CA - strb r4, [r3, 0x4] - ldr r2, _080EA1D0 @ =gBattlerPartyIndexes - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, _080EA1D4 @ =gPlayerParty - adds r0, r2 - bl HandleLowHpMusicChange - movs r1, 0x40 - negs r1, r1 - movs r0, 0x10 - bl PlaySE12WithPanning - ldr r2, _080EA1D8 @ =gSprites - ldr r3, _080EA1DC @ =gBattlerSpriteIds - ldrb r0, [r5] - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r4, [r0, 0x30] - ldrb r0, [r5] - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x5 - strh r1, [r0, 0x32] - ldrb r0, [r5] - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _080EA1E0 @ =sub_8012110 - str r1, [r0] - ldr r1, _080EA1E4 @ =gBattlerControllerFuncs - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _080EA1E8 @ =sub_80E82F4 - str r1, [r0] -_080EA1CA: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EA1D0: .4byte gBattlerPartyIndexes -_080EA1D4: .4byte gPlayerParty -_080EA1D8: .4byte gSprites -_080EA1DC: .4byte gBattlerSpriteIds -_080EA1E0: .4byte sub_8012110 -_080EA1E4: .4byte gBattlerControllerFuncs -_080EA1E8: .4byte sub_80E82F4 - thumb_func_end sub_80EA100 - - thumb_func_start sub_80EA1EC -sub_80EA1EC: @ 80EA1EC - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_80EA1EC - - thumb_func_start sub_80EA1F8 -sub_80EA1F8: @ 80EA1F8 - push {r4,r5,lr} - ldr r0, _080EA238 @ =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r1, [r0, 0x8] - movs r0, 0x4 - strb r0, [r1, 0x8] - ldr r1, _080EA23C @ =gDoingBattleAnim - movs r0, 0x1 - strb r0, [r1] - ldr r5, _080EA240 @ =gActiveBattler - ldrb r4, [r5] - movs r0, 0x1 - bl GetBattlerAtPosition - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r4, 0 - movs r3, 0x4 - bl InitAndLaunchSpecialAnimation - ldr r1, _080EA244 @ =gBattlerControllerFuncs - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _080EA248 @ =sub_80E7970 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080EA238: .4byte gBattleSpritesDataPtr -_080EA23C: .4byte gDoingBattleAnim -_080EA240: .4byte gActiveBattler -_080EA244: .4byte gBattlerControllerFuncs -_080EA248: .4byte sub_80E7970 - thumb_func_end sub_80EA1F8 - - thumb_func_start sub_80EA24C -sub_80EA24C: @ 80EA24C - push {r4,r5,lr} - ldr r1, _080EA294 @ =gBattleBufferA - ldr r5, _080EA298 @ =gActiveBattler - ldrb r0, [r5] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r1, [r0] - ldr r0, _080EA29C @ =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r0, [r0, 0x8] - strb r1, [r0, 0x8] - ldr r1, _080EA2A0 @ =gDoingBattleAnim - movs r0, 0x1 - strb r0, [r1] - ldrb r4, [r5] - movs r0, 0x1 - bl GetBattlerAtPosition - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r4, 0 - movs r3, 0x4 - bl InitAndLaunchSpecialAnimation - ldr r1, _080EA2A4 @ =gBattlerControllerFuncs - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _080EA2A8 @ =sub_80E7970 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080EA294: .4byte gBattleBufferA -_080EA298: .4byte gActiveBattler -_080EA29C: .4byte gBattleSpritesDataPtr -_080EA2A0: .4byte gDoingBattleAnim -_080EA2A4: .4byte gBattlerControllerFuncs -_080EA2A8: .4byte sub_80E7970 - thumb_func_end sub_80EA24C - - thumb_func_start sub_80EA2AC -sub_80EA2AC: @ 80EA2AC - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_80EA2AC - - thumb_func_start sub_80EA2B8 -sub_80EA2B8: @ 80EA2B8 - push {r4-r6,lr} - ldr r0, _080EA38C @ =gBattleBufferA - mov r12, r0 - ldr r6, _080EA390 @ =gActiveBattler - ldrb r2, [r6] - lsls r2, 9 - adds r0, 0x1 - adds r0, r2, r0 - ldrb r0, [r0] - mov r1, r12 - adds r1, 0x2 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - ldr r5, _080EA394 @ =gAnimMoveTurn - mov r1, r12 - adds r1, 0x3 - adds r2, r1 - ldrb r1, [r2] - strb r1, [r5] - ldr r4, _080EA398 @ =gAnimMovePower - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x4 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0x5 - adds r2, r1 - ldrb r1, [r2] - lsls r1, 8 - orrs r3, r1 - strh r3, [r4] - ldr r4, _080EA39C @ =gAnimMoveDmg - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x6 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0x7 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 8 - orrs r3, r1 - mov r1, r12 - adds r1, 0x8 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 16 - orrs r3, r1 - mov r1, r12 - adds r1, 0x9 - adds r2, r1 - ldrb r1, [r2] - lsls r1, 24 - orrs r3, r1 - str r3, [r4] - ldr r3, _080EA3A0 @ =gAnimFriendship - ldrb r1, [r6] - lsls r1, 9 - mov r2, r12 - adds r2, 0xA - adds r1, r2 - ldrb r1, [r1] - strb r1, [r3] - ldr r4, _080EA3A4 @ =gWeatherMoveAnim - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0xC - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0xD - adds r2, r1 - ldrb r1, [r2] - lsls r1, 8 - orrs r3, r1 - strh r3, [r4] - ldr r3, _080EA3A8 @ =gAnimDisableStructPtr - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x10 - adds r2, r1 - str r2, [r3] - ldr r3, _080EA3AC @ =gTransformedPersonalities - ldrb r1, [r6] - lsls r1, 2 - adds r1, r3 - ldr r2, [r2] - str r2, [r1] - ldrb r1, [r5] - bl IsMoveWithoutAnimation - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - beq _080EA3B0 - bl WallyBufferExecCompleted - b _080EA3CE - .align 2, 0 -_080EA38C: .4byte gBattleBufferA -_080EA390: .4byte gActiveBattler -_080EA394: .4byte gAnimMoveTurn -_080EA398: .4byte gAnimMovePower -_080EA39C: .4byte gAnimMoveDmg -_080EA3A0: .4byte gAnimFriendship -_080EA3A4: .4byte gWeatherMoveAnim -_080EA3A8: .4byte gAnimDisableStructPtr -_080EA3AC: .4byte gTransformedPersonalities -_080EA3B0: - ldr r0, _080EA3D4 @ =gBattleSpritesDataPtr - ldr r0, [r0] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strb r3, [r0, 0x4] - ldr r1, _080EA3D8 @ =gBattlerControllerFuncs - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, _080EA3DC @ =sub_80EA3E0 - str r1, [r0] -_080EA3CE: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EA3D4: .4byte gBattleSpritesDataPtr -_080EA3D8: .4byte gBattlerControllerFuncs -_080EA3DC: .4byte sub_80EA3E0 - thumb_func_end sub_80EA2B8 - - thumb_func_start sub_80EA3E0 -sub_80EA3E0: @ 80EA3E0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r2, _080EA424 @ =gBattleBufferA - ldr r6, _080EA428 @ =gActiveBattler - ldrb r3, [r6] - lsls r1, r3, 9 - adds r0, r2, 0x1 - mov r9, r0 - adds r0, r1, r0 - ldrb r4, [r0] - adds r2, 0x2 - mov r8, r2 - add r1, r8 - ldrb r0, [r1] - lsls r0, 8 - orrs r4, r0 - ldr r7, _080EA42C @ =gBattleSpritesDataPtr - ldr r5, [r7] - ldr r1, [r5, 0x4] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x4] - cmp r2, 0x1 - beq _080EA46A - cmp r2, 0x1 - bgt _080EA430 - cmp r2, 0 - beq _080EA43A - b _080EA520 - .align 2, 0 -_080EA424: .4byte gBattleBufferA -_080EA428: .4byte gActiveBattler -_080EA42C: .4byte gBattleSpritesDataPtr -_080EA430: - cmp r2, 0x2 - beq _080EA494 - cmp r2, 0x3 - beq _080EA4E4 - b _080EA520 -_080EA43A: - ldr r1, [r5] - lsls r0, r3, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080EA456 - adds r0, r3, 0 - adds r1, r3, 0 - adds r2, r3, 0 - movs r3, 0x5 - bl InitAndLaunchSpecialAnimation -_080EA456: - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - strb r1, [r0, 0x4] - b _080EA520 -_080EA46A: - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _080EA520 - movs r0, 0 - bl sub_8035450 - adds r0, r4, 0 - bl DoMoveAnim - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2 - strb r1, [r0, 0x4] - b _080EA520 -_080EA494: - ldr r0, _080EA4DC @ =gAnimScriptCallback - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _080EA4E0 @ =gAnimScriptActive - ldrb r0, [r0] - cmp r0, 0 - bne _080EA520 - movs r0, 0x1 - bl sub_8035450 - ldr r0, [r7] - ldrb r2, [r6] - ldr r1, [r0] - lsls r0, r2, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080EA4C8 - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x6 - bl InitAndLaunchSpecialAnimation -_080EA4C8: - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3 - strb r1, [r0, 0x4] - b _080EA520 - .align 2, 0 -_080EA4DC: .4byte gAnimScriptCallback -_080EA4E0: .4byte gAnimScriptActive -_080EA4E4: - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080EA520 - bl CopyAllBattleSpritesInvisibilities - ldrb r0, [r6] - lsls r2, r0, 9 - mov r3, r9 - adds r1, r2, r3 - ldrb r1, [r1] - add r2, r8 - ldrb r2, [r2] - lsls r2, 8 - orrs r1, r2 - bl TrySetBehindSubstituteSpriteBit - ldr r0, [r7] - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strb r4, [r0, 0x4] - bl WallyBufferExecCompleted -_080EA520: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80EA3E0 - - thumb_func_start sub_80EA52C -sub_80EA52C: @ 80EA52C - push {r4,lr} - ldr r0, _080EA55C @ =gBattle_BG0_X - movs r1, 0 - strh r1, [r0] - ldr r0, _080EA560 @ =gBattle_BG0_Y - strh r1, [r0] - ldr r0, _080EA564 @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 9 - ldr r1, _080EA568 @ =gUnknown_2022BC6 - adds r4, r0, r1 - ldr r0, _080EA56C @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 2 - ands r0, r1 - cmp r0, 0 - beq _080EA570 - ldrh r0, [r4] - cmp r0, 0x1 - bne _080EA570 - bl WallyBufferExecCompleted - b _080EA65A - .align 2, 0 -_080EA55C: .4byte gBattle_BG0_X -_080EA560: .4byte gBattle_BG0_Y -_080EA564: .4byte gActiveBattler -_080EA568: .4byte gUnknown_2022BC6 -_080EA56C: .4byte gBattleTypeFlags -_080EA570: - ldrh r0, [r4] - bl BufferStringBattle - ldrh r0, [r4] - bl sub_80D89B0 - lsls r0, 24 - cmp r0, 0 - beq _080EA590 - ldr r0, _080EA58C @ =gDisplayedStringBattle - movs r1, 0x40 - bl BattlePutTextOnWindow - b _080EA598 - .align 2, 0 -_080EA58C: .4byte gDisplayedStringBattle -_080EA590: - ldr r0, _080EA5B4 @ =gDisplayedStringBattle - movs r1, 0 - bl BattlePutTextOnWindow -_080EA598: - ldr r0, _080EA5B8 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080EA64C - ldrh r1, [r4] - cmp r1, 0xD8 - beq _080EA5CC - cmp r1, 0xD8 - bgt _080EA5BC - cmp r1, 0x1E - beq _080EA5F8 - b _080EA64C - .align 2, 0 -_080EA5B4: .4byte gDisplayedStringBattle -_080EA5B8: .4byte gBattleTypeFlags -_080EA5BC: - cmp r1, 0xE3 - beq _080EA630 - ldr r0, _080EA5C8 @ =0x0000017f - cmp r1, r0 - beq _080EA614 - b _080EA64C - .align 2, 0 -_080EA5C8: .4byte 0x0000017f -_080EA5CC: - movs r0, 0x2 - bl sub_80EB2E0 - lsls r0, 24 - cmp r0, 0 - bne _080EA64C - movs r0, 0x2 - bl sub_80EB2F4 - ldr r1, _080EA5EC @ =gBattlerControllerFuncs - ldr r0, _080EA5F0 @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _080EA5F4 @ =sub_80E8584 - b _080EA658 - .align 2, 0 -_080EA5EC: .4byte gBattlerControllerFuncs -_080EA5F0: .4byte gActiveBattler -_080EA5F4: .4byte sub_80E8584 -_080EA5F8: - ldr r1, _080EA608 @ =gBattlerControllerFuncs - ldr r0, _080EA60C @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _080EA610 @ =sub_80E85AC - b _080EA658 - .align 2, 0 -_080EA608: .4byte gBattlerControllerFuncs -_080EA60C: .4byte gActiveBattler -_080EA610: .4byte sub_80E85AC -_080EA614: - ldr r1, _080EA624 @ =gBattlerControllerFuncs - ldr r0, _080EA628 @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _080EA62C @ =sub_80E85C0 - b _080EA658 - .align 2, 0 -_080EA624: .4byte gBattlerControllerFuncs -_080EA628: .4byte gActiveBattler -_080EA62C: .4byte sub_80E85C0 -_080EA630: - ldr r1, _080EA640 @ =gBattlerControllerFuncs - ldr r0, _080EA644 @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _080EA648 @ =sub_80E8598 - b _080EA658 - .align 2, 0 -_080EA640: .4byte gBattlerControllerFuncs -_080EA644: .4byte gActiveBattler -_080EA648: .4byte sub_80E8598 -_080EA64C: - ldr r1, _080EA660 @ =gBattlerControllerFuncs - ldr r0, _080EA664 @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _080EA668 @ =sub_80E7918 -_080EA658: - str r1, [r0] -_080EA65A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EA660: .4byte gBattlerControllerFuncs -_080EA664: .4byte gActiveBattler -_080EA668: .4byte sub_80E7918 - thumb_func_end sub_80EA52C - - thumb_func_start sub_80EA66C -sub_80EA66C: @ 80EA66C - push {lr} - ldr r0, _080EA684 @ =gActiveBattler - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080EA688 - bl sub_80EA52C - b _080EA68C - .align 2, 0 -_080EA684: .4byte gActiveBattler -_080EA688: - bl WallyBufferExecCompleted -_080EA68C: - pop {r0} - bx r0 - thumb_func_end sub_80EA66C - - thumb_func_start sub_80EA690 -sub_80EA690: @ 80EA690 - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _080EA6EA - ldr r0, _080EA6C4 @ =gBattle_BG0_X - strh r1, [r0] - ldr r1, _080EA6C8 @ =gBattle_BG0_Y - movs r0, 0xA0 - strh r0, [r1] - ldr r0, _080EA6CC @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080EA6DC - ldr r1, _080EA6D0 @ =gBattlerControllerFuncs - ldr r0, _080EA6D4 @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _080EA6D8 @ =sub_80E763C - b _080EA6E8 - .align 2, 0 -_080EA6C4: .4byte gBattle_BG0_X -_080EA6C8: .4byte gBattle_BG0_Y -_080EA6CC: .4byte gBattleTypeFlags -_080EA6D0: .4byte gBattlerControllerFuncs -_080EA6D4: .4byte gActiveBattler -_080EA6D8: .4byte sub_80E763C -_080EA6DC: - ldr r1, _080EA6F0 @ =gBattlerControllerFuncs - ldr r0, _080EA6F4 @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _080EA6F8 @ =sub_80E7844 -_080EA6E8: - str r1, [r0] -_080EA6EA: - pop {r0} - bx r0 - .align 2, 0 -_080EA6F0: .4byte gBattlerControllerFuncs -_080EA6F4: .4byte gActiveBattler -_080EA6F8: .4byte sub_80E7844 - thumb_func_end sub_80EA690 - - thumb_func_start sub_80EA6FC -sub_80EA6FC: @ 80EA6FC - push {r4,lr} - ldr r1, _080EA750 @ =gBattlerControllerFuncs - ldr r0, _080EA754 @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _080EA758 @ =sub_80EA690 - str r1, [r0] - ldr r0, _080EA75C @ =gUnknown_83FDA4C - movs r1, 0 - bl BattlePutTextOnWindow - ldr r0, _080EA760 @ =gUnknown_83FE725 - movs r1, 0x2 - bl BattlePutTextOnWindow - movs r4, 0 -_080EA71E: - lsls r0, r4, 24 - lsrs r0, 24 - bl ActionSelectionDestroyCursorAt - adds r4, 0x1 - cmp r4, 0x3 - ble _080EA71E - ldr r1, _080EA764 @ =gActionSelectionCursor - ldr r0, _080EA754 @ =gActiveBattler - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - movs r1, 0 - bl ActionSelectionCreateCursorAt - ldr r0, _080EA768 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080EA770 - ldr r0, _080EA76C @ =gText_WhatWillPkmnDo - bl BattleStringExpandPlaceholdersToDisplayedString - b _080EA776 - .align 2, 0 -_080EA750: .4byte gBattlerControllerFuncs -_080EA754: .4byte gActiveBattler -_080EA758: .4byte sub_80EA690 -_080EA75C: .4byte gUnknown_83FDA4C -_080EA760: .4byte gUnknown_83FE725 -_080EA764: .4byte gActionSelectionCursor -_080EA768: .4byte gBattleTypeFlags -_080EA76C: .4byte gText_WhatWillPkmnDo -_080EA770: - ldr r0, _080EA784 @ =gUnknown_83FE6FA - bl BattleStringExpandPlaceholdersToDisplayedString -_080EA776: - ldr r0, _080EA788 @ =gDisplayedStringBattle - movs r1, 0x1 - bl BattlePutTextOnWindow - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EA784: .4byte gUnknown_83FE6FA -_080EA788: .4byte gDisplayedStringBattle - thumb_func_end sub_80EA6FC - - thumb_func_start sub_80EA78C -sub_80EA78C: @ 80EA78C - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_80EA78C - - thumb_func_start sub_80EA798 -sub_80EA798: @ 80EA798 - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _080EA7C2 - ldr r0, _080EA7C8 @ =gBattle_BG0_X - strh r1, [r0] - ldr r1, _080EA7CC @ =gBattle_BG0_Y - movs r2, 0xA0 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _080EA7D0 @ =gBattlerControllerFuncs - ldr r0, _080EA7D4 @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _080EA7D8 @ =sub_80E7988 - str r1, [r0] -_080EA7C2: - pop {r0} - bx r0 - .align 2, 0 -_080EA7C8: .4byte gBattle_BG0_X -_080EA7CC: .4byte gBattle_BG0_Y -_080EA7D0: .4byte gBattlerControllerFuncs -_080EA7D4: .4byte gActiveBattler -_080EA7D8: .4byte sub_80E7988 - thumb_func_end sub_80EA798 - - thumb_func_start sub_80EA7DC -sub_80EA7DC: @ 80EA7DC - push {r4,lr} - ldr r0, _080EA800 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080EA810 - bl InitMoveSelectionsVarsAndStrings - ldr r1, _080EA804 @ =gBattlerControllerFuncs - ldr r0, _080EA808 @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _080EA80C @ =sub_80EA798 - str r1, [r0] - b _080EA866 - .align 2, 0 -_080EA800: .4byte gBattleTypeFlags -_080EA804: .4byte gBattlerControllerFuncs -_080EA808: .4byte gActiveBattler -_080EA80C: .4byte sub_80EA798 -_080EA810: - ldr r4, _080EA824 @ =gBattleStruct - ldr r0, [r4] - adds r0, 0x95 - ldrb r0, [r0] - cmp r0, 0 - beq _080EA828 - cmp r0, 0x1 - beq _080EA83E - b _080EA866 - .align 2, 0 -_080EA824: .4byte gBattleStruct -_080EA828: - bl InitMoveSelectionsVarsAndStrings - ldr r1, [r4] - adds r1, 0x95 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r4] - adds r0, 0x97 - movs r1, 0x50 - strb r1, [r0] -_080EA83E: - ldr r0, _080EA86C @ =gBattleStruct - ldr r1, [r0] - adds r1, 0x97 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bne _080EA866 - movs r0, 0x5 - bl PlaySE - movs r2, 0x80 - lsls r2, 1 - movs r0, 0x1 - movs r1, 0xA - bl BtlController_EmitTwoReturnValues - bl WallyBufferExecCompleted -_080EA866: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EA86C: .4byte gBattleStruct - thumb_func_end sub_80EA7DC - - thumb_func_start sub_80EA870 -sub_80EA870: @ 80EA870 - push {r4,r5,lr} - sub sp, 0x4 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _080EA8BC @ =gBattlerControllerFuncs - ldr r2, _080EA8C0 @ =gActiveBattler - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, _080EA8C4 @ =sub_80E7A70 - str r1, [r0] - ldr r1, _080EA8C8 @ =gBattlerInMenuId - ldrb r0, [r2] - strb r0, [r1] - movs r3, 0 - ldr r5, _080EA8CC @ =gUnknown_203B0DC - ldr r4, _080EA8D0 @ =gBattleBufferA -_080EA89E: - adds r0, r3, r5 - ldrb r1, [r2] - lsls r1, 9 - adds r1, 0x1 - adds r1, r3, r1 - adds r1, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r3, 0x1 - cmp r3, 0x2 - ble _080EA89E - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080EA8BC: .4byte gBattlerControllerFuncs -_080EA8C0: .4byte gActiveBattler -_080EA8C4: .4byte sub_80E7A70 -_080EA8C8: .4byte gBattlerInMenuId -_080EA8CC: .4byte gUnknown_203B0DC -_080EA8D0: .4byte gBattleBufferA - thumb_func_end sub_80EA870 - - thumb_func_start sub_80EA8D4 -sub_80EA8D4: @ 80EA8D4 - push {r4-r6,lr} - sub sp, 0x4 - ldr r0, _080EA984 @ =TaskDummy - movs r1, 0xFF - bl CreateTask - ldr r3, _080EA988 @ =gUnknown_3004FFC - ldr r4, _080EA98C @ =gActiveBattler - ldrb r1, [r4] - adds r1, r3 - strb r0, [r1] - ldr r5, _080EA990 @ =gTasks - ldrb r2, [r4] - adds r3, r2, r3 - ldrb r0, [r3] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r5 - ldr r5, _080EA994 @ =gBattleBufferA - lsls r2, 9 - adds r6, r5, 0x1 - adds r2, r6 - ldrb r2, [r2] - movs r0, 0xF - ands r0, r2 - strh r0, [r1, 0x8] - ldr r3, _080EA998 @ =gBattleStruct - ldr r1, [r3] - adds r1, 0x49 - ldrb r0, [r4] - lsls r0, 9 - adds r0, r6 - ldrb r0, [r0] - lsrs r0, 4 - strb r0, [r1] - ldr r2, [r3] - adds r2, 0x8B - ldrb r0, [r4] - lsls r0, 9 - adds r1, r5, 0x2 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r2, [r3] - adds r2, 0xAC - ldrb r0, [r4] - lsls r0, 9 - adds r1, r5, 0x3 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - movs r2, 0 - ldr r3, _080EA99C @ =gUnknown_203B0DC -_080EA940: - adds r0, r2, r3 - ldrb r1, [r4] - lsls r1, 9 - adds r1, 0x4 - adds r1, r2, r1 - adds r1, r5 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x2 - ble _080EA940 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _080EA9A0 @ =gBattlerControllerFuncs - ldr r2, _080EA98C @ =gActiveBattler - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, _080EA9A4 @ =sub_80E79B8 - str r1, [r0] - ldr r1, _080EA9A8 @ =gBattlerInMenuId - ldrb r0, [r2] - strb r0, [r1] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EA984: .4byte TaskDummy -_080EA988: .4byte gUnknown_3004FFC -_080EA98C: .4byte gActiveBattler -_080EA990: .4byte gTasks -_080EA994: .4byte gBattleBufferA -_080EA998: .4byte gBattleStruct -_080EA99C: .4byte gUnknown_203B0DC -_080EA9A0: .4byte gBattlerControllerFuncs -_080EA9A4: .4byte sub_80E79B8 -_080EA9A8: .4byte gBattlerInMenuId - thumb_func_end sub_80EA8D4 - - thumb_func_start sub_80EA9AC -sub_80EA9AC: @ 80EA9AC - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_80EA9AC - - thumb_func_start sub_80EA9B8 -sub_80EA9B8: @ 80EA9B8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - movs r0, 0 - bl LoadBattleBarGfx - ldr r3, _080EAA30 @ =gBattleBufferA - ldr r0, _080EAA34 @ =gActiveBattler - mov r9, r0 - ldrb r4, [r0] - lsls r2, r4, 9 - adds r0, r3, 0x2 - adds r0, r2, r0 - ldrb r1, [r0] - adds r3, 0x3 - adds r2, r3 - ldrb r0, [r2] - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - asrs r7, r1, 16 - ldr r0, _080EAA38 @ =0x00007fff - cmp r7, r0 - beq _080EAA48 - ldr r6, _080EAA3C @ =gBattlerPartyIndexes - lsls r0, r4, 1 - adds r0, r6 - ldrh r0, [r0] - movs r5, 0x64 - muls r0, r5 - ldr r4, _080EAA40 @ =gPlayerParty - adds r0, r4 - movs r1, 0x3A - bl GetMonData - mov r8, r0 - mov r1, r9 - ldrb r0, [r1] - lsls r0, 1 - adds r0, r6 - ldrh r0, [r0] - muls r0, r5 - adds r0, r4 - movs r1, 0x39 - bl GetMonData - adds r3, r0, 0 - mov r1, r9 - ldrb r0, [r1] - ldr r1, _080EAA44 @ =gHealthboxSpriteIds - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - mov r2, r8 - bl SetBattleBarStruct - b _080EAA82 - .align 2, 0 -_080EAA30: .4byte gBattleBufferA -_080EAA34: .4byte gActiveBattler -_080EAA38: .4byte 0x00007fff -_080EAA3C: .4byte gBattlerPartyIndexes -_080EAA40: .4byte gPlayerParty -_080EAA44: .4byte gHealthboxSpriteIds -_080EAA48: - ldr r1, _080EAAA0 @ =gBattlerPartyIndexes - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080EAAA4 @ =gPlayerParty - adds r0, r1 - movs r1, 0x3A - bl GetMonData - adds r2, r0, 0 - mov r1, r9 - ldrb r0, [r1] - ldr r4, _080EAAA8 @ =gHealthboxSpriteIds - adds r1, r0, r4 - ldrb r1, [r1] - str r7, [sp] - movs r3, 0 - bl SetBattleBarStruct - mov r1, r9 - ldrb r0, [r1] - adds r0, r4 - ldrb r0, [r0] - movs r1, 0 - movs r2, 0 - bl UpdateHpTextInHealthbox -_080EAA82: - ldr r1, _080EAAAC @ =gBattlerControllerFuncs - ldr r0, _080EAAB0 @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _080EAAB4 @ =sub_80E88C0 - str r1, [r0] - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EAAA0: .4byte gBattlerPartyIndexes -_080EAAA4: .4byte gPlayerParty -_080EAAA8: .4byte gHealthboxSpriteIds -_080EAAAC: .4byte gBattlerControllerFuncs -_080EAAB0: .4byte gActiveBattler -_080EAAB4: .4byte sub_80E88C0 - thumb_func_end sub_80EA9B8 - - thumb_func_start sub_80EAAB8 -sub_80EAAB8: @ 80EAAB8 - push {r4-r7,lr} - ldr r5, _080EAAE4 @ =gBattleBufferA - ldr r6, _080EAAE8 @ =gActiveBattler - ldrb r0, [r6] - lsls r0, 9 - adds r1, r5, 0x1 - adds r0, r1 - ldrb r7, [r0] - movs r0, 0x64 - adds r1, r7, 0 - muls r1, r0 - ldr r0, _080EAAEC @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - cmp r0, 0x63 - bls _080EAAF0 - bl WallyBufferExecCompleted - b _080EAB3C - .align 2, 0 -_080EAAE4: .4byte gBattleBufferA -_080EAAE8: .4byte gActiveBattler -_080EAAEC: .4byte gPlayerParty -_080EAAF0: - movs r0, 0x1 - bl LoadBattleBarGfx - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - ldrb r1, [r6] - lsls r1, 9 - adds r0, r5, 0x2 - adds r0, r1, r0 - ldrb r4, [r0] - adds r0, r5, 0x3 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 8 - orrs r4, r0 - ldr r0, _080EAB44 @ =sub_80E7E04 - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080EAB48 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r7, [r1, 0x8] - strh r4, [r1, 0xA] - ldrb r0, [r6] - strh r0, [r1, 0xC] - ldr r1, _080EAB4C @ =gBattlerControllerFuncs - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, _080EAB50 @ =nullsub_81 - str r1, [r0] -_080EAB3C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EAB44: .4byte sub_80E7E04 -_080EAB48: .4byte gTasks -_080EAB4C: .4byte gBattlerControllerFuncs -_080EAB50: .4byte nullsub_81 - thumb_func_end sub_80EAAB8 - - thumb_func_start sub_80EAB54 -sub_80EAB54: @ 80EAB54 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_80EAB54 - - thumb_func_start sub_80EAB60 -sub_80EAB60: @ 80EAB60 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_80EAB60 - - thumb_func_start sub_80EAB6C -sub_80EAB6C: @ 80EAB6C - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_80EAB6C - - thumb_func_start sub_80EAB78 -sub_80EAB78: @ 80EAB78 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_80EAB78 - - thumb_func_start sub_80EAB84 -sub_80EAB84: @ 80EAB84 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_80EAB84 - - thumb_func_start sub_80EAB90 -sub_80EAB90: @ 80EAB90 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_80EAB90 - - thumb_func_start sub_80EAB9C -sub_80EAB9C: @ 80EAB9C - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_80EAB9C - - thumb_func_start sub_80EABA8 -sub_80EABA8: @ 80EABA8 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_80EABA8 - - thumb_func_start sub_80EABB4 -sub_80EABB4: @ 80EABB4 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_80EABB4 - - thumb_func_start sub_80EABC0 -sub_80EABC0: @ 80EABC0 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_80EABC0 - - thumb_func_start sub_80EABCC -sub_80EABCC: @ 80EABCC - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_80EABCC - - thumb_func_start sub_80EABD8 -sub_80EABD8: @ 80EABD8 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_80EABD8 - - thumb_func_start sub_80EABE4 -sub_80EABE4: @ 80EABE4 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_80EABE4 - - thumb_func_start sub_80EABF0 -sub_80EABF0: @ 80EABF0 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_80EABF0 - - thumb_func_start sub_80EABFC -sub_80EABFC: @ 80EABFC - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_80EABFC - - thumb_func_start sub_80EAC08 -sub_80EAC08: @ 80EAC08 - push {r4,lr} - ldr r3, _080EAC30 @ =gSprites - ldr r2, _080EAC34 @ =gBattlerSpriteIds - ldr r4, _080EAC38 @ =gActiveBattler - ldrb r0, [r4] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - bge _080EAC3C - bl WallyBufferExecCompleted - b _080EAC66 - .align 2, 0 -_080EAC30: .4byte gSprites -_080EAC34: .4byte gBattlerSpriteIds -_080EAC38: .4byte gActiveBattler -_080EAC3C: - ldr r1, _080EAC6C @ =gDoingBattleAnim - movs r0, 0x1 - strb r0, [r1] - ldrb r0, [r4] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0 - strh r1, [r0, 0x30] - ldrb r0, [r4] - bl DoHitAnimHealthboxEffect - ldr r1, _080EAC70 @ =gBattlerControllerFuncs - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _080EAC74 @ =DoHitAnimBlinkSpriteEffect_3 - str r1, [r0] -_080EAC66: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EAC6C: .4byte gDoingBattleAnim -_080EAC70: .4byte gBattlerControllerFuncs -_080EAC74: .4byte DoHitAnimBlinkSpriteEffect_3 - thumb_func_end sub_80EAC08 - - thumb_func_start sub_80EAC78 -sub_80EAC78: @ 80EAC78 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_80EAC78 - - thumb_func_start sub_80EAC84 -sub_80EAC84: @ 80EAC84 - push {lr} - ldr r2, _080EACAC @ =gBattleBufferA - ldr r0, _080EACB0 @ =gActiveBattler - ldrb r1, [r0] - lsls r1, 9 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - bl PlaySE - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_080EACAC: .4byte gBattleBufferA -_080EACB0: .4byte gActiveBattler - thumb_func_end sub_80EAC84 - - thumb_func_start sub_80EACB4 -sub_80EACB4: @ 80EACB4 - push {lr} - ldr r2, _080EACDC @ =gBattleBufferA - ldr r0, _080EACE0 @ =gActiveBattler - ldrb r1, [r0] - lsls r1, 9 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - bl PlayFanfare - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_080EACDC: .4byte gBattleBufferA -_080EACE0: .4byte gActiveBattler - thumb_func_end sub_80EACB4 - - thumb_func_start sub_80EACE4 -sub_80EACE4: @ 80EACE4 - push {lr} - ldr r1, _080EAD14 @ =gBattlerPartyIndexes - ldr r0, _080EAD18 @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080EAD1C @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x19 - bl PlayCry1 - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_080EAD14: .4byte gBattlerPartyIndexes -_080EAD18: .4byte gActiveBattler -_080EAD1C: .4byte gPlayerParty - thumb_func_end sub_80EACE4 - - thumb_func_start sub_80EAD20 -sub_80EAD20: @ 80EAD20 - push {lr} - ldr r1, _080EAD48 @ =gBattleBufferA - ldr r0, _080EAD4C @ =gActiveBattler - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - bl HandleIntroSlide - ldr r2, _080EAD50 @ =gIntroSlideFlags - ldrh r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r2] - bl WallyBufferExecCompleted - pop {r0} - bx r0 - .align 2, 0 -_080EAD48: .4byte gBattleBufferA -_080EAD4C: .4byte gActiveBattler -_080EAD50: .4byte gIntroSlideFlags - thumb_func_end sub_80EAD20 - - thumb_func_start sub_80EAD54 -sub_80EAD54: @ 80EAD54 - push {r4-r7,lr} - ldr r0, _080EAEA0 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x10 - ands r0, r1 - cmp r0, 0 - bne _080EAD64 - b _080EAEE4 -_080EAD64: - ldr r6, _080EAEA4 @ =gBattlerSpriteIds - ldr r7, _080EAEA8 @ =gActiveBattler - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, _080EAEAC @ =gSprites - adds r0, r5 - bl SetSpritePrimaryCoordsFromSecondaryCoords - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x32 - strh r1, [r0, 0x2E] - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _080EAEB0 @ =0x0000ffd8 - strh r1, [r0, 0x32] - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r1, [r0, 0x22] - strh r1, [r0, 0x36] - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _080EAEB4 @ =StartAnimLinearTranslation - str r1, [r0] - ldrb r2, [r7] - adds r0, r2, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x38] - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _080EAEB8 @ =sub_80335F8 - bl StoreSpriteCallbackInData6 - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x1 - bl StartSpriteAnim - ldr r0, _080EAEBC @ =0x0000d6f8 - bl AllocSpritePalette - adds r4, r0, 0 - lsls r4, 24 - ldr r1, _080EAEC0 @ =gTrainerBackPicPaletteTable - ldr r0, _080EAEC4 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - lsls r0, 3 - adds r0, r1 - ldr r0, [r0] - lsrs r4, 20 - movs r2, 0x80 - lsls r2, 1 - adds r1, r4, r2 - movs r2, 0x20 - bl LoadCompressedPalette - ldrb r0, [r7] - adds r0, r6 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r4 - strb r0, [r1, 0x5] - ldr r0, _080EAEC8 @ =sub_80EB0A8 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r4, _080EAECC @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r4 - ldrb r0, [r7] - strh r0, [r1, 0x8] - ldr r3, _080EAED0 @ =gBattleSpritesDataPtr - ldr r0, [r3] - ldrb r2, [r7] - ldr r1, [r0, 0x4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080EAE84 - ldr r0, _080EAED4 @ =gBattlerStatusSummaryTaskId - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - ldr r1, _080EAED8 @ =Task_HidePartyStatusSummary - str r1, [r0] -_080EAE84: - ldr r0, [r3] - ldr r2, [r0, 0x8] - ldrb r0, [r2, 0x9] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x9] - ldr r1, _080EAEDC @ =gBattlerControllerFuncs - ldrb r0, [r7] - lsls r0, 2 - adds r0, r1 - ldr r1, _080EAEE0 @ =nullsub_13 - str r1, [r0] - b _080EAF18 - .align 2, 0 -_080EAEA0: .4byte gBattleTypeFlags -_080EAEA4: .4byte gBattlerSpriteIds -_080EAEA8: .4byte gActiveBattler -_080EAEAC: .4byte gSprites -_080EAEB0: .4byte 0x0000ffd8 -_080EAEB4: .4byte StartAnimLinearTranslation -_080EAEB8: .4byte sub_80335F8 -_080EAEBC: .4byte 0x0000d6f8 -_080EAEC0: .4byte gTrainerBackPicPaletteTable -_080EAEC4: .4byte gSaveBlock2Ptr -_080EAEC8: .4byte sub_80EB0A8 -_080EAECC: .4byte gTasks -_080EAED0: .4byte gBattleSpritesDataPtr -_080EAED4: .4byte gBattlerStatusSummaryTaskId -_080EAED8: .4byte Task_HidePartyStatusSummary -_080EAEDC: .4byte gBattlerControllerFuncs -_080EAEE0: .4byte nullsub_13 -_080EAEE4: - ldr r0, _080EAF20 @ =gBattleSpritesDataPtr - ldr r1, [r0] - ldr r0, _080EAF24 @ =gActiveBattler - ldrb r3, [r0] - ldr r1, [r1, 0x4] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080EAF14 - ldr r2, _080EAF28 @ =gTasks - ldr r0, _080EAF2C @ =gBattlerStatusSummaryTaskId - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, _080EAF30 @ =Task_HidePartyStatusSummary - str r1, [r0] -_080EAF14: - bl WallyBufferExecCompleted -_080EAF18: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EAF20: .4byte gBattleSpritesDataPtr -_080EAF24: .4byte gActiveBattler -_080EAF28: .4byte gTasks -_080EAF2C: .4byte gBattlerStatusSummaryTaskId -_080EAF30: .4byte Task_HidePartyStatusSummary - thumb_func_end sub_80EAD54 - - thumb_func_start sub_80EAF34 -sub_80EAF34: @ 80EAF34 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - ldr r0, _080EB07C @ =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r6, 2 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x2] - ldr r0, _080EB080 @ =gBattlerPartyIndexes - lsls r2, r6, 1 - adds r2, r0 - ldr r0, _080EB084 @ =gBattleBufferA - lsls r1, r6, 9 - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - strh r0, [r2] - ldrh r1, [r2] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080EB088 @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - mov r8, r0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r0, _080EB08C @ =sub_8033E3C - bl CreateInvisibleSpriteWithCallback - ldr r1, _080EB090 @ =gUnknown_3004FFC - mov r9, r1 - add r9, r6 - mov r1, r9 - strb r0, [r1] - adds r0, r6, 0 - bl GetBattlerPosition - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, r8 - bl SetMultiuseSpriteTemplateToPokemon - ldr r0, _080EB094 @ =gMultiuseSpriteTemplate - mov r10, r0 - adds r0, r6, 0 - movs r1, 0x2 - bl GetBattlerSpriteCoord - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - adds r0, r6, 0 - bl GetBattlerSpriteDefault_Y - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - bl GetBattlerSpriteSubpriority - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - mov r0, r10 - adds r1, r5, 0 - adds r2, r4, 0 - bl CreateSprite - ldr r4, _080EB098 @ =gBattlerSpriteIds - adds r4, r6, r4 - strb r0, [r4] - ldr r5, _080EB09C @ =gSprites - mov r0, r9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r4] - strh r1, [r0, 0x30] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x2E] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - mov r1, r8 - strh r1, [r0, 0x32] - ldrb r0, [r4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - lsls r3, r6, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _080EB0A0 @ =gBattleMonForms - adds r6, r1 - ldrb r1, [r6] - bl StartSpriteAnim - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _080EB0A4 @ =SpriteCallbackDummy - str r1, [r0] - movs r0, 0 - movs r1, 0xFF - bl DoPokeballSendOutAnimation - mov r1, r9 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r5 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x2E] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EB07C: .4byte gBattleSpritesDataPtr -_080EB080: .4byte gBattlerPartyIndexes -_080EB084: .4byte gBattleBufferA -_080EB088: .4byte gPlayerParty -_080EB08C: .4byte sub_8033E3C -_080EB090: .4byte gUnknown_3004FFC -_080EB094: .4byte gMultiuseSpriteTemplate -_080EB098: .4byte gBattlerSpriteIds -_080EB09C: .4byte gSprites -_080EB0A0: .4byte gBattleMonForms -_080EB0A4: .4byte SpriteCallbackDummy - thumb_func_end sub_80EAF34 - - thumb_func_start sub_80EB0A8 -sub_80EB0A8: @ 80EB0A8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080EB0C8 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r1, r0, r1 - ldrh r2, [r1, 0xA] - movs r3, 0xA - ldrsh r0, [r1, r3] - cmp r0, 0x1E - bgt _080EB0CC - adds r0, r2, 0x1 - strh r0, [r1, 0xA] - b _080EB102 - .align 2, 0 -_080EB0C8: .4byte gTasks -_080EB0CC: - ldr r4, _080EB108 @ =gActiveBattler - ldrb r5, [r4] - ldrh r0, [r1, 0x8] - strb r0, [r4] - ldr r0, _080EB10C @ =gBattleBufferA - ldrb r1, [r4] - lsls r2, r1, 9 - adds r0, 0x1 - adds r2, r0 - ldr r0, _080EB110 @ =gBattlerPartyIndexes - lsls r1, 1 - adds r1, r0 - ldrh r0, [r1] - strb r0, [r2] - ldrb r0, [r4] - bl sub_80EAF34 - ldr r1, _080EB114 @ =gBattlerControllerFuncs - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _080EB118 @ =sub_80E7B4C - str r1, [r0] - strb r5, [r4] - adds r0, r6, 0 - bl DestroyTask -_080EB102: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EB108: .4byte gActiveBattler -_080EB10C: .4byte gBattleBufferA -_080EB110: .4byte gBattlerPartyIndexes -_080EB114: .4byte gBattlerControllerFuncs -_080EB118: .4byte sub_80E7B4C - thumb_func_end sub_80EB0A8 - - thumb_func_start sub_80EB11C -sub_80EB11C: @ 80EB11C - push {r4,r5,lr} - ldr r1, _080EB144 @ =gBattleBufferA - ldr r0, _080EB148 @ =gActiveBattler - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080EB14C - adds r0, r2, 0 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080EB14C - bl WallyBufferExecCompleted - b _080EB18A - .align 2, 0 -_080EB144: .4byte gBattleBufferA -_080EB148: .4byte gActiveBattler -_080EB14C: - ldr r0, _080EB190 @ =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r5, _080EB194 @ =gActiveBattler - ldrb r1, [r5] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - ldrb r0, [r5] - lsls r4, r0, 9 - ldr r3, _080EB198 @ =gUnknown_2022BC8 - adds r1, r4, r3 - subs r2, r3, 0x3 - adds r2, r4, r2 - ldrb r2, [r2] - subs r3, 0x2 - adds r4, r3 - ldrb r3, [r4] - bl CreatePartyStatusSummarySprites - ldr r2, _080EB19C @ =gBattlerStatusSummaryTaskId - ldrb r1, [r5] - adds r1, r2 - strb r0, [r1] - bl WallyBufferExecCompleted -_080EB18A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080EB190: .4byte gBattleSpritesDataPtr -_080EB194: .4byte gActiveBattler -_080EB198: .4byte gUnknown_2022BC8 -_080EB19C: .4byte gBattlerStatusSummaryTaskId - thumb_func_end sub_80EB11C - - thumb_func_start sub_80EB1A0 -sub_80EB1A0: @ 80EB1A0 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_80EB1A0 - - thumb_func_start sub_80EB1AC -sub_80EB1AC: @ 80EB1AC - push {r4,lr} - ldr r4, _080EB1CC @ =gActiveBattler - ldrb r0, [r4] - movs r1, 0x1 - bl EndBounceEffect - ldrb r0, [r4] - movs r1, 0 - bl EndBounceEffect - bl WallyBufferExecCompleted - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EB1CC: .4byte gActiveBattler - thumb_func_end sub_80EB1AC - - thumb_func_start sub_80EB1D0 -sub_80EB1D0: @ 80EB1D0 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_80EB1D0 - - thumb_func_start sub_80EB1DC -sub_80EB1DC: @ 80EB1DC - push {r4-r6,lr} - sub sp, 0x4 - ldr r5, _080EB214 @ =gBattleBufferA - ldr r6, _080EB218 @ =gActiveBattler - ldrb r2, [r6] - lsls r1, r2, 9 - adds r0, r5, 0x1 - adds r0, r1, r0 - ldrb r3, [r0] - adds r0, r5, 0x2 - adds r0, r1, r0 - ldrb r4, [r0] - adds r5, 0x3 - adds r1, r5 - ldrb r0, [r1] - lsls r0, 8 - orrs r4, r0 - str r4, [sp] - adds r0, r2, 0 - adds r1, r2, 0 - bl TryHandleLaunchBattleTableAnimation - lsls r0, 24 - cmp r0, 0 - beq _080EB21C - bl WallyBufferExecCompleted - b _080EB228 - .align 2, 0 -_080EB214: .4byte gBattleBufferA -_080EB218: .4byte gActiveBattler -_080EB21C: - ldr r0, _080EB230 @ =gBattlerControllerFuncs - ldrb r1, [r6] - lsls r1, 2 - adds r1, r0 - ldr r0, _080EB234 @ =CompleteOnFinishedBattleAnimation_4 - str r0, [r1] -_080EB228: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EB230: .4byte gBattlerControllerFuncs -_080EB234: .4byte CompleteOnFinishedBattleAnimation_4 - thumb_func_end sub_80EB1DC - - thumb_func_start sub_80EB238 -sub_80EB238: @ 80EB238 - push {r4,lr} - ldr r1, _080EB26C @ =gBattleBufferA - ldr r4, _080EB270 @ =gActiveBattler - ldrb r2, [r4] - lsls r0, r2, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - blt _080EB260 - cmp r0, 0x1 - bgt _080EB260 - adds r0, r2, 0 - movs r1, 0x1 - bl EndBounceEffect - ldrb r0, [r4] - movs r1, 0 - bl EndBounceEffect -_080EB260: - bl WallyBufferExecCompleted - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EB26C: .4byte gBattleBufferA -_080EB270: .4byte gActiveBattler - thumb_func_end sub_80EB238 - - thumb_func_start sub_80EB274 -sub_80EB274: @ 80EB274 - push {lr} - bl WallyBufferExecCompleted - pop {r0} - bx r0 - thumb_func_end sub_80EB274 - - thumb_func_start sub_80EB280 -sub_80EB280: @ 80EB280 - push {r4,lr} - ldr r2, _080EB2C4 @ =gBattleOutcome - ldr r1, _080EB2C8 @ =gBattleBufferA - ldr r4, _080EB2CC @ =gActiveBattler - ldrb r0, [r4] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - movs r0, 0x5 - bl FadeOutMapMusic - movs r0, 0x3 - bl BeginFastPaletteFade - bl WallyBufferExecCompleted - ldr r0, _080EB2D0 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x6 - ands r0, r1 - cmp r0, 0x2 - bne _080EB2BC - ldr r0, _080EB2D4 @ =gBattlerControllerFuncs - ldrb r1, [r4] - lsls r1, 2 - adds r1, r0 - ldr r0, _080EB2D8 @ =sub_80E7930 - str r0, [r1] -_080EB2BC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EB2C4: .4byte gBattleOutcome -_080EB2C8: .4byte gBattleBufferA -_080EB2CC: .4byte gActiveBattler -_080EB2D0: .4byte gBattleTypeFlags -_080EB2D4: .4byte gBattlerControllerFuncs -_080EB2D8: .4byte sub_80E7930 - thumb_func_end sub_80EB280 - - thumb_func_start nullsub_82 -nullsub_82: @ 80EB2DC - bx lr - thumb_func_end nullsub_82 - - thumb_func_start sub_80EB2E0 -sub_80EB2E0: @ 80EB2E0 - adds r1, r0, 0 - ldr r0, _080EB2F0 @ =gBattleStruct - ldr r0, [r0] - adds r0, 0x96 - ldrb r0, [r0] - ands r0, r1 - bx lr - .align 2, 0 -_080EB2F0: .4byte gBattleStruct - thumb_func_end sub_80EB2E0 - - thumb_func_start sub_80EB2F4 -sub_80EB2F4: @ 80EB2F4 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080EB308 @ =gBattleStruct - ldr r1, [r1] - adds r1, 0x96 - ldrb r2, [r1] - orrs r0, r2 - strb r0, [r1] - bx lr - .align 2, 0 -_080EB308: .4byte gBattleStruct - thumb_func_end sub_80EB2F4 - - thumb_func_start sub_80EB30C -sub_80EB30C: @ 80EB30C - push {r4-r6,lr} - sub sp, 0xC - movs r6, 0x1A - movs r5, 0x7 - movs r4, 0x1 - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x30 - movs r2, 0 - movs r3, 0xE - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x31 - movs r2, 0x1 - movs r3, 0xE - bl FillBgTilemapBufferRect - str r6, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x32 - movs r2, 0x2 - movs r3, 0xE - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x33 - movs r2, 0x1C - movs r3, 0xE - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x34 - movs r2, 0x1D - movs r3, 0xE - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x35 - movs r2, 0 - movs r3, 0xF - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x36 - movs r2, 0x1 - movs r3, 0xF - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x38 - movs r2, 0x1C - movs r3, 0xF - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x39 - movs r2, 0x1D - movs r3, 0xF - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x3A - movs r2, 0 - movs r3, 0x10 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x3B - movs r2, 0x1 - movs r3, 0x10 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x3C - movs r2, 0x1C - movs r3, 0x10 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x3D - movs r2, 0x1D - movs r3, 0x10 - bl FillBgTilemapBufferRect - ldr r1, _080EB4F4 @ =0x0000083a - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r2, 0 - movs r3, 0x11 - bl FillBgTilemapBufferRect - ldr r1, _080EB4F8 @ =0x0000083b - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r2, 0x1 - movs r3, 0x11 - bl FillBgTilemapBufferRect - ldr r1, _080EB4FC @ =0x0000083c - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r2, 0x1C - movs r3, 0x11 - bl FillBgTilemapBufferRect - ldr r1, _080EB500 @ =0x0000083d - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r2, 0x1D - movs r3, 0x11 - bl FillBgTilemapBufferRect - ldr r1, _080EB504 @ =0x00000835 - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r2, 0 - movs r3, 0x12 - bl FillBgTilemapBufferRect - ldr r1, _080EB508 @ =0x00000836 - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r2, 0x1 - movs r3, 0x12 - bl FillBgTilemapBufferRect - ldr r1, _080EB50C @ =0x00000838 - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r2, 0x1C - movs r3, 0x12 - bl FillBgTilemapBufferRect - ldr r1, _080EB510 @ =0x00000839 - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r2, 0x1D - movs r3, 0x12 - bl FillBgTilemapBufferRect - movs r1, 0x83 - lsls r1, 4 - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r2, 0 - movs r3, 0x13 - bl FillBgTilemapBufferRect - ldr r1, _080EB514 @ =0x00000831 - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r2, 0x1 - movs r3, 0x13 - bl FillBgTilemapBufferRect - ldr r1, _080EB518 @ =0x00000832 - str r6, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r2, 0x2 - movs r3, 0x13 - bl FillBgTilemapBufferRect - ldr r1, _080EB51C @ =0x00000833 - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r2, 0x1C - movs r3, 0x13 - bl FillBgTilemapBufferRect - ldr r1, _080EB520 @ =0x00000834 - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r2, 0x1D - movs r3, 0x13 - bl FillBgTilemapBufferRect - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EB4F4: .4byte 0x0000083a -_080EB4F8: .4byte 0x0000083b -_080EB4FC: .4byte 0x0000083c -_080EB500: .4byte 0x0000083d -_080EB504: .4byte 0x00000835 -_080EB508: .4byte 0x00000836 -_080EB50C: .4byte 0x00000838 -_080EB510: .4byte 0x00000839 -_080EB514: .4byte 0x00000831 -_080EB518: .4byte 0x00000832 -_080EB51C: .4byte 0x00000833 -_080EB520: .4byte 0x00000834 - thumb_func_end sub_80EB30C - - thumb_func_start sub_80EB524 -sub_80EB524: @ 80EB524 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0xC - movs r5, 0 - movs r0, 0x1A - mov r8, r0 - movs r4, 0x1 - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x3 - movs r2, 0 - movs r3, 0xE - bl FillBgTilemapBufferRect - movs r6, 0x4 - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x4 - movs r2, 0x1 - movs r3, 0xE - bl FillBgTilemapBufferRect - mov r0, r8 - str r0, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x5 - movs r2, 0x2 - movs r3, 0xE - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x6 - movs r2, 0x1C - movs r3, 0xE - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x7 - movs r2, 0x1D - movs r3, 0xE - bl FillBgTilemapBufferRect - str r4, [sp] - str r6, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x8 - movs r2, 0 - movs r3, 0xF - bl FillBgTilemapBufferRect - str r4, [sp] - str r6, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x9 - movs r2, 0x1 - movs r3, 0xF - bl FillBgTilemapBufferRect - mov r0, r8 - str r0, [sp] - str r6, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0xA - movs r2, 0x2 - movs r3, 0xF - bl FillBgTilemapBufferRect - str r4, [sp] - str r6, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0xB - movs r2, 0x1C - movs r3, 0xF - bl FillBgTilemapBufferRect - str r4, [sp] - str r6, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0xC - movs r2, 0x1D - movs r3, 0xF - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0xD - movs r2, 0 - movs r3, 0x13 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0xE - movs r2, 0x1 - movs r3, 0x13 - bl FillBgTilemapBufferRect - mov r0, r8 - str r0, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0xF - movs r2, 0x2 - movs r3, 0x13 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x10 - movs r2, 0x1C - movs r3, 0x13 - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r1, 0x11 - movs r2, 0x1D - movs r3, 0x13 - bl FillBgTilemapBufferRect - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80EB524 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_controller_pokedude.s b/asm/battle_controller_pokedude.s index 1857d92c8..e685d786d 100644 --- a/asm/battle_controller_pokedude.s +++ b/asm/battle_controller_pokedude.s @@ -10,8 +10,8 @@ nullsub_99: @ 81560A0 bx lr thumb_func_end nullsub_99 - thumb_func_start SetControllerToPokedude -SetControllerToPokedude: @ 81560A4 + thumb_func_start SetControllerToPokeDude +SetControllerToPokeDude: @ 81560A4 ldr r1, _081560C8 @ =gBattlerControllerFuncs ldr r0, _081560CC @ =gActiveBattler ldrb r0, [r0] @@ -36,7 +36,7 @@ _081560CC: .4byte gActiveBattler _081560D0: .4byte sub_81560DC _081560D4: .4byte gBattleStruct _081560D8: .4byte gSpecialVar_0x8004 - thumb_func_end SetControllerToPokedude + thumb_func_end SetControllerToPokeDude thumb_func_start sub_81560DC sub_81560DC: @ 81560DC @@ -2862,7 +2862,7 @@ sub_81577B4: @ 81577B4 ldr r0, _081577E4 @ =gActiveBattler ldrb r0, [r0] lsls r2, r0, 9 - ldr r1, _081577E8 @ =gUnknown_2022BC7 + ldr r1, _081577E8 @ =gBattleBufferA + 3 adds r5, r2, r1 mov r8, r5 bl GetBattlerSide @@ -2876,7 +2876,7 @@ sub_81577B4: @ 81577B4 b _081577F8 .align 2, 0 _081577E4: .4byte gActiveBattler -_081577E8: .4byte gUnknown_2022BC7 +_081577E8: .4byte gBattleBufferA + 3 _081577EC: .4byte gPlayerParty _081577F0: movs r0, 0x64 @@ -3148,7 +3148,7 @@ _08157AA4: ldr r0, _08157AB8 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157ABC @ =gUnknown_2022BC7 + ldr r0, _08157ABC @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0xB @@ -3156,12 +3156,12 @@ _08157AA4: b _0815809A .align 2, 0 _08157AB8: .4byte gActiveBattler -_08157ABC: .4byte gUnknown_2022BC7 +_08157ABC: .4byte gBattleBufferA + 3 _08157AC0: ldr r0, _08157AD4 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157AD8 @ =gUnknown_2022BC7 + ldr r0, _08157AD8 @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0xC @@ -3169,7 +3169,7 @@ _08157AC0: b _0815809A .align 2, 0 _08157AD4: .4byte gActiveBattler -_08157AD8: .4byte gUnknown_2022BC7 +_08157AD8: .4byte gBattleBufferA + 3 _08157ADC: movs r4, 0 movs r0, 0xC @@ -3213,7 +3213,7 @@ _08157B2C: ldr r5, _08157B80 @ =gActiveBattler ldrb r2, [r5] lsls r2, 9 - ldr r4, _08157B84 @ =gUnknown_2022BC7 + ldr r4, _08157B84 @ =gBattleBufferA + 3 adds r2, r4 adds r0, r6, 0 movs r1, 0x11 @@ -3249,7 +3249,7 @@ _08157B2C: b _0815809A .align 2, 0 _08157B80: .4byte gActiveBattler -_08157B84: .4byte gUnknown_2022BC7 +_08157B84: .4byte gBattleBufferA + 3 _08157B88: ldr r0, _08157BA4 @ =gActiveBattler ldrb r2, [r0] @@ -3270,7 +3270,7 @@ _08157BA8: ldr r0, _08157BBC @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157BC0 @ =gUnknown_2022BC7 + ldr r0, _08157BC0 @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x1 @@ -3278,12 +3278,12 @@ _08157BA8: b _0815809A .align 2, 0 _08157BBC: .4byte gActiveBattler -_08157BC0: .4byte gUnknown_2022BC7 +_08157BC0: .4byte gBattleBufferA + 3 _08157BC4: ldr r0, _08157BD8 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157BDC @ =gUnknown_2022BC7 + ldr r0, _08157BDC @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x19 @@ -3291,12 +3291,12 @@ _08157BC4: b _0815809A .align 2, 0 _08157BD8: .4byte gActiveBattler -_08157BDC: .4byte gUnknown_2022BC7 +_08157BDC: .4byte gBattleBufferA + 3 _08157BE0: ldr r0, _08157BF4 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157BF8 @ =gUnknown_2022BC7 + ldr r0, _08157BF8 @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x1A @@ -3304,12 +3304,12 @@ _08157BE0: b _0815809A .align 2, 0 _08157BF4: .4byte gActiveBattler -_08157BF8: .4byte gUnknown_2022BC7 +_08157BF8: .4byte gBattleBufferA + 3 _08157BFC: ldr r0, _08157C10 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157C14 @ =gUnknown_2022BC7 + ldr r0, _08157C14 @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x1B @@ -3317,12 +3317,12 @@ _08157BFC: b _0815809A .align 2, 0 _08157C10: .4byte gActiveBattler -_08157C14: .4byte gUnknown_2022BC7 +_08157C14: .4byte gBattleBufferA + 3 _08157C18: ldr r0, _08157C2C @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157C30 @ =gUnknown_2022BC7 + ldr r0, _08157C30 @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x1C @@ -3330,12 +3330,12 @@ _08157C18: b _0815809A .align 2, 0 _08157C2C: .4byte gActiveBattler -_08157C30: .4byte gUnknown_2022BC7 +_08157C30: .4byte gBattleBufferA + 3 _08157C34: ldr r0, _08157C48 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157C4C @ =gUnknown_2022BC7 + ldr r0, _08157C4C @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x1D @@ -3343,12 +3343,12 @@ _08157C34: b _0815809A .align 2, 0 _08157C48: .4byte gActiveBattler -_08157C4C: .4byte gUnknown_2022BC7 +_08157C4C: .4byte gBattleBufferA + 3 _08157C50: ldr r0, _08157C64 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157C68 @ =gUnknown_2022BC7 + ldr r0, _08157C68 @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x1E @@ -3356,12 +3356,12 @@ _08157C50: b _0815809A .align 2, 0 _08157C64: .4byte gActiveBattler -_08157C68: .4byte gUnknown_2022BC7 +_08157C68: .4byte gBattleBufferA + 3 _08157C6C: ldr r0, _08157C80 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157C84 @ =gUnknown_2022BC7 + ldr r0, _08157C84 @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x1F @@ -3369,12 +3369,12 @@ _08157C6C: b _0815809A .align 2, 0 _08157C80: .4byte gActiveBattler -_08157C84: .4byte gUnknown_2022BC7 +_08157C84: .4byte gBattleBufferA + 3 _08157C88: ldr r0, _08157C9C @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157CA0 @ =gUnknown_2022BC7 + ldr r0, _08157CA0 @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x20 @@ -3382,12 +3382,12 @@ _08157C88: b _0815809A .align 2, 0 _08157C9C: .4byte gActiveBattler -_08157CA0: .4byte gUnknown_2022BC7 +_08157CA0: .4byte gBattleBufferA + 3 _08157CA4: ldr r0, _08157CB8 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157CBC @ =gUnknown_2022BC7 + ldr r0, _08157CBC @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x22 @@ -3395,12 +3395,12 @@ _08157CA4: b _0815809A .align 2, 0 _08157CB8: .4byte gActiveBattler -_08157CBC: .4byte gUnknown_2022BC7 +_08157CBC: .4byte gBattleBufferA + 3 _08157CC0: ldr r0, _08157CD4 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157CD8 @ =gUnknown_2022BC7 + ldr r0, _08157CD8 @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x23 @@ -3408,12 +3408,12 @@ _08157CC0: b _0815809A .align 2, 0 _08157CD4: .4byte gActiveBattler -_08157CD8: .4byte gUnknown_2022BC7 +_08157CD8: .4byte gBattleBufferA + 3 _08157CDC: ldr r0, _08157CF0 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157CF4 @ =gUnknown_2022BC7 + ldr r0, _08157CF4 @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x24 @@ -3421,12 +3421,12 @@ _08157CDC: b _0815809A .align 2, 0 _08157CF0: .4byte gActiveBattler -_08157CF4: .4byte gUnknown_2022BC7 +_08157CF4: .4byte gBattleBufferA + 3 _08157CF8: ldr r0, _08157D0C @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157D10 @ =gUnknown_2022BC7 + ldr r0, _08157D10 @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x25 @@ -3434,12 +3434,12 @@ _08157CF8: b _0815809A .align 2, 0 _08157D0C: .4byte gActiveBattler -_08157D10: .4byte gUnknown_2022BC7 +_08157D10: .4byte gBattleBufferA + 3 _08157D14: ldr r0, _08157D28 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157D2C @ =gUnknown_2022BC7 + ldr r0, _08157D2C @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x26 @@ -3447,12 +3447,12 @@ _08157D14: b _0815809A .align 2, 0 _08157D28: .4byte gActiveBattler -_08157D2C: .4byte gUnknown_2022BC7 +_08157D2C: .4byte gBattleBufferA + 3 _08157D30: ldr r5, _08157D8C @ =gActiveBattler ldrb r2, [r5] lsls r2, 9 - ldr r4, _08157D90 @ =gUnknown_2022BC7 + ldr r4, _08157D90 @ =gBattleBufferA + 3 adds r2, r4 adds r0, r6, 0 movs r1, 0x27 @@ -3492,12 +3492,12 @@ _08157D30: b _08157E2A .align 2, 0 _08157D8C: .4byte gActiveBattler -_08157D90: .4byte gUnknown_2022BC7 +_08157D90: .4byte gBattleBufferA + 3 _08157D94: ldr r0, _08157DA8 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157DAC @ =gUnknown_2022BC7 + ldr r0, _08157DAC @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x27 @@ -3505,12 +3505,12 @@ _08157D94: b _0815809A .align 2, 0 _08157DA8: .4byte gActiveBattler -_08157DAC: .4byte gUnknown_2022BC7 +_08157DAC: .4byte gBattleBufferA + 3 _08157DB0: ldr r0, _08157DC4 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157DC8 @ =gUnknown_2022BC7 + ldr r0, _08157DC8 @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x28 @@ -3518,12 +3518,12 @@ _08157DB0: b _0815809A .align 2, 0 _08157DC4: .4byte gActiveBattler -_08157DC8: .4byte gUnknown_2022BC7 +_08157DC8: .4byte gBattleBufferA + 3 _08157DCC: ldr r0, _08157DE0 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157DE4 @ =gUnknown_2022BC7 + ldr r0, _08157DE4 @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x29 @@ -3531,12 +3531,12 @@ _08157DCC: b _0815809A .align 2, 0 _08157DE0: .4byte gActiveBattler -_08157DE4: .4byte gUnknown_2022BC7 +_08157DE4: .4byte gBattleBufferA + 3 _08157DE8: ldr r0, _08157DFC @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157E00 @ =gUnknown_2022BC7 + ldr r0, _08157E00 @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x2A @@ -3544,12 +3544,12 @@ _08157DE8: b _0815809A .align 2, 0 _08157DFC: .4byte gActiveBattler -_08157E00: .4byte gUnknown_2022BC7 +_08157E00: .4byte gBattleBufferA + 3 _08157E04: ldr r0, _08157E18 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157E1C @ =gUnknown_2022BC7 + ldr r0, _08157E1C @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x2B @@ -3557,12 +3557,12 @@ _08157E04: b _0815809A .align 2, 0 _08157E18: .4byte gActiveBattler -_08157E1C: .4byte gUnknown_2022BC7 +_08157E1C: .4byte gBattleBufferA + 3 _08157E20: ldr r0, _08157E34 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157E38 @ =gUnknown_2022BC7 + ldr r0, _08157E38 @ =gBattleBufferA + 3 adds r2, r0 _08157E2A: adds r0, r6, 0 @@ -3571,12 +3571,12 @@ _08157E2A: b _0815809A .align 2, 0 _08157E34: .4byte gActiveBattler -_08157E38: .4byte gUnknown_2022BC7 +_08157E38: .4byte gBattleBufferA + 3 _08157E3C: ldr r0, _08157E50 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157E54 @ =gUnknown_2022BC7 + ldr r0, _08157E54 @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0 @@ -3584,12 +3584,12 @@ _08157E3C: b _0815809A .align 2, 0 _08157E50: .4byte gActiveBattler -_08157E54: .4byte gUnknown_2022BC7 +_08157E54: .4byte gBattleBufferA + 3 _08157E58: ldr r0, _08157E6C @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157E70 @ =gUnknown_2022BC7 + ldr r0, _08157E70 @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x9 @@ -3597,12 +3597,12 @@ _08157E58: b _0815809A .align 2, 0 _08157E6C: .4byte gActiveBattler -_08157E70: .4byte gUnknown_2022BC7 +_08157E70: .4byte gBattleBufferA + 3 _08157E74: ldr r0, _08157E88 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157E8C @ =gUnknown_2022BC7 + ldr r0, _08157E8C @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x37 @@ -3610,12 +3610,12 @@ _08157E74: b _0815809A .align 2, 0 _08157E88: .4byte gActiveBattler -_08157E8C: .4byte gUnknown_2022BC7 +_08157E8C: .4byte gBattleBufferA + 3 _08157E90: ldr r0, _08157EA4 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157EA8 @ =gUnknown_2022BC7 + ldr r0, _08157EA8 @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x38 @@ -3623,12 +3623,12 @@ _08157E90: b _0815809A .align 2, 0 _08157EA4: .4byte gActiveBattler -_08157EA8: .4byte gUnknown_2022BC7 +_08157EA8: .4byte gBattleBufferA + 3 _08157EAC: ldr r0, _08157EC0 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157EC4 @ =gUnknown_2022BC7 + ldr r0, _08157EC4 @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x39 @@ -3636,12 +3636,12 @@ _08157EAC: b _0815809A .align 2, 0 _08157EC0: .4byte gActiveBattler -_08157EC4: .4byte gUnknown_2022BC7 +_08157EC4: .4byte gBattleBufferA + 3 _08157EC8: ldr r0, _08157EDC @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157EE0 @ =gUnknown_2022BC7 + ldr r0, _08157EE0 @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x3A @@ -3649,12 +3649,12 @@ _08157EC8: b _0815809A .align 2, 0 _08157EDC: .4byte gActiveBattler -_08157EE0: .4byte gUnknown_2022BC7 +_08157EE0: .4byte gBattleBufferA + 3 _08157EE4: ldr r0, _08157EF8 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157EFC @ =gUnknown_2022BC7 + ldr r0, _08157EFC @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x3B @@ -3662,12 +3662,12 @@ _08157EE4: b _0815809A .align 2, 0 _08157EF8: .4byte gActiveBattler -_08157EFC: .4byte gUnknown_2022BC7 +_08157EFC: .4byte gBattleBufferA + 3 _08157F00: ldr r0, _08157F14 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157F18 @ =gUnknown_2022BC7 + ldr r0, _08157F18 @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x3C @@ -3675,12 +3675,12 @@ _08157F00: b _0815809A .align 2, 0 _08157F14: .4byte gActiveBattler -_08157F18: .4byte gUnknown_2022BC7 +_08157F18: .4byte gBattleBufferA + 3 _08157F1C: ldr r0, _08157F30 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157F34 @ =gUnknown_2022BC7 + ldr r0, _08157F34 @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x3D @@ -3688,12 +3688,12 @@ _08157F1C: b _0815809A .align 2, 0 _08157F30: .4byte gActiveBattler -_08157F34: .4byte gUnknown_2022BC7 +_08157F34: .4byte gBattleBufferA + 3 _08157F38: ldr r0, _08157F4C @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157F50 @ =gUnknown_2022BC7 + ldr r0, _08157F50 @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x3E @@ -3701,12 +3701,12 @@ _08157F38: b _0815809A .align 2, 0 _08157F4C: .4byte gActiveBattler -_08157F50: .4byte gUnknown_2022BC7 +_08157F50: .4byte gBattleBufferA + 3 _08157F54: ldr r0, _08157F68 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157F6C @ =gUnknown_2022BC7 + ldr r0, _08157F6C @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x3F @@ -3714,12 +3714,12 @@ _08157F54: b _0815809A .align 2, 0 _08157F68: .4byte gActiveBattler -_08157F6C: .4byte gUnknown_2022BC7 +_08157F6C: .4byte gBattleBufferA + 3 _08157F70: ldr r0, _08157F84 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157F88 @ =gUnknown_2022BC7 + ldr r0, _08157F88 @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x16 @@ -3727,12 +3727,12 @@ _08157F70: b _0815809A .align 2, 0 _08157F84: .4byte gActiveBattler -_08157F88: .4byte gUnknown_2022BC7 +_08157F88: .4byte gBattleBufferA + 3 _08157F8C: ldr r0, _08157FA0 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157FA4 @ =gUnknown_2022BC7 + ldr r0, _08157FA4 @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x17 @@ -3740,12 +3740,12 @@ _08157F8C: b _0815809A .align 2, 0 _08157FA0: .4byte gActiveBattler -_08157FA4: .4byte gUnknown_2022BC7 +_08157FA4: .4byte gBattleBufferA + 3 _08157FA8: ldr r0, _08157FBC @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157FC0 @ =gUnknown_2022BC7 + ldr r0, _08157FC0 @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x18 @@ -3753,12 +3753,12 @@ _08157FA8: b _0815809A .align 2, 0 _08157FBC: .4byte gActiveBattler -_08157FC0: .4byte gUnknown_2022BC7 +_08157FC0: .4byte gBattleBufferA + 3 _08157FC4: ldr r0, _08157FD8 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157FDC @ =gUnknown_2022BC7 + ldr r0, _08157FDC @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x21 @@ -3766,12 +3766,12 @@ _08157FC4: b _0815809A .align 2, 0 _08157FD8: .4byte gActiveBattler -_08157FDC: .4byte gUnknown_2022BC7 +_08157FDC: .4byte gBattleBufferA + 3 _08157FE0: ldr r0, _08157FF4 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08157FF8 @ =gUnknown_2022BC7 + ldr r0, _08157FF8 @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x2F @@ -3779,12 +3779,12 @@ _08157FE0: b _0815809A .align 2, 0 _08157FF4: .4byte gActiveBattler -_08157FF8: .4byte gUnknown_2022BC7 +_08157FF8: .4byte gBattleBufferA + 3 _08157FFC: ldr r0, _08158010 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08158014 @ =gUnknown_2022BC7 + ldr r0, _08158014 @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x30 @@ -3792,12 +3792,12 @@ _08157FFC: b _0815809A .align 2, 0 _08158010: .4byte gActiveBattler -_08158014: .4byte gUnknown_2022BC7 +_08158014: .4byte gBattleBufferA + 3 _08158018: ldr r0, _0815802C @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08158030 @ =gUnknown_2022BC7 + ldr r0, _08158030 @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x32 @@ -3805,12 +3805,12 @@ _08158018: b _0815809A .align 2, 0 _0815802C: .4byte gActiveBattler -_08158030: .4byte gUnknown_2022BC7 +_08158030: .4byte gBattleBufferA + 3 _08158034: ldr r0, _08158048 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _0815804C @ =gUnknown_2022BC7 + ldr r0, _0815804C @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x33 @@ -3818,12 +3818,12 @@ _08158034: b _0815809A .align 2, 0 _08158048: .4byte gActiveBattler -_0815804C: .4byte gUnknown_2022BC7 +_0815804C: .4byte gBattleBufferA + 3 _08158050: ldr r0, _08158064 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08158068 @ =gUnknown_2022BC7 + ldr r0, _08158068 @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x34 @@ -3831,12 +3831,12 @@ _08158050: b _0815809A .align 2, 0 _08158064: .4byte gActiveBattler -_08158068: .4byte gUnknown_2022BC7 +_08158068: .4byte gBattleBufferA + 3 _0815806C: ldr r0, _08158080 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _08158084 @ =gUnknown_2022BC7 + ldr r0, _08158084 @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x35 @@ -3844,12 +3844,12 @@ _0815806C: b _0815809A .align 2, 0 _08158080: .4byte gActiveBattler -_08158084: .4byte gUnknown_2022BC7 +_08158084: .4byte gBattleBufferA + 3 _08158088: ldr r0, _081580C4 @ =gActiveBattler ldrb r2, [r0] lsls r2, 9 - ldr r0, _081580C8 @ =gUnknown_2022BC7 + ldr r0, _081580C8 @ =gBattleBufferA + 3 adds r2, r0 adds r0, r6, 0 movs r1, 0x36 @@ -3876,7 +3876,7 @@ _0815809A: bx r0 .align 2, 0 _081580C4: .4byte gActiveBattler -_081580C8: .4byte gUnknown_2022BC7 +_081580C8: .4byte gBattleBufferA + 3 _081580CC: .4byte gBattlerPartyIndexes _081580D0: .4byte gPlayerParty thumb_func_end sub_81577B4 @@ -5063,7 +5063,7 @@ sub_8158A88: @ 8158A88 ldr r0, _08158AC4 @ =gActiveBattler ldrb r4, [r0] lsls r4, 9 - ldr r0, _08158AC8 @ =gUnknown_2022BC6 + ldr r0, _08158AC8 @ =gBattleBufferA + 2 adds r4, r0 ldrh r0, [r4] bl BufferStringBattle @@ -5080,7 +5080,7 @@ sub_8158A88: @ 8158A88 _08158ABC: .4byte gBattle_BG0_X _08158AC0: .4byte gBattle_BG0_Y _08158AC4: .4byte gActiveBattler -_08158AC8: .4byte gUnknown_2022BC6 +_08158AC8: .4byte gBattleBufferA + 2 _08158ACC: .4byte gDisplayedStringBattle _08158AD0: ldr r0, _08158AEC @ =gDisplayedStringBattle @@ -6552,7 +6552,7 @@ _08159690: strb r1, [r0] ldrb r0, [r5] lsls r4, r0, 9 - ldr r3, _081596DC @ =gUnknown_2022BC8 + ldr r3, _081596DC @ =gBattleBufferA + 4 adds r1, r4, r3 subs r2, r3, 0x3 adds r2, r4, r2 @@ -6573,7 +6573,7 @@ _081596CE: .align 2, 0 _081596D4: .4byte gBattleSpritesDataPtr _081596D8: .4byte gActiveBattler -_081596DC: .4byte gUnknown_2022BC8 +_081596DC: .4byte gBattleBufferA + 4 _081596E0: .4byte gBattlerStatusSummaryTaskId thumb_func_end sub_8159660 @@ -7081,7 +7081,7 @@ sub_8159AB8: @ 8159AB8 ldr r3, _08159B5C @ =gActiveBattler ldrb r5, [r3] lsls r1, r5, 9 - ldr r0, _08159B60 @ =gUnknown_2022BC6 + ldr r0, _08159B60 @ =gBattleBufferA + 2 adds r7, r1, r0 mov r12, r7 subs r0, 0x2 @@ -7150,7 +7150,7 @@ _08159B04: _08159B54: .4byte gUnknown_8479198 _08159B58: .4byte gBattleStruct _08159B5C: .4byte gActiveBattler -_08159B60: .4byte gUnknown_2022BC6 +_08159B60: .4byte gBattleBufferA + 2 _08159B64: .4byte gBattlerControllerFuncs _08159B68: .4byte gUnknown_3005EE0 _08159B6C: diff --git a/asm/battle_interface.s b/asm/battle_interface.s index 3de518630..671487d57 100644 --- a/asm/battle_interface.s +++ b/asm/battle_interface.s @@ -4304,7 +4304,7 @@ UpdateLeftNoOfBallsTextOnHealthbox: @ 8049D10 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r1, _08049D84 @ =gUnknown_83FE81C + ldr r1, _08049D84 @ =gText_HighlightRed_Left mov r0, sp bl StringCopy ldr r1, _08049D88 @ =gNumSafariBalls @@ -4350,7 +4350,7 @@ UpdateLeftNoOfBallsTextOnHealthbox: @ 8049D10 pop {r0} bx r0 .align 2, 0 -_08049D84: .4byte gUnknown_83FE81C +_08049D84: .4byte gText_HighlightRed_Left _08049D88: .4byte gNumSafariBalls _08049D8C: .4byte gSprites _08049D90: .4byte 0x060102c0 diff --git a/asm/battle_message.s b/asm/battle_message.s index a7a52f5f7..28d7b196d 100644 --- a/asm/battle_message.s +++ b/asm/battle_message.s @@ -20,7 +20,7 @@ BufferStringBattle: @ 80D7274 mov r8, r0 ldrb r1, [r0] lsls r1, 9 - ldr r0, _080D7338 @ =gUnknown_2022BC8 + ldr r0, _080D7338 @ =gBattleBufferA + 4 adds r1, r0 str r1, [r4] ldr r2, _080D733C @ =gLastUsedItem @@ -107,7 +107,7 @@ _080D7326: .align 2, 0 _080D7330: .4byte gUnknown_2039A34 _080D7334: .4byte gActiveBattler -_080D7338: .4byte gUnknown_2022BC8 +_080D7338: .4byte gBattleBufferA + 4 _080D733C: .4byte gLastUsedItem _080D7340: .4byte gLastUsedAbility _080D7344: .4byte gBattleScripting @@ -744,7 +744,7 @@ _080D7834: ldr r5, [sp] ldr r4, [sp, 0x4] movs r3, 0 - ldr r2, _080D7850 @ =gUnknown_82500CC + ldr r2, _080D7850 @ =gStatusConditionStringsTable _080D783C: ldr r1, [r2] ldr r0, [r1] @@ -756,7 +756,7 @@ _080D783C: ldr r0, [r2, 0x4] b _080D785E .align 2, 0 -_080D7850: .4byte gUnknown_82500CC +_080D7850: .4byte gStatusConditionStringsTable _080D7854: adds r2, 0x8 adds r3, 0x1 @@ -1647,13 +1647,13 @@ _080D7FF0: ldrb r1, [r0] movs r0, 0xD muls r1, r0 - ldr r0, _080D8004 @ =gUnknown_824FC40 + ldr r0, _080D8004 @ =gAbilityNames adds r4, r1, r0 b _080D8382 .align 2, 0 _080D7FFC: .4byte gUnknown_2039A30 _080D8000: .4byte gEffectBattler -_080D8004: .4byte gUnknown_824FC40 +_080D8004: .4byte gAbilityNames _080D8008: ldr r3, _080D8020 @ =gTrainerBattleOpponent_A ldrh r1, [r3] @@ -1917,7 +1917,7 @@ _080D81E8: _080D8204: .4byte gBattleTypeFlags _080D8208: .4byte gStringVar4 _080D820C: - bl sub_80806EC + bl GetTrainerALoseText adds r4, r0, 0 b _080D8382 _080D8214: @@ -1937,7 +1937,7 @@ _080D8214: _080D8230: .4byte gBattleTypeFlags _080D8234: .4byte gStringVar4 _080D8238: - bl sub_8080710 + bl GetTrainerWonSpeech adds r4, r0, 0 b _080D8382 _080D8240: @@ -2430,7 +2430,7 @@ _080D860C: ldrb r1, [r0, 0x1] movs r0, 0xD muls r1, r0 - ldr r0, _080D8624 @ =gUnknown_824FC40 + ldr r0, _080D8624 @ =gAbilityNames _080D8616: adds r1, r0 _080D8618: @@ -2439,7 +2439,7 @@ _080D8618: adds r5, 0x2 b _080D86B0 .align 2, 0 -_080D8624: .4byte gUnknown_824FC40 +_080D8624: .4byte gAbilityNames _080D8628: adds r0, r5, r7 ldrb r2, [r0, 0x1] @@ -2943,7 +2943,7 @@ SetPpNumbersPaletteInMoveSelection: @ 80D89DC ldr r0, _080D8A38 @ =gActiveBattler ldrb r2, [r0] lsls r1, r2, 9 - ldr r0, _080D8A3C @ =gUnknown_2022BC8 + ldr r0, _080D8A3C @ =gBattleBufferA + 4 adds r1, r0 ldr r4, _080D8A40 @ =gUnknown_8D2FBB4 ldr r0, _080D8A44 @ =gMoveSelectionCursor @@ -2983,7 +2983,7 @@ SetPpNumbersPaletteInMoveSelection: @ 80D89DC bx r0 .align 2, 0 _080D8A38: .4byte gActiveBattler -_080D8A3C: .4byte gUnknown_2022BC8 +_080D8A3C: .4byte gBattleBufferA + 4 _080D8A40: .4byte gUnknown_8D2FBB4 _080D8A44: .4byte gMoveSelectionCursor _080D8A48: .4byte gPlttBufferUnfaded diff --git a/asm/battle_setup.s b/asm/battle_setup.s deleted file mode 100644 index 5b2dd8144..000000000 --- a/asm/battle_setup.s +++ /dev/null @@ -1,2183 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_807F620 -sub_807F620: @ 807F620 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _0807F640 @ =gTasks+0x8 - adds r4, r0, r1 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0807F644 - cmp r0, 0x1 - beq _0807F65E - b _0807F686 - .align 2, 0 -_0807F640: .4byte gTasks+0x8 -_0807F644: - bl FldEffPoison_IsActive - cmp r0, 0 - bne _0807F686 - bl HelpSystem_Disable - ldrb r0, [r4, 0x2] - bl BT_StartOnField - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _0807F686 -_0807F65E: - bl BT_IsDone - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0807F686 - bl HelpSystem_Enable - bl CleanupOverworldWindowsAndTilemaps - ldr r0, _0807F68C @ =sub_800FD9C - bl SetMainCallback2 - bl sub_806D7E8 - bl ClearPoisonStepCounter - adds r0, r5, 0 - bl DestroyTask -_0807F686: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0807F68C: .4byte sub_800FD9C - thumb_func_end sub_807F620 - - thumb_func_start sub_807F690 -sub_807F690: @ 807F690 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 16 - lsrs r5, 16 - ldr r0, _0807F6C4 @ =sub_807F620 - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0807F6C8 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0xA] - adds r0, r5, 0 - bl PlayMapChosenOrBattleBGM - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0807F6C4: .4byte sub_807F620 -_0807F6C8: .4byte gTasks - thumb_func_end sub_807F690 - - thumb_func_start sub_807F6CC -sub_807F6CC: @ 807F6CC - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r1, 16 - cmp r0, 0x1 - bne _0807F6FC - adds r0, r1, 0 - subs r0, 0x58 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x6 - bhi _0807F6FC - ldr r0, _0807F6F8 @ =0x00000167 - movs r1, 0x1 - bl CheckBagHasItem - lsls r0, 24 - cmp r0, 0 - bne _0807F6FC - movs r0, 0x1 - b _0807F6FE - .align 2, 0 -_0807F6F8: .4byte 0x00000167 -_0807F6FC: - movs r0, 0 -_0807F6FE: - pop {r1} - bx r1 - thumb_func_end sub_807F6CC - - thumb_func_start sub_807F704 -sub_807F704: @ 807F704 - push {lr} - bl GetSafariZoneFlag - cmp r0, 0 - beq _0807F714 - bl sub_807F7D8 - b _0807F744 -_0807F714: - ldr r0, _0807F73C @ =gSaveBlock1Ptr - ldr r1, [r0] - movs r0, 0x4 - ldrsb r0, [r1, r0] - lsls r0, 16 - lsrs r0, 16 - ldrb r1, [r1, 0x5] - lsls r1, 24 - asrs r1, 24 - lsls r1, 16 - lsrs r1, 16 - bl sub_807F6CC - lsls r0, 24 - cmp r0, 0 - beq _0807F740 - bl sub_807F810 - b _0807F744 - .align 2, 0 -_0807F73C: .4byte gSaveBlock1Ptr -_0807F740: - bl sub_807F748 -_0807F744: - pop {r0} - bx r0 - thumb_func_end sub_807F704 - - thumb_func_start sub_807F748 -sub_807F748: @ 807F748 - push {lr} - bl ScriptContext2_Enable - bl player_bitmagic - bl sub_805C780 - ldr r1, _0807F780 @ =gMain - ldr r0, _0807F784 @ =sub_807FB40 - str r0, [r1, 0x8] - ldr r1, _0807F788 @ =gBattleTypeFlags - movs r0, 0 - str r0, [r1] - bl GetWildBattleTransition - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_807F690 - movs r0, 0x7 - bl IncrementGameStat - movs r0, 0x8 - bl IncrementGameStat - pop {r0} - bx r0 - .align 2, 0 -_0807F780: .4byte gMain -_0807F784: .4byte sub_807FB40 -_0807F788: .4byte gBattleTypeFlags - thumb_func_end sub_807F748 - - thumb_func_start sub_807F78C -sub_807F78C: @ 807F78C - push {lr} - bl ScriptContext2_Enable - bl player_bitmagic - bl sub_805C780 - ldr r1, _0807F7C8 @ =gMain - ldr r0, _0807F7CC @ =sub_807FB40 - str r0, [r1, 0x8] - ldr r1, _0807F7D0 @ =gBattleTypeFlags - movs r0, 0x80 - lsls r0, 3 - str r0, [r1] - bl GetWildBattleTransition - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0807F7D4 @ =0x00000155 - bl sub_807F690 - movs r0, 0x7 - bl IncrementGameStat - movs r0, 0x8 - bl IncrementGameStat - pop {r0} - bx r0 - .align 2, 0 -_0807F7C8: .4byte gMain -_0807F7CC: .4byte sub_807FB40 -_0807F7D0: .4byte gBattleTypeFlags -_0807F7D4: .4byte 0x00000155 - thumb_func_end sub_807F78C - - thumb_func_start sub_807F7D8 -sub_807F7D8: @ 807F7D8 - push {lr} - bl ScriptContext2_Enable - bl player_bitmagic - bl sub_805C780 - ldr r1, _0807F804 @ =gMain - ldr r0, _0807F808 @ =CB2_EndSafariBattle - str r0, [r1, 0x8] - ldr r1, _0807F80C @ =gBattleTypeFlags - movs r0, 0x80 - str r0, [r1] - bl GetWildBattleTransition - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_807F690 - pop {r0} - bx r0 - .align 2, 0 -_0807F804: .4byte gMain -_0807F808: .4byte CB2_EndSafariBattle -_0807F80C: .4byte gBattleTypeFlags - thumb_func_end sub_807F7D8 - - thumb_func_start sub_807F810 -sub_807F810: @ 807F810 - push {lr} - bl ScriptContext2_Enable - bl player_bitmagic - bl sub_805C780 - ldr r1, _0807F854 @ =gMain - ldr r0, _0807F858 @ =sub_807FB40 - str r0, [r1, 0x8] - ldr r1, _0807F85C @ =gBattleTypeFlags - movs r0, 0x80 - lsls r0, 8 - str r0, [r1] - bl GetWildBattleTransition - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_807F690 - ldr r0, _0807F860 @ =gEnemyParty - ldr r2, _0807F864 @ =gUnknown_841D148 - movs r1, 0x2 - bl SetMonData - movs r0, 0x7 - bl IncrementGameStat - movs r0, 0x8 - bl IncrementGameStat - pop {r0} - bx r0 - .align 2, 0 -_0807F854: .4byte gMain -_0807F858: .4byte sub_807FB40 -_0807F85C: .4byte gBattleTypeFlags -_0807F860: .4byte gEnemyParty -_0807F864: .4byte gUnknown_841D148 - thumb_func_end sub_807F810 - - thumb_func_start sub_807F868 -sub_807F868: @ 807F868 - push {lr} - bl sub_807FF80 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_807F690 - movs r0, 0x7 - bl IncrementGameStat - movs r0, 0x9 - bl IncrementGameStat - pop {r0} - bx r0 - thumb_func_end sub_807F868 - - thumb_func_start ScrSpecial_StartOldManTutorialBattle -ScrSpecial_StartOldManTutorialBattle: @ 807F888 - push {lr} - ldr r0, _0807F8B4 @ =gEnemyParty - movs r1, 0xD - movs r2, 0x5 - bl CreateMaleMon - bl ScriptContext2_Enable - ldr r1, _0807F8B8 @ =gMain - ldr r0, _0807F8BC @ =CB2_ReturnToFieldContinueScriptPlayMapMusic - str r0, [r1, 0x8] - ldr r1, _0807F8C0 @ =gBattleTypeFlags - movs r0, 0x80 - lsls r0, 2 - str r0, [r1] - movs r0, 0x8 - movs r1, 0 - bl sub_807F690 - pop {r0} - bx r0 - .align 2, 0 -_0807F8B4: .4byte gEnemyParty -_0807F8B8: .4byte gMain -_0807F8BC: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic -_0807F8C0: .4byte gBattleTypeFlags - thumb_func_end ScrSpecial_StartOldManTutorialBattle - - thumb_func_start BattleSetup_StartScriptedWildBattle -BattleSetup_StartScriptedWildBattle: @ 807F8C4 - push {lr} - bl ScriptContext2_Enable - ldr r1, _0807F8F8 @ =gMain - ldr r0, _0807F8FC @ =sub_807FBA0 - str r0, [r1, 0x8] - ldr r1, _0807F900 @ =gBattleTypeFlags - movs r0, 0x80 - lsls r0, 10 - str r0, [r1] - bl GetWildBattleTransition - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_807F690 - movs r0, 0x7 - bl IncrementGameStat - movs r0, 0x8 - bl IncrementGameStat - pop {r0} - bx r0 - .align 2, 0 -_0807F8F8: .4byte gMain -_0807F8FC: .4byte sub_807FBA0 -_0807F900: .4byte gBattleTypeFlags - thumb_func_end BattleSetup_StartScriptedWildBattle - - thumb_func_start ScrSpecial_StartMarowakBattle -ScrSpecial_StartMarowakBattle: @ 807F904 - push {lr} - sub sp, 0xC - bl ScriptContext2_Enable - ldr r1, _0807F944 @ =gMain - ldr r0, _0807F948 @ =sub_807FBF0 - str r0, [r1, 0x8] - ldr r0, _0807F94C @ =0x00000167 - movs r1, 0x1 - bl CheckBagHasItem - lsls r0, 24 - cmp r0, 0 - beq _0807F958 - ldr r1, _0807F950 @ =gBattleTypeFlags - movs r0, 0xA0 - lsls r0, 8 - str r0, [r1] - ldr r0, _0807F954 @ =gEnemyParty - movs r1, 0xFE - str r1, [sp] - movs r1, 0xC - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x69 - movs r2, 0x1E - movs r3, 0x1F - bl CreateMonWithGenderNatureLetter - b _0807F960 - .align 2, 0 -_0807F944: .4byte gMain -_0807F948: .4byte sub_807FBF0 -_0807F94C: .4byte 0x00000167 -_0807F950: .4byte gBattleTypeFlags -_0807F954: .4byte gEnemyParty -_0807F958: - ldr r1, _0807F98C @ =gBattleTypeFlags - movs r0, 0x80 - lsls r0, 8 - str r0, [r1] -_0807F960: - bl GetWildBattleTransition - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_807F690 - ldr r0, _0807F990 @ =gEnemyParty - ldr r2, _0807F994 @ =gUnknown_841D148 - movs r1, 0x2 - bl SetMonData - movs r0, 0x7 - bl IncrementGameStat - movs r0, 0x8 - bl IncrementGameStat - add sp, 0xC - pop {r0} - bx r0 - .align 2, 0 -_0807F98C: .4byte gBattleTypeFlags -_0807F990: .4byte gEnemyParty -_0807F994: .4byte gUnknown_841D148 - thumb_func_end ScrSpecial_StartMarowakBattle - - thumb_func_start ScrSpecial_StartSouthernIslandBattle -ScrSpecial_StartSouthernIslandBattle: @ 807F998 - push {lr} - bl ScriptContext2_Enable - ldr r1, _0807F9CC @ =gMain - ldr r0, _0807F9D0 @ =sub_807FBA0 - str r0, [r1, 0x8] - ldr r1, _0807F9D4 @ =gBattleTypeFlags - movs r0, 0x80 - lsls r0, 6 - str r0, [r1] - bl GetWildBattleTransition - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_807F690 - movs r0, 0x7 - bl IncrementGameStat - movs r0, 0x8 - bl IncrementGameStat - pop {r0} - bx r0 - .align 2, 0 -_0807F9CC: .4byte gMain -_0807F9D0: .4byte sub_807FBA0 -_0807F9D4: .4byte gBattleTypeFlags - thumb_func_end ScrSpecial_StartSouthernIslandBattle - - thumb_func_start Special_StartLegendaryBattle -Special_StartLegendaryBattle: @ 807F9D8 - push {lr} - bl ScriptContext2_Enable - ldr r1, _0807FA0C @ =gMain - ldr r0, _0807FA10 @ =sub_807FBA0 - str r0, [r1, 0x8] - ldr r1, _0807FA14 @ =gBattleTypeFlags - movs r0, 0x84 - lsls r0, 11 - str r0, [r1] - ldr r0, _0807FA18 @ =gEnemyParty - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - adds r1, r0, 0 - cmp r0, 0x96 - beq _0807FA2E - cmp r0, 0x96 - bgt _0807FA1C - cmp r0, 0x92 - bgt _0807FA4C - cmp r0, 0x90 - blt _0807FA4C - b _0807FA3C - .align 2, 0 -_0807FA0C: .4byte gMain -_0807FA10: .4byte sub_807FBA0 -_0807FA14: .4byte gBattleTypeFlags -_0807FA18: .4byte gEnemyParty -_0807FA1C: - cmp r1, 0xF9 - blt _0807FA4C - cmp r1, 0xFA - ble _0807FA3C - movs r0, 0xCD - lsls r0, 1 - cmp r1, r0 - beq _0807FA34 - b _0807FA4C -_0807FA2E: - movs r1, 0xAA - lsls r1, 1 - b _0807FA3E -_0807FA34: - ldr r1, _0807FA38 @ =0x00000153 - b _0807FA3E - .align 2, 0 -_0807FA38: .4byte 0x00000153 -_0807FA3C: - ldr r1, _0807FA48 @ =0x00000155 -_0807FA3E: - movs r0, 0 - bl sub_807F690 - b _0807FA56 - .align 2, 0 -_0807FA48: .4byte 0x00000155 -_0807FA4C: - movs r1, 0x85 - lsls r1, 1 - movs r0, 0 - bl sub_807F690 -_0807FA56: - movs r0, 0x7 - bl IncrementGameStat - movs r0, 0x8 - bl IncrementGameStat - pop {r0} - bx r0 - thumb_func_end Special_StartLegendaryBattle - - thumb_func_start Special_StartGroudonKyogreBattle -Special_StartGroudonKyogreBattle: @ 807FA68 - push {lr} - bl ScriptContext2_Enable - ldr r1, _0807FA90 @ =gMain - ldr r0, _0807FA94 @ =sub_807FBA0 - str r0, [r1, 0x8] - ldr r1, _0807FA98 @ =gBattleTypeFlags - movs r0, 0xC0 - lsls r0, 6 - str r0, [r1] - ldr r0, _0807FA9C @ =gGameVersion - ldrb r0, [r0] - cmp r0, 0x4 - bne _0807FAA0 - movs r1, 0x85 - lsls r1, 1 - movs r0, 0xB - bl sub_807F690 - b _0807FAAA - .align 2, 0 -_0807FA90: .4byte gMain -_0807FA94: .4byte sub_807FBA0 -_0807FA98: .4byte gBattleTypeFlags -_0807FA9C: .4byte gGameVersion -_0807FAA0: - movs r1, 0x85 - lsls r1, 1 - movs r0, 0xB - bl sub_807F690 -_0807FAAA: - movs r0, 0x7 - bl IncrementGameStat - movs r0, 0x8 - bl IncrementGameStat - pop {r0} - bx r0 - thumb_func_end Special_StartGroudonKyogreBattle - - thumb_func_start Special_StartRegiBattle -Special_StartRegiBattle: @ 807FABC - push {lr} - bl ScriptContext2_Enable - ldr r1, _0807FAEC @ =gMain - ldr r0, _0807FAF0 @ =sub_807FBA0 - str r0, [r1, 0x8] - ldr r1, _0807FAF4 @ =gBattleTypeFlags - movs r0, 0xC0 - lsls r0, 7 - str r0, [r1] - movs r1, 0x85 - lsls r1, 1 - movs r0, 0 - bl sub_807F690 - movs r0, 0x7 - bl IncrementGameStat - movs r0, 0x8 - bl IncrementGameStat - pop {r0} - bx r0 - .align 2, 0 -_0807FAEC: .4byte gMain -_0807FAF0: .4byte sub_807FBA0 -_0807FAF4: .4byte gBattleTypeFlags - thumb_func_end Special_StartRegiBattle - - thumb_func_start sub_807FAF8 -sub_807FAF8: @ 807FAF8 - push {lr} - bl LoadPlayerParty - bl sub_807FB40 - pop {r0} - bx r0 - thumb_func_end sub_807FAF8 - - thumb_func_start sub_807FB08 -sub_807FB08: @ 807FB08 - push {lr} - bl ScriptContext2_Enable - bl player_bitmagic - bl sub_805C780 - ldr r1, _0807FB38 @ =gMain - ldr r0, _0807FB3C @ =sub_807FAF8 - str r0, [r1, 0x8] - bl SavePlayerParty - bl InitPokedudePartyAndOpponent - bl GetWildBattleTransition - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_807F690 - pop {r0} - bx r0 - .align 2, 0 -_0807FB38: .4byte gMain -_0807FB3C: .4byte sub_807FAF8 - thumb_func_end sub_807FB08 - - thumb_func_start sub_807FB40 -sub_807FB40: @ 807FB40 - push {lr} - sub sp, 0x4 - mov r1, sp - movs r0, 0 - strh r0, [r1] - movs r1, 0xA0 - lsls r1, 19 - ldr r2, _0807FB74 @ =0x01000100 - mov r0, sp - bl CpuSet - movs r0, 0 - movs r1, 0x80 - bl ResetOamRange - ldr r0, _0807FB78 @ =gBattleOutcome - ldrb r0, [r0] - bl IsPlayerDefeated - cmp r0, 0x1 - bne _0807FB80 - ldr r0, _0807FB7C @ =c2_whiteout - bl SetMainCallback2 - b _0807FB8C - .align 2, 0 -_0807FB74: .4byte 0x01000100 -_0807FB78: .4byte gBattleOutcome -_0807FB7C: .4byte c2_whiteout -_0807FB80: - ldr r0, _0807FB94 @ =CB2_ReturnToField - bl SetMainCallback2 - ldr r1, _0807FB98 @ =gFieldCallback - ldr r0, _0807FB9C @ =sub_807E3EC - str r0, [r1] -_0807FB8C: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0807FB94: .4byte CB2_ReturnToField -_0807FB98: .4byte gFieldCallback -_0807FB9C: .4byte sub_807E3EC - thumb_func_end sub_807FB40 - - thumb_func_start sub_807FBA0 -sub_807FBA0: @ 807FBA0 - push {lr} - sub sp, 0x4 - mov r1, sp - movs r0, 0 - strh r0, [r1] - movs r1, 0xA0 - lsls r1, 19 - ldr r2, _0807FBD4 @ =0x01000100 - mov r0, sp - bl CpuSet - movs r0, 0 - movs r1, 0x80 - bl ResetOamRange - ldr r0, _0807FBD8 @ =gBattleOutcome - ldrb r0, [r0] - bl IsPlayerDefeated - cmp r0, 0x1 - bne _0807FBE0 - ldr r0, _0807FBDC @ =c2_whiteout - bl SetMainCallback2 - b _0807FBE6 - .align 2, 0 -_0807FBD4: .4byte 0x01000100 -_0807FBD8: .4byte gBattleOutcome -_0807FBDC: .4byte c2_whiteout -_0807FBE0: - ldr r0, _0807FBEC @ =CB2_ReturnToFieldContinueScriptPlayMapMusic - bl SetMainCallback2 -_0807FBE6: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0807FBEC: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic - thumb_func_end sub_807FBA0 - - thumb_func_start sub_807FBF0 -sub_807FBF0: @ 807FBF0 - push {r4,lr} - sub sp, 0x4 - mov r1, sp - movs r0, 0 - strh r0, [r1] - movs r1, 0xA0 - lsls r1, 19 - ldr r2, _0807FC24 @ =0x01000100 - mov r0, sp - bl CpuSet - movs r0, 0 - movs r1, 0x80 - bl ResetOamRange - ldr r4, _0807FC28 @ =gBattleOutcome - ldrb r0, [r4] - bl IsPlayerDefeated - adds r1, r0, 0 - cmp r1, 0 - beq _0807FC30 - ldr r0, _0807FC2C @ =c2_whiteout - bl SetMainCallback2 - b _0807FC4C - .align 2, 0 -_0807FC24: .4byte 0x01000100 -_0807FC28: .4byte gBattleOutcome -_0807FC2C: .4byte c2_whiteout -_0807FC30: - ldrb r0, [r4] - cmp r0, 0x1 - bne _0807FC40 - ldr r0, _0807FC3C @ =gSpecialVar_Result - strh r1, [r0] - b _0807FC46 - .align 2, 0 -_0807FC3C: .4byte gSpecialVar_Result -_0807FC40: - ldr r1, _0807FC54 @ =gSpecialVar_Result - movs r0, 0x1 - strh r0, [r1] -_0807FC46: - ldr r0, _0807FC58 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic - bl SetMainCallback2 -_0807FC4C: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0807FC54: .4byte gSpecialVar_Result -_0807FC58: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic - thumb_func_end sub_807FBF0 - - thumb_func_start sub_807FC5C -sub_807FC5C: @ 807FC5C - push {r4,r5,lr} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 16 - lsrs r5, r0, 16 - lsls r0, r5, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl MetatileBehavior_IsTallGrass_2 - lsls r0, 24 - cmp r0, 0 - beq _0807FC92 - movs r0, 0 - b _0807FD88 -_0807FC92: - adds r0, r4, 0 - bl MetatileBehavior_ReturnFalse_3 - lsls r0, 24 - cmp r0, 0 - beq _0807FCA2 - movs r0, 0x1 - b _0807FD88 -_0807FCA2: - adds r0, r4, 0 - bl MetatileBehavior_IsMB21OrWaterfallBottom - lsls r0, 24 - cmp r0, 0 - beq _0807FCB2 - movs r0, 0x2 - b _0807FD88 -_0807FCB2: - ldr r0, _0807FCC8 @ =gMapHeader - ldrb r0, [r0, 0x17] - subs r0, 0x1 - cmp r0, 0x8 - bhi _0807FD2C - lsls r0, 2 - ldr r1, _0807FCCC @ =_0807FCD0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0807FCC8: .4byte gMapHeader -_0807FCCC: .4byte _0807FCD0 - .align 2, 0 -_0807FCD0: - .4byte _0807FD2C - .4byte _0807FD2C - .4byte _0807FD2C - .4byte _0807FCF4 - .4byte _0807FD18 - .4byte _0807FD1C - .4byte _0807FD2C - .4byte _0807FD04 - .4byte _0807FD04 -_0807FCF4: - lsls r0, r5, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl MetatileBehavior_IsMB0B - lsls r0, 24 - cmp r0, 0 - beq _0807FD08 -_0807FD04: - movs r0, 0x8 - b _0807FD88 -_0807FD08: - adds r0, r4, 0 - bl MetatileBehavior_IsSurfable - lsls r0, 24 - cmp r0, 0 - bne _0807FD70 - movs r0, 0x7 - b _0807FD88 -_0807FD18: - movs r0, 0x3 - b _0807FD88 -_0807FD1C: - lsls r0, r5, 24 - lsrs r0, 24 - bl MetatileBehavior_IsSurfable - lsls r0, 24 - cmp r0, 0 - bne _0807FD82 - b _0807FD86 -_0807FD2C: - lsls r0, r5, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl MetatileBehavior_IsDeepSemiDeepOrSplashingWater - lsls r0, 24 - cmp r0, 0 - bne _0807FD82 - adds r0, r4, 0 - bl MetatileBehavior_IsSurfable - lsls r0, 24 - cmp r0, 0 - bne _0807FD70 - adds r0, r4, 0 - bl MetatileBehavior_IsMB0C - lsls r0, 24 - cmp r0, 0 - beq _0807FD58 - movs r0, 0x6 - b _0807FD88 -_0807FD58: - movs r0, 0x8 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - beq _0807FD86 - adds r0, r4, 0 - bl MetatileBehavior_ReturnFalse_7 - lsls r0, 24 - cmp r0, 0 - beq _0807FD74 -_0807FD70: - movs r0, 0x5 - b _0807FD88 -_0807FD74: - adds r0, r4, 0 - bl MetatileBehavior_ReturnFalse_6 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0807FD86 -_0807FD82: - movs r0, 0x4 - b _0807FD88 -_0807FD86: - movs r0, 0x9 -_0807FD88: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_807FC5C - - thumb_func_start GetBattleTransitionTypeByMap -GetBattleTransitionTypeByMap: @ 807FD90 - push {r4,lr} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 16 - lsrs r4, r0, 16 - bl sav1_get_flash_used_on_map - lsls r0, 24 - cmp r0, 0 - beq _0807FDC0 - movs r0, 0x2 - b _0807FDEA -_0807FDC0: - lsls r0, r4, 24 - lsrs r0, 24 - bl MetatileBehavior_IsSurfable - lsls r0, 24 - cmp r0, 0 - bne _0807FDE8 - ldr r0, _0807FDE0 @ =gMapHeader - ldrb r0, [r0, 0x17] - cmp r0, 0x4 - beq _0807FDE4 - cmp r0, 0x5 - beq _0807FDE8 - movs r0, 0 - b _0807FDEA - .align 2, 0 -_0807FDE0: .4byte gMapHeader -_0807FDE4: - movs r0, 0x1 - b _0807FDEA -_0807FDE8: - movs r0, 0x3 -_0807FDEA: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetBattleTransitionTypeByMap - - thumb_func_start GetSumOfPlayerPartyLevel -GetSumOfPlayerPartyLevel: @ 807FDF4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r7, 0 - movs r6, 0 -_0807FDFE: - movs r0, 0x64 - adds r1, r6, 0 - muls r1, r0 - ldr r0, _0807FE50 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - adds r1, r0, 0 - movs r0, 0xCE - lsls r0, 1 - cmp r1, r0 - beq _0807FE42 - cmp r1, 0 - beq _0807FE42 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _0807FE42 - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - adds r0, r7, r0 - lsls r0, 24 - lsrs r7, r0, 24 - subs r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - beq _0807FE48 -_0807FE42: - adds r6, 0x1 - cmp r6, 0x5 - ble _0807FDFE -_0807FE48: - adds r0, r7, 0 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0807FE50: .4byte gPlayerParty - thumb_func_end GetSumOfPlayerPartyLevel - - thumb_func_start reads_trainer_data_byte0 -reads_trainer_data_byte0: @ 807FE54 - push {r4,r5,lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 24 - lsrs r4, r1, 24 - ldr r5, _0807FE88 @ =gTrainers - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r2, r1, r5 - adds r0, r2, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, r4 - bcs _0807FE74 - adds r4, r0, 0 -_0807FE74: - movs r3, 0 - ldrb r0, [r2] - cmp r0, 0x1 - beq _0807FEBC - cmp r0, 0x1 - bgt _0807FE8C - cmp r0, 0 - beq _0807FE96 - b _0807FF2C - .align 2, 0 -_0807FE88: .4byte gTrainers -_0807FE8C: - cmp r0, 0x2 - beq _0807FEE2 - cmp r0, 0x3 - beq _0807FF08 - b _0807FF2C -_0807FE96: - adds r0, r5, 0 - adds r0, 0x24 - adds r0, r1, r0 - ldr r1, [r0] - movs r2, 0 - cmp r3, r4 - bcs _0807FF2C -_0807FEA4: - lsls r0, r2, 3 - adds r0, r1 - ldrb r0, [r0, 0x2] - adds r0, r3, r0 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r4 - bcc _0807FEA4 - b _0807FF2C -_0807FEBC: - adds r0, r5, 0 - adds r0, 0x24 - adds r0, r1, r0 - ldr r1, [r0] - movs r2, 0 - cmp r3, r4 - bcs _0807FF2C -_0807FECA: - lsls r0, r2, 4 - adds r0, r1 - ldrb r0, [r0, 0x2] - adds r0, r3, r0 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r4 - bcc _0807FECA - b _0807FF2C -_0807FEE2: - adds r0, r5, 0 - adds r0, 0x24 - adds r0, r1, r0 - ldr r1, [r0] - movs r2, 0 - cmp r3, r4 - bcs _0807FF2C -_0807FEF0: - lsls r0, r2, 3 - adds r0, r1 - ldrb r0, [r0, 0x2] - adds r0, r3, r0 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r4 - bcc _0807FEF0 - b _0807FF2C -_0807FF08: - adds r0, r5, 0 - adds r0, 0x24 - adds r0, r1, r0 - ldr r1, [r0] - movs r2, 0 - cmp r3, r4 - bcs _0807FF2C -_0807FF16: - lsls r0, r2, 4 - adds r0, r1 - ldrb r0, [r0, 0x2] - adds r0, r3, r0 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r4 - bcc _0807FF16 -_0807FF2C: - adds r0, r3, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end reads_trainer_data_byte0 - - thumb_func_start GetWildBattleTransition -GetWildBattleTransition: @ 807FF34 - push {r4,r5,lr} - bl GetBattleTransitionTypeByMap - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _0807FF64 @ =gEnemyParty - movs r1, 0x38 - bl GetMonData - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - bl GetSumOfPlayerPartyLevel - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bcc _0807FF6C - ldr r0, _0807FF68 @ =gUnknown_83C68F0 - lsls r1, r5, 1 - adds r0, 0x1 - b _0807FF70 - .align 2, 0 -_0807FF64: .4byte gEnemyParty -_0807FF68: .4byte gUnknown_83C68F0 -_0807FF6C: - ldr r0, _0807FF7C @ =gUnknown_83C68F0 - lsls r1, r5, 1 -_0807FF70: - adds r1, r0 - ldrb r0, [r1] - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0807FF7C: .4byte gUnknown_83C68F0 - thumb_func_end GetWildBattleTransition - - thumb_func_start sub_807FF80 -sub_807FF80: @ 807FF80 - push {r4-r6,lr} - ldr r4, _0807FFB4 @ =gTrainerBattleOpponent_A - ldrh r1, [r4] - movs r0, 0x80 - lsls r0, 3 - cmp r1, r0 - beq _0808000C - ldr r1, _0807FFB8 @ =gTrainers - ldrh r2, [r4] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r0, 0x1] - cmp r1, 0x57 - bne _08080008 - adds r1, r2, 0 - movs r0, 0xCD - lsls r0, 1 - cmp r1, r0 - beq _0807FFB0 - ldr r0, _0807FFBC @ =0x000002df - cmp r1, r0 - bne _0807FFC0 -_0807FFB0: - movs r0, 0xC - b _08080054 - .align 2, 0 -_0807FFB4: .4byte gTrainerBattleOpponent_A -_0807FFB8: .4byte gTrainers -_0807FFBC: .4byte 0x000002df -_0807FFC0: - ldr r0, _0807FFD4 @ =0x0000019b - cmp r1, r0 - beq _0807FFCE - movs r0, 0xB8 - lsls r0, 2 - cmp r1, r0 - bne _0807FFD8 -_0807FFCE: - movs r0, 0xD - b _08080054 - .align 2, 0 -_0807FFD4: .4byte 0x0000019b -_0807FFD8: - movs r0, 0xCE - lsls r0, 1 - cmp r1, r0 - beq _0807FFE6 - ldr r0, _0807FFEC @ =0x000002e1 - cmp r1, r0 - bne _0807FFF0 -_0807FFE6: - movs r0, 0xE - b _08080054 - .align 2, 0 -_0807FFEC: .4byte 0x000002e1 -_0807FFF0: - ldr r0, _08080000 @ =0x0000019d - cmp r1, r0 - beq _0807FFFC - ldr r0, _08080004 @ =0x000002e2 - cmp r1, r0 - bne _0808000C -_0807FFFC: - movs r0, 0xF - b _08080054 - .align 2, 0 -_08080000: .4byte 0x0000019d -_08080004: .4byte 0x000002e2 -_08080008: - cmp r1, 0x5A - bne _08080010 -_0808000C: - movs r0, 0x10 - b _08080054 -_08080010: - ldrb r0, [r0, 0x18] - movs r5, 0x1 - cmp r0, 0x1 - bne _0808001A - movs r5, 0x2 -_0808001A: - bl GetBattleTransitionTypeByMap - lsls r0, 24 - lsrs r6, r0, 24 - ldrh r0, [r4] - adds r1, r5, 0 - bl reads_trainer_data_byte0 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - bl GetSumOfPlayerPartyLevel - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bcc _0808004C - ldr r0, _08080048 @ =gUnknown_83C68F8 - lsls r1, r6, 1 - adds r0, 0x1 - b _08080050 - .align 2, 0 -_08080048: .4byte gUnknown_83C68F8 -_0808004C: - ldr r0, _0808005C @ =gUnknown_83C68F8 - lsls r1, r6, 1 -_08080050: - adds r1, r0 - ldrb r0, [r1] -_08080054: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0808005C: .4byte gUnknown_83C68F8 - thumb_func_end sub_807FF80 - - thumb_func_start sub_8080060 -sub_8080060: @ 8080060 - push {r4,lr} - ldr r0, _08080084 @ =gEnemyParty - movs r1, 0x38 - bl GetMonData - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - bl GetSumOfPlayerPartyLevel - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bcc _08080088 - movs r0, 0x3 - b _0808008A - .align 2, 0 -_08080084: .4byte gEnemyParty -_08080088: - movs r0, 0x4 -_0808008A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8080060 - - thumb_func_start TrainerBattleLoadArg32 -TrainerBattleLoadArg32: @ 8080090 - adds r2, r0, 0 - ldrb r0, [r2] - ldrb r1, [r2, 0x1] - lsls r1, 8 - orrs r0, r1 - ldrb r1, [r2, 0x2] - lsls r1, 16 - orrs r0, r1 - ldrb r1, [r2, 0x3] - lsls r1, 24 - orrs r0, r1 - bx lr - thumb_func_end TrainerBattleLoadArg32 - - thumb_func_start TrainerBattleLoadArg16 -TrainerBattleLoadArg16: @ 80800A8 - adds r1, r0, 0 - ldrb r0, [r1] - ldrb r1, [r1, 0x1] - lsls r1, 8 - orrs r0, r1 - bx lr - thumb_func_end TrainerBattleLoadArg16 - - thumb_func_start TrainerBattleLoadArg8 -TrainerBattleLoadArg8: @ 80800B4 - ldrb r0, [r0] - bx lr - thumb_func_end TrainerBattleLoadArg8 - - thumb_func_start trainerflag_opponent -trainerflag_opponent: @ 80800B8 - ldr r1, _080800CC @ =gTrainerBattleOpponent_A - movs r2, 0xA0 - lsls r2, 3 - adds r0, r2, 0 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - bx lr - .align 2, 0 -_080800CC: .4byte gTrainerBattleOpponent_A - thumb_func_end trainerflag_opponent - - thumb_func_start IsPlayerDefeated -IsPlayerDefeated: @ 80800D0 - push {lr} - subs r0, 0x1 - cmp r0, 0x6 - bhi _08080108 - lsls r0, 2 - ldr r1, _080800E4 @ =_080800E8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080800E4: .4byte _080800E8 - .align 2, 0 -_080800E8: - .4byte _08080108 - .4byte _08080104 - .4byte _08080104 - .4byte _08080108 - .4byte _08080108 - .4byte _08080108 - .4byte _08080108 -_08080104: - movs r0, 0x1 - b _0808010A -_08080108: - movs r0, 0 -_0808010A: - pop {r1} - bx r1 - thumb_func_end IsPlayerDefeated - - thumb_func_start sub_8080110 -sub_8080110: @ 8080110 - ldr r0, _08080140 @ =gUnknown_20386AC - movs r1, 0 - strh r1, [r0] - ldr r0, _08080144 @ =gTrainerBattleOpponent_A - strh r1, [r0] - ldr r0, _08080148 @ =gUnknown_20386B0 - strh r1, [r0] - ldr r0, _0808014C @ =gUnknown_20386B4 - movs r1, 0 - str r1, [r0] - ldr r0, _08080150 @ =gUnknown_20386B8 - str r1, [r0] - ldr r0, _08080154 @ =gUnknown_20386BC - str r1, [r0] - ldr r0, _08080158 @ =gUnknown_20386C0 - str r1, [r0] - ldr r0, _0808015C @ =gUnknown_20386C4 - str r1, [r0] - ldr r0, _08080160 @ =gUnknown_20386C8 - str r1, [r0] - ldr r0, _08080164 @ =gUnknown_20386CC - strh r1, [r0] - bx lr - .align 2, 0 -_08080140: .4byte gUnknown_20386AC -_08080144: .4byte gTrainerBattleOpponent_A -_08080148: .4byte gUnknown_20386B0 -_0808014C: .4byte gUnknown_20386B4 -_08080150: .4byte gUnknown_20386B8 -_08080154: .4byte gUnknown_20386BC -_08080158: .4byte gUnknown_20386C0 -_0808015C: .4byte gUnknown_20386C4 -_08080160: .4byte gUnknown_20386C8 -_08080164: .4byte gUnknown_20386CC - thumb_func_end sub_8080110 - - thumb_func_start TrainerBattleLoadArgs -TrainerBattleLoadArgs: @ 8080168 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 -_0808016E: - ldrb r0, [r4, 0x4] - cmp r0, 0x6 - bhi _080801E0 - lsls r0, 2 - ldr r1, _08080180 @ =_08080184 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08080180: .4byte _08080184 - .align 2, 0 -_08080184: - .4byte _080801A0 - .4byte _080801AE - .4byte _080801BC - .4byte _080801CA - .4byte _080801D2 - .4byte _080801DA - .4byte _080801E4 -_080801A0: - adds r0, r5, 0 - bl TrainerBattleLoadArg8 - ldr r1, [r4] - strb r0, [r1] - adds r5, 0x1 - b _080801E0 -_080801AE: - adds r0, r5, 0 - bl TrainerBattleLoadArg16 - ldr r1, [r4] - strh r0, [r1] - adds r5, 0x2 - b _080801E0 -_080801BC: - adds r0, r5, 0 - bl TrainerBattleLoadArg32 - ldr r1, [r4] - str r0, [r1] - adds r5, 0x4 - b _080801E0 -_080801CA: - ldr r1, [r4] - movs r0, 0 - strb r0, [r1] - b _080801E0 -_080801D2: - ldr r1, [r4] - movs r0, 0 - strh r0, [r1] - b _080801E0 -_080801DA: - ldr r1, [r4] - movs r0, 0 - str r0, [r1] -_080801E0: - adds r4, 0x8 - b _0808016E -_080801E4: - ldr r0, [r4] - str r5, [r0] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end TrainerBattleLoadArgs - - thumb_func_start battle_80801F0 -battle_80801F0: @ 80801F0 - push {lr} - ldr r0, _08080218 @ =gUnknown_20386B0 - ldrh r1, [r0] - cmp r1, 0 - beq _08080212 - ldr r0, _0808021C @ =gSpecialVar_LastTalked - strh r1, [r0] - lsls r0, r1, 24 - lsrs r0, 24 - ldr r1, _08080220 @ =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - bl GetFieldObjectIdByLocalIdAndMap - ldr r1, _08080224 @ =gSelectedEventObject - strb r0, [r1] -_08080212: - pop {r0} - bx r0 - .align 2, 0 -_08080218: .4byte gUnknown_20386B0 -_0808021C: .4byte gSpecialVar_LastTalked -_08080220: .4byte gSaveBlock1Ptr -_08080224: .4byte gSelectedEventObject - thumb_func_end battle_80801F0 - - thumb_func_start BattleSetup_ConfigureTrainerBattle -BattleSetup_ConfigureTrainerBattle: @ 8080228 - push {r4,r5,lr} - adds r5, r0, 0 - bl sub_8080110 - ldr r4, _08080250 @ =gUnknown_20386AC - adds r0, r5, 0 - bl TrainerBattleLoadArg8 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - ldrh r0, [r4] - subs r0, 0x1 - cmp r0, 0x8 - bhi _08080318 - lsls r0, 2 - ldr r1, _08080254 @ =_08080258 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08080250: .4byte gUnknown_20386AC -_08080254: .4byte _08080258 - .align 2, 0 -_08080258: - .4byte _0808028C - .4byte _0808028C - .4byte _0808027C - .4byte _08080284 - .4byte _080802D8 - .4byte _08080294 - .4byte _080802AC - .4byte _08080294 - .4byte _08080304 -_0808027C: - ldr r0, _08080280 @ =gUnknown_83C69D8 - b _08080306 - .align 2, 0 -_08080280: .4byte gUnknown_83C69D8 -_08080284: - ldr r0, _08080288 @ =gUnknown_83C6990 - b _08080296 - .align 2, 0 -_08080288: .4byte gUnknown_83C6990 -_0808028C: - ldr r0, _08080290 @ =gUnknown_83C6948 - b _0808031A - .align 2, 0 -_08080290: .4byte gUnknown_83C6948 -_08080294: - ldr r0, _080802A4 @ =gUnknown_83C6A68 -_08080296: - adds r1, r5, 0 - bl TrainerBattleLoadArgs - bl battle_80801F0 - ldr r0, _080802A8 @ =gUnknown_81A4EE9 - b _08080326 - .align 2, 0 -_080802A4: .4byte gUnknown_83C6A68 -_080802A8: .4byte gUnknown_81A4EE9 -_080802AC: - bl sub_811231C - ldr r0, _080802CC @ =gUnknown_83C6990 - adds r1, r5, 0 - bl TrainerBattleLoadArgs - bl battle_80801F0 - ldr r4, _080802D0 @ =gTrainerBattleOpponent_A - ldrh r0, [r4] - bl sub_810CE64 - strh r0, [r4] - ldr r0, _080802D4 @ =gUnknown_81A4F73 - b _08080326 - .align 2, 0 -_080802CC: .4byte gUnknown_83C6990 -_080802D0: .4byte gTrainerBattleOpponent_A -_080802D4: .4byte gUnknown_81A4F73 -_080802D8: - bl sub_811231C - ldr r0, _080802F8 @ =gUnknown_83C6900 - adds r1, r5, 0 - bl TrainerBattleLoadArgs - bl battle_80801F0 - ldr r4, _080802FC @ =gTrainerBattleOpponent_A - ldrh r0, [r4] - bl sub_810CE64 - strh r0, [r4] - ldr r0, _08080300 @ =gUnknown_81A4F3E - b _08080326 - .align 2, 0 -_080802F8: .4byte gUnknown_83C6900 -_080802FC: .4byte gTrainerBattleOpponent_A -_08080300: .4byte gUnknown_81A4F3E -_08080304: - ldr r0, _08080310 @ =gUnknown_83C6A20 -_08080306: - adds r1, r5, 0 - bl TrainerBattleLoadArgs - ldr r0, _08080314 @ =gUnknown_81A4F21 - b _08080326 - .align 2, 0 -_08080310: .4byte gUnknown_83C6A20 -_08080314: .4byte gUnknown_81A4F21 -_08080318: - ldr r0, _0808032C @ =gUnknown_83C6900 -_0808031A: - adds r1, r5, 0 - bl TrainerBattleLoadArgs - bl battle_80801F0 - ldr r0, _08080330 @ =gUnknown_81A4EC1 -_08080326: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0808032C: .4byte gUnknown_83C6900 -_08080330: .4byte gUnknown_81A4EC1 - thumb_func_end BattleSetup_ConfigureTrainerBattle - - thumb_func_start TrainerWantsBattle -TrainerWantsBattle: @ 8080334 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08080368 @ =gSelectedEventObject - strb r0, [r2] - ldr r4, _0808036C @ =gSpecialVar_LastTalked - ldr r3, _08080370 @ =gMapObjects - lsls r2, r0, 3 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldrb r0, [r2, 0x8] - strh r0, [r4] - adds r1, 0x1 - adds r0, r1, 0 - bl BattleSetup_ConfigureTrainerBattle - ldr r0, _08080374 @ =gUnknown_81A4EB4 - bl ScriptContext1_SetupScript - bl ScriptContext2_Enable - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08080368: .4byte gSelectedEventObject -_0808036C: .4byte gSpecialVar_LastTalked -_08080370: .4byte gMapObjects -_08080374: .4byte gUnknown_81A4EB4 - thumb_func_end TrainerWantsBattle - - thumb_func_start GetTrainerFlagFromScriptPointer -GetTrainerFlagFromScriptPointer: @ 8080378 - push {lr} - adds r0, 0x2 - bl TrainerBattleLoadArg16 - lsls r0, 16 - movs r1, 0xA0 - lsls r1, 19 - adds r0, r1 - lsrs r0, 16 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end GetTrainerFlagFromScriptPointer - - thumb_func_start sub_8080398 -sub_8080398: @ 8080398 - push {r4,lr} - ldr r0, _080803C4 @ =gSelectedEventObject - ldrb r0, [r0] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _080803C8 @ =gMapObjects - adds r4, r0 - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl npc_running_behaviour_by_direction - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl npc_set_running_behaviour_etc - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080803C4: .4byte gSelectedEventObject -_080803C8: .4byte gMapObjects - thumb_func_end sub_8080398 - - thumb_func_start ScrSpecial_GetTrainerBattleMode -ScrSpecial_GetTrainerBattleMode: @ 80803CC - ldr r0, _080803D4 @ =gUnknown_20386AC - ldrb r0, [r0] - bx lr - .align 2, 0 -_080803D4: .4byte gUnknown_20386AC - thumb_func_end ScrSpecial_GetTrainerBattleMode - - thumb_func_start sub_80803D8 -sub_80803D8: @ 80803D8 - ldr r0, _080803E0 @ =gUnknown_20386CC - ldrh r0, [r0] - bx lr - .align 2, 0 -_080803E0: .4byte gUnknown_20386CC - thumb_func_end sub_80803D8 - - thumb_func_start ScrSpecial_HasTrainerBeenFought -ScrSpecial_HasTrainerBeenFought: @ 80803E4 - push {lr} - bl trainerflag_opponent - lsls r0, 16 - lsrs r0, 16 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end ScrSpecial_HasTrainerBeenFought - - thumb_func_start sub_80803FC -sub_80803FC: @ 80803FC - push {lr} - bl trainerflag_opponent - lsls r0, 16 - lsrs r0, 16 - bl FlagSet - pop {r0} - bx r0 - thumb_func_end sub_80803FC - - thumb_func_start sub_8080410 -sub_8080410: @ 8080410 - push {lr} - bl trainerflag_opponent - lsls r0, 16 - lsrs r0, 16 - bl FlagSet - pop {r0} - bx r0 - thumb_func_end sub_8080410 - - thumb_func_start HasTrainerAlreadyBeenFought -HasTrainerAlreadyBeenFought: @ 8080424 - push {lr} - lsls r0, 16 - movs r1, 0xA0 - lsls r1, 19 - adds r0, r1 - lsrs r0, 16 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end HasTrainerAlreadyBeenFought - - thumb_func_start SetTrainerFlag -SetTrainerFlag: @ 808043C - push {lr} - lsls r0, 16 - movs r1, 0xA0 - lsls r1, 19 - adds r0, r1 - lsrs r0, 16 - bl FlagSet - pop {r0} - bx r0 - thumb_func_end SetTrainerFlag - - thumb_func_start ClearTrainerFlag -ClearTrainerFlag: @ 8080450 - push {lr} - lsls r0, 16 - movs r1, 0xA0 - lsls r1, 19 - adds r0, r1 - lsrs r0, 16 - bl FlagClear - pop {r0} - bx r0 - thumb_func_end ClearTrainerFlag - - thumb_func_start BattleSetup_StartTrainerBattle -BattleSetup_StartTrainerBattle: @ 8080464 - push {r4,lr} - ldr r4, _080804A0 @ =gBattleTypeFlags - movs r0, 0x8 - str r0, [r4] - bl ScrSpecial_GetTrainerBattleMode - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x9 - bne _0808048C - bl sub_80803D8 - movs r1, 0x3 - ands r1, r0 - cmp r1, 0 - beq _0808048C - ldr r0, [r4] - movs r1, 0x10 - orrs r0, r1 - str r0, [r4] -_0808048C: - ldr r1, _080804A4 @ =gMain - ldr r0, _080804A8 @ =sub_80804AC - str r0, [r1, 0x8] - bl sub_807F868 - bl ScriptContext1_Stop - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080804A0: .4byte gBattleTypeFlags -_080804A4: .4byte gMain -_080804A8: .4byte sub_80804AC - thumb_func_end BattleSetup_StartTrainerBattle - - thumb_func_start sub_80804AC -sub_80804AC: @ 80804AC - push {lr} - ldr r0, _080804D8 @ =gUnknown_20386AC - ldrh r0, [r0] - cmp r0, 0x9 - bne _08080508 - ldr r0, _080804DC @ =gBattleOutcome - ldrb r0, [r0] - bl IsPlayerDefeated - adds r1, r0, 0 - cmp r1, 0x1 - bne _080804E8 - ldr r0, _080804E0 @ =gSpecialVar_Result - strh r1, [r0] - ldr r0, _080804E4 @ =gUnknown_20386CC - ldrh r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08080530 - bl sp000_heal_pokemon - b _080804EE - .align 2, 0 -_080804D8: .4byte gUnknown_20386AC -_080804DC: .4byte gBattleOutcome -_080804E0: .4byte gSpecialVar_Result -_080804E4: .4byte gUnknown_20386CC -_080804E8: - ldr r0, _08080500 @ =gSpecialVar_Result - movs r1, 0 - strh r1, [r0] -_080804EE: - ldr r0, _08080504 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic - bl SetMainCallback2 - bl sub_80803FC - bl sub_81139BC - b _0808054E - .align 2, 0 -_08080500: .4byte gSpecialVar_Result -_08080504: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic -_08080508: - ldr r0, _0808051C @ =gTrainerBattleOpponent_A - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 3 - cmp r1, r0 - bne _08080524 - ldr r0, _08080520 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic - bl SetMainCallback2 - b _0808054E - .align 2, 0 -_0808051C: .4byte gTrainerBattleOpponent_A -_08080520: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic -_08080524: - ldr r0, _08080538 @ =gBattleOutcome - ldrb r0, [r0] - bl IsPlayerDefeated - cmp r0, 0x1 - bne _08080540 -_08080530: - ldr r0, _0808053C @ =c2_whiteout - bl SetMainCallback2 - b _0808054E - .align 2, 0 -_08080538: .4byte gBattleOutcome -_0808053C: .4byte c2_whiteout -_08080540: - ldr r0, _08080554 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic - bl SetMainCallback2 - bl sub_80803FC - bl sub_81139BC -_0808054E: - pop {r0} - bx r0 - .align 2, 0 -_08080554: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic - thumb_func_end sub_80804AC - - thumb_func_start sub_8080558 -sub_8080558: @ 8080558 - push {lr} - ldr r0, _08080570 @ =gTrainerBattleOpponent_A - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 3 - cmp r1, r0 - bne _08080578 - ldr r0, _08080574 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic - bl SetMainCallback2 - b _080805A6 - .align 2, 0 -_08080570: .4byte gTrainerBattleOpponent_A -_08080574: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic -_08080578: - ldr r0, _0808058C @ =gBattleOutcome - ldrb r0, [r0] - bl IsPlayerDefeated - cmp r0, 0x1 - bne _08080594 - ldr r0, _08080590 @ =c2_whiteout - bl SetMainCallback2 - b _080805A6 - .align 2, 0 -_0808058C: .4byte gBattleOutcome -_08080590: .4byte c2_whiteout -_08080594: - ldr r0, _080805AC @ =CB2_ReturnToFieldContinueScriptPlayMapMusic - bl SetMainCallback2 - bl sub_80803FC - bl sub_810CDE8 - bl sub_81138F8 -_080805A6: - pop {r0} - bx r0 - .align 2, 0 -_080805AC: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic - thumb_func_end sub_8080558 - - thumb_func_start ScrSpecial_StartTrainerEyeRematch -ScrSpecial_StartTrainerEyeRematch: @ 80805B0 - push {lr} - ldr r1, _080805CC @ =gBattleTypeFlags - movs r0, 0x8 - str r0, [r1] - ldr r1, _080805D0 @ =gMain - ldr r0, _080805D4 @ =sub_8080558 - str r0, [r1, 0x8] - bl sub_807F868 - bl ScriptContext1_Stop - pop {r0} - bx r0 - .align 2, 0 -_080805CC: .4byte gBattleTypeFlags -_080805D0: .4byte gMain -_080805D4: .4byte sub_8080558 - thumb_func_end ScrSpecial_StartTrainerEyeRematch - - thumb_func_start ScrSpecial_ShowTrainerIntroSpeech -ScrSpecial_ShowTrainerIntroSpeech: @ 80805D8 - push {lr} - bl sub_80806D8 - bl ShowFieldMessage - pop {r0} - bx r0 - thumb_func_end ScrSpecial_ShowTrainerIntroSpeech - - thumb_func_start BattleSetup_GetScriptAddrAfterBattle -BattleSetup_GetScriptAddrAfterBattle: @ 80805E8 - push {lr} - ldr r0, _080805F8 @ =gUnknown_20386C4 - ldr r0, [r0] - cmp r0, 0 - bne _080805F4 - ldr r0, _080805FC @ =EventScript_1C555B -_080805F4: - pop {r1} - bx r1 - .align 2, 0 -_080805F8: .4byte gUnknown_20386C4 -_080805FC: .4byte EventScript_1C555B - thumb_func_end BattleSetup_GetScriptAddrAfterBattle - - thumb_func_start BattleSetup_GetTrainerPostBattleScript -BattleSetup_GetTrainerPostBattleScript: @ 8080600 - push {lr} - ldr r0, _08080610 @ =gUnknown_20386C8 - ldr r0, [r0] - cmp r0, 0 - bne _0808060C - ldr r0, _08080614 @ =EventScript_1C555B -_0808060C: - pop {r1} - bx r1 - .align 2, 0 -_08080610: .4byte gUnknown_20386C8 -_08080614: .4byte EventScript_1C555B - thumb_func_end BattleSetup_GetTrainerPostBattleScript - - thumb_func_start ScrSpecial_ShowTrainerNonBattlingSpeech -ScrSpecial_ShowTrainerNonBattlingSpeech: @ 8080618 - push {lr} - bl sub_8080734 - bl ShowFieldMessage - pop {r0} - bx r0 - thumb_func_end ScrSpecial_ShowTrainerNonBattlingSpeech - - thumb_func_start PlayTrainerEncounterMusic -PlayTrainerEncounterMusic: @ 8080628 - push {lr} - ldr r0, _08080660 @ =gUnknown_203ADFA - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _080806BE - ldr r0, _08080664 @ =gUnknown_20386AC - ldrh r0, [r0] - cmp r0, 0x1 - beq _080806BE - cmp r0, 0x8 - beq _080806BE - ldr r0, _08080668 @ =gTrainerBattleOpponent_A - ldrh r0, [r0] - bl GetTrainerEncounterMusicId - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xD - bhi _080806B8 - lsls r0, 2 - ldr r1, _0808066C @ =_08080670 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08080660: .4byte gUnknown_203ADFA -_08080664: .4byte gUnknown_20386AC -_08080668: .4byte gTrainerBattleOpponent_A -_0808066C: .4byte _08080670 - .align 2, 0 -_08080670: - .4byte _080806AE - .4byte _080806A8 - .4byte _080806A8 - .4byte _080806B8 - .4byte _080806AE - .4byte _080806AE - .4byte _080806B8 - .4byte _080806B8 - .4byte _080806AE - .4byte _080806A8 - .4byte _080806AE - .4byte _080806AE - .4byte _080806AE - .4byte _080806AE -_080806A8: - @ MUS_SHOUJO - movs r0, 0x8E - lsls r0, 1 - b _080806BA -_080806AE: - @ MUS_SHOUNEN - ldr r0, _080806B4 @ =0x0000011d - b _080806BA - .align 2, 0 -_080806B4: .4byte 0x0000011d -_080806B8: - @ MUS_ROCKET - ldr r0, _080806C4 @ =0x0000011b -_080806BA: - bl PlayNewMapMusic -_080806BE: - pop {r0} - bx r0 - .align 2, 0 -_080806C4: .4byte 0x0000011b - thumb_func_end PlayTrainerEncounterMusic - - thumb_func_start sub_80806C8 -sub_80806C8: @ 80806C8 - push {lr} - cmp r0, 0 - bne _080806D0 - ldr r0, _080806D4 @ =gString_Dummy -_080806D0: - pop {r1} - bx r1 - .align 2, 0 -_080806D4: .4byte gString_Dummy - thumb_func_end sub_80806C8 - - thumb_func_start sub_80806D8 -sub_80806D8: @ 80806D8 - push {lr} - ldr r0, _080806E8 @ =gUnknown_20386B4 - ldr r0, [r0] - bl sub_80806C8 - pop {r1} - bx r1 - .align 2, 0 -_080806E8: .4byte gUnknown_20386B4 - thumb_func_end sub_80806D8 - - thumb_func_start sub_80806EC -sub_80806EC: @ 80806EC - push {r4,lr} - ldr r0, _08080708 @ =gUnknown_20386B8 - ldr r0, [r0] - ldr r4, _0808070C @ =gStringVar4 - bl sub_80806C8 - adds r1, r0, 0 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08080708: .4byte gUnknown_20386B8 -_0808070C: .4byte gStringVar4 - thumb_func_end sub_80806EC - - thumb_func_start sub_8080710 -sub_8080710: @ 8080710 - push {r4,lr} - ldr r4, _0808072C @ =gStringVar4 - ldr r0, _08080730 @ =gUnknown_20386BC - ldr r0, [r0] - bl sub_80806C8 - adds r1, r0, 0 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0808072C: .4byte gStringVar4 -_08080730: .4byte gUnknown_20386BC - thumb_func_end sub_8080710 - - thumb_func_start sub_8080734 -sub_8080734: @ 8080734 - push {lr} - ldr r0, _08080744 @ =gUnknown_20386C0 - ldr r0, [r0] - bl sub_80806C8 - pop {r1} - bx r1 - .align 2, 0 -_08080744: .4byte gUnknown_20386C0 - thumb_func_end sub_8080734 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_tower.s b/asm/battle_tower.s index 72cba63a3..eddc03f83 100644 --- a/asm/battle_tower.s +++ b/asm/battle_tower.s @@ -2034,7 +2034,7 @@ sub_80E68C4: @ 80E68C4 ldr r1, _080E68F8 @ =sub_80E6854 str r1, [r0, 0x8] bl CleanupOverworldWindowsAndTilemaps - ldr r0, _080E68FC @ =sub_800FD9C + ldr r0, _080E68FC @ =CB2_InitBattle bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask @@ -2045,7 +2045,7 @@ _080E68EC: .align 2, 0 _080E68F4: .4byte gMain _080E68F8: .4byte sub_80E6854 -_080E68FC: .4byte sub_800FD9C +_080E68FC: .4byte CB2_InitBattle thumb_func_end sub_80E68C4 thumb_func_start StartSpecialBattle diff --git a/asm/cable_club.s b/asm/cable_club.s index 4c265b65f..01aa8d217 100644 --- a/asm/cable_club.s +++ b/asm/cable_club.s @@ -1637,7 +1637,7 @@ _0808141A: lsls r2, 4 adds r0, r2, 0 strh r0, [r1] - ldr r0, _08081448 @ =sub_800FD9C + ldr r0, _08081448 @ =CB2_InitBattle bl SetMainCallback2 ldr r1, _0808144C @ =gMain ldr r0, _08081450 @ =sub_8081668 @@ -1651,7 +1651,7 @@ _0808143A: .align 2, 0 _08081440: .4byte gBattleTypeFlags _08081444: .4byte gTrainerBattleOpponent_A -_08081448: .4byte sub_800FD9C +_08081448: .4byte CB2_InitBattle _0808144C: .4byte gMain _08081450: .4byte sub_8081668 thumb_func_end sub_8081318 @@ -1860,7 +1860,7 @@ _080815EA: lsls r3, 4 adds r0, r3, 0 strh r0, [r1] - ldr r0, _08081618 @ =sub_800FD9C + ldr r0, _08081618 @ =CB2_InitBattle bl SetMainCallback2 ldr r1, _0808161C @ =gMain ldr r0, _08081620 @ =sub_8081668 @@ -1874,7 +1874,7 @@ _0808160A: .align 2, 0 _08081610: .4byte gBattleTypeFlags _08081614: .4byte gTrainerBattleOpponent_A -_08081618: .4byte sub_800FD9C +_08081618: .4byte CB2_InitBattle _0808161C: .4byte gMain _08081620: .4byte sub_8081668 thumb_func_end sub_8081454 diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s index d8651a24c..b718deee6 100644 --- a/asm/evolution_scene.s +++ b/asm/evolution_scene.s @@ -278,7 +278,7 @@ EvolutionScene: @ 80CDDF4 adds r6, r7, 0 adds r6, 0x1C adds r0, r1, r6 - ldr r2, _080CE0CC @ =nullsub_10 + ldr r2, _080CE0CC @ =SpriteCallbackDummy2 str r2, [r0] adds r1, r7 ldrb r2, [r1, 0x5] @@ -331,7 +331,7 @@ EvolutionScene: @ 80CDDF4 adds r1, r3 lsls r1, 2 adds r6, r1, r6 - ldr r2, _080CE0CC @ =nullsub_10 + ldr r2, _080CE0CC @ =SpriteCallbackDummy2 str r2, [r6] adds r1, r7 ldrb r0, [r1, 0x5] @@ -420,7 +420,7 @@ _080CE0BC: .4byte gMonSpritesGfxPtr _080CE0C0: .4byte gMultiuseSpriteTemplate _080CE0C4: .4byte gDummySpriteAffineAnimTable _080CE0C8: .4byte gSprites -_080CE0CC: .4byte nullsub_10 +_080CE0CC: .4byte SpriteCallbackDummy2 _080CE0D0: .4byte sub_80CE8DC _080CE0D4: .4byte gTasks _080CE0D8: .4byte gPlttBufferUnfaded + 0x40 @@ -562,7 +562,7 @@ CB2_EvolutionSceneLoadGraphics: @ 80CE0E8 adds r0, r3, 0 adds r0, 0x1C adds r0, r1, r0 - ldr r2, _080CE2CC @ =nullsub_10 + ldr r2, _080CE2CC @ =SpriteCallbackDummy2 str r2, [r0] adds r1, r3 ldrb r2, [r1, 0x5] @@ -623,7 +623,7 @@ _080CE2BC: .4byte gMonSpritesGfxPtr _080CE2C0: .4byte gMultiuseSpriteTemplate _080CE2C4: .4byte gDummySpriteAffineAnimTable _080CE2C8: .4byte gSprites -_080CE2CC: .4byte nullsub_10 +_080CE2CC: .4byte SpriteCallbackDummy2 _080CE2D0: .4byte nullsub_76 _080CE2D4: .4byte sub_80D0050 _080CE2D8: .4byte sub_80CE710 @@ -813,7 +813,7 @@ _080CE45C: adds r0, r3, 0 adds r0, 0x1C adds r0, r1, r0 - ldr r2, _080CE4C4 @ =nullsub_10 + ldr r2, _080CE4C4 @ =SpriteCallbackDummy2 str r2, [r0] adds r1, r3 ldrb r2, [r1, 0x5] @@ -836,7 +836,7 @@ _080CE4B4: .4byte gMultiuseSpriteTemplate _080CE4B8: .4byte gDummySpriteAffineAnimTable _080CE4BC: .4byte gUnknown_2039A20 _080CE4C0: .4byte gSprites -_080CE4C4: .4byte nullsub_10 +_080CE4C4: .4byte SpriteCallbackDummy2 _080CE4C8: .4byte gMain _080CE4CC: ldr r0, _080CE4FC @ =gWirelessCommType @@ -989,7 +989,7 @@ TradeEvolutionScene: @ 80CE540 adds r0, r3, 0 adds r0, 0x1C adds r0, r1, r0 - ldr r2, _080CE6D8 @ =nullsub_10 + ldr r2, _080CE6D8 @ =SpriteCallbackDummy2 str r2, [r0] adds r1, r3 ldrb r2, [r1, 0x5] @@ -1074,7 +1074,7 @@ _080CE6C8: .4byte gMonSpritesGfxPtr _080CE6CC: .4byte gMultiuseSpriteTemplate _080CE6D0: .4byte gDummySpriteAffineAnimTable _080CE6D4: .4byte gSprites -_080CE6D8: .4byte nullsub_10 +_080CE6D8: .4byte SpriteCallbackDummy2 _080CE6DC: .4byte sub_80CF53C _080CE6E0: .4byte gTasks _080CE6E4: .4byte gBattle_BG0_X @@ -1962,14 +1962,14 @@ _080CEEA0: bl Free str r6, [r4] bl FreeAllWindowBuffers - ldr r0, _080CEECC @ =gUnknown_300537C + ldr r0, _080CEECC @ =gCB2_AfterEvolution ldr r0, [r0] bl SetMainCallback2 b _080CF528 .align 2, 0 _080CEEC4: .4byte gPaletteFade _080CEEC8: .4byte gUnknown_2039A20 -_080CEECC: .4byte gUnknown_300537C +_080CEECC: .4byte gCB2_AfterEvolution _080CEED0: ldr r0, _080CEF04 @ =gBattleCommunication ldrb r1, [r0, 0x2] @@ -3252,14 +3252,14 @@ _080CF9E0: negs r0, r0 ands r0, r1 strb r0, [r2] - ldr r0, _080CFA10 @ =gUnknown_300537C + ldr r0, _080CFA10 @ =gCB2_AfterEvolution ldr r0, [r0] bl SetMainCallback2 b _080D003A .align 2, 0 _080CFA08: .4byte gUnknown_2039A20 _080CFA0C: .4byte gTextFlags -_080CFA10: .4byte gUnknown_300537C +_080CFA10: .4byte gCB2_AfterEvolution _080CFA14: ldr r0, _080CFA60 @ =gBattleCommunication ldrb r1, [r0, 0x2] diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s index c265d7d01..46587dc52 100644 --- a/asm/field_control_avatar.s +++ b/asm/field_control_avatar.s @@ -1953,13 +1953,13 @@ _0806D7E2: bx r1 thumb_func_end DoPoisonFieldEffect_step - thumb_func_start sub_806D7E8 -sub_806D7E8: @ 806D7E8 + thumb_func_start RestartWildEncounterImmunitySteps +RestartWildEncounterImmunitySteps: @ 806D7E8 push {lr} bl sub_80832D4 pop {r0} bx r0 - thumb_func_end sub_806D7E8 + thumb_func_end RestartWildEncounterImmunitySteps thumb_func_start is_it_battle_time_3 is_it_battle_time_3: @ 806D7F4 diff --git a/asm/field_effect.s b/asm/field_effect.s index 9919ccc24..a8542fcc3 100644 --- a/asm/field_effect.s +++ b/asm/field_effect.s @@ -1989,7 +1989,7 @@ mapldr_080842E8: @ 80842E8 movs r1, 0 bl CreateTask bl ScriptContext2_Enable - bl player_bitmagic + bl FreezeEventObjects ldr r1, _0808430C @ =gFieldCallback movs r0, 0 str r0, [r1] @@ -2092,7 +2092,7 @@ mapldr_08084390: @ 8084390 bl FieldObjectTurn _080843D2: bl ScriptContext2_Enable - bl player_bitmagic + bl FreezeEventObjects ldr r1, _080843F4 @ =gFieldCallback movs r0, 0 str r0, [r1] @@ -2158,7 +2158,7 @@ sub_8084454: @ 8084454 bl pal_fill_for_maplights bl sub_8111CF0 bl ScriptContext2_Enable - bl player_bitmagic + bl FreezeEventObjects ldr r0, _0808447C @ =sub_8084484 movs r1, 0 bl CreateTask @@ -2626,7 +2626,7 @@ _080847F4: .4byte gUnknown_83CC050 sub_80847F8: @ 80847F8 push {r4,lr} adds r4, r0, 0 - bl player_bitmagic + bl FreezeEventObjects bl CameraObjectReset2 ldrb r0, [r4, 0xA] bl sub_809C448 @@ -2889,7 +2889,7 @@ sub_80849F4: @ 80849F4 bl pal_fill_for_maplights bl sub_8111CF0 bl ScriptContext2_Enable - bl player_bitmagic + bl FreezeEventObjects ldr r0, _08084A1C @ =sub_8084A24 movs r1, 0 bl CreateTask @@ -3630,7 +3630,7 @@ sub_8084FA0: @ 8084FA0 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 - bl player_bitmagic + bl FreezeEventObjects bl CameraObjectReset2 movs r0, 0 bl SetCameraPanningCallback @@ -3977,7 +3977,7 @@ sub_8085244: @ 8085244 adds r5, r0, 0 adds r4, r1, 0 bl CameraObjectReset2 - bl player_bitmagic + bl FreezeEventObjects ldr r1, _08085270 @ =gPlayerAvatar movs r0, 0x1 strb r0, [r1, 0x6] @@ -4239,7 +4239,7 @@ sub_8085440: @ 8085440 push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 - bl player_bitmagic + bl FreezeEventObjects bl CameraObjectReset2 ldr r1, _0808546C @ =gPlayerAvatar movs r0, 0x1 @@ -4482,7 +4482,7 @@ _0808561C: sub_8085620: @ 8085620 push {lr} bl ScriptContext2_Enable - bl player_bitmagic + bl FreezeEventObjects ldr r0, _08085638 @ =sub_808563C movs r1, 0x50 bl CreateTask @@ -4969,7 +4969,7 @@ sub_80859D4: @ 80859D4 bl pal_fill_for_maplights bl sub_8111CF0 bl ScriptContext2_Enable - bl player_bitmagic + bl FreezeEventObjects ldr r1, _08085A14 @ =gFieldCallback movs r0, 0 str r0, [r1] @@ -5198,7 +5198,7 @@ sub_8085BA8: @ 8085BA8 push {r4,lr} adds r4, r0, 0 bl ScriptContext2_Enable - bl player_bitmagic + bl FreezeEventObjects bl CameraObjectReset2 bl GetPlayerFacingDirection lsls r0, 24 @@ -5435,7 +5435,7 @@ mapldr_08085D88: @ 8085D88 bl pal_fill_for_maplights bl sub_8111CF0 bl ScriptContext2_Enable - bl player_bitmagic + bl FreezeEventObjects ldr r1, _08085DCC @ =gFieldCallback movs r0, 0 str r0, [r1] @@ -7000,7 +7000,7 @@ sub_80869C0: @ 80869C0 push {r6} adds r4, r0, 0 bl ScriptContext2_Enable - bl player_bitmagic + bl FreezeEventObjects ldr r5, _08086A18 @ =gPlayerAvatar movs r0, 0x1 strb r0, [r5, 0x6] @@ -7276,7 +7276,7 @@ sub_8086C00: @ 8086C00 push {r4,lr} adds r4, r0, 0 bl ScriptContext2_Enable - bl player_bitmagic + bl FreezeEventObjects ldr r1, _08086C20 @ =gPlayerAvatar movs r0, 0x1 strb r0, [r1, 0x6] diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s index be79c3b21..7003a10f2 100644 --- a/asm/field_effect_helpers.s +++ b/asm/field_effect_helpers.s @@ -134,13 +134,13 @@ npc_pal_op: @ 80DAE54 cmp r0, 0 bne _080DAEB0 ldrb r0, [r5, 0x1F] - bl MetatileBehavior_ReturnFalse_7 + bl MetatileBehavior_GetBridgeType lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080DAE96 ldrb r0, [r5, 0x1E] - bl MetatileBehavior_ReturnFalse_7 + bl MetatileBehavior_GetBridgeType lsls r0, 24 lsrs r0, 24 cmp r0, 0 @@ -1251,7 +1251,7 @@ _080DB6E8: cmp r0, 0 bne _080DB73C adds r0, r4, 0 - bl MetatileBehavior_ReturnFalse_3 + bl MetatileBehavior_IsLongGrass lsls r0, 24 cmp r0, 0 beq _080DB73C diff --git a/asm/field_ground_effect.s b/asm/field_ground_effect.s index 56af66346..b5ec3a622 100644 --- a/asm/field_ground_effect.s +++ b/asm/field_ground_effect.s @@ -224,7 +224,7 @@ GetGroundEffectFlags_LongGrassOnSpawn: @ 8067CE8 push {r4,lr} adds r4, r1, 0 ldrb r0, [r0, 0x1E] - bl MetatileBehavior_ReturnFalse_3 + bl MetatileBehavior_IsLongGrass lsls r0, 24 cmp r0, 0 beq _08067D00 @@ -243,7 +243,7 @@ GetGroundEffectFlags_LongGrassOnBeginStep: @ 8067D08 push {r4,lr} adds r4, r1, 0 ldrb r0, [r0, 0x1E] - bl MetatileBehavior_ReturnFalse_3 + bl MetatileBehavior_IsLongGrass lsls r0, 24 cmp r0, 0 beq _08067D20 @@ -838,12 +838,12 @@ FieldObjectSetSpriteOamTableForLongGrass: @ 8068154 cmp r0, 0 blt _080681A8 ldrb r0, [r5, 0x1E] - bl MetatileBehavior_ReturnFalse_3 + bl MetatileBehavior_IsLongGrass lsls r0, 24 cmp r0, 0 beq _080681A8 ldrb r0, [r5, 0x1F] - bl MetatileBehavior_ReturnFalse_3 + bl MetatileBehavior_IsLongGrass lsls r0, 24 cmp r0, 0 beq _080681A8 diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s index 57f7fbe1c..8787ff647 100644 --- a/asm/field_map_obj.s +++ b/asm/field_map_obj.s @@ -12214,8 +12214,8 @@ _0806360C: bx r1 thumb_func_end sub_80635DC - thumb_func_start npc_set_running_behaviour_etc -npc_set_running_behaviour_etc: @ 8063610 + thumb_func_start SetTrainerMovementType +SetTrainerMovementType: @ 8063610 push {r4,lr} mov r12, r0 lsls r1, 24 @@ -12253,10 +12253,10 @@ npc_set_running_behaviour_etc: @ 8063610 .align 2, 0 _08063654: .4byte gSprites _08063658: .4byte gUnknown_839FBC8 - thumb_func_end npc_set_running_behaviour_etc + thumb_func_end SetTrainerMovementType - thumb_func_start npc_running_behaviour_by_direction -npc_running_behaviour_by_direction: @ 806365C + thumb_func_start GetTrainerFacingDirectionMovementType +GetTrainerFacingDirectionMovementType: @ 806365C lsls r0, 24 lsrs r0, 24 ldr r1, _08063668 @ =gUnknown_83A649C @@ -12265,7 +12265,7 @@ npc_running_behaviour_by_direction: @ 806365C bx lr .align 2, 0 _08063668: .4byte gUnknown_83A649C - thumb_func_end npc_running_behaviour_by_direction + thumb_func_end GetTrainerFacingDirectionMovementType thumb_func_start npc_block_way__next_tile npc_block_way__next_tile: @ 806366C diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s index c753fb948..5e7f64670 100644 --- a/asm/field_player_avatar.s +++ b/asm/field_player_avatar.s @@ -3964,7 +3964,7 @@ sub_805D0F8: @ 805D0F8 lsls r4, 24 lsrs r4, 24 bl ScriptContext2_Enable - bl player_bitmagic + bl FreezeEventObjects bl sav1_reset_battle_music_maybe bl Overworld_ChangeMusicToDefault ldr r2, _0805D148 @ =gPlayerAvatar @@ -4005,7 +4005,7 @@ sub_805D154: @ 805D154 lsls r4, 24 lsrs r4, 24 bl ScriptContext2_Enable - bl player_bitmagic + bl FreezeEventObjects ldr r2, _0805D19C @ =gPlayerAvatar ldrb r1, [r2] movs r0, 0xF7 diff --git a/asm/field_screen_effect.s b/asm/field_screen_effect.s index f8c0970c9..8d07f3779 100644 --- a/asm/field_screen_effect.s +++ b/asm/field_screen_effect.s @@ -306,7 +306,7 @@ sub_807F028: @ 807F028 lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 - bl sav1_get_flash_used_on_map + bl Overworld_GetFlashLevel lsls r0, 24 lsrs r0, 24 movs r5, 0 diff --git a/asm/item_menu.s b/asm/item_menu.s index 9b1ab2492..a143d2776 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -5845,7 +5845,7 @@ _0810AD1E: cmp r6, 0x1 bne _0810AD90 bl ScriptContext2_Enable - bl player_bitmagic + bl FreezeEventObjects bl sub_805C270 bl sub_805C780 ldr r2, _0810AD88 @ =gSpecialVar_ItemId diff --git a/asm/link_rfu_2.s b/asm/link_rfu_2.s index fd1cf3dc6..8f896ea7c 100644 --- a/asm/link_rfu_2.s +++ b/asm/link_rfu_2.s @@ -4012,8 +4012,8 @@ GetRfuPlayerCount: @ 80FA4EC _080FA4F4: .4byte gUnknown_3005450 thumb_func_end GetRfuPlayerCount - thumb_func_start IsRfuTaskFinished -IsRfuTaskFinished: @ 80FA4F8 + thumb_func_start IsLinkRfuTaskFinished +IsLinkRfuTaskFinished: @ 80FA4F8 push {lr} movs r1, 0 ldr r0, _080FA50C @ =gUnknown_3005450 @@ -4027,7 +4027,7 @@ _080FA506: bx r1 .align 2, 0 _080FA50C: .4byte gUnknown_3005450 - thumb_func_end IsRfuTaskFinished + thumb_func_end IsLinkRfuTaskFinished thumb_func_start sub_80FA510 sub_80FA510: @ 80FA510 diff --git a/asm/link_rfu_3.s b/asm/link_rfu_3.s index 94a07fdaf..9fc1f72cc 100644 --- a/asm/link_rfu_3.s +++ b/asm/link_rfu_3.s @@ -12709,7 +12709,7 @@ _0811C096: lsls r2, 4 adds r1, r2, 0 strh r1, [r0] - ldr r0, _0811C0DC @ =sub_800FD9C + ldr r0, _0811C0DC @ =CB2_InitBattle bl SetMainCallback2 pop {r4-r7} pop {r0} @@ -12719,7 +12719,7 @@ _0811C0CC: .4byte gPlayerParty _0811C0D0: .4byte gEnemyParty _0811C0D4: .4byte gUnknown_203B0D4 _0811C0D8: .4byte gTrainerBattleOpponent_A -_0811C0DC: .4byte sub_800FD9C +_0811C0DC: .4byte CB2_InitBattle thumb_func_end sub_811C04C thumb_func_start sub_811C0E0 diff --git a/asm/map_obj_80688E4.s b/asm/map_obj_80688E4.s index bc06896bc..04df8c938 100644 --- a/asm/map_obj_80688E4.s +++ b/asm/map_obj_80688E4.s @@ -82,8 +82,8 @@ _0806896E: bx r1 thumb_func_end FreezeMapObject - thumb_func_start player_bitmagic -player_bitmagic: @ 8068974 + thumb_func_start FreezeEventObjects +FreezeEventObjects: @ 8068974 push {r4,r5,lr} movs r4, 0 ldr r5, _080689A8 @ =gMapObjects @@ -114,7 +114,7 @@ _08068998: .align 2, 0 _080689A8: .4byte gMapObjects _080689AC: .4byte gPlayerAvatar - thumb_func_end player_bitmagic + thumb_func_end FreezeEventObjects thumb_func_start FreezeMapObjectsExceptOne FreezeMapObjectsExceptOne: @ 80689B0 diff --git a/asm/overworld.s b/asm/overworld.s index 553ad6aef..9b9fe037f 100644 --- a/asm/overworld.s +++ b/asm/overworld.s @@ -1708,7 +1708,7 @@ sub_8055864: @ 8055864 bl TrySetMapSaveWarpStatus bl sub_806E110 bl nullsub_74 - bl sub_806D7E8 + bl RestartWildEncounterImmunitySteps adds r0, r5, 0 adds r1, r4, 0 bl sub_810C578 @@ -1771,7 +1771,7 @@ sub_8055920: @ 8055920 bl TrySetMapSaveWarpStatus bl sub_806E110 bl nullsub_74 - bl sub_806D7E8 + bl RestartWildEncounterImmunitySteps ldr r0, _080559A0 @ =gSaveBlock1Ptr ldr r1, [r0] movs r0, 0x4 @@ -2284,8 +2284,8 @@ _08055D28: .4byte gUnknown_83C68E0 _08055D2C: .4byte gSaveBlock1Ptr thumb_func_end Overworld_SetFlashLevel - thumb_func_start sav1_get_flash_used_on_map -sav1_get_flash_used_on_map: @ 8055D30 + thumb_func_start Overworld_GetFlashLevel +Overworld_GetFlashLevel: @ 8055D30 ldr r0, _08055D3C @ =gSaveBlock1Ptr ldr r0, [r0] adds r0, 0x30 @@ -2293,7 +2293,7 @@ sav1_get_flash_used_on_map: @ 8055D30 bx lr .align 2, 0 _08055D3C: .4byte gSaveBlock1Ptr - thumb_func_end sav1_get_flash_used_on_map + thumb_func_end Overworld_GetFlashLevel thumb_func_start SetCurrentMapLayout SetCurrentMapLayout: @ 8055D40 @@ -3522,8 +3522,8 @@ _0805669C: .4byte sub_8056534 _080566A0: .4byte sub_80565B4 thumb_func_end CB2_NewGame - thumb_func_start c2_whiteout -c2_whiteout: @ 80566A4 + thumb_func_start CB2_WhiteOut +CB2_WhiteOut: @ 80566A4 push {lr} sub sp, 0x4 ldr r1, _08056708 @ =gMain @@ -3569,7 +3569,7 @@ _0805670C: .4byte gFieldCallback _08056710: .4byte sub_807F5F0 _08056714: .4byte sub_8056534 _08056718: .4byte sub_80565B4 - thumb_func_end c2_whiteout + thumb_func_end CB2_WhiteOut thumb_func_start CB2_LoadMap CB2_LoadMap: @ 805671C @@ -3944,7 +3944,7 @@ VBlankCB_Field: @ 8056A14 thumb_func_start sub_8056A34 sub_8056A34: @ 8056A34 push {lr} - bl sav1_get_flash_used_on_map + bl Overworld_GetFlashLevel lsls r0, 24 lsrs r0, 24 cmp r0, 0 diff --git a/asm/party_menu.s b/asm/party_menu.s index 946d184e6..25befd61d 100644 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -15699,7 +15699,7 @@ sub_8126704: @ 8126704 cmp r4, 0 beq _08126754 bl sub_811F070 - ldr r0, _08126750 @ =gUnknown_300537C + ldr r0, _08126750 @ =gCB2_AfterEvolution ldr r1, [r6] str r1, [r0] ldrb r3, [r6, 0x9] @@ -15713,7 +15713,7 @@ sub_8126704: @ 8126704 .align 2, 0 _08126748: .4byte gUnknown_203B0A0 _0812674C: .4byte gPlayerParty -_08126750: .4byte gUnknown_300537C +_08126750: .4byte gCB2_AfterEvolution _08126754: ldr r0, _08126768 @ =gTasks lsls r1, r5, 2 @@ -16248,7 +16248,7 @@ _08126BCE: thumb_func_start sub_8126BD4 sub_8126BD4: @ 8126BD4 push {r4,r5,lr} - ldr r1, _08126C10 @ =gUnknown_300537C + ldr r1, _08126C10 @ =gCB2_AfterEvolution ldr r4, _08126C14 @ =gUnknown_203B0A0 ldr r0, [r4] str r0, [r1] @@ -16274,7 +16274,7 @@ sub_8126BD4: @ 8126BD4 pop {r0} bx r0 .align 2, 0 -_08126C10: .4byte gUnknown_300537C +_08126C10: .4byte gCB2_AfterEvolution _08126C14: .4byte gUnknown_203B0A0 _08126C18: .4byte gSpecialVar_ItemId _08126C1C: .4byte gPlayerParty diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index d9ef35bd4..4c090a2d9 100644 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -4033,13 +4033,13 @@ _081366B8: adds r0, r1 movs r1, 0xD muls r1, r4 - ldr r2, _081367A0 @ =gUnknown_824FC40 + ldr r2, _081367A0 @ =gAbilityNames adds r1, r2 bl StringCopy ldr r0, [r6] ldr r2, _081367A4 @ =0x000031cc adds r0, r2 - ldr r1, _081367A8 @ =gUnknown_824FB08 + ldr r1, _081367A8 @ =gAbilityDescriptionPointers lsls r4, 2 adds r4, r1 ldr r1, [r4] @@ -4088,9 +4088,9 @@ _08136790: .4byte gExperienceTables _08136794: .4byte gBaseStats _08136798: .4byte 0x000031b0 _0813679C: .4byte 0x000031bc -_081367A0: .4byte gUnknown_824FC40 +_081367A0: .4byte gAbilityNames _081367A4: .4byte 0x000031cc -_081367A8: .4byte gUnknown_824FB08 +_081367A8: .4byte gAbilityDescriptionPointers _081367AC: .4byte 0x0000326c thumb_func_end sub_8136350 diff --git a/asm/post_battle_event_funcs.s b/asm/post_battle_event_funcs.s index a96501d7b..be7554fd0 100644 --- a/asm/post_battle_event_funcs.s +++ b/asm/post_battle_event_funcs.s @@ -109,13 +109,13 @@ _080CA3C0: .4byte CB2_DoHallOfFameScreen thumb_func_start sp0C8_whiteout_maybe sp0C8_whiteout_maybe: @ 80CA3C4 push {lr} - ldr r0, _080CA3D4 @ =c2_whiteout + ldr r0, _080CA3D4 @ =CB2_WhiteOut bl SetMainCallback2 movs r0, 0 pop {r1} bx r1 .align 2, 0 -_080CA3D4: .4byte c2_whiteout +_080CA3D4: .4byte CB2_WhiteOut thumb_func_end sp0C8_whiteout_maybe .align 2, 0 @ Don't pad with nop. diff --git a/asm/trade.s b/asm/trade.s index 8dd3809f1..5467aec2f 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -422,7 +422,7 @@ _0804C9B0: ldrb r0, [r0] cmp r0, 0 beq _0804C9E8 - bl IsRfuTaskFinished + bl IsLinkRfuTaskFinished lsls r0, 24 cmp r0, 0 bne _0804C9C4 @@ -1832,7 +1832,7 @@ sub_804D5A4: @ 804D5A4 ldrb r0, [r0] cmp r0, 0 beq _0804D5FC - bl IsRfuTaskFinished + bl IsLinkRfuTaskFinished lsls r0, 24 cmp r0, 0 beq _0804D620 @@ -11052,7 +11052,7 @@ _0805223C: ldrb r0, [r0] movs r1, 0 bl sub_805080C - ldr r1, _08052284 @ =gUnknown_300537C + ldr r1, _08052284 @ =gCB2_AfterEvolution ldr r0, _08052288 @ =sub_8050948 str r0, [r1] ldr r7, _0805228C @ =gUnknown_2031DA4 @@ -11081,7 +11081,7 @@ _0805223C: b _080522A8 .align 2, 0 _08052280: .4byte gSpecialVar_0x8005 -_08052284: .4byte gUnknown_300537C +_08052284: .4byte gCB2_AfterEvolution _08052288: .4byte sub_8050948 _0805228C: .4byte gUnknown_2031DA4 _08052290: .4byte gPlayerParty @@ -13277,7 +13277,7 @@ _08053698: ldrb r0, [r0] movs r1, 0 bl sub_805080C - ldr r1, _080536E0 @ =gUnknown_300537C + ldr r1, _080536E0 @ =gCB2_AfterEvolution ldr r0, _080536E4 @ =sub_8050948 str r0, [r1] ldr r7, _080536E8 @ =gUnknown_2031DA4 @@ -13306,7 +13306,7 @@ _08053698: b _08053704 .align 2, 0 _080536DC: .4byte gSpecialVar_0x8005 -_080536E0: .4byte gUnknown_300537C +_080536E0: .4byte gCB2_AfterEvolution _080536E4: .4byte sub_8050948 _080536E8: .4byte gUnknown_2031DA4 _080536EC: .4byte gPlayerParty @@ -13404,7 +13404,7 @@ _080537A8: .align 2, 0 _080537B4: .4byte gSoftResetDisabled _080537B8: - ldr r0, _080537F4 @ =gUnknown_300537C + ldr r0, _080537F4 @ =gCB2_AfterEvolution ldr r1, _080537F8 @ =sub_8053E8C mov r8, r1 str r1, [r0] @@ -13433,7 +13433,7 @@ _080537B8: bl TradeEvolutionScene b _0805380E .align 2, 0 -_080537F4: .4byte gUnknown_300537C +_080537F4: .4byte gCB2_AfterEvolution _080537F8: .4byte sub_8053E8C _080537FC: .4byte gUnknown_2031DA4 _08053800: .4byte gPlayerParty @@ -14745,7 +14745,7 @@ _0805434C: ldr r0, _08054378 @ =sub_804C718 cmp r1, r0 bne _08054384 - bl IsRfuTaskFinished + bl IsLinkRfuTaskFinished lsls r0, 24 cmp r0, 0 beq _08054396 diff --git a/asm/trainer_see.s b/asm/trainer_see.s index c52229215..659e96c32 100644 --- a/asm/trainer_see.s +++ b/asm/trainer_see.s @@ -87,7 +87,7 @@ sub_8081B84: @ 8081B84 _08081BC0: adds r0, r5, 0 adds r1, r6, 0 - bl TrainerWantsBattle + bl ConfigureAndSetUpOneTrainerBattle adds r0, r4, r5 lsls r0, 2 ldr r1, _08081BE0 @ =gMapObjects @@ -718,16 +718,16 @@ _0808204A: ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 - bl npc_running_behaviour_by_direction + bl GetTrainerFacingDirectionMovementType adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl npc_set_running_behaviour_etc + bl SetTrainerMovementType ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 - bl npc_running_behaviour_by_direction + bl GetTrainerFacingDirectionMovementType adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -1277,17 +1277,17 @@ _0808246E: ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 - bl npc_running_behaviour_by_direction + bl GetTrainerFacingDirectionMovementType adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl npc_set_running_behaviour_etc + bl SetTrainerMovementType ldr r4, [sp] ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 - bl npc_running_behaviour_by_direction + bl GetTrainerFacingDirectionMovementType adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 diff --git a/asm/wild_encounter.s b/asm/wild_encounter.s index dedcfa761..86e3d964f 100644 --- a/asm/wild_encounter.s +++ b/asm/wild_encounter.s @@ -878,7 +878,7 @@ _08082D78: bl sub_8058F1C lsls r0, 24 lsrs r0, 24 - bl MetatileBehavior_ReturnFalse_6 + bl MetatileBehavior_IsBridge lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -932,7 +932,7 @@ _08082DFA: lsls r0, 24 cmp r0, 0 beq _08082E46 - bl sub_807F78C + bl BattleSetup_StartRoamerBattle movs r0, 0x1 b _08082E48 .align 2, 0 @@ -950,7 +950,7 @@ _08082E24: cmp r0, 0x1 bne _08082E40 _08082E38: - bl sub_807F704 + bl BattleSetup_StartWildBattle movs r0, 0x1 b _08082E48 _08082E40: @@ -999,7 +999,7 @@ Special_RockSmashEncounter: @ 8082E54 lsrs r4, r0, 24 cmp r4, 0x1 bne _08082EB0 - bl sub_807F704 + bl BattleSetup_StartWildBattle _08082E9C: ldr r0, _08082EAC @ =gSpecialVar_Result strh r4, [r0] @@ -1079,7 +1079,7 @@ _08082F1C: cmp r0, 0x1 bne _08082F44 _08082F3C: - bl sub_807F78C + bl BattleSetup_StartRoamerBattle movs r0, 0x1 b _08082F6E _08082F44: @@ -1096,7 +1096,7 @@ _08082F44: _08082F58: movs r2, 0 bl sub_8082AEC - bl sub_807F704 + bl BattleSetup_StartWildBattle movs r0, 0x1 b _08082F6E .align 2, 0 @@ -1160,7 +1160,7 @@ sub_8082FB0: @ 8082FB0 bl sub_8082B64 movs r0, 0xC bl IncrementGameStat - bl sub_807F704 + bl BattleSetup_StartWildBattle pop {r4,r5} pop {r0} bx r0 |