summaryrefslogtreecommitdiff
path: root/src/battle/anim/flying.c
diff options
context:
space:
mode:
authorGriffinR <griffin.g.richards@gmail.com>2020-08-19 01:04:35 -0400
committerGitHub <noreply@github.com>2020-08-19 01:04:35 -0400
commit5d6e7a31da8f018c1a69e9e57eca0657ec19c283 (patch)
tree3ce548fbada787a8d2dc686ef6612f06e2b9fc3a /src/battle/anim/flying.c
parent9effc97f69d46af00e45420661a775c5977049c8 (diff)
parent3d96e954c845659f5184e99856ddf61ce1375b2f (diff)
Merge pull request #788 from kazblox/master
Fix NONMATCHINGs and actual English Debug support
Diffstat (limited to 'src/battle/anim/flying.c')
-rw-r--r--src/battle/anim/flying.c208
1 files changed, 36 insertions, 172 deletions
diff --git a/src/battle/anim/flying.c b/src/battle/anim/flying.c
index 407c9a08f..64991d161 100644
--- a/src/battle/anim/flying.c
+++ b/src/battle/anim/flying.c
@@ -2330,195 +2330,59 @@ void sub_80DB330(struct Sprite *sprite)
}
}
-#ifdef NONMATCHING
void sub_80DB374(struct Sprite *sprite)
{
- // NONMATCHING - Functionally equivalent - slight register swap at end
-
u32 matrixNum;
- int t1, t3;
- s16 t2;
+ int t1, t2;
switch (sprite->data[0])
{
+ case 0:
+ if (!gBattleAnimArgs[0])
+ {
+ sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0);
+ sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1);
+ }
+ else
+ {
+ sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0);
+ sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1);
+ }
- case 0:
- if (!gBattleAnimArgs[0])
- {
- sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0);
- sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1);
- }
- else
- {
- sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0);
- sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1);
- }
-
- sprite->data[1] = 512;
+ sprite->data[1] = 512;
- sub_8078FDC(sprite, 0, 256, sprite->data[1], 0);
- ++sprite->data[0];
- break;
- case 1:
- if (sprite->data[2] <= 11)
- {
- sprite->data[1] -= 40;
- }
- else
- {
- sprite->data[1] += 40;
- }
+ sub_8078FDC(sprite, 0, 256, sprite->data[1], 0);
+ sprite->data[0]++;
+ break;
+ case 1:
+ if (sprite->data[2] <= 11)
+ sprite->data[1] -= 40;
+ else
+ sprite->data[1] += 40;
- ++sprite->data[2];
+ sprite->data[2]++;
- sub_8078FDC(sprite, 0, 256, sprite->data[1], 0);
+ sub_8078FDC(sprite, 0, 256, sprite->data[1], 0);
- matrixNum = sprite->oam.matrixNum;
+ matrixNum = sprite->oam.matrixNum;
- t1 = 15616;
- t2 = gOamMatrices[matrixNum].d;
- t3 = t1 / t2 + 1;
+ t1 = 15616;
+ t2 = t1 / gOamMatrices[matrixNum].d + 1;
- if (t3 > 128)
- {
- t3 = 128;
- }
+ if (t2 > 128)
+ t2 = 128;
- /* NONMATCHING
- * compiles to:
- * asr r0, r0, #0x1
- strh r0, [r5, #0x26]
- * needed:
- * asrs r1, r0, 1
- * strh r1, [r5, 0x26] */
- sprite->pos2.y = (64 - t3) / 2;
+ t2 = (64 - t2) / 2;
+ sprite->pos2.y = t2;
- if (sprite->data[2] == 24)
- {
- sub_8079098(sprite);
- DestroyAnimSprite(sprite);
- }
+ if (sprite->data[2] == 24)
+ {
+ sub_8079098(sprite);
+ DestroyAnimSprite(sprite);
+ }
+ break;
}
}
-#else
-NAKED
-void sub_80DB374(struct Sprite *sprite)
-{
- asm_unified("push {r4,r5,lr}\n\
- sub sp, 0x4\n\
- adds r5, r0, 0\n\
- movs r1, 0x2E\n\
- ldrsh r0, [r5, r1]\n\
- cmp r0, 0\n\
- beq _080DB388\n\
- cmp r0, 0x1\n\
- beq _080DB3E0\n\
- b _080DB44C\n\
-_080DB388:\n\
- ldr r0, _080DB398 @ =gBattleAnimArgs\n\
- movs r2, 0\n\
- ldrsh r0, [r0, r2]\n\
- cmp r0, 0\n\
- bne _080DB3A0\n\
- ldr r4, _080DB39C @ =gBattleAnimAttacker\n\
- b _080DB3A2\n\
- .align 2, 0\n\
-_080DB398: .4byte gBattleAnimArgs\n\
-_080DB39C: .4byte gBattleAnimAttacker\n\
-_080DB3A0:\n\
- ldr r4, _080DB3DC @ =gBattleAnimTarget\n\
-_080DB3A2:\n\
- ldrb r0, [r4]\n\
- movs r1, 0\n\
- bl GetBattlerSpriteCoord\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- strh r0, [r5, 0x20]\n\
- ldrb r0, [r4]\n\
- movs r1, 0x1\n\
- bl GetBattlerSpriteCoord\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- strh r0, [r5, 0x22]\n\
- movs r0, 0\n\
- movs r3, 0x80\n\
- lsls r3, 2\n\
- strh r3, [r5, 0x30]\n\
- movs r2, 0x80\n\
- lsls r2, 1\n\
- str r0, [sp]\n\
- adds r0, r5, 0\n\
- movs r1, 0\n\
- bl sub_8078FDC\n\
- ldrh r0, [r5, 0x2E]\n\
- adds r0, 0x1\n\
- strh r0, [r5, 0x2E]\n\
- b _080DB44C\n\
- .align 2, 0\n\
-_080DB3DC: .4byte gBattleAnimTarget\n\
-_080DB3E0:\n\
- movs r1, 0x32\n\
- ldrsh r0, [r5, r1]\n\
- cmp r0, 0xB\n\
- bgt _080DB3EE\n\
- ldrh r0, [r5, 0x30]\n\
- subs r0, 0x28\n\
- b _080DB3F2\n\
-_080DB3EE:\n\
- ldrh r0, [r5, 0x30]\n\
- adds r0, 0x28\n\
-_080DB3F2:\n\
- strh r0, [r5, 0x30]\n\
- ldrh r0, [r5, 0x32]\n\
- adds r0, 0x1\n\
- movs r1, 0\n\
- strh r0, [r5, 0x32]\n\
- movs r2, 0x80\n\
- lsls r2, 1\n\
- movs r0, 0x30\n\
- ldrsh r3, [r5, r0]\n\
- str r1, [sp]\n\
- adds r0, r5, 0\n\
- bl sub_8078FDC\n\
- ldrb r1, [r5, 0x3]\n\
- lsls r1, 26\n\
- lsrs r1, 27\n\
- movs r0, 0xF4\n\
- lsls r0, 6\n\
- ldr r2, _080DB454 @ =gOamMatrices\n\
- lsls r1, 3\n\
- adds r1, r2\n\
- movs r2, 0x6\n\
- ldrsh r1, [r1, r2]\n\
- bl __divsi3\n\
- adds r1, r0, 0x1\n\
- cmp r1, 0x80\n\
- ble _080DB42C\n\
- movs r1, 0x80\n\
-_080DB42C:\n\
- movs r0, 0x40\n\
- subs r0, r1\n\
- lsrs r1, r0, 31\n\
- adds r0, r1\n\
- asrs r1, r0, 1\n\
- strh r1, [r5, 0x26]\n\
- movs r1, 0x32\n\
- ldrsh r0, [r5, r1]\n\
- cmp r0, 0x18\n\
- bne _080DB44C\n\
- adds r0, r5, 0\n\
- bl sub_8079098\n\
- adds r0, r5, 0\n\
- bl DestroyAnimSprite\n\
-_080DB44C:\n\
- add sp, 0x4\n\
- pop {r4,r5}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_080DB454: .4byte gOamMatrices\n");
-}
-#endif
void sub_80DB458(struct Sprite *sprite)
{