diff options
| author | jiangzhengwenjz <jiangzhengwenjzw@qq.com> | 2019-10-17 12:26:01 +0800 |
|---|---|---|
| committer | jiangzhengwenjz <jiangzhengwenjzw@qq.com> | 2019-10-17 12:26:01 +0800 |
| commit | 1862f70466d6047d1585fe2487de5aa4fa1e8324 (patch) | |
| tree | 10a8695853bf02bc692db3f3d3840f8c818aba7d /asm | |
| parent | f03807931fa6451c446dc931cd755c697f7177a4 (diff) | |
thru BattleIntroDrawTrainersOrMonsSprites
Diffstat (limited to 'asm')
| -rw-r--r-- | asm/battle_2.s | 3017 |
1 files changed, 0 insertions, 3017 deletions
diff --git a/asm/battle_2.s b/asm/battle_2.s index 39af417fa..0a734e412 100644 --- a/asm/battle_2.s +++ b/asm/battle_2.s @@ -5,3023 +5,6 @@ .text - 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 @ =gBattleBgTemplates - lsls r1, r2, 2 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 30 - lsrs r0, 30 - b _08011D04 - .align 2, 0 -_08011C90: .4byte gBattleBgTemplates -_08011C94: - ldr r0, _08011CA4 @ =gBattleBgTemplates - lsls r1, r2, 2 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 28 - lsrs r0, 30 - b _08011D04 - .align 2, 0 -_08011CA4: .4byte gBattleBgTemplates -_08011CA8: - ldr r0, _08011CB8 @ =gBattleBgTemplates - lsls r1, r2, 2 - adds r1, r0 - ldrh r0, [r1] - lsls r0, 23 - lsrs r0, 27 - b _08011D04 - .align 2, 0 -_08011CB8: .4byte gBattleBgTemplates -_08011CBC: - ldr r0, _08011CCC @ =gBattleBgTemplates - lsls r1, r2, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - lsls r0, 29 - lsrs r0, 30 - b _08011D04 - .align 2, 0 -_08011CCC: .4byte gBattleBgTemplates -_08011CD0: - ldr r0, _08011CE0 @ =gBattleBgTemplates - lsls r1, r2, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - lsls r0, 28 - lsrs r0, 31 - b _08011D04 - .align 2, 0 -_08011CE0: .4byte gBattleBgTemplates -_08011CE4: - ldr r0, _08011CF4 @ =gBattleBgTemplates - lsls r1, r2, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - lsls r0, 26 - lsrs r0, 30 - b _08011D04 - .align 2, 0 -_08011CF4: .4byte gBattleBgTemplates -_08011CF8: - ldr r0, _08011D08 @ =gBattleBgTemplates - 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 gBattleBgTemplates - thumb_func_end sub_8011C44 - - thumb_func_start TryCorrectShedinjaLanguage -TryCorrectShedinjaLanguage: @ 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 @ =sText_ShedinjaJpnName - 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 sText_ShedinjaJpnName - thumb_func_end TryCorrectShedinjaLanguage - - thumb_func_start SpriteCB_WildMon -SpriteCB_WildMon: @ 8011D64 - push {lr} - sub sp, 0x4 - ldr r1, _08011D8C @ =SpriteCB_MoveWildMonToRight - 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 SpriteCB_MoveWildMonToRight -_08011D90: .4byte 0x00002108 - thumb_func_end SpriteCB_WildMon - - thumb_func_start SpriteCB_MoveWildMonToRight -SpriteCB_MoveWildMonToRight: @ 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 @ =SpriteCB_WildMonShowHealthbox - 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 SpriteCB_WildMonShowHealthbox - thumb_func_end SpriteCB_MoveWildMonToRight - - thumb_func_start SpriteCB_WildMonShowHealthbox -SpriteCB_WildMonShowHealthbox: @ 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 @ =SpriteCallbackDummy2 - 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 SpriteCallbackDummy2 -_08011E20: .4byte 0x00002108 - thumb_func_end SpriteCB_WildMonShowHealthbox - - thumb_func_start SpriteCallbackDummy2 -SpriteCallbackDummy2: @ 8011E24 - bx lr - thumb_func_end SpriteCallbackDummy2 - - 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 @ =SpriteCallbackDummy2 - str r0, [r3, 0x1C] - ldr r0, _08011E9C @ =gUnknown_2022AE8 - str r2, [r0] -_08011E90: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08011E98: .4byte SpriteCallbackDummy2 -_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 @ =SpriteCB_AnimFaintOpponent - 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 SpriteCB_AnimFaintOpponent - thumb_func_end SpriteCB_FaintOpponentMon - - thumb_func_start SpriteCB_AnimFaintOpponent -SpriteCB_AnimFaintOpponent: @ 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 SpriteCB_AnimFaintOpponent - - 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 @ =SpriteCallbackDummy2 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080120C0: .4byte SpriteCallbackDummy2 - 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 @ =SpriteCallbackDummy3 - str r0, [r2, 0x1C] - strh r1, [r2, 0x30] -_080120F4: - pop {r0} - bx r0 - .align 2, 0 -_080120F8: .4byte gIntroSlideFlags -_080120FC: .4byte SpriteCallbackDummy3 - thumb_func_end oac_poke_ally_ - - thumb_func_start sub_8012100 -sub_8012100: @ 8012100 - ldr r1, _08012108 @ =SpriteCallbackDummy3 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_08012108: .4byte SpriteCallbackDummy3 - thumb_func_end sub_8012100 - - thumb_func_start SpriteCallbackDummy3 -SpriteCallbackDummy3: @ 801210C - bx lr - thumb_func_end SpriteCallbackDummy3 - - 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_BounceEffect - 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_BounceEffect -_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_BounceEffect -SpriteCB_BounceEffect: @ 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_BounceEffect - - 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 @ =SpriteCallbackDummy3 - str r0, [r4, 0x1C] -_080123B2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080123B8: .4byte SpriteCallbackDummy3 - 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 BattleStartClearSetData - 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 BattleMainCB1 -BattleMainCB1: @ 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 BattleMainCB1 - - thumb_func_start BattleStartClearSetData -BattleStartClearSetData: @ 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 BattleStartClearSetData - - 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 @ =BattleIntroDrawTrainersOrMonsSprites - 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 BattleIntroDrawTrainersOrMonsSprites -_0801306C: .4byte gBattleCommunication - thumb_func_end BattleIntroPrepareBackgroundSlide - - thumb_func_start BattleIntroDrawTrainersOrMonsSprites -BattleIntroDrawTrainersOrMonsSprites: @ 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 BattleIntroDrawTrainersOrMonsSprites - thumb_func_start BattleIntroDrawPartySummaryScreens BattleIntroDrawPartySummaryScreens: @ 801333C push {r4-r7,lr} |
