diff options
author | Marco Willems (M17.1) <progreon@gmail.com> | 2018-01-07 23:12:28 +0100 |
---|---|---|
committer | Marco Willems (M17.1) <progreon@gmail.com> | 2018-01-07 23:12:28 +0100 |
commit | e99816d2082d009457105a5e74524f97b80661c0 (patch) | |
tree | ab609d8dd50eca2dd4b94d79a404f9406a0748e2 | |
parent | 589df520baf710078abf2756d35662bda944861c (diff) |
Decompiled sub_812B108
-rw-r--r-- | asm/battle_anim_sfx.s | 69 | ||||
-rw-r--r-- | src/battle/anim/sfx.c | 22 |
2 files changed, 22 insertions, 69 deletions
diff --git a/asm/battle_anim_sfx.s b/asm/battle_anim_sfx.s index 4e92cfcee..1d0358bee 100644 --- a/asm/battle_anim_sfx.s +++ b/asm/battle_anim_sfx.s @@ -5,75 +5,6 @@ .text - thumb_func_start sub_812B108 -sub_812B108: @ 812B108 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _0812B14C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x20] - adds r1, r0, 0x1 - strh r1, [r4, 0x20] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x14 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _0812B150 - movs r0, 0 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x8] - movs r1, 0x1E - ldrsb r1, [r4, r1] - bl PlaySE12WithPanning - ldrh r0, [r4, 0x10] - subs r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - cmp r0, 0 - bne _0812B150 - adds r0, r5, 0 - bl DestroyAnimSoundTask - b _0812B182 - .align 2, 0 -_0812B14C: .4byte gTasks -_0812B150: - ldr r1, _0812B188 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x1C] - adds r1, r0, 0x1 - strh r1, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x12 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _0812B182 - movs r0, 0 - strh r0, [r4, 0x1C] - ldrh r0, [r4, 0xE] - ldrh r1, [r4, 0x1E] - adds r0, r1 - strh r0, [r4, 0x1E] - movs r2, 0x1E - ldrsh r0, [r4, r2] - bl sub_8077104 - strh r0, [r4, 0x1E] -_0812B182: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812B188: .4byte gTasks - thumb_func_end sub_812B108 - thumb_func_start sub_812B18C sub_812B18C: @ 812B18C push {r4-r6,lr} diff --git a/src/battle/anim/sfx.c b/src/battle/anim/sfx.c index e7e3c867e..981022f1e 100644 --- a/src/battle/anim/sfx.c +++ b/src/battle/anim/sfx.c @@ -251,3 +251,25 @@ _0812B104: .4byte sub_812B108\n\ .syntax divided\n"); } #endif // NONMATCHING + +void sub_812B108(u8 taskId) +{ + if (TASK.data[12]++ == TASK.data[6]) + { + TASK.data[12] = 0; + PlaySE12WithPanning(TASK.data[0], TASK.data[11]); + + if (--TASK.data[4] == 0) + { + DestroyAnimSoundTask(taskId); + return; + } + } + + if (TASK.data[10]++ == TASK.data[5]) + { + TASK.data[10] = 0; + TASK.data[11] += TASK.data[3]; + TASK.data[11] = sub_8077104(TASK.data[11]); + } +} |