summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorultima-soul <akshayjhanji@hotmail.com>2019-04-07 18:36:10 -0700
committerhuderlem <huderlem@gmail.com>2019-04-08 17:29:44 -0500
commit2c432c314a95b5c48f411075fb6f2ff62fa69617 (patch)
treef8f4afb4e2be5b90702a2cfff5d962014e45e5fa /src
parent92851ba4e60bcd3710b9db89d3f588833e591531 (diff)
Match sub_8159308
Diffstat (limited to 'src')
-rw-r--r--src/battle_anim.c2
-rw-r--r--src/battle_anim_sound_tasks.c71
2 files changed, 13 insertions, 60 deletions
diff --git a/src/battle_anim.c b/src/battle_anim.c
index a667c6177..b265bf7bc 100644
--- a/src/battle_anim.c
+++ b/src/battle_anim.c
@@ -2936,7 +2936,7 @@ s8 BattleAnimAdjustPanning2(s8 pan)
return pan;
}
-s16 KeepPanInRange(s16 panArg)
+s16 KeepPanInRange(s16 panArg, int oldPan)
{
s16 pan = panArg;
diff --git a/src/battle_anim_sound_tasks.c b/src/battle_anim_sound_tasks.c
index e5f0cd165..8f90a6a16 100644
--- a/src/battle_anim_sound_tasks.c
+++ b/src/battle_anim_sound_tasks.c
@@ -53,7 +53,7 @@ static void sub_8158B98(u8 taskId)
PlaySE12WithPanning(gTasks[taskId].data[0], pan);
}
pan += panIncrement;
- gTasks[taskId].data[2] = KeepPanInRange(pan);
+ gTasks[taskId].data[2] = KeepPanInRange(pan, panIncrement);
}
}
@@ -116,9 +116,12 @@ static void sub_8158D08(u8 taskId)
if (gTasks[taskId].data[10]++ == gTasks[taskId].data[5])
{
+ u16 dPan, oldPan;
gTasks[taskId].data[10] = 0;
- gTasks[taskId].data[11] += gTasks[taskId].data[3];
- gTasks[taskId].data[11] = KeepPanInRange(gTasks[taskId].data[11]);
+ dPan = gTasks[taskId].data[3];
+ oldPan = gTasks[taskId].data[11] ;
+ gTasks[taskId].data[11] = dPan + oldPan;
+ gTasks[taskId].data[11] = KeepPanInRange(gTasks[taskId].data[11], oldPan);
}
}
// task end
@@ -368,71 +371,21 @@ void sub_8159278(u8 taskId)
sub_8159308(taskId);
}
-#ifdef NONMATCHING
void sub_8159308(u8 taskId)
{
- s16 panIncrement = gTasks[taskId].data[3];
+ u16 panIncrement = gTasks[taskId].data[3];
if (gTasks[taskId].data[10]++ == gTasks[taskId].data[5])
{
+ u16 oldPan;
gTasks[taskId].data[10] = 0;
-
- gTasks[taskId].data[11] += panIncrement;
- gTasks[taskId].data[11] = KeepPanInRange(gTasks[taskId].data[11]);
+ oldPan = gTasks[taskId].data[11];
+ gTasks[taskId].data[11] = panIncrement + oldPan;
+ gTasks[taskId].data[11] = KeepPanInRange(gTasks[taskId].data[11], oldPan);
}
gUnknown_02038440 = gTasks[taskId].data[11];
if (gTasks[taskId].data[11] == gTasks[taskId].data[2])
DestroyAnimVisualTask(taskId);
}
-#else
-NAKED
-void sub_8159308(u8 taskId)
-{
- asm_unified(" push {r4,r5,lr}\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- adds r5, r0, 0\n\
- ldr r1, =gTasks\n\
- lsls r0, r5, 2\n\
- adds r0, r5\n\
- lsls r0, 3\n\
- adds r4, r0, r1\n\
- ldrh r2, [r4, 0xE]\n\
- ldrh r0, [r4, 0x1C]\n\
- adds r1, r0, 0x1\n\
- strh r1, [r4, 0x1C]\n\
- lsls r0, 16\n\
- asrs r0, 16\n\
- movs r3, 0x12\n\
- ldrsh r1, [r4, r3]\n\
- cmp r0, r1\n\
- bne _08159342\n\
- movs r0, 0\n\
- strh r0, [r4, 0x1C]\n\
- ldrh r1, [r4, 0x1E]\n\
- adds r0, r2, r1\n\
- strh r0, [r4, 0x1E]\n\
- movs r2, 0x1E\n\
- ldrsh r0, [r4, r2]\n\
- bl KeepPanInRange\n\
- strh r0, [r4, 0x1E]\n\
-_08159342:\n\
- ldr r1, =gUnknown_02038440\n\
- ldrh r0, [r4, 0x1E]\n\
- strb r0, [r1]\n\
- movs r3, 0x1E\n\
- ldrsh r1, [r4, r3]\n\
- movs r2, 0xC\n\
- ldrsh r0, [r4, r2]\n\
- cmp r1, r0\n\
- bne _0815935A\n\
- adds r0, r5, 0\n\
- bl DestroyAnimVisualTask\n\
-_0815935A:\n\
- pop {r4,r5}\n\
- pop {r0}\n\
- bx r0\n\
- .pool");
-}
-#endif
+