diff options
author | Marcus Huderle <huderlem@gmail.com> | 2018-08-27 21:05:45 -0500 |
---|---|---|
committer | Marcus Huderle <huderlem@gmail.com> | 2018-08-27 21:05:45 -0500 |
commit | 9704631136a4c94552237d20933a0777439bef4d (patch) | |
tree | 3dfc1afb063a32f0bd45b83d50ebceeeaca415c1 /src | |
parent | 70bb9b8f6f9a3169b83b98b266baa3e9923fba3e (diff) |
Match two functions in flying.c
Diffstat (limited to 'src')
-rw-r--r-- | src/battle/anim/flying.c | 301 |
1 files changed, 17 insertions, 284 deletions
diff --git a/src/battle/anim/flying.c b/src/battle/anim/flying.c index ccba5bb0a..8a57985de 100644 --- a/src/battle/anim/flying.c +++ b/src/battle/anim/flying.c @@ -1823,15 +1823,15 @@ void sub_80DAD30(struct Sprite *sprite) sprite->callback = TranslateAnimSpriteToTargetMonLocation; } -#ifdef NONMATCHING -void sub_80DAD84(struct Sprite * sprite) { +void sub_80DAD84(struct Sprite * sprite) +{ /* functionally equivalent * rand and matrix num registers switched * can't force registers because they move on left/right switch */ - u32 matrixNum; + s16 matrixNum; s16 rand; s16 sinVal; @@ -1887,200 +1887,6 @@ void sub_80DAD84(struct Sprite * sprite) { sprite->callback = sub_80DAF0C; } -#else -NAKED -void sub_80DAD84(struct Sprite *sprite) -{ - asm_unified("push {r4-r7,lr}\n\ - adds r4, r0, 0\n\ - ldr r5, _080DADCC @ =gBattleAnimArgs\n\ - ldrh r0, [r5]\n\ - strh r0, [r4, 0x30]\n\ - ldrh r0, [r5, 0x2]\n\ - strh r0, [r4, 0x32]\n\ - ldrh r0, [r5, 0x4]\n\ - strh r0, [r4, 0x34]\n\ - ldr r0, _080DADD0 @ =gMain\n\ - ldr r1, _080DADD4 @ =0x0000043d\n\ - adds r0, r1\n\ - ldrb r1, [r0]\n\ - movs r0, 0x2\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _080DAE44\n\ - ldr r0, _080DADD8 @ =gBanksBySide\n\ - ldr r1, _080DADDC @ =gAnimBankTarget\n\ - ldrb r2, [r1]\n\ - adds r0, r2, r0\n\ - ldrb r1, [r0]\n\ - movs r0, 0x1\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _080DADE0\n\ - adds r0, r2, 0\n\ - movs r1, 0x1\n\ - bl GetBattlerSpriteCoord\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - ldrh r5, [r5, 0x6]\n\ - adds r0, r5\n\ - b _080DADEE\n\ - .align 2, 0\n\ -_080DADCC: .4byte gBattleAnimArgs\n\ -_080DADD0: .4byte gMain\n\ -_080DADD4: .4byte 0x0000043d\n\ -_080DADD8: .4byte gBanksBySide\n\ -_080DADDC: .4byte gAnimBankTarget\n\ -_080DADE0:\n\ - adds r0, r2, 0\n\ - movs r1, 0x1\n\ - bl GetBattlerSpriteCoord\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - adds r0, 0x28\n\ -_080DADEE:\n\ - strh r0, [r4, 0x3C]\n\ - ldr r0, _080DAE1C @ =gBattleAnimArgs\n\ - movs r1, 0x8\n\ - ldrsh r0, [r0, r1]\n\ - cmp r0, 0\n\ - beq _080DAE24\n\ - ldr r0, _080DAE20 @ =gAnimBankTarget\n\ - ldrb r0, [r0]\n\ - bl sub_8079ED4\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - adds r0, 0x1\n\ - movs r1, 0x3\n\ - ands r0, r1\n\ - lsls r0, 2\n\ - ldrb r2, [r4, 0x5]\n\ - movs r1, 0xD\n\ - negs r1, r1\n\ - ands r1, r2\n\ - orrs r1, r0\n\ - strb r1, [r4, 0x5]\n\ - b _080DAE58\n\ - .align 2, 0\n\ -_080DAE1C: .4byte gBattleAnimArgs\n\ -_080DAE20: .4byte gAnimBankTarget\n\ -_080DAE24:\n\ - ldr r0, _080DAE40 @ =gAnimBankTarget\n\ - ldrb r0, [r0]\n\ - bl sub_8079ED4\n\ - movs r1, 0x3\n\ - ands r1, r0\n\ - lsls r1, 2\n\ - ldrb r2, [r4, 0x5]\n\ - movs r0, 0xD\n\ - negs r0, r0\n\ - ands r0, r2\n\ - orrs r0, r1\n\ - strb r0, [r4, 0x5]\n\ - b _080DAE58\n\ - .align 2, 0\n\ -_080DAE40: .4byte gAnimBankTarget\n\ -_080DAE44:\n\ - ldr r0, _080DAEFC @ =gAnimBankTarget\n\ - ldrb r0, [r0]\n\ - movs r1, 0x1\n\ - bl GetBattlerSpriteCoord\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - ldrh r5, [r5, 0x6]\n\ - adds r0, r5\n\ - strh r0, [r4, 0x3C]\n\ -_080DAE58:\n\ - ldr r5, _080DAF00 @ =gSineTable\n\ - ldrh r3, [r4, 0x30]\n\ - movs r1, 0xFF\n\ - ands r1, r3\n\ - lsls r0, r1, 1\n\ - adds r0, r5\n\ - ldrh r0, [r0]\n\ - movs r2, 0\n\ - strh r0, [r4, 0x36]\n\ - adds r1, 0x40\n\ - lsls r1, 1\n\ - adds r1, r5\n\ - ldrh r0, [r1]\n\ - negs r0, r0\n\ - strh r0, [r4, 0x38]\n\ - strh r2, [r4, 0x3A]\n\ - strh r2, [r4, 0x26]\n\ - strh r2, [r4, 0x24]\n\ - ldrb r0, [r4, 0x3]\n\ - lsls r0, 26\n\ - lsrs r6, r0, 27\n\ - lsls r3, 16\n\ - lsrs r3, 24\n\ - strh r3, [r4, 0x30]\n\ - bl Random\n\ - lsls r0, 16\n\ - asrs r7, r0, 16\n\ - movs r0, 0x80\n\ - lsls r0, 8\n\ - ands r0, r7\n\ - cmp r0, 0\n\ - beq _080DAEA2\n\ - ldrh r1, [r4, 0x30]\n\ - movs r0, 0xFF\n\ - subs r0, r1\n\ - strh r0, [r4, 0x30]\n\ -_080DAEA2:\n\ - movs r0, 0x30\n\ - ldrsh r1, [r4, r0]\n\ - lsls r0, r1, 1\n\ - adds r0, r5\n\ - ldrh r0, [r0]\n\ - ldr r3, _080DAF04 @ =gOamMatrices\n\ - lsls r2, r6, 3\n\ - adds r2, r3\n\ - adds r1, 0x40\n\ - lsls r1, 1\n\ - adds r1, r5\n\ - ldrh r1, [r1]\n\ - strh r1, [r2, 0x6]\n\ - strh r1, [r2]\n\ - strh r0, [r2, 0x2]\n\ - lsls r0, 16\n\ - asrs r0, 16\n\ - negs r0, r0\n\ - strh r0, [r2, 0x4]\n\ - adds r3, r4, 0\n\ - adds r3, 0x3F\n\ - ldrb r0, [r3]\n\ - movs r1, 0x4\n\ - orrs r0, r1\n\ - movs r1, 0x11\n\ - negs r1, r1\n\ - ands r0, r1\n\ - strb r0, [r3]\n\ - movs r0, 0x1\n\ - ands r0, r7\n\ - cmp r0, 0\n\ - beq _080DAEF2\n\ - adds r2, r4, 0\n\ - adds r2, 0x2A\n\ - movs r1, 0x1\n\ - movs r0, 0x1\n\ - strb r0, [r2]\n\ - ldrb r0, [r3]\n\ - orrs r0, r1\n\ - strb r0, [r3]\n\ -_080DAEF2:\n\ - ldr r0, _080DAF08 @ =sub_80DAF0C\n\ - str r0, [r4, 0x1C]\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ -_080DAEFC: .4byte gAnimBankTarget\n\ -_080DAF00: .4byte gSineTable\n\ -_080DAF04: .4byte gOamMatrices\n\ -_080DAF08: .4byte sub_80DAF0C\n"); -} -#endif #ifdef NONMATCHING void sub_80DAF0C(struct Sprite * sprite) { @@ -2682,124 +2488,56 @@ void sub_80DB458(struct Sprite *sprite) sprite->callback = sub_80DB508; } -#ifdef NONMATCHING -void sub_80DB508(struct Sprite * sprite) +void sub_80DB508(struct Sprite *sprite) { - // NONMATCHING - Functionally equivalent - if (sprite->data[2] == 0) { sprite->pos2.x += sprite->data[0] >> 8; + sprite->pos2.y -= sprite->data[1] >> 8; } else { sprite->pos2.x -= sprite->data[0] >> 8; + sprite->pos2.y -= sprite->data[1] >> 8; } - sprite->pos2.y -= sprite->data[1] >> 8; sprite->data[0] = sprite->data[0]; sprite->data[1] -= 32; if (sprite->data[0] < 0) - { sprite->data[0] = 0; - } if (++sprite->data[3] == 31) - { DestroyAnimSprite(sprite); - } } -#else -NAKED -void sub_80DB508(struct Sprite *sprite) -{ - asm_unified("push {r4,lr}\n\ - adds r4, r0, 0\n\ - movs r1, 0x32\n\ - ldrsh r0, [r4, r1]\n\ - cmp r0, 0\n\ - bne _080DB520\n\ - ldrh r3, [r4, 0x2E]\n\ - lsls r0, r3, 16\n\ - asrs r0, 24\n\ - ldrh r1, [r4, 0x24]\n\ - adds r0, r1\n\ - b _080DB52A\n\ -_080DB520:\n\ - ldrh r3, [r4, 0x2E]\n\ - lsls r1, r3, 16\n\ - asrs r1, 24\n\ - ldrh r0, [r4, 0x24]\n\ - subs r0, r1\n\ -_080DB52A:\n\ - strh r0, [r4, 0x24]\n\ - ldrh r2, [r4, 0x30]\n\ - lsls r1, r2, 16\n\ - asrs r1, 24\n\ - ldrh r0, [r4, 0x26]\n\ - subs r0, r1\n\ - strh r0, [r4, 0x26]\n\ - strh r3, [r4, 0x2E]\n\ - adds r0, r2, 0\n\ - subs r0, 0x20\n\ - strh r0, [r4, 0x30]\n\ - lsls r0, r3, 16\n\ - cmp r0, 0\n\ - bge _080DB54A\n\ - movs r0, 0\n\ - strh r0, [r4, 0x2E]\n\ -_080DB54A:\n\ - ldrh r0, [r4, 0x34]\n\ - adds r0, 0x1\n\ - strh r0, [r4, 0x34]\n\ - lsls r0, 16\n\ - asrs r0, 16\n\ - cmp r0, 0x1F\n\ - bne _080DB55E\n\ - adds r0, r4, 0\n\ - bl DestroyAnimSprite\n\ -_080DB55E:\n\ - pop {r4}\n\ - pop {r0}\n\ - bx r0\n"); -} -#endif void sub_80DB564(struct Sprite *sprite) { - sprite->data[6] = 0; sprite->data[7] = 0x40; sprite->callback = sub_80DB578; - } void sub_80DB578(struct Sprite *sprite) { - switch (sprite->data[0]) { - case 0: - if (++sprite->data[1] > 8) - { - sprite->data[1] = 0; - sprite->invisible ^= 1; - if (++sprite->data[2] > 5 && sprite->invisible) - { - ++sprite->data[0]; - } - } - break; - case 1: - DestroyAnimSprite(sprite); + case 0: + if (++sprite->data[1] > 8) + { + sprite->data[1] = 0; + sprite->invisible ^= 1; + if (++sprite->data[2] > 5 && sprite->invisible) + sprite->data[0]++; + } + break; + case 1: + DestroyAnimSprite(sprite); } - } void sub_80DB5E4(struct Sprite *sprite) { - s16 posx, posy; u16 rotation; @@ -2821,12 +2559,10 @@ void sub_80DB5E4(struct Sprite *sprite) sub_8078FDC(sprite, 1, 0x100, 0x100, rotation); sprite->callback = sub_80DB6A0; - } void sub_80DB6A0(struct Sprite *sprite) { - sprite->data[4] += sprite->data[6]; sprite->data[5] += sprite->data[7]; @@ -2837,12 +2573,10 @@ void sub_80DB6A0(struct Sprite *sprite) { move_anim_8074EE0(sprite); } - } void unref_sub_80DB6E4(u8 taskId) { - if (gBattleAnimArgs[0] == 0) { u8 spriteId = GetAnimBattlerSpriteId(0); @@ -2855,5 +2589,4 @@ void unref_sub_80DB6E4(u8 taskId) } DestroyAnimVisualTask(taskId); - }
\ No newline at end of file |