diff options
-rw-r--r-- | src/battle/battle_util.c | 4357 |
1 files changed, 179 insertions, 4178 deletions
diff --git a/src/battle/battle_util.c b/src/battle/battle_util.c index 620e0690a..faa395a97 100644 --- a/src/battle/battle_util.c +++ b/src/battle/battle_util.c @@ -22,6 +22,8 @@ #include "constants/species.h" #include "constants/weather.h" +extern u8 gUnknown_02023A14_50; + extern const u8* gBattlescriptCurrInstr; extern u8 gActiveBank; extern u8 gBattleBufferB[4][0x200]; @@ -1683,4066 +1685,6 @@ u8 CastformDataTypeChange(u8 bank) return formChange; } -#if DEBUG -__attribute__((naked)) -u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) -{ - asm("\ - push {r4, r5, r6, r7, lr}\n\ - mov r7, sl\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5, r6, r7}\n\ - add sp, sp, #0xffffffd8\n\ - ldr r4, [sp, #0x48]\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - str r0, [sp, #0x4]\n\ - lsl r1, r1, #0x18\n\ - lsr r1, r1, #0x18\n\ - mov sl, r1\n\ - lsl r2, r2, #0x18\n\ - lsr r6, r2, #0x18\n\ - lsl r3, r3, #0x18\n\ - lsr r3, r3, #0x18\n\ - mov r8, r3\n\ - lsl r4, r4, #0x10\n\ - lsr r4, r4, #0x10\n\ - mov r0, #0x0\n\ - mov r9, r0\n\ - ldr r5, ._718\n\ - ldr r1, ._718 + 4\n\ - ldrb r0, [r5]\n\ - ldrb r1, [r1]\n\ - cmp r0, r1\n\ - bcc ._715 @cond_branch\n\ - mov r1, sl\n\ - strb r1, [r5]\n\ -._715:\n\ - ldrb r0, [r5]\n\ - bl GetBankSide\n\ - lsl r0, r0, #0x18\n\ - cmp r0, #0\n\ - bne ._716 @cond_branch\n\ - ldr r1, ._718 + 8\n\ - ldrb r0, [r5]\n\ - lsl r0, r0, #0x1\n\ - add r0, r0, r1\n\ - ldrh r1, [r0]\n\ - mov r0, #0x64\n\ - mul r1, r1, r0\n\ - ldr r0, ._718 + 12\n\ - b ._717\n\ -._719:\n\ - .align 2, 0\n\ -._718:\n\ - .word gBankAttacker\n\ - .word gNoOfAllBanks\n\ - .word gBattlePartyID\n\ - .word gPlayerParty\n\ -._716:\n\ - ldr r1, ._723\n\ - ldrb r0, [r5]\n\ - lsl r0, r0, #0x1\n\ - add r0, r0, r1\n\ - ldrh r1, [r0]\n\ - mov r0, #0x64\n\ - mul r1, r1, r0\n\ - ldr r0, ._723 + 4\n\ -._717:\n\ - add r7, r1, r0\n\ - ldr r5, ._723 + 8\n\ - ldr r1, ._723 + 12\n\ - ldrb r0, [r5]\n\ - ldrb r1, [r1]\n\ - cmp r0, r1\n\ - bcc ._720 @cond_branch\n\ - mov r2, sl\n\ - strb r2, [r5]\n\ -._720:\n\ - ldrb r0, [r5]\n\ - bl GetBankSide\n\ - lsl r0, r0, #0x18\n\ - cmp r0, #0\n\ - bne ._721 @cond_branch\n\ - ldr r1, ._723\n\ - ldrb r0, [r5]\n\ - lsl r0, r0, #0x1\n\ - add r0, r0, r1\n\ - ldrh r1, [r0]\n\ - mov r0, #0x64\n\ - mul r1, r1, r0\n\ - ldr r0, ._723 + 16\n\ - b ._722\n\ -._724:\n\ - .align 2, 0\n\ -._723:\n\ - .word gBattlePartyID\n\ - .word gEnemyParty\n\ - .word gBankTarget\n\ - .word gNoOfAllBanks\n\ - .word gPlayerParty\n\ -._721:\n\ - ldr r1, ._729\n\ - ldrb r0, [r5]\n\ - lsl r0, r0, #0x1\n\ - add r0, r0, r1\n\ - ldrh r1, [r0]\n\ - mov r0, #0x64\n\ - mul r1, r1, r0\n\ - ldr r0, ._729 + 4\n\ -._722:\n\ - add r5, r1, r0\n\ - add r0, r7, #0\n\ - mov r1, #0xb\n\ - bl GetMonData\n\ - lsl r0, r0, #0x10\n\ - lsr r0, r0, #0x10\n\ - str r0, [sp, #0x8]\n\ - add r0, r7, #0\n\ - mov r1, #0x0\n\ - bl GetMonData\n\ - str r0, [sp, #0x10]\n\ - add r0, r5, #0\n\ - mov r1, #0xb\n\ - bl GetMonData\n\ - lsl r0, r0, #0x10\n\ - lsr r0, r0, #0x10\n\ - str r0, [sp, #0xc]\n\ - add r0, r5, #0\n\ - mov r1, #0x0\n\ - bl GetMonData\n\ - str r0, [sp, #0x14]\n\ - ldr r0, ._729 + 8\n\ - ldrh r1, [r0]\n\ - mov r0, #0x80\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._725 @cond_branch\n\ - bl ._1540\n\ -._725:\n\ - mov r3, r8\n\ - cmp r3, #0\n\ - beq ._727 @cond_branch\n\ - ldr r0, ._729 + 12\n\ - strb r3, [r0]\n\ - mov r8, r0\n\ - b ._728\n\ -._730:\n\ - .align 2, 0\n\ -._729:\n\ - .word gBattlePartyID\n\ - .word gEnemyParty\n\ - .word gBattleTypeFlags\n\ - .word gLastUsedAbility\n\ -._727:\n\ - ldr r2, ._733\n\ - ldr r1, ._733 + 4\n\ - mov r0, #0x58\n\ - mov r5, sl\n\ - mul r5, r5, r0\n\ - add r0, r5, #0\n\ - add r0, r0, r1\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - strb r0, [r2]\n\ - mov r8, r2\n\ -._728:\n\ - cmp r4, #0\n\ - beq ._731 @cond_branch\n\ - add r3, r4, #0\n\ - b ._732\n\ -._734:\n\ - .align 2, 0\n\ -._733:\n\ - .word gLastUsedAbility\n\ - .word gBattleMons\n\ -._731:\n\ - ldr r0, ._737\n\ - ldrh r3, [r0]\n\ -._732:\n\ - ldr r1, ._737 + 4\n\ - ldr r2, ._737 + 8\n\ - add r0, r1, r2\n\ - ldrb r0, [r0]\n\ - add r7, r1, #0\n\ - cmp r0, #0\n\ - beq ._735 @cond_branch\n\ - mov r4, #0x3f\n\ - and r4, r4, r0\n\ - b ._736\n\ -._738:\n\ - .align 2, 0\n\ -._737:\n\ - .word gCurrentMove\n\ - .word +0x2000000\n\ - .word 0x1601c\n\ -._735:\n\ - ldr r1, ._741\n\ - lsl r0, r3, #0x1\n\ - add r0, r0, r3\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r1\n\ - ldrb r4, [r0, #0x2]\n\ -._736:\n\ - ldr r5, [sp, #0x4]\n\ - cmp r5, #0x13\n\ - bls ._739 @cond_branch\n\ - bl ._1534\n\ -._739:\n\ - lsl r0, r5, #0x2\n\ - ldr r1, ._741 + 4\n\ - add r0, r0, r1\n\ - ldr r0, [r0]\n\ - mov pc, r0\n\ -._742:\n\ - .align 2, 0\n\ -._741:\n\ - .word gBattleMoves\n\ - .word ._743\n\ -._743:\n\ - .word ._744\n\ - .word ._745\n\ - .word ._746\n\ - .word ._747\n\ - .word ._748\n\ - .word ._749\n\ - .word ._750\n\ - .word ._751\n\ - .word ._752\n\ - .word ._753\n\ - .word ._754\n\ - .word ._755\n\ - .word ._756\n\ - .word ._757\n\ - .word ._758\n\ - .word ._759\n\ - .word ._760\n\ - .word ._761\n\ - .word ._762\n\ - .word ._763\n\ -._744:\n\ - ldr r2, ._774\n\ - ldr r0, ._774 + 4\n\ - ldrb r1, [r2]\n\ - add r5, r0, #0\n\ - ldrb r0, [r5]\n\ - cmp r1, r0\n\ - bcc ._764 @cond_branch\n\ - mov r1, sl\n\ - strb r1, [r2]\n\ -._764:\n\ - mov r2, r8\n\ - ldrb r0, [r2]\n\ - cmp r0, #0x2d\n\ - bne ._765 @cond_branch\n\ - b ._766\n\ -._765:\n\ - cmp r0, #0x2d\n\ - bgt ._767 @cond_branch\n\ - cmp r0, #0xd\n\ - bne ._768 @cond_branch\n\ - b ._788\n\ -._768:\n\ - cmp r0, #0xd\n\ - bgt ._770 @cond_branch\n\ - cmp r0, #0x2\n\ - bne ._771 @cond_branch\n\ - b ._772\n\ -._771:\n\ - bl ._1534\n\ -._775:\n\ - .align 2, 0\n\ -._774:\n\ - .word gBankAttacker\n\ - .word gNoOfAllBanks\n\ -._770:\n\ - cmp r0, #0x16\n\ - bne ._776 @cond_branch\n\ - b ._777\n\ -._776:\n\ - cmp r0, #0x24\n\ - bne ._778 @cond_branch\n\ - b ._779\n\ -._778:\n\ - bl ._1534\n\ -._767:\n\ - cmp r0, #0x46\n\ - bne ._781 @cond_branch\n\ - b ._782\n\ -._781:\n\ - cmp r0, #0x46\n\ - bgt ._783 @cond_branch\n\ - cmp r0, #0x3b\n\ - bne ._784 @cond_branch\n\ - b ._785\n\ -._784:\n\ - bl ._1534\n\ -._783:\n\ - cmp r0, #0x4d\n\ - bne ._787 @cond_branch\n\ - b ._788\n\ -._787:\n\ - cmp r0, #0xff\n\ - beq ._789 @cond_branch\n\ - bl ._1534\n\ -._789:\n\ - bl GetCurrentWeather\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - sub r0, r0, #0x3\n\ - cmp r0, #0xa\n\ - bhi ._814 @cond_branch\n\ - lsl r0, r0, #0x2\n\ - ldr r1, ._793\n\ - add r0, r0, r1\n\ - ldr r0, [r0]\n\ - mov pc, r0\n\ -._794:\n\ - .align 2, 0\n\ -._793:\n\ - .word ._792\n\ -._792:\n\ - .word ._805\n\ - .word ._814\n\ - .word ._805\n\ - .word ._814\n\ - .word ._814\n\ - .word ._800\n\ - .word ._814\n\ - .word ._814\n\ - .word ._814\n\ - .word ._804\n\ - .word ._805\n\ -._805:\n\ - ldr r2, ._808\n\ - ldrh r1, [r2]\n\ - mov r0, #0x7\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._814 @cond_branch\n\ - mov r0, #0x5\n\ - strh r0, [r2]\n\ - ldr r0, ._808 + 4\n\ - ldr r3, ._808 + 8\n\ - add r2, r0, r3\n\ - mov r1, #0xa\n\ - b ._811\n\ -._809:\n\ - .align 2, 0\n\ -._808:\n\ - .word gBattleWeather\n\ - .word +0x2000000\n\ - .word 0x160a4\n\ -._800:\n\ - ldr r3, ._812\n\ - ldrh r1, [r3]\n\ - mov r2, #0x18\n\ - add r0, r2, #0\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._814 @cond_branch\n\ - strh r2, [r3]\n\ - ldr r0, ._812 + 4\n\ - ldr r3, ._812 + 8\n\ - add r2, r0, r3\n\ - mov r1, #0xc\n\ - b ._811\n\ -._813:\n\ - .align 2, 0\n\ -._812:\n\ - .word gBattleWeather\n\ - .word +0x2000000\n\ - .word 0x160a4\n\ -._804:\n\ - ldr r3, ._818\n\ - ldrh r1, [r3]\n\ - mov r2, #0x60\n\ - add r0, r2, #0\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._814 @cond_branch\n\ - strh r2, [r3]\n\ - ldr r0, ._818 + 4\n\ - ldr r3, ._818 + 8\n\ - add r2, r0, r3\n\ - mov r1, #0xb\n\ -._811:\n\ - strb r1, [r2]\n\ - ldr r5, ._818 + 12\n\ - add r0, r0, r5\n\ - mov r1, sl\n\ - strb r1, [r0]\n\ - mov r0, r9\n\ - add r0, r0, #0x1\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov r9, r0\n\ -._814:\n\ - mov r2, r9\n\ - cmp r2, #0\n\ - bne ._815 @cond_branch\n\ - bl ._1540\n\ -._815:\n\ - bl GetCurrentWeather\n\ - ldr r1, ._818 + 16\n\ - strb r0, [r1, #0x5]\n\ - ldr r0, ._818 + 20\n\ - bl BattleScriptPushCursorAndCallback\n\ - bl ._1534\n\ -._819:\n\ - .align 2, 0\n\ -._818:\n\ - .word gBattleWeather\n\ - .word +0x2000000\n\ - .word 0x160a4\n\ - .word 0x16003\n\ - .word gBattleCommunication\n\ - .word BattleScript_OverworldWeatherStarts\n\ -._772:\n\ - ldr r2, ._823\n\ - ldrh r1, [r2]\n\ - mov r0, #0x4\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._820 @cond_branch\n\ - bl ._1534\n\ -._820:\n\ - mov r0, #0x5\n\ - strh r0, [r2]\n\ - ldr r0, ._823 + 4\n\ - bl BattleScriptPushCursorAndCallback\n\ - ldr r0, ._823 + 8\n\ - ldr r3, ._823 + 12\n\ - add r0, r0, r3\n\ - mov r5, sl\n\ - strb r5, [r0]\n\ - bl ._1392\n\ -._824:\n\ - .align 2, 0\n\ -._823:\n\ - .word gBattleWeather\n\ - .word BattleScript_DrizzleActivates\n\ - .word +0x2000000\n\ - .word 0x16003\n\ -._766:\n\ - ldr r2, ._828\n\ - ldrh r1, [r2]\n\ - mov r0, #0x10\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._825 @cond_branch\n\ - bl ._1534\n\ -._825:\n\ - mov r0, #0x18\n\ - strh r0, [r2]\n\ - ldr r0, ._828 + 4\n\ - bl BattleScriptPushCursorAndCallback\n\ - ldr r0, ._828 + 8\n\ - ldr r1, ._828 + 12\n\ - add r0, r0, r1\n\ - mov r2, sl\n\ - strb r2, [r0]\n\ - bl ._1392\n\ -._829:\n\ - .align 2, 0\n\ -._828:\n\ - .word gBattleWeather\n\ - .word BattleScript_SandstreamActivates\n\ - .word +0x2000000\n\ - .word 0x16003\n\ -._782:\n\ - ldr r2, ._833\n\ - ldrh r1, [r2]\n\ - mov r0, #0x40\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._830 @cond_branch\n\ - bl ._1534\n\ -._830:\n\ - mov r0, #0x60\n\ - strh r0, [r2]\n\ - ldr r0, ._833 + 4\n\ - bl BattleScriptPushCursorAndCallback\n\ - ldr r0, ._833 + 8\n\ - ldr r3, ._833 + 12\n\ - add r0, r0, r3\n\ - mov r5, sl\n\ - strb r5, [r0]\n\ - bl ._1392\n\ -._834:\n\ - .align 2, 0\n\ -._833:\n\ - .word gBattleWeather\n\ - .word BattleScript_DroughtActivates\n\ - .word +0x2000000\n\ - .word 0x16003\n\ -._777:\n\ - ldr r0, ._838\n\ - mov r1, sl\n\ - lsl r2, r1, #0x2\n\ - add r1, r2, r1\n\ - lsl r1, r1, #0x2\n\ - add r3, r1, r0\n\ - ldrb r0, [r3]\n\ - lsl r0, r0, #0x1c\n\ - cmp r0, #0\n\ - bge ._835 @cond_branch\n\ - bl ._1534\n\ -._835:\n\ - ldr r1, ._838 + 4\n\ - add r1, r2, r1\n\ - ldr r0, [r1]\n\ - mov r2, #0x80\n\ - lsl r2, r2, #0xc\n\ - orr r0, r0, r2\n\ - str r0, [r1]\n\ - ldrb r0, [r3]\n\ - mov r1, #0x8\n\ - b ._837\n\ -._839:\n\ - .align 2, 0\n\ -._838:\n\ - .word gSpecialStatuses\n\ - .word gStatuses3\n\ -._785:\n\ - mov r0, sl\n\ - bl CastformDataTypeChange\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov r9, r0\n\ - cmp r0, #0\n\ - bne ._840 @cond_branch\n\ - bl ._1540\n\ -._840:\n\ - ldr r0, ._843\n\ - bl BattleScriptPushCursorAndCallback\n\ - ldr r0, ._843 + 4\n\ - ldr r2, ._843 + 8\n\ - add r1, r0, r2\n\ - mov r3, sl\n\ - strb r3, [r1]\n\ - mov r1, r9\n\ - sub r1, r1, #0x1\n\ - ldr r5, ._843 + 12\n\ - add r0, r0, r5\n\ - strb r1, [r0]\n\ - bl ._1534\n\ -._844:\n\ - .align 2, 0\n\ -._843:\n\ - .word BattleScript_CastformChange\n\ - .word +0x2000000\n\ - .word 0x16003\n\ - .word 0x1609b\n\ -._779:\n\ - ldr r0, ._848\n\ - mov r1, sl\n\ - lsl r2, r1, #0x2\n\ - add r1, r2, r1\n\ - lsl r1, r1, #0x2\n\ - add r3, r1, r0\n\ - ldrb r0, [r3]\n\ - lsl r0, r0, #0x1b\n\ - cmp r0, #0\n\ - bge ._845 @cond_branch\n\ - bl ._1534\n\ -._845:\n\ - ldr r1, ._848 + 4\n\ - add r1, r2, r1\n\ - ldr r0, [r1]\n\ - mov r2, #0x80\n\ - lsl r2, r2, #0xd\n\ - orr r0, r0, r2\n\ - str r0, [r1]\n\ - ldrb r0, [r3]\n\ - mov r1, #0x10\n\ -._837:\n\ - orr r0, r0, r1\n\ - strb r0, [r3]\n\ - bl ._1534\n\ -._849:\n\ - .align 2, 0\n\ -._848:\n\ - .word gSpecialStatuses\n\ - .word gStatuses3\n\ -._788:\n\ - mov r6, #0x0\n\ - ldrb r5, [r5]\n\ - cmp r6, r5\n\ - bcc ._854 @cond_branch\n\ - bl ._1534\n\ -._854:\n\ - add r0, r6, #0\n\ - bl CastformDataTypeChange\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov r9, r0\n\ - cmp r0, #0\n\ - beq ._852 @cond_branch\n\ - bl ._853\n\ -._852:\n\ - add r0, r6, #1\n\ - lsl r0, r0, #0x18\n\ - lsr r6, r0, #0x18\n\ - ldr r0, ._856\n\ - ldrb r0, [r0]\n\ - cmp r6, r0\n\ - bcc ._854 @cond_branch\n\ - bl ._1534\n\ -._857:\n\ - .align 2, 0\n\ -._856:\n\ - .word gNoOfAllBanks\n\ -._745:\n\ - ldr r2, ._865\n\ - mov r0, #0x58\n\ - mov r1, sl\n\ - mul r1, r1, r0\n\ - add r4, r1, r2\n\ - ldrh r0, [r4, #0x28]\n\ - cmp r0, #0\n\ - bne ._858 @cond_branch\n\ - bl ._1534\n\ -._858:\n\ - ldr r0, ._865 + 4\n\ - mov r3, sl\n\ - strb r3, [r0]\n\ - mov r3, r8\n\ - ldrb r5, [r3]\n\ - cmp r5, #0x2c\n\ - beq ._860 @cond_branch\n\ - cmp r5, #0x2c\n\ - bgt ._861 @cond_branch\n\ - cmp r5, #0x3\n\ - bne ._862 @cond_branch\n\ - b ._863\n\ -._862:\n\ - bl ._1534\n\ -._866:\n\ - .align 2, 0\n\ -._865:\n\ - .word gBattleMons\n\ - .word gBankAttacker\n\ -._861:\n\ - cmp r5, #0x36\n\ - bne ._867 @cond_branch\n\ - b ._868\n\ -._867:\n\ - cmp r5, #0x3d\n\ - beq ._869 @cond_branch\n\ - bl ._1534\n\ -._860:\n\ - mov r0, #0x0\n\ - str r0, [sp]\n\ - mov r0, #0x13\n\ - mov r1, #0x0\n\ - mov r2, #0xd\n\ - mov r3, #0x0\n\ - bl AbilityBattleEffects\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - cmp r0, #0\n\ - beq ._871 @cond_branch\n\ - bl ._1534\n\ -._871:\n\ - str r0, [sp]\n\ - mov r0, #0x13\n\ - mov r1, #0x0\n\ - mov r2, #0x4d\n\ - mov r3, #0x0\n\ - bl AbilityBattleEffects\n\ - lsl r0, r0, #0x18\n\ - cmp r0, #0\n\ - beq ._873 @cond_branch\n\ - bl ._1534\n\ -._873:\n\ - ldr r0, ._881\n\ - ldrh r1, [r0]\n\ - mov r0, #0x7\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._875 @cond_branch\n\ - bl ._1534\n\ -._875:\n\ - ldrh r0, [r4, #0x2c]\n\ - ldrh r1, [r4, #0x28]\n\ - cmp r0, r1\n\ - bhi ._877 @cond_branch\n\ - bl ._1534\n\ -._877:\n\ - mov r2, r8\n\ - strb r5, [r2]\n\ - ldr r0, ._881 + 4\n\ - bl BattleScriptPushCursorAndCallback\n\ - ldr r1, ._881 + 8\n\ - ldrh r0, [r4, #0x2c]\n\ - lsr r0, r0, #0x4\n\ - str r0, [r1]\n\ - cmp r0, #0\n\ - bne ._879 @cond_branch\n\ - mov r0, #0x1\n\ - str r0, [r1]\n\ -._879:\n\ - ldr r0, [r1]\n\ - neg r0, r0\n\ - str r0, [r1]\n\ - bl ._1392\n\ -._882:\n\ - .align 2, 0\n\ -._881:\n\ - .word gBattleWeather\n\ - .word BattleScript_RainDishActivates\n\ - .word gBattleMoveDamage\n\ -._869:\n\ - add r0, r2, #0\n\ - add r0, r0, #0x4c\n\ - add r5, r1, r0\n\ - ldrb r0, [r5]\n\ - cmp r0, #0\n\ - bne ._883 @cond_branch\n\ - bl ._1534\n\ -._883:\n\ - bl Random\n\ - lsl r0, r0, #0x10\n\ - lsr r0, r0, #0x10\n\ - mov r1, #0x3\n\ - bl __umodsi3\n\ - lsl r0, r0, #0x10\n\ - lsr r4, r0, #0x10\n\ - cmp r4, #0\n\ - beq ._885 @cond_branch\n\ - bl ._1534\n\ -._885:\n\ - ldr r0, [r5]\n\ - mov r1, #0x88\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._887 @cond_branch\n\ - ldr r0, ._893\n\ - ldr r1, ._893 + 4\n\ - bl StringCopy\n\ -._887:\n\ - ldr r0, [r5]\n\ - mov r1, #0x7\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._888 @cond_branch\n\ - ldr r0, ._893\n\ - ldr r1, ._893 + 8\n\ - bl StringCopy\n\ -._888:\n\ - ldr r0, [r5]\n\ - mov r1, #0x40\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._889 @cond_branch\n\ - ldr r0, ._893\n\ - ldr r1, ._893 + 12\n\ - bl StringCopy\n\ -._889:\n\ - ldr r0, [r5]\n\ - mov r1, #0x10\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._890 @cond_branch\n\ - ldr r0, ._893\n\ - ldr r1, ._893 + 16\n\ - bl StringCopy\n\ -._890:\n\ - ldr r0, [r5]\n\ - mov r1, #0x20\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._891 @cond_branch\n\ - ldr r0, ._893\n\ - ldr r1, ._893 + 20\n\ - bl StringCopy\n\ -._891:\n\ - str r4, [r5]\n\ - ldr r0, ._893 + 24\n\ - ldr r4, ._893 + 28\n\ - mov r3, sl\n\ - strb r3, [r4]\n\ - ldr r1, ._893 + 32\n\ - add r0, r0, r1\n\ - strb r3, [r0]\n\ - ldr r0, ._893 + 36\n\ - bl BattleScriptPushCursorAndCallback\n\ - str r5, [sp]\n\ - mov r0, #0x0\n\ - mov r1, #0x28\n\ - mov r2, #0x0\n\ - mov r3, #0x4\n\ - bl EmitSetMonData\n\ - ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ - bl ._1392\n\ -._894:\n\ - .align 2, 0\n\ -._893:\n\ - .word gBattleTextBuff1\n\ - .word gStatusConditionString_PoisonJpn\n\ - .word gStatusConditionString_SleepJpn\n\ - .word gStatusConditionString_ParalysisJpn\n\ - .word gStatusConditionString_BurnJpn\n\ - .word gStatusConditionString_IceJpn\n\ - .word +0x2000000\n\ - .word gActiveBank\n\ - .word 0x16003\n\ - .word BattleScript_ShedSkinActivates\n\ -._863:\n\ - ldrb r2, [r4, #0x1b]\n\ - mov r0, #0x1b\n\ - ldsb r0, [r4, r0]\n\ - cmp r0, #0xb\n\ - ble ._895 @cond_branch\n\ - bl ._1534\n\ -._895:\n\ - ldr r0, ._900\n\ - mov r3, sl\n\ - lsl r1, r3, #0x3\n\ - sub r1, r1, r3\n\ - lsl r1, r1, #0x2\n\ - add r1, r1, r0\n\ - ldrb r0, [r1, #0x16]\n\ - cmp r0, #0x2\n\ - bne ._897 @cond_branch\n\ - bl ._1534\n\ -._897:\n\ - add r0, r2, #1\n\ - mov r2, #0x0\n\ - strb r0, [r4, #0x1b]\n\ - ldr r5, ._900 + 4\n\ - add r1, r7, r5\n\ - mov r0, #0x11\n\ - strb r0, [r1]\n\ - ldr r1, ._900 + 8\n\ - add r0, r7, r1\n\ - strb r2, [r0]\n\ - ldr r0, ._900 + 12\n\ - bl BattleScriptPushCursorAndCallback\n\ - ldr r2, ._900 + 16\n\ - add r0, r7, r2\n\ - mov r3, sl\n\ - strb r3, [r0]\n\ - bl ._1392\n\ -._901:\n\ - .align 2, 0\n\ -._900:\n\ - .word gDisableStructs\n\ - .word 0x160a4\n\ - .word 0x160a5\n\ - .word BattleScript_SpeedBoostActivates\n\ - .word 0x16003\n\ -._868:\n\ - ldr r2, ._903\n\ - ldrb r0, [r0]\n\ - lsl r1, r0, #0x3\n\ - sub r1, r1, r0\n\ - lsl r1, r1, #0x2\n\ - add r1, r1, r2\n\ - ldrb r3, [r1, #0x18]\n\ - lsl r0, r3, #0x1f\n\ - lsr r0, r0, #0x1f\n\ - mov r2, #0x1\n\ - eor r2, r2, r0\n\ - mov r0, #0x2\n\ - neg r0, r0\n\ - and r0, r0, r3\n\ - orr r0, r0, r2\n\ - strb r0, [r1, #0x18]\n\ - bl ._1534\n\ -._904:\n\ - .align 2, 0\n\ -._903:\n\ - .word gDisableStructs\n\ -._746:\n\ - mov r5, r8\n\ - ldrb r0, [r5]\n\ - cmp r0, #0x2b\n\ - beq ._905 @cond_branch\n\ - bl ._1534\n\ -._905:\n\ - mov r4, #0x0\n\ - ldr r0, ._917\n\ - ldrh r2, [r0]\n\ - ldr r5, ._917 + 4\n\ - add r1, r0, #0\n\ - cmp r2, r5\n\ - bne ._907 @cond_branch\n\ - bl ._1534\n\ -._907:\n\ - cmp r2, r3\n\ - beq ._909 @cond_branch\n\ - add r2, r1, #0\n\ -._912:\n\ - add r2, r2, #0x2\n\ - add r4, r4, #0x1\n\ - ldrh r0, [r2]\n\ - cmp r0, r5\n\ - bne ._910 @cond_branch\n\ - bl ._1534\n\ -._910:\n\ - cmp r0, r3\n\ - bne ._912 @cond_branch\n\ -._909:\n\ - lsl r0, r4, #0x1\n\ - add r0, r0, r1\n\ - ldrh r1, [r0]\n\ - ldr r0, ._917 + 4\n\ - cmp r1, r0\n\ - bne ._913 @cond_branch\n\ - bl ._1534\n\ -._913:\n\ - ldr r1, ._917 + 8\n\ - ldr r0, ._917 + 12\n\ - ldrb r2, [r0]\n\ - mov r0, #0x58\n\ - mul r0, r0, r2\n\ - add r1, r1, #0x50\n\ - add r0, r0, r1\n\ - ldr r0, [r0]\n\ - mov r1, #0x80\n\ - lsl r1, r1, #0x5\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._915 @cond_branch\n\ - ldr r0, ._917 + 16\n\ - ldr r1, [r0]\n\ - mov r2, #0x80\n\ - lsl r2, r2, #0x4\n\ - orr r1, r1, r2\n\ - str r1, [r0]\n\ -._915:\n\ - ldr r1, ._917 + 20\n\ - ldr r0, ._917 + 24\n\ - str r0, [r1]\n\ - mov r0, #0x1\n\ - mov r9, r0\n\ - bl ._916\n\ -._918:\n\ - .align 2, 0\n\ -._917:\n\ - .word gSoundMovesTable\n\ - .word 0xffff\n\ - .word gBattleMons\n\ - .word gBankAttacker\n\ - .word gHitMarker\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_SoundproofProtected\n\ -._747:\n\ - cmp r3, #0\n\ - bne ._919 @cond_branch\n\ - bl ._1534\n\ -._919:\n\ - mov r1, r8\n\ - ldrb r0, [r1]\n\ - cmp r0, #0xb\n\ - beq ._921 @cond_branch\n\ - cmp r0, #0xb\n\ - bgt ._922 @cond_branch\n\ - cmp r0, #0xa\n\ - beq ._923 @cond_branch\n\ - b ._956\n\ -._922:\n\ - cmp r0, #0x12\n\ - beq ._925 @cond_branch\n\ - b ._956\n\ -._923:\n\ - cmp r4, #0xd\n\ - beq ._927 @cond_branch\n\ - b ._956\n\ -._927:\n\ - ldr r0, ._933\n\ - lsl r1, r3, #0x1\n\ - add r1, r1, r3\n\ - lsl r1, r1, #0x2\n\ - add r1, r1, r0\n\ - ldrb r0, [r1, #0x1]\n\ - cmp r0, #0\n\ - bne ._929 @cond_branch\n\ - b ._956\n\ -._929:\n\ - ldr r1, ._933 + 4\n\ - ldr r0, ._933 + 8\n\ - ldrb r0, [r0]\n\ - lsl r0, r0, #0x4\n\ - add r0, r0, r1\n\ - ldrb r0, [r0, #0x2]\n\ - lsl r0, r0, #0x1c\n\ - cmp r0, #0\n\ - bge ._931 @cond_branch\n\ - ldr r1, ._933 + 12\n\ - ldr r0, ._933 + 16\n\ - b ._932\n\ -._934:\n\ - .align 2, 0\n\ -._933:\n\ - .word gBattleMoves\n\ - .word gProtectStructs\n\ - .word gBankAttacker\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_MoveHPDrain\n\ -._931:\n\ - ldr r1, ._936\n\ - ldr r0, ._936 + 4\n\ -._932:\n\ - str r0, [r1]\n\ - mov r2, #0x1\n\ - b ._935\n\ -._937:\n\ - .align 2, 0\n\ -._936:\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_MoveHPDrain_PPLoss\n\ -._921:\n\ - cmp r4, #0xb\n\ - beq ._938 @cond_branch\n\ - b ._956\n\ -._938:\n\ - ldr r0, ._944\n\ - lsl r1, r3, #0x1\n\ - add r1, r1, r3\n\ - lsl r1, r1, #0x2\n\ - add r1, r1, r0\n\ - ldrb r0, [r1, #0x1]\n\ - cmp r0, #0\n\ - bne ._940 @cond_branch\n\ - b ._956\n\ -._940:\n\ - ldr r1, ._944 + 4\n\ - ldr r0, ._944 + 8\n\ - ldrb r0, [r0]\n\ - lsl r0, r0, #0x4\n\ - add r0, r0, r1\n\ - ldrb r0, [r0, #0x2]\n\ - lsl r0, r0, #0x1c\n\ - cmp r0, #0\n\ - bge ._942 @cond_branch\n\ - ldr r1, ._944 + 12\n\ - ldr r0, ._944 + 16\n\ - b ._943\n\ -._945:\n\ - .align 2, 0\n\ -._944:\n\ - .word gBattleMoves\n\ - .word gProtectStructs\n\ - .word gBankAttacker\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_MoveHPDrain\n\ -._942:\n\ - ldr r1, ._947\n\ - ldr r0, ._947 + 4\n\ -._943:\n\ - str r0, [r1]\n\ - mov r3, #0x1\n\ - mov r9, r3\n\ - b ._956\n\ -._948:\n\ - .align 2, 0\n\ -._947:\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_MoveHPDrain_PPLoss\n\ -._925:\n\ - cmp r4, #0xa\n\ - bne ._956 @cond_branch\n\ - ldr r1, ._954\n\ - mov r0, #0x58\n\ - mov r5, sl\n\ - mul r5, r5, r0\n\ - add r0, r5, #0\n\ - add r1, r1, #0x4c\n\ - add r0, r0, r1\n\ - ldr r0, [r0]\n\ - mov r1, #0x20\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._956 @cond_branch\n\ - ldr r2, ._954 + 4\n\ - mov r0, sl\n\ - lsl r1, r0, #0x2\n\ - add r0, r1, r2\n\ - ldr r3, [r0]\n\ - mov r4, #0x1\n\ - and r3, r3, r4\n\ - add r5, r1, #0\n\ - cmp r3, #0\n\ - bne ._951 @cond_branch\n\ - ldr r0, ._954 + 8\n\ - strb r3, [r0, #0x5]\n\ - ldr r1, ._954 + 12\n\ - ldr r0, ._954 + 16\n\ - ldrb r0, [r0]\n\ - lsl r0, r0, #0x4\n\ - add r0, r0, r1\n\ - ldrb r0, [r0, #0x2]\n\ - lsl r0, r0, #0x1c\n\ - cmp r0, #0\n\ - bge ._952 @cond_branch\n\ - ldr r1, ._954 + 20\n\ - ldr r0, ._954 + 24\n\ - b ._953\n\ -._955:\n\ - .align 2, 0\n\ -._954:\n\ - .word gBattleMons\n\ - .word +0x2017100\n\ - .word gBattleCommunication\n\ - .word gProtectStructs\n\ - .word gBankAttacker\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_FlashFireBoost\n\ -._952:\n\ - ldr r1, ._957\n\ - ldr r0, ._957 + 4\n\ -._953:\n\ - str r0, [r1]\n\ - add r0, r5, r2\n\ - ldr r1, [r0]\n\ - mov r2, #0x1\n\ - orr r1, r1, r2\n\ - str r1, [r0]\n\ - mov r1, #0x2\n\ - mov r9, r1\n\ - b ._956\n\ -._958:\n\ - .align 2, 0\n\ -._957:\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_FlashFireBoost_PPLoss\n\ -._951:\n\ - ldr r0, ._961\n\ - strb r4, [r0, #0x5]\n\ - ldr r1, ._961 + 4\n\ - ldr r0, ._961 + 8\n\ - ldrb r0, [r0]\n\ - lsl r0, r0, #0x4\n\ - add r0, r0, r1\n\ - ldrb r0, [r0, #0x2]\n\ - lsl r0, r0, #0x1c\n\ - cmp r0, #0\n\ - bge ._959 @cond_branch\n\ - ldr r1, ._961 + 12\n\ - ldr r0, ._961 + 16\n\ - b ._960\n\ -._962:\n\ - .align 2, 0\n\ -._961:\n\ - .word gBattleCommunication\n\ - .word gProtectStructs\n\ - .word gBankAttacker\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_FlashFireBoost\n\ -._959:\n\ - ldr r1, ._968\n\ - ldr r0, ._968 + 4\n\ -._960:\n\ - str r0, [r1]\n\ - mov r2, #0x2\n\ -._935:\n\ - mov r9, r2\n\ -._956:\n\ - mov r3, r9\n\ - cmp r3, #0x1\n\ - beq ._963 @cond_branch\n\ - bl ._1534\n\ -._963:\n\ - ldr r1, ._968 + 8\n\ - mov r0, #0x58\n\ - mov r5, sl\n\ - mul r5, r5, r0\n\ - add r0, r5, #0\n\ - add r1, r0, r1\n\ - ldrh r0, [r1, #0x2c]\n\ - ldrh r2, [r1, #0x28]\n\ - cmp r0, r2\n\ - bne ._965 @cond_branch\n\ - ldr r1, ._968 + 12\n\ - ldr r0, ._968 + 16\n\ - ldrb r0, [r0]\n\ - lsl r0, r0, #0x4\n\ - add r0, r0, r1\n\ - ldrb r0, [r0, #0x2]\n\ - lsl r0, r0, #0x1c\n\ - cmp r0, #0\n\ - bge ._966 @cond_branch\n\ - ldr r1, ._968\n\ - ldr r0, ._968 + 20\n\ - str r0, [r1]\n\ - bl ._1534\n\ -._969:\n\ - .align 2, 0\n\ -._968:\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_FlashFireBoost_PPLoss\n\ - .word gBattleMons\n\ - .word gProtectStructs\n\ - .word gBankAttacker\n\ - .word BattleScript_MoveHPDrain_FullHP\n\ -._966:\n\ - ldr r1, ._971\n\ - ldr r0, ._971 + 4\n\ - str r0, [r1]\n\ - bl ._1534\n\ -._972:\n\ - .align 2, 0\n\ -._971:\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_MoveHPDrain_FullHP_PPLoss\n\ -._965:\n\ - ldr r2, ._975\n\ - ldrh r0, [r1, #0x2c]\n\ - lsr r0, r0, #0x2\n\ - str r0, [r2]\n\ - cmp r0, #0\n\ - bne ._973 @cond_branch\n\ - mov r3, r9\n\ - str r3, [r2]\n\ -._973:\n\ - ldr r0, [r2]\n\ - neg r0, r0\n\ - str r0, [r2]\n\ - bl ._1534\n\ -._976:\n\ - .align 2, 0\n\ -._975:\n\ - .word gBattleMoveDamage\n\ -._748:\n\ - mov r5, r8\n\ - ldrb r0, [r5]\n\ - sub r0, r0, #0x9\n\ - cmp r0, #0x2f\n\ - bls ._977 @cond_branch\n\ - bl ._1534\n\ -._977:\n\ - lsl r0, r0, #0x2\n\ - ldr r1, ._980\n\ - add r0, r0, r1\n\ - ldr r0, [r0]\n\ - mov pc, r0\n\ -._981:\n\ - .align 2, 0\n\ -._980:\n\ - .word ._979\n\ -._979:\n\ - .word ._982\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._989\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._997\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1000\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1011\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1022\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1534\n\ - .word ._1029\n\ -._989:\n\ - ldr r0, ._1046\n\ - ldrb r1, [r0]\n\ - mov r0, #0x29\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1030 @cond_branch\n\ - bl ._1534\n\ -._1030:\n\ - cmp r3, #0xa5\n\ - bne ._1032 @cond_branch\n\ - bl ._1534\n\ -._1032:\n\ - ldr r0, ._1046 + 4\n\ - lsl r1, r3, #0x1\n\ - add r1, r1, r3\n\ - lsl r1, r1, #0x2\n\ - add r1, r1, r0\n\ - ldrb r0, [r1, #0x1]\n\ - cmp r0, #0\n\ - bne ._1034 @cond_branch\n\ - bl ._1534\n\ -._1034:\n\ - ldr r2, ._1046 + 8\n\ - ldr r0, ._1046 + 12\n\ - ldrb r1, [r0]\n\ - lsl r0, r1, #0x2\n\ - add r0, r0, r1\n\ - lsl r1, r0, #0x2\n\ - add r0, r2, #0\n\ - add r0, r0, #0x8\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1037 @cond_branch\n\ - add r0, r2, #0\n\ - add r0, r0, #0xc\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1037 @cond_branch\n\ - bl ._1534\n\ -._1037:\n\ - ldr r1, ._1046 + 16\n\ - mov r0, #0x58\n\ - mov r2, sl\n\ - mul r2, r2, r0\n\ - add r0, r2, #0\n\ - add r1, r0, r1\n\ - add r3, r1, #0\n\ - add r3, r3, #0x21\n\ - ldrb r0, [r3]\n\ - cmp r0, r4\n\ - bne ._1039 @cond_branch\n\ - bl ._1534\n\ -._1039:\n\ - add r2, r1, #0\n\ - add r2, r2, #0x22\n\ - ldrb r0, [r2]\n\ - cmp r0, r4\n\ - bne ._1041 @cond_branch\n\ - bl ._1534\n\ -._1041:\n\ - ldrh r0, [r1, #0x28]\n\ - cmp r0, #0\n\ - bne ._1043 @cond_branch\n\ - bl ._1534\n\ -._1043:\n\ - strb r4, [r3]\n\ - strb r4, [r2]\n\ - ldr r1, ._1046 + 20\n\ - mov r0, #0xfd\n\ - strb r0, [r1]\n\ - mov r0, #0x3\n\ - strb r0, [r1, #0x1]\n\ - strb r4, [r1, #0x2]\n\ - mov r0, #0xff\n\ - strb r0, [r1, #0x3]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, ._1046 + 24\n\ - ldr r0, ._1046 + 28\n\ - str r0, [r1]\n\ - bl ._1392\n\ -._1047:\n\ - .align 2, 0\n\ -._1046:\n\ - .word gBattleMoveFlags\n\ - .word gBattleMoves\n\ - .word gSpecialStatuses\n\ - .word gBankTarget\n\ - .word gBattleMons\n\ - .word gBattleTextBuff1\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_ColorChangeActivates\n\ -._997:\n\ - ldr r0, ._1061\n\ - ldrb r1, [r0]\n\ - mov r0, #0x29\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1048 @cond_branch\n\ - bl ._1534\n\ -._1048:\n\ - ldr r1, ._1061 + 4\n\ - ldr r0, ._1061 + 8\n\ - ldrb r2, [r0]\n\ - mov r0, #0x58\n\ - mul r0, r0, r2\n\ - add r4, r0, r1\n\ - ldrh r0, [r4, #0x28]\n\ - cmp r0, #0\n\ - bne ._1050 @cond_branch\n\ - bl ._1534\n\ -._1050:\n\ - ldr r0, ._1061 + 12\n\ - lsl r1, r2, #0x4\n\ - add r1, r1, r0\n\ - ldrb r0, [r1, #0x1]\n\ - lsl r0, r0, #0x1f\n\ - cmp r0, #0\n\ - beq ._1052 @cond_branch\n\ - bl ._1534\n\ -._1052:\n\ - ldr r2, ._1061 + 16\n\ - ldr r0, ._1061 + 20\n\ - ldrb r1, [r0]\n\ - lsl r0, r1, #0x2\n\ - add r0, r0, r1\n\ - lsl r1, r0, #0x2\n\ - add r0, r2, #0\n\ - add r0, r0, #0x8\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1055 @cond_branch\n\ - add r0, r2, #0\n\ - add r0, r0, #0xc\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1055 @cond_branch\n\ - bl ._1534\n\ -._1055:\n\ - ldr r1, ._1061 + 24\n\ - lsl r0, r3, #0x1\n\ - add r0, r0, r3\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r1\n\ - ldrb r1, [r0, #0x8]\n\ - mov r2, #0x1\n\ - add r0, r2, #0\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1057 @cond_branch\n\ - bl ._1534\n\ -._1057:\n\ - ldr r1, ._1061 + 28\n\ - ldrh r0, [r4, #0x2c]\n\ - lsr r0, r0, #0x4\n\ - str r0, [r1]\n\ - cmp r0, #0\n\ - bne ._1059 @cond_branch\n\ - str r2, [r1]\n\ -._1059:\n\ - bl BattleScriptPushCursor\n\ - ldr r1, ._1061 + 32\n\ - ldr r0, ._1061 + 36\n\ - str r0, [r1]\n\ - bl ._1392\n\ -._1062:\n\ - .align 2, 0\n\ -._1061:\n\ - .word gBattleMoveFlags\n\ - .word gBattleMons\n\ - .word gBankAttacker\n\ - .word gProtectStructs\n\ - .word gSpecialStatuses\n\ - .word gBankTarget\n\ - .word gBattleMoves\n\ - .word gBattleMoveDamage\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_RoughSkinActivates\n\ -._1000:\n\ - ldr r0, ._1078\n\ - ldrb r1, [r0]\n\ - mov r0, #0x4\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1063 @cond_branch\n\ - ldr r0, ._1078 + 4\n\ - ldrb r1, [r0]\n\ - mov r0, #0x29\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1064 @cond_branch\n\ - bl ._1534\n\ -._1064:\n\ - ldr r1, ._1078 + 8\n\ - ldr r0, ._1078 + 12\n\ - ldrb r2, [r0]\n\ - mov r0, #0x58\n\ - mul r0, r0, r2\n\ - add r0, r0, r1\n\ - ldrh r0, [r0, #0x28]\n\ - cmp r0, #0\n\ - bne ._1066 @cond_branch\n\ - bl ._1534\n\ -._1066:\n\ - ldr r0, ._1078 + 16\n\ - lsl r1, r2, #0x4\n\ - add r1, r1, r0\n\ - ldrb r0, [r1, #0x1]\n\ - lsl r0, r0, #0x1f\n\ - cmp r0, #0\n\ - beq ._1068 @cond_branch\n\ - bl ._1534\n\ -._1068:\n\ - ldr r2, ._1078 + 20\n\ - ldr r0, ._1078 + 24\n\ - ldrb r1, [r0]\n\ - lsl r0, r1, #0x2\n\ - add r0, r0, r1\n\ - lsl r1, r0, #0x2\n\ - add r0, r2, #0\n\ - add r0, r0, #0x8\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1071 @cond_branch\n\ - add r0, r2, #0\n\ - add r0, r0, #0xc\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1071 @cond_branch\n\ - bl ._1534\n\ -._1071:\n\ - ldr r1, ._1078 + 28\n\ - lsl r0, r3, #0x1\n\ - add r0, r0, r3\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r1\n\ - ldrb r1, [r0, #0x8]\n\ - mov r0, #0x1\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1073 @cond_branch\n\ - bl ._1534\n\ -._1073:\n\ - ldr r5, ._1078 + 32\n\ - mov r4, #0x3\n\ -._1075:\n\ - bl Random\n\ - and r0, r0, r4\n\ - strb r0, [r5, #0x3]\n\ - cmp r0, #0\n\ - beq ._1075 @cond_branch\n\ - ldr r1, ._1078 + 32\n\ - ldrb r0, [r1, #0x3]\n\ - cmp r0, #0x3\n\ - bne ._1076 @cond_branch\n\ - add r0, r0, #0x2\n\ - strb r0, [r1, #0x3]\n\ -._1076:\n\ - ldrb r0, [r1, #0x3]\n\ - add r0, r0, #0x40\n\ - strb r0, [r1, #0x3]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, ._1078 + 36\n\ - ldr r0, ._1078 + 40\n\ - str r0, [r1]\n\ - ldr r2, ._1078 + 44\n\ - ldr r0, [r2]\n\ - mov r1, #0x80\n\ - lsl r1, r1, #0x6\n\ - orr r0, r0, r1\n\ - str r0, [r2]\n\ - bl ._1392\n\ -._1079:\n\ - .align 2, 0\n\ -._1078:\n\ - .word gUnknown_02023A14_50\n\ - .word gBattleMoveFlags\n\ - .word gBattleMons\n\ - .word gBankAttacker\n\ - .word gProtectStructs\n\ - .word gSpecialStatuses\n\ - .word gBankTarget\n\ - .word gBattleMoves\n\ - .word gBattleCommunication\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_ApplySecondaryEffect\n\ - .word gHitMarker\n\ -._1063:\n\ - ldr r0, ._1096\n\ - ldrb r1, [r0]\n\ - mov r0, #0x29\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1080 @cond_branch\n\ - bl ._1534\n\ -._1080:\n\ - ldr r1, ._1096 + 4\n\ - ldr r0, ._1096 + 8\n\ - ldrb r2, [r0]\n\ - mov r0, #0x58\n\ - mul r0, r0, r2\n\ - add r0, r0, r1\n\ - ldrh r0, [r0, #0x28]\n\ - cmp r0, #0\n\ - bne ._1082 @cond_branch\n\ - bl ._1534\n\ -._1082:\n\ - ldr r0, ._1096 + 12\n\ - lsl r1, r2, #0x4\n\ - add r1, r1, r0\n\ - ldrb r0, [r1, #0x1]\n\ - lsl r0, r0, #0x1f\n\ - cmp r0, #0\n\ - beq ._1084 @cond_branch\n\ - bl ._1534\n\ -._1084:\n\ - ldr r2, ._1096 + 16\n\ - ldr r0, ._1096 + 20\n\ - ldrb r1, [r0]\n\ - lsl r0, r1, #0x2\n\ - add r0, r0, r1\n\ - lsl r1, r0, #0x2\n\ - add r0, r2, #0\n\ - add r0, r0, #0x8\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1087 @cond_branch\n\ - add r0, r2, #0\n\ - add r0, r0, #0xc\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1087 @cond_branch\n\ - bl ._1534\n\ -._1087:\n\ - ldr r1, ._1096 + 24\n\ - lsl r0, r3, #0x1\n\ - add r0, r0, r3\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r1\n\ - ldrb r1, [r0, #0x8]\n\ - mov r0, #0x1\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1089 @cond_branch\n\ - bl ._1534\n\ -._1089:\n\ - bl Random\n\ - lsl r0, r0, #0x10\n\ - lsr r0, r0, #0x10\n\ - mov r1, #0xa\n\ - bl __umodsi3\n\ - lsl r0, r0, #0x10\n\ - cmp r0, #0\n\ - beq ._1091 @cond_branch\n\ - bl ._1534\n\ -._1091:\n\ - ldr r5, ._1096 + 28\n\ - mov r4, #0x3\n\ -._1093:\n\ - bl Random\n\ - and r0, r0, r4\n\ - strb r0, [r5, #0x3]\n\ - cmp r0, #0\n\ - beq ._1093 @cond_branch\n\ - ldr r1, ._1096 + 28\n\ - ldrb r0, [r1, #0x3]\n\ - cmp r0, #0x3\n\ - bne ._1094 @cond_branch\n\ - add r0, r0, #0x2\n\ - strb r0, [r1, #0x3]\n\ -._1094:\n\ - ldrb r0, [r1, #0x3]\n\ - add r0, r0, #0x40\n\ - strb r0, [r1, #0x3]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, ._1096 + 32\n\ - ldr r0, ._1096 + 36\n\ - str r0, [r1]\n\ - ldr r2, ._1096 + 40\n\ - ldr r0, [r2]\n\ - mov r1, #0x80\n\ - lsl r1, r1, #0x6\n\ - orr r0, r0, r1\n\ - str r0, [r2]\n\ - bl ._1392\n\ -._1097:\n\ - .align 2, 0\n\ -._1096:\n\ - .word gBattleMoveFlags\n\ - .word gBattleMons\n\ - .word gBankAttacker\n\ - .word gProtectStructs\n\ - .word gSpecialStatuses\n\ - .word gBankTarget\n\ - .word gBattleMoves\n\ - .word gBattleCommunication\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_ApplySecondaryEffect\n\ - .word gHitMarker\n\ -._1011:\n\ - ldr r0, ._1111\n\ - ldrb r1, [r0]\n\ - mov r0, #0x4\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1098 @cond_branch\n\ - ldr r0, ._1111 + 4\n\ - ldrb r1, [r0]\n\ - mov r0, #0x29\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1099 @cond_branch\n\ - bl ._1534\n\ -._1099:\n\ - ldr r1, ._1111 + 8\n\ - ldr r0, ._1111 + 12\n\ - ldrb r2, [r0]\n\ - mov r0, #0x58\n\ - mul r0, r0, r2\n\ - add r0, r0, r1\n\ - ldrh r0, [r0, #0x28]\n\ - cmp r0, #0\n\ - bne ._1101 @cond_branch\n\ - bl ._1534\n\ -._1101:\n\ - ldr r0, ._1111 + 16\n\ - lsl r1, r2, #0x4\n\ - add r1, r1, r0\n\ - ldrb r0, [r1, #0x1]\n\ - lsl r0, r0, #0x1f\n\ - cmp r0, #0\n\ - beq ._1103 @cond_branch\n\ - bl ._1534\n\ -._1103:\n\ - ldr r2, ._1111 + 20\n\ - ldr r0, ._1111 + 24\n\ - ldrb r1, [r0]\n\ - lsl r0, r1, #0x2\n\ - add r0, r0, r1\n\ - lsl r1, r0, #0x2\n\ - add r0, r2, #0\n\ - add r0, r0, #0x8\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1106 @cond_branch\n\ - add r0, r2, #0\n\ - add r0, r0, #0xc\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1106 @cond_branch\n\ - bl ._1534\n\ -._1106:\n\ - ldr r1, ._1111 + 28\n\ - lsl r0, r3, #0x1\n\ - add r0, r0, r3\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r1\n\ - ldrb r1, [r0, #0x8]\n\ - mov r0, #0x1\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1108 @cond_branch\n\ - bl ._1534\n\ -._1108:\n\ - ldr r1, ._1111 + 32\n\ - mov r0, #0x42\n\ - strb r0, [r1, #0x3]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, ._1111 + 36\n\ - ldr r0, ._1111 + 40\n\ - str r0, [r1]\n\ - ldr r2, ._1111 + 44\n\ - ldr r0, [r2]\n\ - mov r1, #0x80\n\ - lsl r1, r1, #0x6\n\ - orr r0, r0, r1\n\ - str r0, [r2]\n\ - bl ._1392\n\ -._1112:\n\ - .align 2, 0\n\ -._1111:\n\ - .word gUnknown_02023A14_50\n\ - .word gBattleMoveFlags\n\ - .word gBattleMons\n\ - .word gBankAttacker\n\ - .word gProtectStructs\n\ - .word gSpecialStatuses\n\ - .word gBankTarget\n\ - .word gBattleMoves\n\ - .word gBattleCommunication\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_ApplySecondaryEffect\n\ - .word gHitMarker\n\ -._1098:\n\ - ldr r0, ._1127\n\ - ldrb r1, [r0]\n\ - mov r0, #0x29\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1113 @cond_branch\n\ - bl ._1534\n\ -._1113:\n\ - ldr r1, ._1127 + 4\n\ - ldr r0, ._1127 + 8\n\ - ldrb r2, [r0]\n\ - mov r0, #0x58\n\ - mul r0, r0, r2\n\ - add r0, r0, r1\n\ - ldrh r0, [r0, #0x28]\n\ - cmp r0, #0\n\ - bne ._1115 @cond_branch\n\ - bl ._1534\n\ -._1115:\n\ - ldr r0, ._1127 + 12\n\ - lsl r1, r2, #0x4\n\ - add r1, r1, r0\n\ - ldrb r0, [r1, #0x1]\n\ - lsl r0, r0, #0x1f\n\ - cmp r0, #0\n\ - beq ._1117 @cond_branch\n\ - bl ._1534\n\ -._1117:\n\ - ldr r2, ._1127 + 16\n\ - ldr r0, ._1127 + 20\n\ - ldrb r1, [r0]\n\ - lsl r0, r1, #0x2\n\ - add r0, r0, r1\n\ - lsl r1, r0, #0x2\n\ - add r0, r2, #0\n\ - add r0, r0, #0x8\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1120 @cond_branch\n\ - add r0, r2, #0\n\ - add r0, r0, #0xc\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1120 @cond_branch\n\ - bl ._1534\n\ -._1120:\n\ - ldr r1, ._1127 + 24\n\ - lsl r0, r3, #0x1\n\ - add r0, r0, r3\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r1\n\ - ldrb r1, [r0, #0x8]\n\ - mov r0, #0x1\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1122 @cond_branch\n\ - bl ._1534\n\ -._1122:\n\ - bl Random\n\ - lsl r0, r0, #0x10\n\ - lsr r0, r0, #0x10\n\ - mov r1, #0x3\n\ - bl __umodsi3\n\ - lsl r0, r0, #0x10\n\ - cmp r0, #0\n\ - beq ._1124 @cond_branch\n\ - bl ._1534\n\ -._1124:\n\ - ldr r1, ._1127 + 28\n\ - mov r0, #0x42\n\ - strb r0, [r1, #0x3]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, ._1127 + 32\n\ - ldr r0, ._1127 + 36\n\ - str r0, [r1]\n\ - ldr r2, ._1127 + 40\n\ - ldr r0, [r2]\n\ - mov r1, #0x80\n\ - lsl r1, r1, #0x6\n\ - orr r0, r0, r1\n\ - str r0, [r2]\n\ - bl ._1392\n\ -._1128:\n\ - .align 2, 0\n\ -._1127:\n\ - .word gBattleMoveFlags\n\ - .word gBattleMons\n\ - .word gBankAttacker\n\ - .word gProtectStructs\n\ - .word gSpecialStatuses\n\ - .word gBankTarget\n\ - .word gBattleMoves\n\ - .word gBattleCommunication\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_ApplySecondaryEffect\n\ - .word gHitMarker\n\ -._982:\n\ - ldr r0, ._1142\n\ - ldrb r1, [r0]\n\ - mov r0, #0x4\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1129 @cond_branch\n\ - ldr r0, ._1142 + 4\n\ - ldrb r1, [r0]\n\ - mov r0, #0x29\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1130 @cond_branch\n\ - bl ._1534\n\ -._1130:\n\ - ldr r1, ._1142 + 8\n\ - ldr r0, ._1142 + 12\n\ - ldrb r2, [r0]\n\ - mov r0, #0x58\n\ - mul r0, r0, r2\n\ - add r0, r0, r1\n\ - ldrh r0, [r0, #0x28]\n\ - cmp r0, #0\n\ - bne ._1132 @cond_branch\n\ - bl ._1534\n\ -._1132:\n\ - ldr r0, ._1142 + 16\n\ - lsl r1, r2, #0x4\n\ - add r1, r1, r0\n\ - ldrb r0, [r1, #0x1]\n\ - lsl r0, r0, #0x1f\n\ - cmp r0, #0\n\ - beq ._1134 @cond_branch\n\ - bl ._1534\n\ -._1134:\n\ - ldr r2, ._1142 + 20\n\ - ldr r0, ._1142 + 24\n\ - ldrb r1, [r0]\n\ - lsl r0, r1, #0x2\n\ - add r0, r0, r1\n\ - lsl r1, r0, #0x2\n\ - add r0, r2, #0\n\ - add r0, r0, #0x8\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1137 @cond_branch\n\ - add r0, r2, #0\n\ - add r0, r0, #0xc\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1137 @cond_branch\n\ - bl ._1534\n\ -._1137:\n\ - ldr r1, ._1142 + 28\n\ - lsl r0, r3, #0x1\n\ - add r0, r0, r3\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r1\n\ - ldrb r1, [r0, #0x8]\n\ - mov r0, #0x1\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1139 @cond_branch\n\ - bl ._1534\n\ -._1139:\n\ - ldr r1, ._1142 + 32\n\ - mov r0, #0x45\n\ - strb r0, [r1, #0x3]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, ._1142 + 36\n\ - ldr r0, ._1142 + 40\n\ - str r0, [r1]\n\ - ldr r2, ._1142 + 44\n\ - ldr r0, [r2]\n\ - mov r1, #0x80\n\ - lsl r1, r1, #0x6\n\ - orr r0, r0, r1\n\ - str r0, [r2]\n\ - bl ._1392\n\ -._1143:\n\ - .align 2, 0\n\ -._1142:\n\ - .word gUnknown_02023A14_50\n\ - .word gBattleMoveFlags\n\ - .word gBattleMons\n\ - .word gBankAttacker\n\ - .word gProtectStructs\n\ - .word gSpecialStatuses\n\ - .word gBankTarget\n\ - .word gBattleMoves\n\ - .word gBattleCommunication\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_ApplySecondaryEffect\n\ - .word gHitMarker\n\ -._1129:\n\ - ldr r0, ._1158\n\ - ldrb r1, [r0]\n\ - mov r0, #0x29\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1144 @cond_branch\n\ - bl ._1534\n\ -._1144:\n\ - ldr r1, ._1158 + 4\n\ - ldr r0, ._1158 + 8\n\ - ldrb r2, [r0]\n\ - mov r0, #0x58\n\ - mul r0, r0, r2\n\ - add r0, r0, r1\n\ - ldrh r0, [r0, #0x28]\n\ - cmp r0, #0\n\ - bne ._1146 @cond_branch\n\ - bl ._1534\n\ -._1146:\n\ - ldr r0, ._1158 + 12\n\ - lsl r1, r2, #0x4\n\ - add r1, r1, r0\n\ - ldrb r0, [r1, #0x1]\n\ - lsl r0, r0, #0x1f\n\ - cmp r0, #0\n\ - beq ._1148 @cond_branch\n\ - bl ._1534\n\ -._1148:\n\ - ldr r2, ._1158 + 16\n\ - ldr r0, ._1158 + 20\n\ - ldrb r1, [r0]\n\ - lsl r0, r1, #0x2\n\ - add r0, r0, r1\n\ - lsl r1, r0, #0x2\n\ - add r0, r2, #0\n\ - add r0, r0, #0x8\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1151 @cond_branch\n\ - add r0, r2, #0\n\ - add r0, r0, #0xc\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1151 @cond_branch\n\ - bl ._1534\n\ -._1151:\n\ - ldr r1, ._1158 + 24\n\ - lsl r0, r3, #0x1\n\ - add r0, r0, r3\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r1\n\ - ldrb r1, [r0, #0x8]\n\ - mov r0, #0x1\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1153 @cond_branch\n\ - bl ._1534\n\ -._1153:\n\ - bl Random\n\ - lsl r0, r0, #0x10\n\ - lsr r0, r0, #0x10\n\ - mov r1, #0x3\n\ - bl __umodsi3\n\ - lsl r0, r0, #0x10\n\ - cmp r0, #0\n\ - beq ._1155 @cond_branch\n\ - bl ._1534\n\ -._1155:\n\ - ldr r1, ._1158 + 28\n\ - mov r0, #0x45\n\ - strb r0, [r1, #0x3]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, ._1158 + 32\n\ - ldr r0, ._1158 + 36\n\ - str r0, [r1]\n\ - ldr r2, ._1158 + 40\n\ - ldr r0, [r2]\n\ - mov r1, #0x80\n\ - lsl r1, r1, #0x6\n\ - orr r0, r0, r1\n\ - str r0, [r2]\n\ - bl ._1392\n\ -._1159:\n\ - .align 2, 0\n\ -._1158:\n\ - .word gBattleMoveFlags\n\ - .word gBattleMons\n\ - .word gBankAttacker\n\ - .word gProtectStructs\n\ - .word gSpecialStatuses\n\ - .word gBankTarget\n\ - .word gBattleMoves\n\ - .word gBattleCommunication\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_ApplySecondaryEffect\n\ - .word gHitMarker\n\ -._1022:\n\ - ldr r0, ._1173\n\ - ldrb r1, [r0]\n\ - mov r0, #0x4\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1160 @cond_branch\n\ - ldr r0, ._1173 + 4\n\ - ldrb r1, [r0]\n\ - mov r0, #0x29\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1161 @cond_branch\n\ - bl ._1534\n\ -._1161:\n\ - ldr r1, ._1173 + 8\n\ - ldr r0, ._1173 + 12\n\ - ldrb r2, [r0]\n\ - mov r0, #0x58\n\ - mul r0, r0, r2\n\ - add r0, r0, r1\n\ - ldrh r0, [r0, #0x28]\n\ - cmp r0, #0\n\ - bne ._1163 @cond_branch\n\ - bl ._1534\n\ -._1163:\n\ - ldr r0, ._1173 + 16\n\ - lsl r1, r2, #0x4\n\ - add r1, r1, r0\n\ - ldrb r0, [r1, #0x1]\n\ - lsl r0, r0, #0x1f\n\ - cmp r0, #0\n\ - beq ._1165 @cond_branch\n\ - bl ._1534\n\ -._1165:\n\ - ldr r1, ._1173 + 20\n\ - lsl r0, r3, #0x1\n\ - add r0, r0, r3\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r1\n\ - ldrb r1, [r0, #0x8]\n\ - mov r0, #0x1\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1167 @cond_branch\n\ - bl ._1534\n\ -._1167:\n\ - ldr r2, ._1173 + 24\n\ - ldr r0, ._1173 + 28\n\ - ldrb r1, [r0]\n\ - lsl r0, r1, #0x2\n\ - add r0, r0, r1\n\ - lsl r1, r0, #0x2\n\ - add r0, r2, #0\n\ - add r0, r0, #0x8\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1170 @cond_branch\n\ - add r0, r2, #0\n\ - add r0, r0, #0xc\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1170 @cond_branch\n\ - bl ._1534\n\ -._1170:\n\ - ldr r1, ._1173 + 32\n\ - mov r0, #0x43\n\ - strb r0, [r1, #0x3]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, ._1173 + 36\n\ - ldr r0, ._1173 + 40\n\ - str r0, [r1]\n\ - ldr r2, ._1173 + 44\n\ - ldr r0, [r2]\n\ - mov r1, #0x80\n\ - lsl r1, r1, #0x6\n\ - orr r0, r0, r1\n\ - str r0, [r2]\n\ - bl ._1392\n\ -._1174:\n\ - .align 2, 0\n\ -._1173:\n\ - .word gUnknown_02023A14_50\n\ - .word gBattleMoveFlags\n\ - .word gBattleMons\n\ - .word gBankAttacker\n\ - .word gProtectStructs\n\ - .word gBattleMoves\n\ - .word gSpecialStatuses\n\ - .word gBankTarget\n\ - .word gBattleCommunication\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_ApplySecondaryEffect\n\ - .word gHitMarker\n\ -._1160:\n\ - ldr r0, ._1189\n\ - ldrb r1, [r0]\n\ - mov r0, #0x29\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1175 @cond_branch\n\ - bl ._1534\n\ -._1175:\n\ - ldr r1, ._1189 + 4\n\ - ldr r0, ._1189 + 8\n\ - ldrb r2, [r0]\n\ - mov r0, #0x58\n\ - mul r0, r0, r2\n\ - add r0, r0, r1\n\ - ldrh r0, [r0, #0x28]\n\ - cmp r0, #0\n\ - bne ._1177 @cond_branch\n\ - bl ._1534\n\ -._1177:\n\ - ldr r0, ._1189 + 12\n\ - lsl r1, r2, #0x4\n\ - add r1, r1, r0\n\ - ldrb r0, [r1, #0x1]\n\ - lsl r0, r0, #0x1f\n\ - cmp r0, #0\n\ - beq ._1179 @cond_branch\n\ - bl ._1534\n\ -._1179:\n\ - ldr r1, ._1189 + 16\n\ - lsl r0, r3, #0x1\n\ - add r0, r0, r3\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r1\n\ - ldrb r1, [r0, #0x8]\n\ - mov r0, #0x1\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1181 @cond_branch\n\ - bl ._1534\n\ -._1181:\n\ - ldr r2, ._1189 + 20\n\ - ldr r0, ._1189 + 24\n\ - ldrb r1, [r0]\n\ - lsl r0, r1, #0x2\n\ - add r0, r0, r1\n\ - lsl r1, r0, #0x2\n\ - add r0, r2, #0\n\ - add r0, r0, #0x8\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1184 @cond_branch\n\ - add r0, r2, #0\n\ - add r0, r0, #0xc\n\ - add r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1184 @cond_branch\n\ - bl ._1534\n\ -._1184:\n\ - bl Random\n\ - lsl r0, r0, #0x10\n\ - lsr r0, r0, #0x10\n\ - mov r1, #0x3\n\ - bl __umodsi3\n\ - lsl r0, r0, #0x10\n\ - cmp r0, #0\n\ - beq ._1186 @cond_branch\n\ - bl ._1534\n\ -._1186:\n\ - ldr r1, ._1189 + 28\n\ - mov r0, #0x43\n\ - strb r0, [r1, #0x3]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, ._1189 + 32\n\ - ldr r0, ._1189 + 36\n\ - str r0, [r1]\n\ - ldr r2, ._1189 + 40\n\ - ldr r0, [r2]\n\ - mov r1, #0x80\n\ - lsl r1, r1, #0x6\n\ - orr r0, r0, r1\n\ - str r0, [r2]\n\ - bl ._1392\n\ -._1190:\n\ - .align 2, 0\n\ -._1189:\n\ - .word gBattleMoveFlags\n\ - .word gBattleMons\n\ - .word gBankAttacker\n\ - .word gProtectStructs\n\ - .word gBattleMoves\n\ - .word gSpecialStatuses\n\ - .word gBankTarget\n\ - .word gBattleCommunication\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_ApplySecondaryEffect\n\ - .word gHitMarker\n\ -._1029:\n\ - ldr r0, ._1217\n\ - ldrb r1, [r0]\n\ - mov r0, #0x4\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1191 @cond_branch\n\ - b ._1192\n\ -._1191:\n\ - ldr r0, ._1217 + 4\n\ - ldrb r1, [r0]\n\ - mov r0, #0x29\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1193 @cond_branch\n\ - bl ._1534\n\ -._1193:\n\ - ldr r5, ._1217 + 8\n\ - ldr r7, ._1217 + 12\n\ - ldrb r1, [r7]\n\ - mov r6, #0x58\n\ - add r0, r1, #0\n\ - mul r0, r0, r6\n\ - add r4, r0, r5\n\ - ldrh r0, [r4, #0x28]\n\ - cmp r0, #0\n\ - bne ._1195 @cond_branch\n\ - bl ._1534\n\ -._1195:\n\ - ldr r0, ._1217 + 16\n\ - lsl r1, r1, #0x4\n\ - add r1, r1, r0\n\ - ldrb r0, [r1, #0x1]\n\ - lsl r0, r0, #0x1f\n\ - cmp r0, #0\n\ - beq ._1197 @cond_branch\n\ - bl ._1534\n\ -._1197:\n\ - ldr r1, ._1217 + 20\n\ - lsl r0, r3, #0x1\n\ - add r0, r0, r3\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r1\n\ - ldrb r1, [r0, #0x8]\n\ - mov r0, #0x1\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1199 @cond_branch\n\ - bl ._1534\n\ -._1199:\n\ - ldr r3, ._1217 + 24\n\ - ldr r0, ._1217 + 28\n\ - mov r8, r0\n\ - ldrb r1, [r0]\n\ - lsl r0, r1, #0x2\n\ - add r0, r0, r1\n\ - lsl r2, r0, #0x2\n\ - add r0, r3, #0\n\ - add r0, r0, #0x8\n\ - add r0, r2, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1202 @cond_branch\n\ - add r0, r3, #0\n\ - add r0, r0, #0xc\n\ - add r0, r2, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1202 @cond_branch\n\ - bl ._1534\n\ -._1202:\n\ - add r0, r1, #0\n\ - mul r0, r0, r6\n\ - add r0, r0, r5\n\ - ldrh r0, [r0, #0x28]\n\ - cmp r0, #0\n\ - bne ._1204 @cond_branch\n\ - bl ._1534\n\ -._1204:\n\ - add r0, r4, #0\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, #0xc\n\ - bne ._1206 @cond_branch\n\ - bl ._1534\n\ -._1206:\n\ - ldr r0, [sp, #0x8]\n\ - ldr r1, [sp, #0x10]\n\ - bl GetGenderFromSpeciesAndPersonality\n\ - add r4, r0, #0\n\ - ldr r0, [sp, #0xc]\n\ - ldr r1, [sp, #0x14]\n\ - bl GetGenderFromSpeciesAndPersonality\n\ - lsl r4, r4, #0x18\n\ - lsl r0, r0, #0x18\n\ - cmp r4, r0\n\ - bne ._1208 @cond_branch\n\ - bl ._1534\n\ -._1208:\n\ - ldrb r0, [r7]\n\ - mul r0, r0, r6\n\ - add r4, r5, #0\n\ - add r4, r4, #0x50\n\ - add r0, r0, r4\n\ - ldr r0, [r0]\n\ - mov r1, #0xf0\n\ - lsl r1, r1, #0xc\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1210 @cond_branch\n\ - bl ._1534\n\ -._1210:\n\ - ldr r0, [sp, #0x8]\n\ - ldr r1, [sp, #0x10]\n\ - bl GetGenderFromSpeciesAndPersonality\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - cmp r0, #0xff\n\ - bne ._1212 @cond_branch\n\ - bl ._1534\n\ -._1212:\n\ - ldr r0, [sp, #0xc]\n\ - ldr r1, [sp, #0x14]\n\ - bl GetGenderFromSpeciesAndPersonality\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - cmp r0, #0xff\n\ - bne ._1214 @cond_branch\n\ - bl ._1534\n\ -._1214:\n\ - ldrb r0, [r7]\n\ - add r2, r0, #0\n\ - mul r2, r2, r6\n\ - add r2, r2, r4\n\ - ldr r1, ._1217 + 32\n\ - mov r3, r8\n\ - ldrb r0, [r3]\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r1\n\ - ldr r1, [r0]\n\ - lsl r1, r1, #0x10\n\ - ldr r0, [r2]\n\ - orr r0, r0, r1\n\ - str r0, [r2]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, ._1217 + 36\n\ - ldr r0, ._1217 + 40\n\ - str r0, [r1]\n\ - bl ._1392\n\ -._1218:\n\ - .align 2, 0\n\ -._1217:\n\ - .word gUnknown_02023A14_50\n\ - .word gBattleMoveFlags\n\ - .word gBattleMons\n\ - .word gBankAttacker\n\ - .word gProtectStructs\n\ - .word gBattleMoves\n\ - .word gSpecialStatuses\n\ - .word gBankTarget\n\ - .word gBitTable\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_CuteCharmActivates\n\ -._1192:\n\ - ldr r0, ._1245\n\ - ldrb r1, [r0]\n\ - mov r0, #0x29\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1219 @cond_branch\n\ - bl ._1534\n\ -._1219:\n\ - ldr r5, ._1245 + 4\n\ - ldr r7, ._1245 + 8\n\ - ldrb r1, [r7]\n\ - mov r6, #0x58\n\ - add r0, r1, #0\n\ - mul r0, r0, r6\n\ - add r0, r0, r5\n\ - ldrh r0, [r0, #0x28]\n\ - cmp r0, #0\n\ - bne ._1221 @cond_branch\n\ - bl ._1534\n\ -._1221:\n\ - ldr r0, ._1245 + 12\n\ - lsl r1, r1, #0x4\n\ - add r1, r1, r0\n\ - ldrb r0, [r1, #0x1]\n\ - lsl r0, r0, #0x1f\n\ - cmp r0, #0\n\ - beq ._1223 @cond_branch\n\ - bl ._1534\n\ -._1223:\n\ - ldr r1, ._1245 + 16\n\ - lsl r0, r3, #0x1\n\ - add r0, r0, r3\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r1\n\ - ldrb r1, [r0, #0x8]\n\ - mov r0, #0x1\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1225 @cond_branch\n\ - bl ._1534\n\ -._1225:\n\ - ldr r3, ._1245 + 20\n\ - ldr r0, ._1245 + 24\n\ - mov r8, r0\n\ - ldrb r1, [r0]\n\ - lsl r0, r1, #0x2\n\ - add r0, r0, r1\n\ - lsl r2, r0, #0x2\n\ - add r0, r3, #0\n\ - add r0, r0, #0x8\n\ - add r0, r2, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1228 @cond_branch\n\ - add r0, r3, #0\n\ - add r0, r0, #0xc\n\ - add r0, r2, r0\n\ - ldr r0, [r0]\n\ - cmp r0, #0\n\ - bne ._1228 @cond_branch\n\ - bl ._1534\n\ -._1228:\n\ - add r0, r1, #0\n\ - mul r0, r0, r6\n\ - add r0, r0, r5\n\ - ldrh r0, [r0, #0x28]\n\ - cmp r0, #0\n\ - bne ._1230 @cond_branch\n\ - bl ._1534\n\ -._1230:\n\ - bl Random\n\ - lsl r0, r0, #0x10\n\ - lsr r0, r0, #0x10\n\ - mov r1, #0x3\n\ - bl __umodsi3\n\ - lsl r0, r0, #0x10\n\ - cmp r0, #0\n\ - beq ._1232 @cond_branch\n\ - bl ._1534\n\ -._1232:\n\ - ldrb r0, [r7]\n\ - mul r0, r0, r6\n\ - add r0, r0, r5\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, #0xc\n\ - bne ._1234 @cond_branch\n\ - bl ._1534\n\ -._1234:\n\ - ldr r0, [sp, #0x8]\n\ - ldr r1, [sp, #0x10]\n\ - bl GetGenderFromSpeciesAndPersonality\n\ - add r4, r0, #0\n\ - ldr r0, [sp, #0xc]\n\ - ldr r1, [sp, #0x14]\n\ - bl GetGenderFromSpeciesAndPersonality\n\ - lsl r4, r4, #0x18\n\ - lsl r0, r0, #0x18\n\ - cmp r4, r0\n\ - bne ._1236 @cond_branch\n\ - bl ._1534\n\ -._1236:\n\ - ldrb r0, [r7]\n\ - mul r0, r0, r6\n\ - add r4, r5, #0\n\ - add r4, r4, #0x50\n\ - add r0, r0, r4\n\ - ldr r0, [r0]\n\ - mov r1, #0xf0\n\ - lsl r1, r1, #0xc\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1238 @cond_branch\n\ - bl ._1534\n\ -._1238:\n\ - ldr r0, [sp, #0x8]\n\ - ldr r1, [sp, #0x10]\n\ - bl GetGenderFromSpeciesAndPersonality\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - cmp r0, #0xff\n\ - bne ._1240 @cond_branch\n\ - bl ._1534\n\ -._1240:\n\ - ldr r0, [sp, #0xc]\n\ - ldr r1, [sp, #0x14]\n\ - bl GetGenderFromSpeciesAndPersonality\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - cmp r0, #0xff\n\ - bne ._1242 @cond_branch\n\ - bl ._1534\n\ -._1242:\n\ - ldrb r0, [r7]\n\ - add r2, r0, #0\n\ - mul r2, r2, r6\n\ - add r2, r2, r4\n\ - ldr r1, ._1245 + 28\n\ - mov r3, r8\n\ - ldrb r0, [r3]\n\ - lsl r0, r0, #0x2\n\ - add r0, r0, r1\n\ - ldr r1, [r0]\n\ - lsl r1, r1, #0x10\n\ - ldr r0, [r2]\n\ - orr r0, r0, r1\n\ - str r0, [r2]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, ._1245 + 32\n\ - ldr r0, ._1245 + 36\n\ - str r0, [r1]\n\ - bl ._1392\n\ -._1246:\n\ - .align 2, 0\n\ -._1245:\n\ - .word gBattleMoveFlags\n\ - .word gBattleMons\n\ - .word gBankAttacker\n\ - .word gProtectStructs\n\ - .word gBattleMoves\n\ - .word gSpecialStatuses\n\ - .word gBankTarget\n\ - .word gBitTable\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_CuteCharmActivates\n\ -._749:\n\ - mov r5, #0x0\n\ - mov sl, r5\n\ - ldr r0, ._1251\n\ - ldrb r0, [r0]\n\ - cmp sl, r0\n\ - bcc ._1366 @cond_branch\n\ - bl ._1534\n\ -._1366:\n\ - ldr r1, ._1251 + 4\n\ - mov r0, #0x58\n\ - mov r2, sl\n\ - mul r2, r2, r0\n\ - add r0, r2, #0\n\ - add r0, r0, r1\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - sub r0, r0, #0x7\n\ - add r2, r1, #0\n\ - cmp r0, #0x41\n\ - bls ._1249 @cond_branch\n\ - b ._1346\n\ -._1249:\n\ - lsl r0, r0, #0x2\n\ - ldr r1, ._1251 + 8\n\ - add r0, r0, r1\n\ - ldr r0, [r0]\n\ - mov pc, r0\n\ -._1252:\n\ - .align 2, 0\n\ -._1251:\n\ - .word gNoOfAllBanks\n\ - .word gBattleMons\n\ - .word ._1253\n\ -._1253:\n\ - .word ._1254\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1259\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1319\n\ - .word ._1346\n\ - .word ._1264\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1267\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1287\n\ - .word ._1288\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1346\n\ - .word ._1319\n\ -._1264:\n\ - mov r0, #0x58\n\ - mov r3, sl\n\ - mul r3, r3, r0\n\ - add r0, r3, #0\n\ - add r1, r2, #0\n\ - add r1, r1, #0x4c\n\ - add r0, r0, r1\n\ - ldr r0, [r0]\n\ - ldr r1, ._1323\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1320 @cond_branch\n\ - b ._1346\n\ -._1320:\n\ - ldr r0, ._1323 + 4\n\ - ldr r1, ._1323 + 8\n\ - b ._1331\n\ -._1324:\n\ - .align 2, 0\n\ -._1323:\n\ - .word 0xf88\n\ - .word gBattleTextBuff1\n\ - .word gStatusConditionString_PoisonJpn\n\ -._1267:\n\ - mov r0, #0x58\n\ - mov r1, sl\n\ - mul r1, r1, r0\n\ - add r0, r1, #0\n\ - add r1, r2, #0\n\ - add r1, r1, #0x50\n\ - add r0, r0, r1\n\ - ldr r0, [r0]\n\ - mov r1, #0x7\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1325 @cond_branch\n\ - b ._1346\n\ -._1325:\n\ - ldr r0, ._1328\n\ - ldr r1, ._1328 + 4\n\ - bl StringCopy\n\ - mov r2, #0x2\n\ - mov r9, r2\n\ - b ._1343\n\ -._1329:\n\ - .align 2, 0\n\ -._1328:\n\ - .word gBattleTextBuff1\n\ - .word gStatusConditionString_ConfusionJpn\n\ -._1254:\n\ - mov r0, #0x58\n\ - mov r3, sl\n\ - mul r3, r3, r0\n\ - add r0, r3, #0\n\ - add r1, r2, #0\n\ - add r1, r1, #0x4c\n\ - add r0, r0, r1\n\ - ldr r0, [r0]\n\ - mov r1, #0x40\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1346 @cond_branch\n\ - ldr r0, ._1332\n\ - ldr r1, ._1332 + 4\n\ - b ._1331\n\ -._1333:\n\ - .align 2, 0\n\ -._1332:\n\ - .word gBattleTextBuff1\n\ - .word gStatusConditionString_ParalysisJpn\n\ -._1319:\n\ - mov r0, #0x58\n\ - mov r3, sl\n\ - mul r3, r3, r0\n\ - add r0, r2, #0\n\ - add r0, r0, #0x4c\n\ - add r0, r3, r0\n\ - ldr r0, [r0]\n\ - mov r1, #0x7\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1346 @cond_branch\n\ - add r2, r2, #0x50\n\ - add r2, r3, r2\n\ - ldr r0, [r2]\n\ - ldr r1, ._1336\n\ - and r0, r0, r1\n\ - str r0, [r2]\n\ - ldr r0, ._1336 + 4\n\ - ldr r1, ._1336 + 8\n\ - bl StringCopy\n\ - mov r0, #0x1\n\ - mov r9, r0\n\ - b ._1343\n\ -._1337:\n\ - .align 2, 0\n\ -._1336:\n\ - .word 0xf7ffffff\n\ - .word gBattleTextBuff1\n\ - .word gStatusConditionString_SleepJpn\n\ -._1288:\n\ - mov r0, #0x58\n\ - mov r1, sl\n\ - mul r1, r1, r0\n\ - add r0, r1, #0\n\ - add r1, r2, #0\n\ - add r1, r1, #0x4c\n\ - add r0, r0, r1\n\ - ldr r0, [r0]\n\ - mov r1, #0x10\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1346 @cond_branch\n\ - ldr r0, ._1340\n\ - ldr r1, ._1340 + 4\n\ - bl StringCopy\n\ - mov r2, #0x1\n\ - mov r9, r2\n\ - b ._1343\n\ -._1341:\n\ - .align 2, 0\n\ -._1340:\n\ - .word gBattleTextBuff1\n\ - .word gStatusConditionString_BurnJpn\n\ -._1287:\n\ - mov r0, #0x58\n\ - mov r3, sl\n\ - mul r3, r3, r0\n\ - add r0, r3, #0\n\ - add r1, r2, #0\n\ - add r1, r1, #0x4c\n\ - add r0, r0, r1\n\ - ldr r0, [r0]\n\ - mov r1, #0x20\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1346 @cond_branch\n\ - ldr r0, ._1344\n\ - ldr r1, ._1344 + 4\n\ -._1331:\n\ - bl StringCopy\n\ - mov r5, #0x1\n\ - mov r9, r5\n\ - b ._1343\n\ -._1345:\n\ - .align 2, 0\n\ -._1344:\n\ - .word gBattleTextBuff1\n\ - .word gStatusConditionString_IceJpn\n\ -._1259:\n\ - mov r0, #0x58\n\ - mov r1, sl\n\ - mul r1, r1, r0\n\ - add r0, r1, #0\n\ - add r1, r2, #0\n\ - add r1, r1, #0x50\n\ - add r0, r0, r1\n\ - ldr r0, [r0]\n\ - mov r1, #0xf0\n\ - lsl r1, r1, #0xc\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - beq ._1346 @cond_branch\n\ - ldr r0, ._1352\n\ - ldr r1, ._1352 + 4\n\ - bl StringCopy\n\ - mov r2, #0x3\n\ - mov r9, r2\n\ -._1346:\n\ - mov r3, r9\n\ - cmp r3, #0\n\ - beq ._1347 @cond_branch\n\ -._1343:\n\ - mov r5, r9\n\ - cmp r5, #0x2\n\ - beq ._1348 @cond_branch\n\ - cmp r5, #0x2\n\ - bgt ._1349 @cond_branch\n\ - cmp r5, #0x1\n\ - beq ._1350 @cond_branch\n\ - b ._1355\n\ -._1353:\n\ - .align 2, 0\n\ -._1352:\n\ - .word gBattleTextBuff1\n\ - .word gStatusConditionString_LoveJpn\n\ -._1349:\n\ - mov r0, r9\n\ - cmp r0, #0x3\n\ - beq ._1354 @cond_branch\n\ - b ._1355\n\ -._1350:\n\ - ldr r1, ._1357\n\ - mov r0, #0x58\n\ - mov r2, sl\n\ - mul r2, r2, r0\n\ - add r1, r1, #0x4c\n\ - add r2, r2, r1\n\ - mov r0, #0x0\n\ - b ._1356\n\ -._1358:\n\ - .align 2, 0\n\ -._1357:\n\ - .word gBattleMons\n\ -._1348:\n\ - ldr r1, ._1360\n\ - mov r0, #0x58\n\ - mov r2, sl\n\ - mul r2, r2, r0\n\ - add r1, r1, #0x50\n\ - add r2, r2, r1\n\ - ldr r0, [r2]\n\ - mov r1, #0x8\n\ - neg r1, r1\n\ - b ._1359\n\ -._1361:\n\ - .align 2, 0\n\ -._1360:\n\ - .word gBattleMons\n\ -._1354:\n\ - ldr r1, ._1363\n\ - mov r0, #0x58\n\ - mov r2, sl\n\ - mul r2, r2, r0\n\ - add r1, r1, #0x50\n\ - add r2, r2, r1\n\ - ldr r0, [r2]\n\ - ldr r1, ._1363 + 4\n\ -._1359:\n\ - and r0, r0, r1\n\ -._1356:\n\ - str r0, [r2]\n\ -._1355:\n\ - bl BattleScriptPushCursor\n\ - ldr r1, ._1363 + 8\n\ - ldr r0, ._1363 + 12\n\ - str r0, [r1]\n\ - ldr r0, ._1363 + 16\n\ - ldr r1, ._1363 + 20\n\ - add r0, r0, r1\n\ - mov r2, sl\n\ - strb r2, [r0]\n\ - ldr r4, ._1363 + 24\n\ - strb r2, [r4]\n\ - ldrb r1, [r4]\n\ - mov r0, #0x58\n\ - mul r0, r0, r1\n\ - ldr r1, ._1363 + 28\n\ - add r0, r0, r1\n\ - str r0, [sp]\n\ - mov r0, #0x0\n\ - mov r1, #0x28\n\ - mov r2, #0x0\n\ - mov r3, #0x4\n\ - bl EmitSetMonData\n\ - ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ - bl ._1540\n\ -._1364:\n\ - .align 2, 0\n\ -._1363:\n\ - .word gBattleMons\n\ - .word 0xfff0ffff\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_AbilityCuredStatus\n\ - .word +0x2000000\n\ - .word 0x16003\n\ - .word gActiveBank\n\ - .word gUnknown_02024ACC\n\ -._1347:\n\ - mov r0, sl\n\ - add r0, r0, #0x1\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov sl, r0\n\ - ldr r0, ._1368\n\ - ldrb r0, [r0]\n\ - cmp sl, r0\n\ - bcs ._1365 @cond_branch\n\ - b ._1366\n\ -._1365:\n\ - bl ._1534\n\ -._1369:\n\ - .align 2, 0\n\ -._1368:\n\ - .word gNoOfAllBanks\n\ -._750:\n\ - mov r3, #0x0\n\ - mov sl, r3\n\ - ldr r0, ._1377\n\ - ldrb r0, [r0]\n\ - cmp sl, r0\n\ - bcc ._1370 @cond_branch\n\ - b ._1534\n\ -._1370:\n\ - ldr r4, ._1377 + 4\n\ -._1375:\n\ - mov r0, #0x58\n\ - mov r5, sl\n\ - mul r5, r5, r0\n\ - add r0, r5, #0\n\ - add r0, r0, r4\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, #0x3b\n\ - bne ._1373 @cond_branch\n\ - mov r0, sl\n\ - bl CastformDataTypeChange\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov r9, r0\n\ - cmp r0, #0\n\ - beq ._1373 @cond_branch\n\ - b ._1374\n\ -._1373:\n\ - mov r0, sl\n\ - add r0, r0, #0x1\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov sl, r0\n\ - ldr r0, ._1377\n\ - ldrb r0, [r0]\n\ - cmp sl, r0\n\ - bcc ._1375 @cond_branch\n\ - b ._1534\n\ -._1378:\n\ - .align 2, 0\n\ -._1377:\n\ - .word gNoOfAllBanks\n\ - .word gBattleMons\n\ -._751:\n\ - mov r1, r8\n\ - ldrb r0, [r1]\n\ - cmp r0, #0x1c\n\ - beq ._1379 @cond_branch\n\ - b ._1534\n\ -._1379:\n\ - ldr r4, ._1385\n\ - ldr r1, [r4]\n\ - mov r0, #0x80\n\ - lsl r0, r0, #0x7\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1381 @cond_branch\n\ - b ._1534\n\ -._1381:\n\ - ldr r0, ._1385 + 4\n\ - and r1, r1, r0\n\ - str r1, [r4]\n\ - ldr r3, ._1385 + 8\n\ - add r2, r7, r3\n\ - ldrb r1, [r2]\n\ - mov r0, #0x3f\n\ - and r0, r0, r1\n\ - strb r0, [r2]\n\ - cmp r0, #0x6\n\ - bne ._1383 @cond_branch\n\ - mov r0, #0x2\n\ - strb r0, [r2]\n\ -._1383:\n\ - ldr r1, ._1385 + 12\n\ - ldrb r0, [r2]\n\ - add r0, r0, #0x40\n\ - strb r0, [r1, #0x3]\n\ - ldr r0, ._1385 + 16\n\ - ldrb r1, [r0]\n\ - ldr r5, ._1385 + 20\n\ - add r0, r7, r5\n\ - strb r1, [r0]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, ._1385 + 24\n\ - ldr r0, ._1385 + 28\n\ - str r0, [r1]\n\ - ldr r0, [r4]\n\ - mov r1, #0x80\n\ - lsl r1, r1, #0x6\n\ - orr r0, r0, r1\n\ - str r0, [r4]\n\ - b ._1392\n\ -._1386:\n\ - .align 2, 0\n\ -._1385:\n\ - .word gHitMarker\n\ - .word 0xffffbfff\n\ - .word 0x160ca\n\ - .word gBattleCommunication\n\ - .word gBankTarget\n\ - .word 0x16003\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_SynchronizeActivates\n\ -._752:\n\ - mov r1, r8\n\ - ldrb r0, [r1]\n\ - cmp r0, #0x1c\n\ - beq ._1387 @cond_branch\n\ - b ._1534\n\ -._1387:\n\ - ldr r4, ._1393\n\ - ldr r1, [r4]\n\ - mov r0, #0x80\n\ - lsl r0, r0, #0x7\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1389 @cond_branch\n\ - b ._1534\n\ -._1389:\n\ - ldr r0, ._1393 + 4\n\ - and r1, r1, r0\n\ - str r1, [r4]\n\ - ldr r3, ._1393 + 8\n\ - add r2, r7, r3\n\ - ldrb r1, [r2]\n\ - mov r0, #0x3f\n\ - and r0, r0, r1\n\ - strb r0, [r2]\n\ - cmp r0, #0x6\n\ - bne ._1391 @cond_branch\n\ - mov r0, #0x2\n\ - strb r0, [r2]\n\ -._1391:\n\ - ldr r1, ._1393 + 12\n\ - ldrb r0, [r2]\n\ - strb r0, [r1, #0x3]\n\ - ldr r0, ._1393 + 16\n\ - ldrb r1, [r0]\n\ - ldr r5, ._1393 + 20\n\ - add r0, r7, r5\n\ - strb r1, [r0]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, ._1393 + 24\n\ - ldr r0, ._1393 + 28\n\ - str r0, [r1]\n\ - ldr r0, [r4]\n\ - mov r1, #0x80\n\ - lsl r1, r1, #0x6\n\ - orr r0, r0, r1\n\ - str r0, [r4]\n\ - b ._1392\n\ -._1394:\n\ - .align 2, 0\n\ -._1393:\n\ - .word gHitMarker\n\ - .word 0xffffbfff\n\ - .word 0x160ca\n\ - .word gBattleCommunication\n\ - .word gBankAttacker\n\ - .word 0x16003\n\ - .word gBattlescriptCurrInstr\n\ - .word BattleScript_SynchronizeActivates\n\ -._753:\n\ - mov r4, #0x0\n\ - ldr r0, ._1402\n\ - ldrb r1, [r0]\n\ - cmp r4, r1\n\ - blt ._1395 @cond_branch\n\ - b ._1534\n\ -._1395:\n\ - ldr r0, ._1402 + 4\n\ - add r5, r1, #0\n\ - ldr r2, ._1402 + 8\n\ - add r3, r0, #0\n\ - add r3, r3, #0x20\n\ - mov r6, #0x80\n\ - lsl r6, r6, #0xc\n\ -._1400:\n\ - ldrb r1, [r3]\n\ - cmp r1, #0x16\n\ - bne ._1398 @cond_branch\n\ - ldr r0, [r2]\n\ - and r0, r0, r6\n\ - cmp r0, #0\n\ - beq ._1398 @cond_branch\n\ - b ._1399\n\ -._1398:\n\ - add r2, r2, #0x4\n\ - add r3, r3, #0x58\n\ - add r4, r4, #0x1\n\ - cmp r4, r5\n\ - blt ._1400 @cond_branch\n\ - b ._1534\n\ -._1403:\n\ - .align 2, 0\n\ -._1402:\n\ - .word gNoOfAllBanks\n\ - .word gBattleMons\n\ - .word gStatuses3\n\ -._755:\n\ - mov r4, #0x0\n\ - ldr r0, ._1417\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt ._1404 @cond_branch\n\ - b ._1534\n\ -._1404:\n\ - ldr r0, ._1417 + 4\n\ - mov r8, r0\n\ - ldr r1, ._1417 + 8\n\ - add r1, r1, #0x20\n\ - str r1, [sp, #0x1c]\n\ - mov r2, #0x0\n\ - str r2, [sp, #0x20]\n\ -._1434:\n\ - ldr r3, [sp, #0x1c]\n\ - ldrb r0, [r3]\n\ - cmp r0, #0x24\n\ - beq ._1406 @cond_branch\n\ - b ._1431\n\ -._1406:\n\ - ldr r0, ._1417 + 12\n\ - ldr r5, [sp, #0x20]\n\ - add r0, r5, r0\n\ - ldr r1, [r0]\n\ - mov r0, #0x80\n\ - lsl r0, r0, #0xd\n\ - and r1, r1, r0\n\ - str r5, [sp, #0x18]\n\ - cmp r1, #0\n\ - bne ._1408 @cond_branch\n\ - b ._1431\n\ -._1408:\n\ - lsl r0, r4, #0x18\n\ - lsr r0, r0, #0x18\n\ - bl GetBankIdentity\n\ - mov r1, #0x1\n\ - add r5, r0, #0\n\ - eor r5, r5, r1\n\ - and r5, r5, r1\n\ - add r0, r5, #0\n\ - bl GetBankByIdentity\n\ - lsl r0, r0, #0x18\n\ - lsr r6, r0, #0x18\n\ - add r0, r5, #2\n\ - bl GetBankByIdentity\n\ - lsl r0, r0, #0x18\n\ - lsr r7, r0, #0x18\n\ - ldr r0, ._1417 + 16\n\ - ldrh r1, [r0]\n\ - mov r2, #0x1\n\ - add r0, r2, #0\n\ - and r0, r0, r1\n\ - cmp r0, #0\n\ - bne ._1410 @cond_branch\n\ - b ._1411\n\ -._1410:\n\ - mov r1, #0x58\n\ - add r0, r6, #0\n\ - mul r0, r0, r1\n\ - ldr r3, ._1417 + 8\n\ - add r1, r0, r3\n\ - add r0, r1, #0\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, #0\n\ - beq ._1420 @cond_branch\n\ - ldrh r0, [r1, #0x28]\n\ - cmp r0, #0\n\ - beq ._1415 @cond_branch\n\ - mov r1, #0x58\n\ - add r0, r7, #0\n\ - mul r0, r0, r1\n\ - add r1, r0, r3\n\ - add r0, r1, #0\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, #0\n\ - beq ._1415 @cond_branch\n\ - ldrh r0, [r1, #0x28]\n\ - cmp r0, #0\n\ - beq ._1415 @cond_branch\n\ - str r2, [sp, #0x24]\n\ - bl Random\n\ - ldr r2, [sp, #0x24]\n\ - add r1, r2, #0\n\ - and r1, r1, r0\n\ - lsl r1, r1, #0x1\n\ - orr r5, r5, r1\n\ - add r0, r5, #0\n\ - bl GetBankByIdentity\n\ - mov r2, r8\n\ - strb r0, [r2]\n\ - ldrb r0, [r2]\n\ - mov r3, #0x58\n\ - mul r0, r0, r3\n\ - ldr r5, ._1417 + 8\n\ - add r0, r0, r5\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - ldr r1, [sp, #0x1c]\n\ - strb r0, [r1]\n\ - ldrb r0, [r2]\n\ - mul r0, r0, r3\n\ - add r0, r0, r5\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - ldr r2, ._1417 + 20\n\ - strb r0, [r2]\n\ - b ._1416\n\ -._1418:\n\ - .align 2, 0\n\ -._1417:\n\ - .word gNoOfAllBanks\n\ - .word gActiveBank\n\ - .word gBattleMons\n\ - .word gStatuses3\n\ - .word gBattleTypeFlags\n\ - .word gLastUsedAbility\n\ -._1415:\n\ - ldr r3, ._1422\n\ - mov r2, #0x58\n\ - add r0, r6, #0\n\ - mul r0, r0, r2\n\ - add r1, r0, r3\n\ - add r0, r1, #0\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, #0\n\ - beq ._1420 @cond_branch\n\ - ldrh r0, [r1, #0x28]\n\ - cmp r0, #0\n\ - beq ._1420 @cond_branch\n\ - mov r5, r8\n\ - strb r6, [r5]\n\ - add r1, r4, #0\n\ - mul r1, r1, r2\n\ - add r1, r1, r3\n\ - ldrb r0, [r5]\n\ - mul r0, r0, r2\n\ - add r0, r0, r3\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - add r1, r1, #0x20\n\ - strb r0, [r1]\n\ - ldrb r0, [r5]\n\ - mul r0, r0, r2\n\ - add r0, r0, r3\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - b ._1426\n\ -._1423:\n\ - .align 2, 0\n\ -._1422:\n\ - .word gBattleMons\n\ -._1420:\n\ - ldr r3, ._1427\n\ - mov r2, #0x58\n\ - add r0, r7, #0\n\ - mul r0, r0, r2\n\ - add r1, r0, r3\n\ - add r0, r1, #0\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, #0\n\ - beq ._1430 @cond_branch\n\ - ldrh r0, [r1, #0x28]\n\ - cmp r0, #0\n\ - beq ._1430 @cond_branch\n\ - mov r5, r8\n\ - strb r7, [r5]\n\ - add r1, r4, #0\n\ - mul r1, r1, r2\n\ - add r1, r1, r3\n\ - ldrb r0, [r5]\n\ - mul r0, r0, r2\n\ - add r0, r0, r3\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - add r1, r1, #0x20\n\ - strb r0, [r1]\n\ - ldrb r0, [r5]\n\ - mul r0, r0, r2\n\ - add r0, r0, r3\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - b ._1426\n\ -._1428:\n\ - .align 2, 0\n\ -._1427:\n\ - .word gBattleMons\n\ -._1411:\n\ - mov r2, r8\n\ - strb r6, [r2]\n\ - mov r3, #0x58\n\ - add r0, r6, #0\n\ - mul r0, r0, r3\n\ - ldr r5, ._1436\n\ - add r0, r0, r5\n\ - add r2, r0, #0\n\ - add r2, r2, #0x20\n\ - ldrb r1, [r2]\n\ - cmp r1, #0\n\ - beq ._1430 @cond_branch\n\ - ldrh r0, [r0, #0x28]\n\ - cmp r0, #0\n\ - beq ._1430 @cond_branch\n\ - ldr r0, [sp, #0x1c]\n\ - strb r1, [r0]\n\ - ldrb r0, [r2]\n\ -._1426:\n\ - ldr r1, ._1436 + 4\n\ - strb r0, [r1]\n\ -._1416:\n\ - mov r0, r9\n\ - add r0, r0, #0x1\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov r9, r0\n\ -._1430:\n\ - mov r2, r9\n\ - cmp r2, #0\n\ - beq ._1431 @cond_branch\n\ - b ._1432\n\ -._1431:\n\ - ldr r3, [sp, #0x1c]\n\ - add r3, r3, #0x58\n\ - str r3, [sp, #0x1c]\n\ - ldr r5, [sp, #0x20]\n\ - add r5, r5, #0x4\n\ - str r5, [sp, #0x20]\n\ - add r4, r4, #0x1\n\ - ldr r0, ._1436 + 8\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - bge ._1433 @cond_branch\n\ - b ._1434\n\ -._1433:\n\ - b ._1534\n\ -._1437:\n\ - .align 2, 0\n\ -._1436:\n\ - .word gBattleMons\n\ - .word gLastUsedAbility\n\ - .word gNoOfAllBanks\n\ -._754:\n\ - mov r4, #0x0\n\ - ldr r0, ._1445\n\ - ldrb r1, [r0]\n\ - cmp r4, r1\n\ - blt ._1438 @cond_branch\n\ - b ._1534\n\ -._1438:\n\ - ldr r0, ._1445 + 4\n\ - add r5, r1, #0\n\ - ldr r2, ._1445 + 8\n\ - add r3, r0, #0\n\ - add r3, r3, #0x20\n\ - mov r6, #0x80\n\ - lsl r6, r6, #0xc\n\ -._1443:\n\ - ldrb r1, [r3]\n\ - cmp r1, #0x16\n\ - bne ._1441 @cond_branch\n\ - ldr r0, [r2]\n\ - and r0, r0, r6\n\ - cmp r0, #0\n\ - beq ._1441 @cond_branch\n\ - b ._1442\n\ -._1441:\n\ - add r2, r2, #0x4\n\ - add r3, r3, #0x58\n\ - add r4, r4, #0x1\n\ - cmp r4, r5\n\ - blt ._1443 @cond_branch\n\ - b ._1534\n\ -._1446:\n\ - .align 2, 0\n\ -._1445:\n\ - .word gNoOfAllBanks\n\ - .word gBattleMons\n\ - .word gStatuses3\n\ -._756:\n\ - mov r0, sl\n\ - bl GetBankSide\n\ - lsl r0, r0, #0x18\n\ - lsr r5, r0, #0x18\n\ - mov r4, #0x0\n\ - ldr r0, ._1453\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt ._1447 @cond_branch\n\ - b ._1534\n\ -._1447:\n\ - ldr r7, ._1453 + 4\n\ -._1451:\n\ - lsl r0, r4, #0x18\n\ - lsr r0, r0, #0x18\n\ - bl GetBankSide\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - add r3, r4, #1\n\ - cmp r0, r5\n\ - beq ._1450 @cond_branch\n\ - mov r0, #0x58\n\ - mul r0, r0, r4\n\ - add r0, r0, r7\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, r6\n\ - bne ._1450 @cond_branch\n\ - ldr r0, ._1453 + 8\n\ - strb r6, [r0]\n\ - lsl r0, r3, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov r9, r0\n\ -._1450:\n\ - add r4, r3, #0\n\ - ldr r0, ._1453\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt ._1451 @cond_branch\n\ - b ._1534\n\ -._1454:\n\ - .align 2, 0\n\ -._1453:\n\ - .word gNoOfAllBanks\n\ - .word gBattleMons\n\ - .word gLastUsedAbility\n\ -._757:\n\ - mov r0, sl\n\ - bl GetBankSide\n\ - lsl r0, r0, #0x18\n\ - lsr r5, r0, #0x18\n\ - mov r4, #0x0\n\ - ldr r0, ._1461\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt ._1455 @cond_branch\n\ - b ._1534\n\ -._1455:\n\ - ldr r7, ._1461 + 4\n\ -._1459:\n\ - lsl r0, r4, #0x18\n\ - lsr r0, r0, #0x18\n\ - bl GetBankSide\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - add r3, r4, #1\n\ - cmp r0, r5\n\ - bne ._1458 @cond_branch\n\ - mov r0, #0x58\n\ - mul r0, r0, r4\n\ - add r0, r0, r7\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, r6\n\ - bne ._1458 @cond_branch\n\ - ldr r0, ._1461 + 8\n\ - strb r6, [r0]\n\ - lsl r0, r3, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov r9, r0\n\ -._1458:\n\ - add r4, r3, #0\n\ - ldr r0, ._1461\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt ._1459 @cond_branch\n\ - b ._1534\n\ -._1462:\n\ - .align 2, 0\n\ -._1461:\n\ - .word gNoOfAllBanks\n\ - .word gBattleMons\n\ - .word gLastUsedAbility\n\ -._758:\n\ - mov r1, r8\n\ - ldrb r0, [r1]\n\ - cmp r0, #0xfd\n\ - beq ._1463 @cond_branch\n\ - cmp r0, #0xfe\n\ - beq ._1464 @cond_branch\n\ - mov r4, #0x0\n\ - ldr r0, ._1468\n\ - add r5, r0, #0\n\ - ldrb r2, [r5]\n\ - cmp r4, r2\n\ - blt ._1465 @cond_branch\n\ - b ._1534\n\ -._1465:\n\ - ldr r2, ._1468 + 4\n\ - b ._1485\n\ -._1469:\n\ - .align 2, 0\n\ -._1468:\n\ - .word gNoOfAllBanks\n\ - .word gBattleMons\n\ -._1463:\n\ - mov r4, #0x0\n\ - ldr r0, ._1475\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt ._1470 @cond_branch\n\ - b ._1534\n\ -._1470:\n\ - ldr r5, ._1475 + 4\n\ - mov r2, #0x80\n\ - lsl r2, r2, #0x9\n\ - add r1, r0, #0\n\ -._1473:\n\ - lsl r0, r4, #0x2\n\ - add r0, r0, r5\n\ - ldr r0, [r0]\n\ - and r0, r0, r2\n\ - add r3, r4, #1\n\ - cmp r0, #0\n\ - beq ._1472 @cond_branch\n\ - lsl r0, r3, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov r9, r0\n\ -._1472:\n\ - add r4, r3, #0\n\ - cmp r4, r1\n\ - blt ._1473 @cond_branch\n\ - b ._1534\n\ -._1476:\n\ - .align 2, 0\n\ -._1475:\n\ - .word gNoOfAllBanks\n\ - .word gStatuses3\n\ -._1464:\n\ - mov r4, #0x0\n\ - ldr r0, ._1482\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt ._1477 @cond_branch\n\ - b ._1534\n\ -._1477:\n\ - ldr r5, ._1482 + 4\n\ - mov r2, #0x80\n\ - lsl r2, r2, #0xa\n\ - add r1, r0, #0\n\ -._1480:\n\ - lsl r0, r4, #0x2\n\ - add r0, r0, r5\n\ - ldr r0, [r0]\n\ - and r0, r0, r2\n\ - add r3, r4, #1\n\ - cmp r0, #0\n\ - beq ._1479 @cond_branch\n\ - lsl r0, r3, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov r9, r0\n\ -._1479:\n\ - add r4, r3, #0\n\ - cmp r4, r1\n\ - blt ._1480 @cond_branch\n\ - b ._1534\n\ -._1483:\n\ - .align 2, 0\n\ -._1482:\n\ - .word gNoOfAllBanks\n\ - .word gStatuses3\n\ -._1485:\n\ - mov r0, #0x58\n\ - mul r0, r0, r4\n\ - add r0, r0, r2\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - add r3, r4, #1\n\ - cmp r0, r6\n\ - bne ._1484 @cond_branch\n\ - mov r0, r8\n\ - strb r6, [r0]\n\ - lsl r0, r3, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov r9, r0\n\ -._1484:\n\ - add r4, r3, #0\n\ - ldrb r1, [r5]\n\ - cmp r4, r1\n\ - blt ._1485 @cond_branch\n\ - b ._1534\n\ -._763:\n\ - mov r4, #0x0\n\ - ldr r0, ._1493\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt ._1487 @cond_branch\n\ - b ._1534\n\ -._1487:\n\ - ldr r7, ._1493 + 4\n\ - add r2, r0, #0\n\ - mov r5, #0x58\n\ -._1491:\n\ - add r0, r4, #0\n\ - mul r0, r0, r5\n\ - add r1, r0, r7\n\ - add r0, r1, #0\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - add r3, r4, #1\n\ - cmp r0, r6\n\ - bne ._1490 @cond_branch\n\ - ldrh r0, [r1, #0x28]\n\ - cmp r0, #0\n\ - beq ._1490 @cond_branch\n\ - mov r0, r8\n\ - strb r6, [r0]\n\ - lsl r0, r3, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov r9, r0\n\ -._1490:\n\ - add r4, r3, #0\n\ - cmp r4, r2\n\ - blt ._1491 @cond_branch\n\ - b ._1534\n\ -._1494:\n\ - .align 2, 0\n\ -._1493:\n\ - .word gNoOfAllBanks\n\ - .word gBattleMons\n\ -._759:\n\ - mov r4, #0x0\n\ - ldr r0, ._1501\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt ._1495 @cond_branch\n\ - b ._1534\n\ -._1495:\n\ - ldr r7, ._1501 + 4\n\ - add r1, r0, #0\n\ - mov r5, #0x58\n\ - ldr r2, ._1501 + 8\n\ -._1499:\n\ - add r0, r4, #0\n\ - mul r0, r0, r5\n\ - add r0, r0, r7\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - add r3, r4, #1\n\ - cmp r0, r6\n\ - bne ._1498 @cond_branch\n\ - cmp r4, sl\n\ - beq ._1498 @cond_branch\n\ - strb r6, [r2]\n\ - lsl r0, r3, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov r9, r0\n\ -._1498:\n\ - add r4, r3, #0\n\ - cmp r4, r1\n\ - blt ._1499 @cond_branch\n\ - b ._1534\n\ -._1502:\n\ - .align 2, 0\n\ -._1501:\n\ - .word gNoOfAllBanks\n\ - .word gBattleMons\n\ - .word gLastUsedAbility\n\ -._760:\n\ - mov r0, sl\n\ - bl GetBankSide\n\ - lsl r0, r0, #0x18\n\ - lsr r5, r0, #0x18\n\ - mov r4, #0x0\n\ - ldr r0, ._1509\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt ._1503 @cond_branch\n\ - b ._1534\n\ -._1503:\n\ - ldr r7, ._1509 + 4\n\ -._1507:\n\ - lsl r0, r4, #0x18\n\ - lsr r0, r0, #0x18\n\ - bl GetBankSide\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - cmp r0, r5\n\ - beq ._1506 @cond_branch\n\ - mov r0, #0x58\n\ - mul r0, r0, r4\n\ - add r0, r0, r7\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, r6\n\ - bne ._1506 @cond_branch\n\ - ldr r0, ._1509 + 8\n\ - strb r6, [r0]\n\ - mov r0, r9\n\ - add r0, r0, #0x1\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov r9, r0\n\ -._1506:\n\ - add r4, r4, #0x1\n\ - ldr r0, ._1509\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt ._1507 @cond_branch\n\ - b ._1534\n\ -._1510:\n\ - .align 2, 0\n\ -._1509:\n\ - .word gNoOfAllBanks\n\ - .word gBattleMons\n\ - .word gLastUsedAbility\n\ -._761:\n\ - mov r0, sl\n\ - bl GetBankSide\n\ - lsl r0, r0, #0x18\n\ - lsr r5, r0, #0x18\n\ - mov r4, #0x0\n\ - ldr r0, ._1517\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt ._1511 @cond_branch\n\ - b ._1534\n\ -._1511:\n\ - ldr r7, ._1517 + 4\n\ -._1515:\n\ - lsl r0, r4, #0x18\n\ - lsr r0, r0, #0x18\n\ - bl GetBankSide\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - cmp r0, r5\n\ - bne ._1514 @cond_branch\n\ - mov r0, #0x58\n\ - mul r0, r0, r4\n\ - add r0, r0, r7\n\ - add r0, r0, #0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, r6\n\ - bne ._1514 @cond_branch\n\ - ldr r0, ._1517 + 8\n\ - strb r6, [r0]\n\ - mov r0, r9\n\ - add r0, r0, #0x1\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov r9, r0\n\ -._1514:\n\ - add r4, r4, #0x1\n\ - ldr r0, ._1517\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt ._1515 @cond_branch\n\ - b ._1534\n\ -._1518:\n\ - .align 2, 0\n\ -._1517:\n\ - .word gNoOfAllBanks\n\ - .word gBattleMons\n\ - .word gLastUsedAbility\n\ -._853:\n\ - ldr r0, ._1520\n\ - bl BattleScriptPushCursorAndCallback\n\ - ldr r0, ._1520 + 4\n\ - ldr r2, ._1520 + 8\n\ - add r1, r0, r2\n\ - strb r6, [r1]\n\ - mov r1, r9\n\ - sub r1, r1, #0x1\n\ - ldr r3, ._1520 + 12\n\ - add r0, r0, r3\n\ - strb r1, [r0]\n\ - b ._1534\n\ -._1521:\n\ - .align 2, 0\n\ -._1520:\n\ - .word BattleScript_CastformChange\n\ - .word +0x2000000\n\ - .word 0x16003\n\ - .word 0x1609b\n\ -._1374:\n\ - ldr r0, ._1523\n\ - bl BattleScriptPushCursorAndCallback\n\ - ldr r0, ._1523 + 4\n\ - ldr r5, ._1523 + 8\n\ - add r1, r0, r5\n\ - mov r2, sl\n\ - strb r2, [r1]\n\ - mov r1, r9\n\ - sub r1, r1, #0x1\n\ - ldr r3, ._1523 + 12\n\ - add r0, r0, r3\n\ - strb r1, [r0]\n\ - b ._1540\n\ -._1524:\n\ - .align 2, 0\n\ -._1523:\n\ - .word BattleScript_CastformChange\n\ - .word +0x2000000\n\ - .word 0x16003\n\ - .word 0x1609b\n\ -._1399:\n\ - mov r5, r8\n\ - strb r1, [r5]\n\ - ldr r0, [r2]\n\ - ldr r1, ._1526\n\ - and r0, r0, r1\n\ - str r0, [r2]\n\ - ldr r0, ._1526 + 4\n\ - bl BattleScriptPushCursorAndCallback\n\ - b ._1525\n\ -._1527:\n\ - .align 2, 0\n\ -._1526:\n\ - .word 0xfff7ffff\n\ - .word gUnknown_081D978C\n\ -._1432:\n\ - ldr r0, ._1529\n\ - bl BattleScriptPushCursorAndCallback\n\ - ldr r1, ._1529 + 4\n\ - ldr r2, [sp, #0x18]\n\ - add r1, r2, r1\n\ - ldr r0, [r1]\n\ - ldr r2, ._1529 + 8\n\ - and r0, r0, r2\n\ - str r0, [r1]\n\ - ldr r0, ._1529 + 12\n\ - ldr r3, ._1529 + 16\n\ - add r0, r0, r3\n\ - strb r4, [r0]\n\ - ldr r1, ._1529 + 20\n\ - mov r4, #0xfd\n\ - strb r4, [r1]\n\ - mov r0, #0x4\n\ - strb r0, [r1, #0x1]\n\ - ldr r2, ._1529 + 24\n\ - ldrb r0, [r2]\n\ - strb r0, [r1, #0x2]\n\ - ldr r3, ._1529 + 28\n\ - ldrb r0, [r2]\n\ - lsl r0, r0, #0x1\n\ - add r0, r0, r3\n\ - ldrh r0, [r0]\n\ - strb r0, [r1, #0x3]\n\ - mov r0, #0xff\n\ - strb r0, [r1, #0x4]\n\ - ldr r1, ._1529 + 32\n\ - strb r4, [r1]\n\ - mov r0, #0x9\n\ - strb r0, [r1, #0x1]\n\ - ldr r0, ._1529 + 36\n\ - ldrb r0, [r0]\n\ - strb r0, [r1, #0x2]\n\ - mov r0, #0x1\n\ - neg r0, r0\n\ - strb r0, [r1, #0x3]\n\ - b ._1534\n\ -._1530:\n\ - .align 2, 0\n\ -._1529:\n\ - .word BattleScript_TraceActivates\n\ - .word gStatuses3\n\ - .word 0xffefffff\n\ - .word +0x2000000\n\ - .word 0x16003\n\ - .word gBattleTextBuff1\n\ - .word gActiveBank\n\ - .word gBattlePartyID\n\ - .word gBattleTextBuff2\n\ - .word gLastUsedAbility\n\ -._1442:\n\ - mov r5, r8\n\ - strb r1, [r5]\n\ - ldr r0, [r2]\n\ - ldr r1, ._1532\n\ - and r0, r0, r1\n\ - str r0, [r2]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, ._1532 + 4\n\ - ldr r0, ._1532 + 8\n\ - str r0, [r1]\n\ -._1525:\n\ - ldr r0, ._1532 + 12\n\ - ldr r1, ._1532 + 16\n\ - add r0, r0, r1\n\ - strb r4, [r0]\n\ -._1392:\n\ - mov r0, r9\n\ - add r0, r0, #0x1\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov r9, r0\n\ - b ._1534\n\ -._1533:\n\ - .align 2, 0\n\ -._1532:\n\ - .word 0xfff7ffff\n\ - .word gBattlescriptCurrInstr\n\ - .word gUnknown_081D9795\n\ - .word +0x2000000\n\ - .word 0x160dd\n\ -._762:\n\ - mov r4, #0x0\n\ - ldr r0, ._1541\n\ - ldrb r1, [r0]\n\ - cmp r4, r1\n\ - bge ._1534 @cond_branch\n\ - ldr r0, ._1541 + 4\n\ - add r2, r1, #0\n\ - add r1, r0, #0\n\ - add r1, r1, #0x20\n\ - ldr r3, ._1541 + 8\n\ -._1537:\n\ - ldrb r0, [r1]\n\ - cmp r0, r6\n\ - bne ._1536 @cond_branch\n\ - cmp r4, sl\n\ - beq ._1536 @cond_branch\n\ - strb r6, [r3]\n\ - mov r0, r9\n\ - add r0, r0, #0x1\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - mov r9, r0\n\ -._1536:\n\ - add r1, r1, #0x58\n\ - add r4, r4, #0x1\n\ - cmp r4, r2\n\ - blt ._1537 @cond_branch\n\ -._1534:\n\ - mov r2, r9\n\ - cmp r2, #0\n\ - beq ._1540 @cond_branch\n\ -._916:\n\ - ldr r3, [sp, #0x4]\n\ - cmp r3, #0xb\n\ - bhi ._1540 @cond_branch\n\ - ldr r1, ._1541 + 8\n\ - ldrb r0, [r1]\n\ - cmp r0, #0xff\n\ - beq ._1540 @cond_branch\n\ - add r1, r0, #0\n\ - mov r0, sl\n\ - bl RecordAbilityBattle\n\ -._1540:\n\ - mov r0, r9\n\ - add sp, sp, #0x28\n\ - pop {r3, r4, r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov sl, r5\n\ - pop {r4, r5, r6, r7}\n\ - pop {r1}\n\ - bx r1\n\ -._1542:\n\ - .align 2, 0\n\ -._1541:\n\ - .word gNoOfAllBanks\n\ - .word gBattleMons\n\ - .word gLastUsedAbility"); -} -#else u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) { u8 effect = 0; @@ -5796,17 +1738,14 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) else moveType = gBattleMoves[move].type; - //_080184AC switch (caseID) { case ABILITYEFFECT_ON_SWITCHIN: // 0 - //_08018518 if (gBankAttacker >= gNoOfAllBanks) gBankAttacker = bank; switch (gLastUsedAbility) { case 0xFF: //weather from overworld - //_08018586 switch (GetCurrentWeather()) { case WEATHER_RAIN_LIGHT: @@ -5846,7 +1785,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_DRIZZLE: - //_08018680 if (!(gBattleWeather & WEATHER_RAIN_PERMANENT)) { gBattleWeather = (WEATHER_RAIN_PERMANENT | WEATHER_RAIN_TEMPORARY); @@ -5856,7 +1794,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_SAND_STREAM: - //_080186B8 if (!(gBattleWeather & WEATHER_SANDSTORM_PERMANENT)) { gBattleWeather = (WEATHER_SANDSTORM_PERMANENT | WEATHER_SANDSTORM_TEMPORARY); @@ -5866,7 +1803,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_DROUGHT: - //_080186F0 if (!(gBattleWeather & WEATHER_SUN_PERMANENT)) { gBattleWeather = (WEATHER_SUN_PERMANENT | WEATHER_SUN_TEMPORARY); @@ -5876,7 +1812,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_INTIMIDATE: - //_08018728 if (!(gSpecialStatuses[bank].intimidatedPoke)) { gStatuses3[bank] |= STATUS3_INTIMIDATE_POKES; @@ -5884,7 +1819,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_FORECAST: - //_0801875C effect = CastformDataTypeChange(bank); if (effect != 0) { @@ -5894,7 +1828,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_TRACE: - //_080187A0 if (!(gSpecialStatuses[bank].traced)) { gStatuses3[bank] |= STATUS3_TRACE; @@ -5903,7 +1836,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) break; case ABILITY_CLOUD_NINE: case ABILITY_AIR_LOCK: - //_080187DC { // that's a weird choice for a variable, why not use i or bank? for (target1 = 0; target1 < gNoOfAllBanks; target1++) @@ -5922,7 +1854,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_ENDTURN: // 1 - //_08018814 if (gBattleMons[bank].hp != 0) { gBankAttacker = bank; @@ -5982,7 +1913,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_MOVES_BLOCK: // 2 - //_08018A40 if (gLastUsedAbility == ABILITY_SOUNDPROOF) { for (i = 0; gSoundMovesTable[i] != 0xFFFF; i++) @@ -6000,7 +1930,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_ABSORBING: // 3 - //_08018AD8 if (move) { switch (gLastUsedAbility) @@ -6070,11 +1999,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_CONTACT: // 4 - //_08018CF0 switch (gLastUsedAbility) { case ABILITY_COLOR_CHANGE: - //_08018DCC if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) && move != MOVE_STRUGGLE && gBattleMoves[move].power != 0 @@ -6095,7 +2022,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_ROUGH_SKIN: - //_08018E94 if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg @@ -6111,100 +2037,195 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_EFFECT_SPORE: - //_08018F54 - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) - && gBattleMons[gBankAttacker].hp != 0 - && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) - && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) - && (Random() % 10) == 0) - { - do - { - gBattleCommunication[MOVE_EFFECT_BYTE] = Random() & 3; - } while (gBattleCommunication[MOVE_EFFECT_BYTE] == 0); - if (gBattleCommunication[MOVE_EFFECT_BYTE] == 3) - gBattleCommunication[MOVE_EFFECT_BYTE] += 2; - gBattleCommunication[MOVE_EFFECT_BYTE] += 0x40; - BattleScriptPushCursor(); - gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; - gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; - effect++; - } + if (DEBUG && (gUnknown_02023A14_50 & 4)) + { + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gBattleMons[gBankAttacker].hp != 0 + && !gProtectStructs[gBankAttacker].confusionSelfDmg + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)) + { + do + { + gBattleCommunication[MOVE_EFFECT_BYTE] = Random() & 3; + } while (gBattleCommunication[MOVE_EFFECT_BYTE] == 0); + if (gBattleCommunication[MOVE_EFFECT_BYTE] == 3) + gBattleCommunication[MOVE_EFFECT_BYTE] += 2; + gBattleCommunication[MOVE_EFFECT_BYTE] += 0x40; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; + gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + effect++; + } + } + else + { + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gBattleMons[gBankAttacker].hp != 0 + && !gProtectStructs[gBankAttacker].confusionSelfDmg + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) + && (Random() % 10) == 0) + { + do + { + gBattleCommunication[MOVE_EFFECT_BYTE] = Random() & 3; + } while (gBattleCommunication[MOVE_EFFECT_BYTE] == 0); + if (gBattleCommunication[MOVE_EFFECT_BYTE] == 3) + gBattleCommunication[MOVE_EFFECT_BYTE] += 2; + gBattleCommunication[MOVE_EFFECT_BYTE] += 0x40; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; + gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + effect++; + } + } break; case ABILITY_POISON_POINT: - //_0801904C - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) - && gBattleMons[gBankAttacker].hp != 0 - && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) - && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) - && (Random() % 3) == 0) - { - gBattleCommunication[MOVE_EFFECT_BYTE] = 0x42; - BattleScriptPushCursor(); - gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; - gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; - effect++; - } + if (DEBUG && (gUnknown_02023A14_50 & 4)) + { + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gBattleMons[gBankAttacker].hp != 0 + && !gProtectStructs[gBankAttacker].confusionSelfDmg + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)) + { + gBattleCommunication[MOVE_EFFECT_BYTE] = 0x42; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; + gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + effect++; + } + } + else + { + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gBattleMons[gBankAttacker].hp != 0 + && !gProtectStructs[gBankAttacker].confusionSelfDmg + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) + && (Random() % 3) == 0) + { + gBattleCommunication[MOVE_EFFECT_BYTE] = 0x42; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; + gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + effect++; + } + } break; case ABILITY_STATIC: - //_08019128 - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) - && gBattleMons[gBankAttacker].hp != 0 - && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) - && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) - && (Random() % 3) == 0) - { - gBattleCommunication[MOVE_EFFECT_BYTE] = 0x45; - BattleScriptPushCursor(); - gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; - gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; - effect++; - } + if (DEBUG && (gUnknown_02023A14_50 & 4)) + { + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gBattleMons[gBankAttacker].hp != 0 + && !gProtectStructs[gBankAttacker].confusionSelfDmg + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)) + { + gBattleCommunication[MOVE_EFFECT_BYTE] = 0x45; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; + gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + effect++; + } + } + else + { + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gBattleMons[gBankAttacker].hp != 0 + && !gProtectStructs[gBankAttacker].confusionSelfDmg + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) + && (Random() % 3) == 0) + { + gBattleCommunication[MOVE_EFFECT_BYTE] = 0x45; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; + gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + effect++; + } + } break; case ABILITY_FLAME_BODY: - //_08019204 - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) - && gBattleMons[gBankAttacker].hp != 0 - && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) - && (Random() % 3) == 0) - { - gBattleCommunication[MOVE_EFFECT_BYTE] = 0x43; - BattleScriptPushCursor(); - gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; - gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; - effect++; - } + if (DEBUG && (gUnknown_02023A14_50 & 4)) + { + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gBattleMons[gBankAttacker].hp != 0 + && !gProtectStructs[gBankAttacker].confusionSelfDmg + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special)) + { + gBattleCommunication[MOVE_EFFECT_BYTE] = 0x43; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; + gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + effect++; + } + } + else + { + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gBattleMons[gBankAttacker].hp != 0 + && !gProtectStructs[gBankAttacker].confusionSelfDmg + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (Random() % 3) == 0) + { + gBattleCommunication[MOVE_EFFECT_BYTE] = 0x43; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; + gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + effect++; + } + } break; case ABILITY_CUTE_CHARM: - //_080192E0 - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) - && gBattleMons[gBankAttacker].hp != 0 - && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) - && gBattleMons[gBankTarget].hp != 0 - && (Random() % 3) == 0 - && gBattleMons[gBankAttacker].ability != ABILITY_OBLIVIOUS - && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) - && !(gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION) - && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != 0xFF - && GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) != 0xFF) - { - gBattleMons[gBankAttacker].status2 |= (gBitTable[gBankTarget] << 0x10); - BattleScriptPushCursor(); - gBattlescriptCurrInstr = BattleScript_CuteCharmActivates; - effect++; - } + if (DEBUG && (gUnknown_02023A14_50 & 4)) + { + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gBattleMons[gBankAttacker].hp != 0 + && !gProtectStructs[gBankAttacker].confusionSelfDmg + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && gBattleMons[gBankTarget].hp != 0 + && gBattleMons[gBankAttacker].ability != ABILITY_OBLIVIOUS + && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) + && !(gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION) + && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != 0xFF + && GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) != 0xFF) + { + gBattleMons[gBankAttacker].status2 |= (gBitTable[gBankTarget] << 0x10); + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_CuteCharmActivates; + effect++; + } + } + else + { + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gBattleMons[gBankAttacker].hp != 0 + && !gProtectStructs[gBankAttacker].confusionSelfDmg + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && gBattleMons[gBankTarget].hp != 0 + && (Random() % 3) == 0 + && gBattleMons[gBankAttacker].ability != ABILITY_OBLIVIOUS + && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) + && !(gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION) + && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != 0xFF + && GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) != 0xFF) + { + gBattleMons[gBankAttacker].status2 |= (gBitTable[gBankTarget] << 0x10); + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_CuteCharmActivates; + effect++; + } + } break; } break; case ABILITYEFFECT_IMMUNITY: // 5 - //_08019448 { for (bank = 0; bank < gNoOfAllBanks; bank++) { @@ -6288,7 +2309,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_FORECAST: // 6 - //_080197B4 { for (bank = 0; bank < gNoOfAllBanks; bank++) { @@ -6307,7 +2327,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_SYNCHRONIZE: // 7 - //_08019804 if (gLastUsedAbility == ABILITY_SYNCHRONIZE && (gHitMarker & HITMARKER_SYNCHRONISE_EFFECT)) { gHitMarker &= ~(HITMARKER_SYNCHRONISE_EFFECT); @@ -6323,7 +2342,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_ATK_SYNCHRONIZE: // 8 - //_08019880 if (gLastUsedAbility == ABILITY_SYNCHRONIZE && (gHitMarker & HITMARKER_SYNCHRONISE_EFFECT)) { gHitMarker &= ~(HITMARKER_SYNCHRONISE_EFFECT); @@ -6339,7 +2357,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_INTIMIDATE1: // 9 - //_080198FC for (i = 0; i < gNoOfAllBanks; i++) { if (gBattleMons[i].ability == ABILITY_INTIMIDATE && gStatuses3[i] & STATUS3_INTIMIDATE_POKES) @@ -6354,7 +2371,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_TRACE: // 11 - //_08019940 for (i = 0; i < gNoOfAllBanks; i++) { if (gBattleMons[i].ability == ABILITY_TRACE && (gStatuses3[i] & STATUS3_TRACE)) @@ -6368,7 +2384,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) if (gBattleMons[target1].ability != 0 && gBattleMons[target1].hp != 0 && gBattleMons[target2].ability != 0 && gBattleMons[target2].hp != 0) { - //_080199AE gActiveBank = GetBankByIdentity(((Random() & 1) * 2) | side); gBattleMons[i].ability = gBattleMons[gActiveBank].ability; gLastUsedAbility = gBattleMons[gActiveBank].ability; @@ -6376,7 +2391,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } else if (gBattleMons[target1].ability != 0 && gBattleMons[target1].hp != 0) { - //_08019A34 gActiveBank = target1; gBattleMons[i].ability = gBattleMons[gActiveBank].ability; gLastUsedAbility = gBattleMons[gActiveBank].ability; @@ -6384,7 +2398,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } else if (gBattleMons[target2].ability != 0 && gBattleMons[target2].hp != 0) { - //_08019A78 gActiveBank = target2; gBattleMons[i].ability = gBattleMons[gActiveBank].ability; gLastUsedAbility = gBattleMons[gActiveBank].ability; @@ -6392,7 +2405,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } } else - //_08019ABC { gActiveBank = target1; if (gBattleMons[target1].ability && gBattleMons[target1].hp) @@ -6424,7 +2436,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_INTIMIDATE2: // 10 - //_08019B1C for (i = 0; i < gNoOfAllBanks; i++) { if (gBattleMons[i].ability == ABILITY_INTIMIDATE && (gStatuses3[i] & STATUS3_INTIMIDATE_POKES)) @@ -6440,7 +2451,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_CHECK_OTHER_SIDE: // 12 - //_08019B60 side = GetBankSide(bank); for (i = 0; i < gNoOfAllBanks; i++) { @@ -6452,7 +2462,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_CHECK_BANK_SIDE: // 13 - //_08019BBC side = GetBankSide(bank); for (i = 0; i < gNoOfAllBanks; i++) { @@ -6464,7 +2473,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_FIELD_SPORT: // 14 - //_08019C18 switch (gLastUsedAbility) { case 0xFD: @@ -6494,7 +2502,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_CHECK_ON_FIELD: // 19 - //_08019CD4 for (i = 0; i < gNoOfAllBanks; i++) { if (gBattleMons[i].ability == ability && gBattleMons[i].hp != 0) @@ -6505,7 +2512,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK: // 15 - //_08019D18 for (i = 0; i < gNoOfAllBanks; i++) { if (gBattleMons[i].ability == ability && i != bank) @@ -6516,7 +2522,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_COUNT_OTHER_SIZE: // 16 - //_08019D5C side = GetBankSide(bank); for (i = 0; i < gNoOfAllBanks; i++) { @@ -6528,7 +2533,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_COUNT_BANK_SIDE: // 17 - //_08019DB8 side = GetBankSide(bank); for (i = 0; i < gNoOfAllBanks; i++) { @@ -6540,7 +2544,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_COUNT_ON_FIELD: // 18 - //_08019F44 for (i = 0; i < gNoOfAllBanks; i++) { if (gBattleMons[i].ability == ability && i != bank) @@ -6551,14 +2554,12 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; } - //_08019F76 if (effect && caseID < 0xC && gLastUsedAbility != 0xFF) RecordAbilityBattle(bank, gLastUsedAbility); } return effect; } -#endif void BattleScriptExecute(const u8* BS_ptr) { |