diff options
author | ghoulslash <41651341+ghoulslash@users.noreply.github.com> | 2019-12-06 13:48:32 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-12-06 13:48:32 -0700 |
commit | 71f3d258ea5144b774f69f6c4f6803f096cf14ac (patch) | |
tree | 5a4975c44b2e73bcc203762306b66a103571bd4c /src | |
parent | ebd1037036027166010ed030a080697e736279d5 (diff) | |
parent | cb6830bab3fa77764393a36a2fba5e95c0f32353 (diff) |
Merge pull request #1 from jiangzhengwenjz/battle-anim
real match AnimTask_SnatchOpposingMonMove
Diffstat (limited to 'src')
-rw-r--r-- | src/battle_anim_effects_3.c | 718 |
1 files changed, 33 insertions, 685 deletions
diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index f4e7da1b4..f9efc04cd 100644 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -4854,8 +4854,6 @@ void AnimTask_GetReturnPowerLevel(u8 taskId) // Makes the mon run out of screen, run past the opposing mon, and return to its original position. // No args. -#ifdef NONMATCHING -// `species` variable getting loaded into r6 instead of r5 void AnimTask_SnatchOpposingMonMove(u8 taskId) { u8 spriteId, spriteId2; @@ -4885,40 +4883,44 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId) } break; case 1: - if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) { - personality = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_PERSONALITY); - otId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_OT_ID); - if (gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies == SPECIES_NONE) - species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES); - else - species = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies; + s16 x; - subpriority = gSprites[GetAnimBattlerSpriteId(ANIM_TARGET)].subpriority + 1; - isBackPic = FALSE; - x = 272; - } - else - { - personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_PERSONALITY); - otId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_OT_ID); - if (gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies == SPECIES_NONE) - species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES); - else - species = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies; + if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) + { + personality = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_PERSONALITY); + otId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_OT_ID); + if (gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies == SPECIES_NONE) + species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES); + else + species = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies; - subpriority = gSprites[GetAnimBattlerSpriteId(ANIM_TARGET)].subpriority - 1; - isBackPic = TRUE; - x = -32; - } + subpriority = gSprites[GetAnimBattlerSpriteId(ANIM_TARGET)].subpriority + 1; + isBackPic = FALSE; + x = 272; + } + else + { + personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_PERSONALITY); + otId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_OT_ID); + if (gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies == SPECIES_NONE) + species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES); + else + species = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies; - spriteId2 = sub_80768D0(species, isBackPic, 0, x, GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y), subpriority, personality, otId, gBattleAnimAttacker, 0); - if (gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies != SPECIES_NONE) - BlendPalette((gSprites[spriteId2].oam.paletteNum * 16) | 0x100, 16, 6, RGB_WHITE); + subpriority = gSprites[GetAnimBattlerSpriteId(ANIM_TARGET)].subpriority - 1; + isBackPic = TRUE; + x = -32; + } - gTasks[taskId].data[15] = spriteId2; - gTasks[taskId].data[0]++; - break; + spriteId2 = sub_80768D0(species, isBackPic, 0, x, GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y), subpriority, personality, otId, gBattleAnimAttacker, 0); + + if (gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies != SPECIES_NONE) + BlendPalette((gSprites[spriteId2].oam.paletteNum * 16) | 0x100, 16, 6, RGB_WHITE); + gTasks[taskId].data[15] = spriteId2; + gTasks[taskId].data[0]++; + break; + } case 2: spriteId2 = gTasks[taskId].data[15]; gTasks[taskId].data[1] += 0x800; @@ -4948,7 +4950,6 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId) } } } - if ((u16)(x + 32) > 304) { gTasks[taskId].data[1] = 0; @@ -4988,659 +4989,6 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId) break; } } -#else -NAKED -void AnimTask_SnatchOpposingMonMove(u8 taskId) -{ - asm_unified("\tpush {r4-r7,lr}\n" - "\tmov r7, r10\n" - "\tmov r6, r9\n" - "\tmov r5, r8\n" - "\tpush {r5-r7}\n" - "\tsub sp, 0x1C\n" - "\tlsls r0, 24\n" - "\tlsrs r0, 24\n" - "\tmov r8, r0\n" - "\tldr r1, _080E395C @ =gTasks\n" - "\tlsls r0, 2\n" - "\tadd r0, r8\n" - "\tlsls r0, 3\n" - "\tadds r0, r1\n" - "\tmovs r1, 0x8\n" - "\tldrsh r0, [r0, r1]\n" - "\tcmp r0, 0x4\n" - "\tbls _080E3952\n" - "\tb _080E3E6C\n" - "_080E3952:\n" - "\tlsls r0, 2\n" - "\tldr r1, _080E3960 @ =_080E3964\n" - "\tadds r0, r1\n" - "\tldr r0, [r0]\n" - "\tmov pc, r0\n" - "\t.align 2, 0\n" - "_080E395C: .4byte gTasks\n" - "_080E3960: .4byte _080E3964\n" - "\t.align 2, 0\n" - "_080E3964:\n" - "\t.4byte _080E3978\n" - "\t.4byte _080E3A2C\n" - "\t.4byte _080E3BEC\n" - "\t.4byte _080E3D0C\n" - "\t.4byte _080E3D90\n" - "_080E3978:\n" - "\tmovs r0, 0\n" - "\tbl GetAnimBattlerSpriteId\n" - "\tlsls r0, 24\n" - "\tlsrs r7, r0, 24\n" - "\tldr r1, _080E39C4 @ =gTasks\n" - "\tmov r2, r8\n" - "\tlsls r4, r2, 2\n" - "\tadds r0, r4, r2\n" - "\tlsls r0, 3\n" - "\tadds r6, r0, r1\n" - "\tmovs r3, 0x80\n" - "\tlsls r3, 4\n" - "\tadds r0, r3, 0\n" - "\tldrh r1, [r6, 0xA]\n" - "\tadds r0, r1\n" - "\tstrh r0, [r6, 0xA]\n" - "\tldr r0, _080E39C8 @ =gBattleAnimAttacker\n" - "\tldrb r0, [r0]\n" - "\tbl GetBattlerSide\n" - "\tlsls r0, 24\n" - "\tmov r9, r4\n" - "\tcmp r0, 0\n" - "\tbne _080E39D0\n" - "\tldr r2, _080E39CC @ =gSprites\n" - "\tlsls r3, r7, 4\n" - "\tadds r1, r3, r7\n" - "\tlsls r1, 2\n" - "\tadds r1, r2\n" - "\tldrh r0, [r6, 0xA]\n" - "\tlsls r0, 16\n" - "\tasrs r0, 24\n" - "\tldrh r4, [r1, 0x24]\n" - "\tadds r0, r4\n" - "\tstrh r0, [r1, 0x24]\n" - "\tb _080E39EA\n" - "\t.align 2, 0\n" - "_080E39C4: .4byte gTasks\n" - "_080E39C8: .4byte gBattleAnimAttacker\n" - "_080E39CC: .4byte gSprites\n" - "_080E39D0:\n" - "\tldr r3, _080E3A24 @ =gSprites\n" - "\tlsls r4, r7, 4\n" - "\tadds r2, r4, r7\n" - "\tlsls r2, 2\n" - "\tadds r2, r3\n" - "\tldrh r1, [r6, 0xA]\n" - "\tlsls r1, 16\n" - "\tasrs r1, 24\n" - "\tldrh r0, [r2, 0x24]\n" - "\tsubs r0, r1\n" - "\tstrh r0, [r2, 0x24]\n" - "\tadds r2, r3, 0\n" - "\tadds r3, r4, 0\n" - "_080E39EA:\n" - "\tldr r1, _080E3A28 @ =gTasks\n" - "\tmov r0, r9\n" - "\tadd r0, r8\n" - "\tlsls r0, 3\n" - "\tadds r4, r0, r1\n" - "\tldrb r0, [r4, 0xA]\n" - "\tstrh r0, [r4, 0xA]\n" - "\tadds r1, r3, r7\n" - "\tlsls r1, 2\n" - "\tadds r1, r2\n" - "\tldrh r0, [r1, 0x24]\n" - "\tldrh r1, [r1, 0x20]\n" - "\tadds r0, r1\n" - "\tlsls r0, 16\n" - "\tmovs r1, 0x80\n" - "\tlsls r1, 14\n" - "\tadds r0, r1\n" - "\tmovs r1, 0x98\n" - "\tlsls r1, 17\n" - "\tcmp r0, r1\n" - "\tbhi _080E3A16\n" - "\tb _080E3E6C\n" - "_080E3A16:\n" - "\tmovs r0, 0\n" - "\tstrh r0, [r4, 0xA]\n" - "\tldrh r0, [r4, 0x8]\n" - "\tadds r0, 0x1\n" - "\tstrh r0, [r4, 0x8]\n" - "\tb _080E3E6C\n" - "\t.align 2, 0\n" - "_080E3A24: .4byte gSprites\n" - "_080E3A28: .4byte gTasks\n" - "_080E3A2C:\n" - "\tldr r4, _080E3A90 @ =gBattleAnimAttacker\n" - "\tldrb r0, [r4]\n" - "\tbl GetBattlerSide\n" - "\tlsls r0, 24\n" - "\tcmp r0, 0\n" - "\tbne _080E3ACC\n" - "\tldr r7, _080E3A94 @ =gBattlerPartyIndexes\n" - "\tldrb r0, [r4]\n" - "\tlsls r0, 1\n" - "\tadds r0, r7\n" - "\tldrh r0, [r0]\n" - "\tmovs r6, 0x64\n" - "\tmuls r0, r6\n" - "\tldr r5, _080E3A98 @ =gPlayerParty\n" - "\tadds r0, r5\n" - "\tmovs r1, 0\n" - "\tbl GetMonData\n" - "\tmov r10, r0\n" - "\tldrb r0, [r4]\n" - "\tlsls r0, 1\n" - "\tadds r0, r7\n" - "\tldrh r0, [r0]\n" - "\tmuls r0, r6\n" - "\tadds r0, r5\n" - "\tmovs r1, 0x1\n" - "\tbl GetMonData\n" - "\tmov r9, r0\n" - "\tldr r0, _080E3A9C @ =gBattleSpritesDataPtr\n" - "\tldr r0, [r0]\n" - "\tldrb r2, [r4]\n" - "\tldr r1, [r0]\n" - "\tlsls r0, r2, 2\n" - "\tadds r1, r0, r1\n" - "\tldrh r0, [r1, 0x2]\n" - "\tcmp r0, 0\n" - "\tbne _080E3AA0\n" - "\tlsls r0, r2, 1\n" - "\tadds r0, r7\n" - "\tldrh r0, [r0]\n" - "\tmuls r0, r6\n" - "\tadds r0, r5\n" - "\tmovs r1, 0xB\n" - "\tbl GetMonData\n" - "\tlsls r0, 16\n" - "\tlsrs r5, r0, 16\n" - "\tb _080E3AA2\n" - "\t.align 2, 0\n" - "_080E3A90: .4byte gBattleAnimAttacker\n" - "_080E3A94: .4byte gBattlerPartyIndexes\n" - "_080E3A98: .4byte gPlayerParty\n" - "_080E3A9C: .4byte gBattleSpritesDataPtr\n" - "_080E3AA0:\n" - "\tldrh r5, [r1, 0x2]\n" - "_080E3AA2:\n" - "\tmovs r0, 0x1\n" - "\tbl GetAnimBattlerSpriteId\n" - "\tldr r2, _080E3AC8 @ =gSprites\n" - "\tlsls r0, 24\n" - "\tlsrs r0, 24\n" - "\tlsls r1, r0, 4\n" - "\tadds r1, r0\n" - "\tlsls r1, 2\n" - "\tadds r1, r2\n" - "\tadds r1, 0x43\n" - "\tldrb r0, [r1]\n" - "\tadds r0, 0x1\n" - "\tlsls r0, 24\n" - "\tlsrs r4, r0, 24\n" - "\tmovs r7, 0\n" - "\tmovs r6, 0x88\n" - "\tlsls r6, 1\n" - "\tb _080E3B54\n" - "\t.align 2, 0\n" - "_080E3AC8: .4byte gSprites\n" - "_080E3ACC:\n" - "\tldr r7, _080E3B24 @ =gBattlerPartyIndexes\n" - "\tldrb r0, [r4]\n" - "\tlsls r0, 1\n" - "\tadds r0, r7\n" - "\tldrh r0, [r0]\n" - "\tmovs r6, 0x64\n" - "\tmuls r0, r6\n" - "\tldr r5, _080E3B28 @ =gEnemyParty\n" - "\tadds r0, r5\n" - "\tmovs r1, 0\n" - "\tbl GetMonData\n" - "\tmov r10, r0\n" - "\tldrb r0, [r4]\n" - "\tlsls r0, 1\n" - "\tadds r0, r7\n" - "\tldrh r0, [r0]\n" - "\tmuls r0, r6\n" - "\tadds r0, r5\n" - "\tmovs r1, 0x1\n" - "\tbl GetMonData\n" - "\tmov r9, r0\n" - "\tldr r0, _080E3B2C @ =gBattleSpritesDataPtr\n" - "\tldr r0, [r0]\n" - "\tldrb r2, [r4]\n" - "\tldr r1, [r0]\n" - "\tlsls r0, r2, 2\n" - "\tadds r1, r0, r1\n" - "\tldrh r0, [r1, 0x2]\n" - "\tcmp r0, 0\n" - "\tbne _080E3B30\n" - "\tlsls r0, r2, 1\n" - "\tadds r0, r7\n" - "\tldrh r0, [r0]\n" - "\tmuls r0, r6\n" - "\tadds r0, r5\n" - "\tmovs r1, 0xB\n" - "\tbl GetMonData\n" - "\tlsls r0, 16\n" - "\tlsrs r5, r0, 16\n" - "\tb _080E3B32\n" - "\t.align 2, 0\n" - "_080E3B24: .4byte gBattlerPartyIndexes\n" - "_080E3B28: .4byte gEnemyParty\n" - "_080E3B2C: .4byte gBattleSpritesDataPtr\n" - "_080E3B30:\n" - "\tldrh r5, [r1, 0x2]\n" - "_080E3B32:\n" - "\tmovs r0, 0x1\n" - "\tbl GetAnimBattlerSpriteId\n" - "\tldr r2, _080E3BD0 @ =gSprites\n" - "\tlsls r0, 24\n" - "\tlsrs r0, 24\n" - "\tlsls r1, r0, 4\n" - "\tadds r1, r0\n" - "\tlsls r1, 2\n" - "\tadds r1, r2\n" - "\tadds r1, 0x43\n" - "\tldrb r0, [r1]\n" - "\tsubs r0, 0x1\n" - "\tlsls r0, 24\n" - "\tlsrs r4, r0, 24\n" - "\tmovs r7, 0x1\n" - "\tldr r6, _080E3BD4 @ =0x0000ffe0\n" - "_080E3B54:\n" - "\tldr r0, _080E3BD8 @ =gBattleAnimTarget\n" - "\tldrb r0, [r0]\n" - "\tmovs r1, 0x1\n" - "\tbl GetBattlerSpriteCoord\n" - "\tlsls r0, 24\n" - "\tlsrs r0, 24\n" - "\tlsls r3, r6, 16\n" - "\tasrs r3, 16\n" - "\tstr r0, [sp]\n" - "\tstr r4, [sp, 0x4]\n" - "\tmov r2, r10\n" - "\tstr r2, [sp, 0x8]\n" - "\tmov r4, r9\n" - "\tstr r4, [sp, 0xC]\n" - "\tldr r4, _080E3BDC @ =gBattleAnimAttacker\n" - "\tldrb r0, [r4]\n" - "\tstr r0, [sp, 0x10]\n" - "\tmovs r0, 0\n" - "\tstr r0, [sp, 0x14]\n" - "\tadds r0, r5, 0\n" - "\tadds r1, r7, 0\n" - "\tmovs r2, 0\n" - "\tbl sub_80768D0\n" - "\tlsls r0, 24\n" - "\tlsrs r5, r0, 24\n" - "\tldr r0, _080E3BE0 @ =gBattleSpritesDataPtr\n" - "\tldr r1, [r0]\n" - "\tldrb r0, [r4]\n" - "\tldr r1, [r1]\n" - "\tlsls r0, 2\n" - "\tadds r0, r1\n" - "\tldrh r0, [r0, 0x2]\n" - "\tcmp r0, 0\n" - "\tbeq _080E3BBE\n" - "\tldr r1, _080E3BD0 @ =gSprites\n" - "\tlsls r0, r5, 4\n" - "\tadds r0, r5\n" - "\tlsls r0, 2\n" - "\tadds r0, r1\n" - "\tldrb r0, [r0, 0x5]\n" - "\tlsrs r0, 4\n" - "\tlsls r0, 4\n" - "\tmovs r2, 0x80\n" - "\tlsls r2, 1\n" - "\tadds r1, r2, 0\n" - "\torrs r0, r1\n" - "\tldr r3, _080E3BE4 @ =0x00007fff\n" - "\tmovs r1, 0x10\n" - "\tmovs r2, 0x6\n" - "\tbl BlendPalette\n" - "_080E3BBE:\n" - "\tldr r0, _080E3BE8 @ =gTasks\n" - "\tmov r3, r8\n" - "\tlsls r1, r3, 2\n" - "\tadd r1, r8\n" - "\tlsls r1, 3\n" - "\tadds r1, r0\n" - "\tstrh r5, [r1, 0x26]\n" - "\tb _080E3D82\n" - "\t.align 2, 0\n" - "_080E3BD0: .4byte gSprites\n" - "_080E3BD4: .4byte 0x0000ffe0\n" - "_080E3BD8: .4byte gBattleAnimTarget\n" - "_080E3BDC: .4byte gBattleAnimAttacker\n" - "_080E3BE0: .4byte gBattleSpritesDataPtr\n" - "_080E3BE4: .4byte 0x00007fff\n" - "_080E3BE8: .4byte gTasks\n" - "_080E3BEC:\n" - "\tldr r1, _080E3C38 @ =gTasks\n" - "\tmov r0, r8\n" - "\tlsls r4, r0, 2\n" - "\tadds r0, r4, r0\n" - "\tlsls r0, 3\n" - "\tadds r6, r0, r1\n" - "\tldrh r0, [r6, 0x26]\n" - "\tlsls r0, 24\n" - "\tlsrs r5, r0, 24\n" - "\tmovs r1, 0x80\n" - "\tlsls r1, 4\n" - "\tadds r0, r1, 0\n" - "\tldrh r2, [r6, 0xA]\n" - "\tadds r0, r2\n" - "\tstrh r0, [r6, 0xA]\n" - "\tldr r0, _080E3C3C @ =gBattleAnimAttacker\n" - "\tldrb r0, [r0]\n" - "\tbl GetBattlerSide\n" - "\tlsls r0, 24\n" - "\tmov r9, r4\n" - "\tcmp r0, 0\n" - "\tbne _080E3C44\n" - "\tldr r3, _080E3C40 @ =gSprites\n" - "\tlsls r4, r5, 4\n" - "\tadds r2, r4, r5\n" - "\tlsls r2, 2\n" - "\tadds r2, r3\n" - "\tldrh r1, [r6, 0xA]\n" - "\tlsls r1, 16\n" - "\tasrs r1, 24\n" - "\tldrh r0, [r2, 0x24]\n" - "\tsubs r0, r1\n" - "\tstrh r0, [r2, 0x24]\n" - "\tadds r2, r3, 0\n" - "\tadds r3, r4, 0\n" - "\tb _080E3C5A\n" - "\t.align 2, 0\n" - "_080E3C38: .4byte gTasks\n" - "_080E3C3C: .4byte gBattleAnimAttacker\n" - "_080E3C40: .4byte gSprites\n" - "_080E3C44:\n" - "\tldr r2, _080E3CA8 @ =gSprites\n" - "\tlsls r3, r5, 4\n" - "\tadds r1, r3, r5\n" - "\tlsls r1, 2\n" - "\tadds r1, r2\n" - "\tldrh r0, [r6, 0xA]\n" - "\tlsls r0, 16\n" - "\tasrs r0, 24\n" - "\tldrh r4, [r1, 0x24]\n" - "\tadds r0, r4\n" - "\tstrh r0, [r1, 0x24]\n" - "_080E3C5A:\n" - "\tldr r1, _080E3CAC @ =gTasks\n" - "\tmov r0, r9\n" - "\tadd r0, r8\n" - "\tlsls r0, 3\n" - "\tadds r6, r0, r1\n" - "\tldrb r0, [r6, 0xA]\n" - "\tstrh r0, [r6, 0xA]\n" - "\tadds r1, r3, r5\n" - "\tlsls r1, 2\n" - "\tadds r1, r2\n" - "\tldrh r0, [r1, 0x24]\n" - "\tldrh r1, [r1, 0x20]\n" - "\tadds r0, r1\n" - "\tlsls r0, 16\n" - "\tlsrs r5, r0, 16\n" - "\tmovs r1, 0x24\n" - "\tldrsh r0, [r6, r1]\n" - "\tcmp r0, 0\n" - "\tbne _080E3CDA\n" - "\tldr r0, _080E3CB0 @ =gBattleAnimAttacker\n" - "\tldrb r0, [r0]\n" - "\tbl GetBattlerSide\n" - "\tlsls r0, 24\n" - "\tcmp r0, 0\n" - "\tbne _080E3CB8\n" - "\tlsls r4, r5, 16\n" - "\tasrs r4, 16\n" - "\tldr r0, _080E3CB4 @ =gBattleAnimTarget\n" - "\tldrb r0, [r0]\n" - "\tmovs r1, 0\n" - "\tbl GetBattlerSpriteCoord\n" - "\tlsls r0, 24\n" - "\tlsrs r0, 24\n" - "\tcmp r4, r0\n" - "\tbge _080E3CDA\n" - "\tb _080E3CCE\n" - "\t.align 2, 0\n" - "_080E3CA8: .4byte gSprites\n" - "_080E3CAC: .4byte gTasks\n" - "_080E3CB0: .4byte gBattleAnimAttacker\n" - "_080E3CB4: .4byte gBattleAnimTarget\n" - "_080E3CB8:\n" - "\tlsls r4, r5, 16\n" - "\tasrs r4, 16\n" - "\tldr r0, _080E3CFC @ =gBattleAnimTarget\n" - "\tldrb r0, [r0]\n" - "\tmovs r1, 0\n" - "\tbl GetBattlerSpriteCoord\n" - "\tlsls r0, 24\n" - "\tlsrs r0, 24\n" - "\tcmp r4, r0\n" - "\tble _080E3CDA\n" - "_080E3CCE:\n" - "\tldrh r0, [r6, 0x24]\n" - "\tadds r0, 0x1\n" - "\tstrh r0, [r6, 0x24]\n" - "\tldr r1, _080E3D00 @ =gBattleAnimArgs\n" - "\tldr r0, _080E3D04 @ =0x0000ffff\n" - "\tstrh r0, [r1, 0xE]\n" - "_080E3CDA:\n" - "\tlsls r0, r5, 16\n" - "\tmovs r2, 0x80\n" - "\tlsls r2, 14\n" - "\tadds r0, r2\n" - "\tmovs r1, 0x98\n" - "\tlsls r1, 17\n" - "\tcmp r0, r1\n" - "\tbhi _080E3CEC\n" - "\tb _080E3E6C\n" - "_080E3CEC:\n" - "\tldr r0, _080E3D08 @ =gTasks\n" - "\tmov r1, r9\n" - "\tadd r1, r8\n" - "\tlsls r1, 3\n" - "\tadds r1, r0\n" - "\tmovs r0, 0\n" - "\tstrh r0, [r1, 0xA]\n" - "\tb _080E3D82\n" - "\t.align 2, 0\n" - "_080E3CFC: .4byte gBattleAnimTarget\n" - "_080E3D00: .4byte gBattleAnimArgs\n" - "_080E3D04: .4byte 0x0000ffff\n" - "_080E3D08: .4byte gTasks\n" - "_080E3D0C:\n" - "\tmovs r0, 0\n" - "\tbl GetAnimBattlerSpriteId\n" - "\tlsls r0, 24\n" - "\tlsrs r7, r0, 24\n" - "\tldr r1, _080E3D58 @ =gTasks\n" - "\tmov r3, r8\n" - "\tlsls r4, r3, 2\n" - "\tadds r0, r4, r3\n" - "\tlsls r0, 3\n" - "\tadds r0, r1\n" - "\tldrh r0, [r0, 0x26]\n" - "\tlsls r0, 24\n" - "\tlsrs r5, r0, 24\n" - "\tlsls r0, r5, 4\n" - "\tadds r0, r5\n" - "\tlsls r0, 2\n" - "\tldr r5, _080E3D5C @ =gSprites\n" - "\tadds r0, r5\n" - "\tbl DestroySpriteAndFreeResources_\n" - "\tldr r0, _080E3D60 @ =gBattleAnimAttacker\n" - "\tldrb r0, [r0]\n" - "\tbl GetBattlerSide\n" - "\tlsls r0, 24\n" - "\tmov r9, r4\n" - "\tcmp r0, 0\n" - "\tbne _080E3D64\n" - "\tlsls r1, r7, 4\n" - "\tadds r1, r7\n" - "\tlsls r1, 2\n" - "\tadds r1, r5\n" - "\tldrh r0, [r1, 0x20]\n" - "\tnegs r0, r0\n" - "\tsubs r0, 0x20\n" - "\tstrh r0, [r1, 0x24]\n" - "\tb _080E3D78\n" - "\t.align 2, 0\n" - "_080E3D58: .4byte gTasks\n" - "_080E3D5C: .4byte gSprites\n" - "_080E3D60: .4byte gBattleAnimAttacker\n" - "_080E3D64:\n" - "\tlsls r0, r7, 4\n" - "\tadds r0, r7\n" - "\tlsls r0, 2\n" - "\tadds r0, r5\n" - "\tldrh r2, [r0, 0x20]\n" - "\tmovs r4, 0x88\n" - "\tlsls r4, 1\n" - "\tadds r1, r4, 0\n" - "\tsubs r1, r2\n" - "\tstrh r1, [r0, 0x24]\n" - "_080E3D78:\n" - "\tldr r0, _080E3D8C @ =gTasks\n" - "\tmov r1, r9\n" - "\tadd r1, r8\n" - "\tlsls r1, 3\n" - "\tadds r1, r0\n" - "_080E3D82:\n" - "\tldrh r0, [r1, 0x8]\n" - "\tadds r0, 0x1\n" - "\tstrh r0, [r1, 0x8]\n" - "\tb _080E3E6C\n" - "\t.align 2, 0\n" - "_080E3D8C: .4byte gTasks\n" - "_080E3D90:\n" - "\tmovs r0, 0\n" - "\tbl GetAnimBattlerSpriteId\n" - "\tlsls r0, 24\n" - "\tlsrs r7, r0, 24\n" - "\tldr r1, _080E3E04 @ =gTasks\n" - "\tmov r0, r8\n" - "\tlsls r4, r0, 2\n" - "\tadds r0, r4, r0\n" - "\tlsls r0, 3\n" - "\tadds r2, r0, r1\n" - "\tmovs r1, 0x80\n" - "\tlsls r1, 4\n" - "\tadds r0, r1, 0\n" - "\tldrh r3, [r2, 0xA]\n" - "\tadds r0, r3\n" - "\tstrh r0, [r2, 0xA]\n" - "\tldr r0, _080E3E08 @ =gBattleAnimAttacker\n" - "\tmov r10, r0\n" - "\tldrb r0, [r0]\n" - "\tstr r2, [sp, 0x18]\n" - "\tbl GetBattlerSide\n" - "\tlsls r0, 24\n" - "\tmov r9, r4\n" - "\tldr r2, [sp, 0x18]\n" - "\tcmp r0, 0\n" - "\tbne _080E3E10\n" - "\tldr r1, _080E3E0C @ =gSprites\n" - "\tlsls r5, r7, 4\n" - "\tadds r0, r5, r7\n" - "\tlsls r0, 2\n" - "\tadds r6, r0, r1\n" - "\tldrh r0, [r2, 0xA]\n" - "\tlsls r0, 16\n" - "\tasrs r0, 24\n" - "\tldrh r1, [r6, 0x24]\n" - "\tadds r0, r1\n" - "\tstrh r0, [r6, 0x24]\n" - "\tmovs r2, 0x24\n" - "\tldrsh r4, [r6, r2]\n" - "\tmovs r3, 0x20\n" - "\tldrsh r0, [r6, r3]\n" - "\tadds r4, r0\n" - "\tmov r1, r10\n" - "\tldrb r0, [r1]\n" - "\tmovs r1, 0\n" - "\tbl GetBattlerSpriteCoord\n" - "\tlsls r0, 24\n" - "\tlsrs r0, 24\n" - "\tadds r3, r5, 0\n" - "\tcmp r4, r0\n" - "\tblt _080E3E48\n" - "\tmovs r2, 0\n" - "\tstrh r2, [r6, 0x24]\n" - "\tb _080E3E48\n" - "\t.align 2, 0\n" - "_080E3E04: .4byte gTasks\n" - "_080E3E08: .4byte gBattleAnimAttacker\n" - "_080E3E0C: .4byte gSprites\n" - "_080E3E10:\n" - "\tldr r1, _080E3E7C @ =gSprites\n" - "\tlsls r5, r7, 4\n" - "\tadds r0, r5, r7\n" - "\tlsls r0, 2\n" - "\tadds r6, r0, r1\n" - "\tldrh r1, [r2, 0xA]\n" - "\tlsls r1, 16\n" - "\tasrs r1, 24\n" - "\tldrh r0, [r6, 0x24]\n" - "\tsubs r0, r1\n" - "\tstrh r0, [r6, 0x24]\n" - "\tmovs r3, 0x24\n" - "\tldrsh r4, [r6, r3]\n" - "\tmovs r1, 0x20\n" - "\tldrsh r0, [r6, r1]\n" - "\tadds r4, r0\n" - "\tmov r2, r10\n" - "\tldrb r0, [r2]\n" - "\tmovs r1, 0\n" - "\tbl GetBattlerSpriteCoord\n" - "\tlsls r0, 24\n" - "\tlsrs r0, 24\n" - "\tadds r3, r5, 0\n" - "\tcmp r4, r0\n" - "\tbgt _080E3E48\n" - "\tmovs r4, 0\n" - "\tstrh r4, [r6, 0x24]\n" - "_080E3E48:\n" - "\tldr r1, _080E3E80 @ =gTasks\n" - "\tmov r0, r9\n" - "\tadd r0, r8\n" - "\tlsls r0, 3\n" - "\tadds r0, r1\n" - "\tldrb r1, [r0, 0xA]\n" - "\tstrh r1, [r0, 0xA]\n" - "\tldr r1, _080E3E7C @ =gSprites\n" - "\tadds r0, r3, r7\n" - "\tlsls r0, 2\n" - "\tadds r0, r1\n" - "\tmovs r1, 0x24\n" - "\tldrsh r0, [r0, r1]\n" - "\tcmp r0, 0\n" - "\tbne _080E3E6C\n" - "\tmov r0, r8\n" - "\tbl DestroyAnimVisualTask\n" - "_080E3E6C:\n" - "\tadd sp, 0x1C\n" - "\tpop {r3-r5}\n" - "\tmov r8, r3\n" - "\tmov r9, r4\n" - "\tmov r10, r5\n" - "\tpop {r4-r7}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.align 2, 0\n" - "_080E3E7C: .4byte gSprites\n" - "_080E3E80: .4byte gTasks\n"); -} -#endif void sub_80E3E84(struct Sprite *sprite) { |