From 9bf765e826db98b334ef7eebc6f99d9addd971d4 Mon Sep 17 00:00:00 2001 From: Eebit Date: Thu, 15 Feb 2024 22:25:48 -0500 Subject: [PATCH 1/3] (banim-efxop) Decompile --- asm/banim-efxop.s | 2268 ------------------------------------------- include/efxbattle.h | 169 ++-- ldscript.txt | 2 +- src/banim-efxop.c | 1440 +++++++++++++++++++++++++++ src/opinfo.c | 50 +- 5 files changed, 1551 insertions(+), 2378 deletions(-) delete mode 100644 asm/banim-efxop.s create mode 100644 src/banim-efxop.c diff --git a/asm/banim-efxop.s b/asm/banim-efxop.s deleted file mode 100644 index 0ada8b5ed..000000000 --- a/asm/banim-efxop.s +++ /dev/null @@ -1,2268 +0,0 @@ - .INCLUDE "macro.inc" - - .SYNTAX UNIFIED - - THUMB_FUNC_START sub_806E8F0 -sub_806E8F0: @ 0x0806E8F0 - ldr r0, _0806E8FC @ gpProcefxopCur - movs r1, #0 - str r1, [r0] - ldr r0, _0806E900 @ gUnknown_0203E1EC - str r1, [r0] - bx lr - .align 2, 0 -_0806E8FC: .4byte gpProcefxopCur -_0806E900: .4byte gUnknown_0203E1EC - - THUMB_FUNC_END sub_806E8F0 - - THUMB_FUNC_START sub_806E904 -sub_806E904: @ 0x0806E904 - push {r4, lr} - ldr r4, _0806E91C @ gpProcefxopCur - ldr r0, [r4] - cmp r0, #0 - beq _0806E916 - bl Proc_End - movs r0, #0 - str r0, [r4] -_0806E916: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806E91C: .4byte gpProcefxopCur - - THUMB_FUNC_END sub_806E904 - - THUMB_FUNC_START sub_806E920 -sub_806E920: @ 0x0806E920 - push {r4, lr} - ldr r4, _0806E938 @ gUnknown_0203E1EC - ldr r0, [r4] - cmp r0, #0 - beq _0806E932 - bl Proc_End - movs r0, #0 - str r0, [r4] -_0806E932: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806E938: .4byte gUnknown_0203E1EC - - THUMB_FUNC_END sub_806E920 - - THUMB_FUNC_START SetGlbProcefxopCur -SetGlbProcefxopCur: @ 0x0806E93C - ldr r1, _0806E944 @ gpProcefxopCur - str r0, [r1] - bx lr - .align 2, 0 -_0806E944: .4byte gpProcefxopCur - - THUMB_FUNC_END SetGlbProcefxopCur - - THUMB_FUNC_START sub_806E948 -sub_806E948: @ 0x0806E948 - ldr r1, _0806E950 @ gUnknown_0203E1EC - str r0, [r1] - bx lr - .align 2, 0 -_0806E950: .4byte gUnknown_0203E1EC - - THUMB_FUNC_END sub_806E948 - - THUMB_FUNC_START sub_806E954 -sub_806E954: @ 0x0806E954 - ldr r0, [r0, #0x44] - ldr r0, [r0, #0x30] - bx lr - - THUMB_FUNC_END sub_806E954 - - THUMB_FUNC_START sub_806E95C -sub_806E95C: @ 0x0806E95C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl GetAnimPosition - cmp r0, #0 - bne _0806E978 - ldr r0, _0806E974 @ BanimTypesPosLeft - ldrb r1, [r0] - ldrh r0, [r4, #2] - b _0806E97E - .align 2, 0 -_0806E974: .4byte BanimTypesPosLeft -_0806E978: - ldr r0, _0806E9B0 @ BanimTypesPosRight - ldrb r0, [r0] - ldrh r1, [r4, #2] -_0806E97E: - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - ldrh r0, [r4, #4] - movs r2, #0x58 - subs r2, r2, r0 - ldrh r0, [r5, #0x12] - ldrh r3, [r5, #2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - subs r1, r1, r3 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldrh r3, [r5, #4] - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - subs r2, r2, r3 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - bl BG_SetPosition - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0806E9B0: .4byte BanimTypesPosRight - - THUMB_FUNC_END sub_806E95C - - THUMB_FUNC_START sub_806E9B4 -sub_806E9B4: @ 0x0806E9B4 - push {r4, lr} - sub sp, #4 - bl sub_806E954 - adds r4, r0, #0 - movs r0, #0 - str r0, [sp] - ldr r1, [r4, #0x14] - ldr r2, _0806E9E0 @ 0x01000200 - mov r0, sp - bl CpuFastSet - movs r0, #1 - ldrh r4, [r4, #0x12] - lsls r0, r4 - bl BG_EnableSyncByMask - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806E9E0: .4byte 0x01000200 - - THUMB_FUNC_END sub_806E9B4 - - THUMB_FUNC_START sub_806E9E4 -sub_806E9E4: @ 0x0806E9E4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - adds r4, r1, #0 - adds r7, r2, #0 - adds r6, r3, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - bl sub_806E954 - mov r8, r0 - cmp r4, #0 - bne _0806EA04 - adds r0, r7, #0 - b _0806EA06 -_0806EA04: - adds r0, r6, #0 -_0806EA06: - movs r1, #0x78 - bl AnimCreate - adds r2, r0, #0 - mov r1, r8 - ldrh r0, [r1, #0x10] - lsls r0, r0, #0xc - ldrh r1, [r1, #0xe] - orrs r0, r1 - movs r3, #0x80 - lsls r3, r3, #4 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r2, #8] - ldrh r0, [r5, #2] - strh r0, [r2, #2] - ldrh r0, [r5, #4] - strh r0, [r2, #4] - adds r0, r2, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - - THUMB_FUNC_END sub_806E9E4 - - THUMB_FUNC_START sub_806EA38 -sub_806EA38: @ 0x0806EA38 - push {r4, r5, r6, r7, lr} - sub sp, #8 - adds r6, r2, #0 - lsls r1, r1, #0x10 - lsrs r7, r1, #0x10 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - adds r5, r3, #0 - bl sub_806E954 - adds r4, r0, #0 - cmp r5, #1 - bne _0806EA5A - ldr r1, [r4, #0x1c] - adds r0, r6, #0 - bl LZ77UnCompWram -_0806EA5A: - adds r2, r6, #0 - cmp r5, #1 - bne _0806EA62 - ldr r2, [r4, #0x1c] -_0806EA62: - cmp r7, #0 - bne _0806EA7C - ldr r1, [r4, #0x14] - ldrh r0, [r4, #0xc] - str r0, [sp] - ldrh r0, [r4, #0xa] - str r0, [sp, #4] - adds r0, r2, #0 - movs r2, #0x1e - movs r3, #0x14 - bl EfxTmCpyBgHFlip - b _0806EA90 -_0806EA7C: - ldr r1, [r4, #0x14] - ldrh r0, [r4, #0xc] - str r0, [sp] - ldrh r0, [r4, #0xa] - str r0, [sp, #4] - adds r0, r2, #0 - movs r2, #0x1e - movs r3, #0x14 - bl EfxTmCpyBG -_0806EA90: - movs r0, #1 - ldrh r4, [r4, #0x12] - lsls r0, r4 - bl BG_EnableSyncByMask - add sp, #8 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - - THUMB_FUNC_END sub_806EA38 - - THUMB_FUNC_START sub_806EAA4 -sub_806EAA4: @ 0x0806EAA4 - push {r4, r5, r6, lr} - adds r6, r1, #0 - bl sub_806E954 - adds r5, r0, #0 - ldrh r4, [r5, #0xa] - lsls r4, r4, #5 - movs r0, #0xc0 - lsls r0, r0, #0x13 - adds r4, r4, r0 - ldr r1, [r5, #0x18] - adds r0, r6, #0 - bl LZ77UnCompWram - ldr r0, [r5, #0x18] - movs r2, #0x80 - lsls r2, r2, #6 - adds r1, r4, #0 - bl RegisterDataMove - pop {r4, r5, r6} - pop {r0} - bx r0 - - THUMB_FUNC_END sub_806EAA4 - - THUMB_FUNC_START sub_806EAD4 -sub_806EAD4: @ 0x0806EAD4 - push {r4, lr} - adds r4, r1, #0 - bl sub_806E954 - ldrh r1, [r0, #0xc] - lsls r1, r1, #5 - ldr r0, _0806EAF8 @ gPaletteBuffer - adds r1, r1, r0 - adds r0, r4, #0 - movs r2, #8 - bl CpuFastSet - bl EnablePaletteSync - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806EAF8: .4byte gPaletteBuffer - - THUMB_FUNC_END sub_806EAD4 - - THUMB_FUNC_START sub_806EAFC -sub_806EAFC: @ 0x0806EAFC - push {r4, r5, r6, lr} - adds r6, r1, #0 - bl sub_806E954 - adds r5, r0, #0 - ldrh r4, [r5, #0xe] - lsls r4, r4, #5 - ldr r0, _0806EB28 @ 0x06010000 - adds r4, r4, r0 - ldr r1, [r5, #0x20] - adds r0, r6, #0 - bl LZ77UnCompWram - ldr r0, [r5, #0x20] - movs r2, #0x80 - lsls r2, r2, #5 - adds r1, r4, #0 - bl RegisterDataMove - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0806EB28: .4byte 0x06010000 - - THUMB_FUNC_END sub_806EAFC - - THUMB_FUNC_START sub_806EB2C -sub_806EB2C: @ 0x0806EB2C - push {r4, lr} - adds r4, r1, #0 - bl sub_806E954 - ldrh r1, [r0, #0x10] - lsls r1, r1, #5 - ldr r0, _0806EB50 @ gPaletteBuffer+0x200 - adds r1, r1, r0 - adds r0, r4, #0 - movs r2, #8 - bl CpuFastSet - bl EnablePaletteSync - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806EB50: .4byte gPaletteBuffer+0x200 - - THUMB_FUNC_END sub_806EB2C - - THUMB_FUNC_START ExecEfxop -ExecEfxop: @ 0x0806EB54 - push {r4, lr} - adds r4, r0, #0 - bl sub_806E954 - ldr r1, _0806EB74 @ gpEfxopFuncLut - ldrh r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806EB74: .4byte gpEfxopFuncLut - - THUMB_FUNC_END ExecEfxop - - THUMB_FUNC_START nullsub_73 -nullsub_73: @ 0x0806EB78 - bx lr - - THUMB_FUNC_END nullsub_73 - - THUMB_FUNC_START NewEfxopFire -NewEfxopFire: @ 0x0806EB7C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _0806EB98 @ ProcScr_efxopFire - movs r1, #3 - bl Proc_Start - adds r5, r0, #0 - bl SetGlbProcefxopCur - str r4, [r5, #0x5c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0806EB98: .4byte ProcScr_efxopFire - - THUMB_FUNC_END NewEfxopFire - - THUMB_FUNC_START sub_806EB9C -sub_806EB9C: @ 0x0806EB9C - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x5c] - adds r1, r4, #0 - bl NewEfxopFireBG - ldr r0, [r4, #0x5c] - adds r1, r4, #0 - bl NewEfxopFireOBJ - adds r0, r4, #0 - bl Proc_Break - pop {r4} - pop {r0} - bx r0 - - THUMB_FUNC_END sub_806EB9C - - THUMB_FUNC_START NewEfxopFireBG -NewEfxopFireBG: @ 0x0806EBBC - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl sub_806E954 - adds r6, r0, #0 - ldr r0, _0806EC08 @ ProcScr_efxopFireBG - adds r1, r4, #0 - bl Proc_Start - adds r4, r0, #0 - str r5, [r4, #0x5c] - movs r0, #0 - strh r0, [r4, #0x2c] - str r0, [r4, #0x44] - ldr r0, _0806EC0C @ gUnknown_080DF644 - str r0, [r4, #0x48] - ldr r0, _0806EC10 @ gUnknown_085D9494 - str r0, [r4, #0x4c] - ldr r1, _0806EC14 @ gUnknown_085F6230 - adds r0, r5, #0 - bl sub_806EAD4 - ldr r0, [r4, #0x5c] - ldr r1, _0806EC18 @ gUnknown_085F5638 - bl sub_806EAA4 - ldr r0, [r6, #0x24] - bl _call_via_r0 - ldr r0, [r4, #0x5c] - adds r1, r6, #0 - bl sub_806E95C - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0806EC08: .4byte ProcScr_efxopFireBG -_0806EC0C: .4byte gUnknown_080DF644 -_0806EC10: .4byte gUnknown_085D9494 -_0806EC14: .4byte gUnknown_085F6230 -_0806EC18: .4byte gUnknown_085F5638 - - THUMB_FUNC_END NewEfxopFireBG - - THUMB_FUNC_START sub_806EC1C -sub_806EC1C: @ 0x0806EC1C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x2c - adds r1, r4, #0 - adds r1, #0x44 - ldr r2, [r4, #0x48] - bl EfxAdvanceFrameLut - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - cmp r1, #0 - blt _0806EC48 - ldr r2, [r4, #0x4c] - ldr r0, [r4, #0x5c] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r2, [r1] - movs r1, #1 - movs r3, #1 - bl sub_806EA38 - b _0806EC60 -_0806EC48: - movs r0, #1 - negs r0, r0 - cmp r1, r0 - bne _0806EC60 - ldr r0, [r4, #0x5c] - bl sub_806E9B4 - bl SetDefaultColorEffects_ - adds r0, r4, #0 - bl Proc_Break -_0806EC60: - pop {r4} - pop {r0} - bx r0 - - THUMB_FUNC_END sub_806EC1C - - THUMB_FUNC_START NewEfxopFireOBJ -NewEfxopFireOBJ: @ 0x0806EC68 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl sub_806E954 - adds r7, r0, #0 - ldr r0, _0806ECA4 @ ProcScr_efxopFireOBJ - adds r1, r4, #0 - bl Proc_Start - adds r6, r0, #0 - str r5, [r6, #0x5c] - movs r0, #0 - strh r0, [r6, #0x2c] - ldr r2, _0806ECA8 @ gUnknown_085F843C - ldr r3, _0806ECAC @ gUnknown_085F80B4 - adds r0, r5, #0 - movs r1, #1 - bl sub_806E9E4 - adds r4, r0, #0 - str r4, [r6, #0x60] - adds r0, r5, #0 - bl GetAnimPosition - cmp r0, #0 - bne _0806ECB0 - ldrh r0, [r5, #2] - subs r0, #8 - b _0806ECB4 - .align 2, 0 -_0806ECA4: .4byte ProcScr_efxopFireOBJ -_0806ECA8: .4byte gUnknown_085F843C -_0806ECAC: .4byte gUnknown_085F80B4 -_0806ECB0: - ldrh r0, [r5, #2] - adds r0, #8 -_0806ECB4: - strh r0, [r4, #2] - ldrh r1, [r5, #4] - adds r1, #8 - strh r1, [r4, #4] - ldrh r0, [r7, #6] - ldrh r2, [r4, #2] - adds r0, r0, r2 - strh r0, [r4, #2] - ldrh r0, [r7, #8] - adds r1, r1, r0 - strh r1, [r4, #4] - ldr r0, [r6, #0x5c] - ldr r1, _0806ECE0 @ gUnknown_085F7D64 - bl sub_806EB2C - ldr r0, [r6, #0x5c] - ldr r1, _0806ECE4 @ gUnknown_085F7768 - bl sub_806EAFC - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0806ECE0: .4byte gUnknown_085F7D64 -_0806ECE4: .4byte gUnknown_085F7768 - - THUMB_FUNC_END NewEfxopFireOBJ - - THUMB_FUNC_START sub_806ECE8 -sub_806ECE8: @ 0x0806ECE8 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2c] - adds r0, #1 - strh r0, [r4, #0x2c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x32 - ble _0806ED06 - ldr r0, [r4, #0x60] - bl AnimDelete - adds r0, r4, #0 - bl Proc_Break -_0806ED06: - pop {r4} - pop {r0} - bx r0 - - THUMB_FUNC_END sub_806ECE8 - - THUMB_FUNC_START NewEfxopThunder -NewEfxopThunder: @ 0x0806ED0C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _0806ED28 @ ProcScr_efxopThunder - movs r1, #3 - bl Proc_Start - adds r5, r0, #0 - bl SetGlbProcefxopCur - str r4, [r5, #0x5c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0806ED28: .4byte ProcScr_efxopThunder - - THUMB_FUNC_END NewEfxopThunder - - THUMB_FUNC_START sub_806ED2C -sub_806ED2C: @ 0x0806ED2C - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x5c] - adds r1, r4, #0 - bl sub_806ED54 - ldr r0, [r4, #0x5c] - adds r1, r4, #0 - bl sub_806EE34 - ldr r0, [r4, #0x5c] - adds r1, r4, #0 - bl sub_806EEA8 - adds r0, r4, #0 - bl Proc_Break - pop {r4} - pop {r0} - bx r0 - - THUMB_FUNC_END sub_806ED2C - - THUMB_FUNC_START sub_806ED54 -sub_806ED54: @ 0x0806ED54 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_806E954 - adds r6, r0, #0 - ldr r0, _0806ED9C @ ProcScr_efxopThunderBG - movs r1, #3 - bl Proc_Start - adds r4, r0, #0 - str r5, [r4, #0x5c] - movs r0, #0 - strh r0, [r4, #0x2c] - str r0, [r4, #0x44] - ldr r0, _0806EDA0 @ gUnknown_080DF6A8 - str r0, [r4, #0x48] - ldr r0, _0806EDA4 @ gUnknown_085D951C - str r0, [r4, #0x4c] - ldr r1, _0806EDA8 @ gUnknown_085F367C - adds r0, r5, #0 - bl sub_806EAD4 - ldr r0, [r4, #0x5c] - ldr r1, _0806EDAC @ gUnknown_085F2DC0 - bl sub_806EAA4 - ldr r0, [r6, #0x24] - bl _call_via_r0 - ldr r0, [r4, #0x5c] - adds r1, r6, #0 - bl sub_806E95C - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0806ED9C: .4byte ProcScr_efxopThunderBG -_0806EDA0: .4byte gUnknown_080DF6A8 -_0806EDA4: .4byte gUnknown_085D951C -_0806EDA8: .4byte gUnknown_085F367C -_0806EDAC: .4byte gUnknown_085F2DC0 - - THUMB_FUNC_END sub_806ED54 - - THUMB_FUNC_START sub_806EDB0 -sub_806EDB0: @ 0x0806EDB0 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r4, r0, #0 - movs r7, #0 - ldr r0, [r4, #0x5c] - bl sub_806E954 - adds r6, r0, #0 - adds r0, r4, #0 - adds r0, #0x2c - adds r1, r4, #0 - adds r1, #0x44 - ldr r2, [r4, #0x48] - bl EfxAdvanceFrameLut - lsls r0, r0, #0x10 - asrs r5, r0, #0x10 - cmp r5, #0 - blt _0806EE12 - ldr r2, [r4, #0x4c] - ldr r0, [r4, #0x5c] - lsls r1, r5, #2 - adds r1, r1, r2 - ldr r2, [r1] - movs r1, #0 - movs r3, #1 - bl sub_806EA38 - cmp r5, #0 - bne _0806EDF4 - ldrh r0, [r6, #0xa] - adds r0, #0x1f - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 -_0806EDF4: - cmp r5, #1 - bne _0806EE00 - ldrh r0, [r6, #0xa] - adds r0, #0x50 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 -_0806EE00: - ldr r0, [r6, #0x14] - adds r0, #0x3c - ldrh r3, [r6, #0xc] - str r7, [sp] - movs r1, #2 - movs r2, #0x14 - bl FillBGRect - b _0806EE2A -_0806EE12: - movs r0, #1 - negs r0, r0 - cmp r5, r0 - bne _0806EE2A - ldr r0, [r4, #0x5c] - bl sub_806E9B4 - bl SetDefaultColorEffects_ - adds r0, r4, #0 - bl Proc_Break -_0806EE2A: - add sp, #4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - - THUMB_FUNC_END sub_806EDB0 - - THUMB_FUNC_START sub_806EE34 -sub_806EE34: @ 0x0806EE34 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0806EE5C @ ProcScr_efxopThunderBGCOL - movs r1, #3 - bl Proc_Start - adds r4, r0, #0 - bl sub_806E948 - str r5, [r4, #0x5c] - movs r0, #0 - strh r0, [r4, #0x2c] - str r0, [r4, #0x44] - ldr r0, _0806EE60 @ gUnknown_080DF6C6 - str r0, [r4, #0x48] - ldr r0, _0806EE64 @ gUnknown_085F367C - str r0, [r4, #0x4c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0806EE5C: .4byte ProcScr_efxopThunderBGCOL -_0806EE60: .4byte gUnknown_080DF6C6 -_0806EE64: .4byte gUnknown_085F367C - - THUMB_FUNC_END sub_806EE34 - - THUMB_FUNC_START sub_806EE68 -sub_806EE68: @ 0x0806EE68 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x2c - adds r1, r4, #0 - adds r1, #0x44 - ldr r2, [r4, #0x48] - bl EfxAdvanceFrameLut - lsls r0, r0, #0x10 - asrs r2, r0, #0x10 - cmp r2, #0 - blt _0806EE8E - ldr r1, [r4, #0x4c] - ldr r0, [r4, #0x5c] - lsls r2, r2, #5 - adds r1, r1, r2 - bl sub_806EAD4 - b _0806EEA0 -_0806EE8E: - movs r0, #1 - negs r0, r0 - cmp r2, r0 - bne _0806EEA0 - bl sub_806E920 - adds r0, r4, #0 - bl Proc_Break -_0806EEA0: - pop {r4} - pop {r0} - bx r0 - - THUMB_FUNC_END sub_806EE68 - - THUMB_FUNC_START sub_806EEA8 -sub_806EEA8: @ 0x0806EEA8 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - bl sub_806E954 - adds r7, r0, #0 - ldr r0, _0806EEE4 @ ProcScr_efxopThunderOBJ - movs r1, #3 - bl Proc_Start - adds r6, r0, #0 - str r5, [r6, #0x5c] - movs r0, #0 - strh r0, [r6, #0x2c] - ldr r2, _0806EEE8 @ gUnknown_085F5550 - ldr r3, _0806EEEC @ gUnknown_085F4A24 - adds r0, r5, #0 - movs r1, #1 - bl sub_806E9E4 - adds r4, r0, #0 - str r4, [r6, #0x60] - adds r0, r5, #0 - bl GetAnimPosition - cmp r0, #0 - bne _0806EEF0 - ldrh r0, [r5, #2] - adds r0, #0x38 - b _0806EEF4 - .align 2, 0 -_0806EEE4: .4byte ProcScr_efxopThunderOBJ -_0806EEE8: .4byte gUnknown_085F5550 -_0806EEEC: .4byte gUnknown_085F4A24 -_0806EEF0: - ldrh r0, [r5, #2] - subs r0, #0x38 -_0806EEF4: - strh r0, [r4, #2] - ldrh r0, [r7, #6] - ldrh r1, [r4, #2] - adds r0, r0, r1 - strh r0, [r4, #2] - ldrh r0, [r7, #8] - ldrh r1, [r4, #4] - adds r0, r0, r1 - strh r0, [r4, #4] - ldr r0, [r6, #0x5c] - ldr r1, _0806EF1C @ Pal_BoltingSprites - bl sub_806EB2C - ldr r0, [r6, #0x5c] - ldr r1, _0806EF20 @ Img_BoltingSprites - bl sub_806EAFC - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0806EF1C: .4byte Pal_BoltingSprites -_0806EF20: .4byte Img_BoltingSprites - - THUMB_FUNC_END sub_806EEA8 - - THUMB_FUNC_START sub_806EF24 -sub_806EF24: @ 0x0806EF24 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2c] - adds r0, #1 - strh r0, [r4, #0x2c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x32 - ble _0806EF42 - ldr r0, [r4, #0x60] - bl AnimDelete - adds r0, r4, #0 - bl Proc_Break -_0806EF42: - pop {r4} - pop {r0} - bx r0 - - THUMB_FUNC_END sub_806EF24 - - THUMB_FUNC_START NewEfxopLive -NewEfxopLive: @ 0x0806EF48 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0806EF60 @ ProcScr_efxopLive - movs r1, #3 - bl Proc_Start - str r4, [r0, #0x5c] - movs r1, #0 - strh r1, [r0, #0x2c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806EF60: .4byte ProcScr_efxopLive - - THUMB_FUNC_END NewEfxopLive - - THUMB_FUNC_START sub_806EF64 -sub_806EF64: @ 0x0806EF64 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - ldr r0, [r4, #0x5c] - adds r1, r4, #0 - bl sub_806F184 - ldr r0, [r4, #0x5c] - adds r1, r4, #0 - bl sub_806EFB8 - ldr r0, [r4, #0x5c] - adds r1, r4, #0 - bl sub_806F058 - movs r0, #1 - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl SetSpecialColorEffectsParameters - ldr r0, [r4, #0x5c] - str r4, [sp] - movs r1, #1 - movs r2, #0xc - movs r3, #0 - bl sub_806F0CC - ldr r0, [r4, #0x5c] - str r4, [sp] - movs r1, #0x23 - movs r2, #0x19 - movs r3, #1 - bl sub_806F0CC - adds r0, r4, #0 - bl Proc_Break - add sp, #4 - pop {r4} - pop {r0} - bx r0 - - THUMB_FUNC_END sub_806EF64 - - THUMB_FUNC_START sub_806EFB8 -sub_806EFB8: @ 0x0806EFB8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_806E954 - adds r6, r0, #0 - ldr r0, _0806EFFC @ ProcScr_efxopLiveBG - movs r1, #3 - bl Proc_Start - adds r4, r0, #0 - bl SetGlbProcefxopCur - str r5, [r4, #0x5c] - movs r0, #0 - strh r0, [r4, #0x2c] - str r0, [r4, #0x44] - ldr r0, _0806F000 @ gUnknown_080DF730 - str r0, [r4, #0x48] - ldr r0, _0806F004 @ gUnknown_085D959C - str r0, [r4, #0x4c] - ldr r1, _0806F008 @ gUnknown_0866F5E4 - adds r0, r5, #0 - bl sub_806EAA4 - ldr r0, [r6, #0x24] - bl _call_via_r0 - ldr r0, [r4, #0x5c] - adds r1, r6, #0 - bl sub_806E95C - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0806EFFC: .4byte ProcScr_efxopLiveBG -_0806F000: .4byte gUnknown_080DF730 -_0806F004: .4byte gUnknown_085D959C -_0806F008: .4byte gUnknown_0866F5E4 - - THUMB_FUNC_END sub_806EFB8 - - THUMB_FUNC_START sub_806F00C -sub_806F00C: @ 0x0806F00C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x2c - adds r1, r4, #0 - adds r1, #0x44 - ldr r2, [r4, #0x48] - bl EfxAdvanceFrameLut - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - cmp r1, #0 - blt _0806F038 - ldr r2, [r4, #0x4c] - ldr r0, [r4, #0x5c] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r2, [r1] - movs r1, #1 - movs r3, #0 - bl sub_806EA38 - b _0806F050 -_0806F038: - movs r0, #1 - negs r0, r0 - cmp r1, r0 - bne _0806F050 - ldr r0, [r4, #0x5c] - bl sub_806E9B4 - bl SetDefaultColorEffects_ - adds r0, r4, #0 - bl Proc_Break -_0806F050: - pop {r4} - pop {r0} - bx r0 - - THUMB_FUNC_END sub_806F00C - - THUMB_FUNC_START sub_806F058 -sub_806F058: @ 0x0806F058 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0806F080 @ ProcScr_efxopLiveBGCOL - movs r1, #3 - bl Proc_Start - adds r4, r0, #0 - bl sub_806E948 - str r5, [r4, #0x5c] - movs r0, #0 - strh r0, [r4, #0x2c] - str r0, [r4, #0x44] - ldr r0, _0806F084 @ gUnknown_080DF748 - str r0, [r4, #0x48] - ldr r0, _0806F088 @ gUnknown_086700D4 - str r0, [r4, #0x4c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0806F080: .4byte ProcScr_efxopLiveBGCOL -_0806F084: .4byte gUnknown_080DF748 -_0806F088: .4byte gUnknown_086700D4 - - THUMB_FUNC_END sub_806F058 - - THUMB_FUNC_START sub_806F08C -sub_806F08C: @ 0x0806F08C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x2c - adds r1, r4, #0 - adds r1, #0x44 - ldr r2, [r4, #0x48] - bl EfxAdvanceFrameLut - lsls r0, r0, #0x10 - asrs r2, r0, #0x10 - cmp r2, #0 - blt _0806F0B2 - ldr r1, [r4, #0x4c] - ldr r0, [r4, #0x5c] - lsls r2, r2, #5 - adds r1, r1, r2 - bl sub_806EAD4 - b _0806F0C4 -_0806F0B2: - movs r0, #1 - negs r0, r0 - cmp r2, r0 - bne _0806F0C4 - bl sub_806E920 - adds r0, r4, #0 - bl Proc_Break -_0806F0C4: - pop {r4} - pop {r0} - bx r0 - - THUMB_FUNC_END sub_806F08C - - THUMB_FUNC_START sub_806F0CC -sub_806F0CC: @ 0x0806F0CC - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - mov r8, r3 - ldr r0, _0806F0F8 @ ProcScr_efxopLiveALPHA - movs r1, #3 - bl Proc_Start - str r4, [r0, #0x5c] - strh r5, [r0, #0x2c] - strh r6, [r0, #0x2e] - adds r0, #0x29 - mov r1, r8 - strb r1, [r0] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0806F0F8: .4byte ProcScr_efxopLiveALPHA - - THUMB_FUNC_END sub_806F0CC - - THUMB_FUNC_START sub_806F0FC -sub_806F0FC: @ 0x0806F0FC - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #0x2c] - subs r0, #1 - strh r0, [r1, #0x2c] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0806F112 - adds r0, r1, #0 - bl Proc_Break -_0806F112: - pop {r0} - bx r0 - - THUMB_FUNC_END sub_806F0FC - - THUMB_FUNC_START sub_806F118 -sub_806F118: @ 0x0806F118 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - movs r0, #0x2c - ldrsh r1, [r4, r0] - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r1, r0 - ble _0806F132 - adds r0, r4, #0 - bl Proc_Break - b _0806F17A -_0806F132: - adds r0, r4, #0 - adds r0, #0x29 - ldrb r0, [r0] - cmp r0, #0 - bne _0806F152 - movs r0, #0x2c - ldrsh r3, [r4, r0] - movs r1, #0x2e - ldrsh r0, [r4, r1] - str r0, [sp] - movs r0, #0 - movs r1, #0 - movs r2, #0x10 - bl Interpolate - b _0806F166 -_0806F152: - movs r2, #0x2c - ldrsh r3, [r4, r2] - movs r1, #0x2e - ldrsh r0, [r4, r1] - str r0, [sp] - movs r0, #0 - movs r1, #0x10 - movs r2, #0 - bl Interpolate -_0806F166: - lsls r1, r0, #0x18 - lsrs r1, r1, #0x18 - movs r0, #1 - movs r2, #0x10 - movs r3, #0 - bl SetSpecialColorEffectsParameters - ldrh r0, [r4, #0x2c] - adds r0, #1 - strh r0, [r4, #0x2c] -_0806F17A: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - - THUMB_FUNC_END sub_806F118 - - THUMB_FUNC_START sub_806F184 -sub_806F184: @ 0x0806F184 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_806E954 - adds r6, r0, #0 - ldr r0, _0806F1D8 @ ProcScr_efxopLiveOBJ - movs r1, #3 - bl Proc_Start - adds r4, r0, #0 - str r5, [r4, #0x5c] - movs r0, #0 - strh r0, [r4, #0x2c] - movs r0, #0x33 - strh r0, [r4, #0x2e] - ldr r3, _0806F1DC @ gUnknown_08675114 - adds r0, r5, #0 - movs r1, #1 - adds r2, r3, #0 - bl sub_806E9E4 - str r0, [r4, #0x60] - ldrh r1, [r6, #6] - ldrh r2, [r0, #2] - adds r1, r1, r2 - strh r1, [r0, #2] - ldrh r1, [r6, #8] - ldrh r2, [r0, #4] - adds r1, r1, r2 - strh r1, [r0, #4] - ldr r0, [r4, #0x5c] - ldr r1, _0806F1E0 @ Pal_FimbulvetrSprites_Snow - bl sub_806EB2C - ldr r0, [r4, #0x5c] - ldr r1, _0806F1E4 @ gUnknown_086702D4 - bl sub_806EAFC - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0806F1D8: .4byte ProcScr_efxopLiveOBJ -_0806F1DC: .4byte gUnknown_08675114 -_0806F1E0: .4byte Pal_FimbulvetrSprites_Snow -_0806F1E4: .4byte gUnknown_086702D4 - - THUMB_FUNC_END sub_806F184 - - THUMB_FUNC_START sub_806F1E8 -sub_806F1E8: @ 0x0806F1E8 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2c] - adds r0, #1 - strh r0, [r4, #0x2c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x2e - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _0806F20A - ldr r0, [r4, #0x60] - bl AnimDelete - adds r0, r4, #0 - bl Proc_Break -_0806F20A: - pop {r4} - pop {r0} - bx r0 - - THUMB_FUNC_END sub_806F1E8 - - THUMB_FUNC_START NewEfxopLightning -NewEfxopLightning: @ 0x0806F210 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _0806F22C @ ProcScr_efxopLightning - movs r1, #3 - bl Proc_Start - adds r5, r0, #0 - bl SetGlbProcefxopCur - str r4, [r5, #0x5c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0806F22C: .4byte ProcScr_efxopLightning - - THUMB_FUNC_END NewEfxopLightning - - THUMB_FUNC_START sub_806F230 -sub_806F230: @ 0x0806F230 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x5c] - adds r1, r4, #0 - bl sub_806F248 - adds r0, r4, #0 - bl Proc_Break - pop {r4} - pop {r0} - bx r0 - - THUMB_FUNC_END sub_806F230 - - THUMB_FUNC_START sub_806F248 -sub_806F248: @ 0x0806F248 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl sub_806E954 - adds r6, r0, #0 - ldr r0, _0806F28C @ ProcScr_efxopLightningBG - adds r1, r4, #0 - bl Proc_Start - adds r4, r0, #0 - str r5, [r4, #0x5c] - movs r0, #0 - strh r0, [r4, #0x2c] - str r0, [r4, #0x44] - ldr r0, _0806F290 @ gUnknown_080DF7CE - str r0, [r4, #0x48] - ldr r0, _0806F294 @ gUnknown_085D9740 - str r0, [r4, #0x4c] - str r0, [r4, #0x50] - ldr r0, _0806F298 @ gUnknown_085D9638 - str r0, [r4, #0x54] - ldr r0, _0806F29C @ gUnknown_085D96BC - str r0, [r4, #0x58] - ldr r0, [r6, #0x24] - bl _call_via_r0 - ldr r0, [r4, #0x5c] - adds r1, r6, #0 - bl sub_806E95C - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0806F28C: .4byte ProcScr_efxopLightningBG -_0806F290: .4byte gUnknown_080DF7CE -_0806F294: .4byte gUnknown_085D9740 -_0806F298: .4byte gUnknown_085D9638 -_0806F29C: .4byte gUnknown_085D96BC - - THUMB_FUNC_END sub_806F248 - - THUMB_FUNC_START sub_806F2A0 -sub_806F2A0: @ 0x0806F2A0 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r0, #0x2c - adds r1, r7, #0 - adds r1, #0x44 - ldr r2, [r7, #0x48] - bl EfxAdvanceFrameLut - lsls r0, r0, #0x10 - asrs r4, r0, #0x10 - cmp r4, #0 - blt _0806F2E4 - ldr r6, [r7, #0x4c] - ldr r1, [r7, #0x54] - ldr r5, [r7, #0x58] - ldr r0, [r7, #0x5c] - lsls r4, r4, #2 - adds r1, r4, r1 - ldr r1, [r1] - bl sub_806EAA4 - ldr r0, [r7, #0x5c] - adds r5, r4, r5 - ldr r1, [r5] - bl sub_806EAD4 - ldr r0, [r7, #0x5c] - adds r4, r4, r6 - ldr r2, [r4] - movs r1, #0 - movs r3, #1 - bl sub_806EA38 - b _0806F2FC -_0806F2E4: - movs r0, #1 - negs r0, r0 - cmp r4, r0 - bne _0806F2FC - ldr r0, [r7, #0x5c] - bl sub_806E9B4 - bl SetDefaultColorEffects_ - adds r0, r7, #0 - bl Proc_Break -_0806F2FC: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - - THUMB_FUNC_END sub_806F2A0 - - THUMB_FUNC_START sub_806F304 -sub_806F304: @ 0x0806F304 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_806E954 - adds r6, r0, #0 - ldr r0, _0806F34C @ gUnknown_085D97C4 - adds r1, r5, #0 - bl Proc_Start - adds r5, r0, #0 - str r4, [r5, #0x5c] - movs r1, #0 - strh r1, [r5, #0x2c] - str r1, [r5, #0x44] - ldr r0, _0806F350 @ gUnknown_080DF866 - str r0, [r5, #0x48] - ldr r0, _0806F354 @ gUnknown_085D97DC - str r0, [r5, #0x4c] - str r0, [r5, #0x50] - ldr r0, _0806F358 @ gUnknown_085D9880 - str r0, [r5, #0x54] - strh r1, [r5, #0x2e] - ldr r1, _0806F35C @ gUnknown_0862A2D0 - adds r0, r4, #0 - bl sub_806EAD4 - ldr r0, [r5, #0x5c] - bl GetAnimPosition - cmp r0, #0 - bne _0806F364 - ldr r1, _0806F360 @ gLCDControlBuffer - ldrh r0, [r1, #0x20] - adds r0, #4 - b _0806F36A - .align 2, 0 -_0806F34C: .4byte gUnknown_085D97C4 -_0806F350: .4byte gUnknown_080DF866 -_0806F354: .4byte gUnknown_085D97DC -_0806F358: .4byte gUnknown_085D9880 -_0806F35C: .4byte gUnknown_0862A2D0 -_0806F360: .4byte gLCDControlBuffer -_0806F364: - ldr r1, _0806F388 @ gLCDControlBuffer - ldrh r0, [r1, #0x20] - subs r0, #4 -_0806F36A: - strh r0, [r1, #0x20] - ldrh r0, [r1, #0x22] - adds r0, #8 - strh r0, [r1, #0x22] - ldr r0, [r6, #0x24] - bl _call_via_r0 - ldr r0, [r5, #0x5c] - adds r1, r6, #0 - bl sub_806E95C - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0806F388: .4byte gLCDControlBuffer - - THUMB_FUNC_END sub_806F304 - - THUMB_FUNC_START sub_806F38C -sub_806F38C: @ 0x0806F38C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl sub_806E954 - adds r6, r0, #0 - ldr r0, _0806F3E4 @ gUnknown_085D97C4 - adds r1, r4, #0 - bl Proc_Start - adds r4, r0, #0 - str r5, [r4, #0x5c] - movs r0, #0 - strh r0, [r4, #0x2c] - str r0, [r4, #0x44] - ldr r0, _0806F3E8 @ gUnknown_080DF898 - str r0, [r4, #0x48] - ldr r0, _0806F3EC @ gUnknown_085D97DC - str r0, [r4, #0x4c] - str r0, [r4, #0x50] - ldr r0, _0806F3F0 @ gUnknown_085D9880 - str r0, [r4, #0x54] - movs r0, #1 - strh r0, [r4, #0x2e] - ldr r1, _0806F3F4 @ gUnknown_0862A2F0 - adds r0, r5, #0 - bl sub_806EAD4 - ldr r0, [r6, #0x24] - bl _call_via_r0 - ldr r0, [r4, #0x5c] - adds r1, r6, #0 - bl sub_806E95C - movs r0, #1 - movs r1, #0xa - movs r2, #7 - movs r3, #0 - bl SetSpecialColorEffectsParameters - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0806F3E4: .4byte gUnknown_085D97C4 -_0806F3E8: .4byte gUnknown_080DF898 -_0806F3EC: .4byte gUnknown_085D97DC -_0806F3F0: .4byte gUnknown_085D9880 -_0806F3F4: .4byte gUnknown_0862A2F0 - - THUMB_FUNC_END sub_806F38C - - THUMB_FUNC_START sub_806F3F8 -sub_806F3F8: @ 0x0806F3F8 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r0, #0x2c - adds r1, r6, #0 - adds r1, #0x44 - ldr r2, [r6, #0x48] - bl EfxAdvanceFrameLut - lsls r0, r0, #0x10 - asrs r4, r0, #0x10 - cmp r4, #0 - blt _0806F430 - ldr r5, [r6, #0x4c] - ldr r1, [r6, #0x54] - ldr r0, [r6, #0x5c] - lsls r4, r4, #2 - adds r1, r4, r1 - ldr r1, [r1] - bl sub_806EAA4 - ldr r0, [r6, #0x5c] - ldrh r1, [r6, #0x2e] - adds r4, r4, r5 - ldr r2, [r4] - movs r3, #1 - bl sub_806EA38 - b _0806F448 -_0806F430: - movs r0, #1 - negs r0, r0 - cmp r4, r0 - bne _0806F448 - ldr r0, [r6, #0x5c] - bl sub_806E9B4 - bl SetDefaultColorEffects_ - adds r0, r6, #0 - bl Proc_Break -_0806F448: - pop {r4, r5, r6} - pop {r0} - bx r0 - - THUMB_FUNC_END sub_806F3F8 - - THUMB_FUNC_START sub_806F450 -sub_806F450: @ 0x0806F450 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _0806F474 @ gUnknown_085D9924 - bl Proc_Start - adds r5, r0, #0 - str r4, [r5, #0x5c] - ldr r3, _0806F478 @ FramScr_Unk5D4F90 - adds r0, r4, #0 - movs r1, #1 - adds r2, r3, #0 - bl sub_806E9E4 - str r0, [r5, #0x60] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0806F474: .4byte gUnknown_085D9924 -_0806F478: .4byte FramScr_Unk5D4F90 - - THUMB_FUNC_END sub_806F450 - - THUMB_FUNC_START sub_806F47C -sub_806F47C: @ 0x0806F47C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0806F4AC @ gUnknown_085D996C - bl Proc_Start - adds r4, r0, #0 - str r5, [r4, #0x5c] - ldr r3, _0806F4B0 @ FramScr_Unk5D4F90 - adds r0, r5, #0 - movs r1, #0 - adds r2, r3, #0 - bl sub_806E9E4 - str r0, [r4, #0x60] - ldrh r1, [r0, #2] - subs r1, #0x38 - strh r1, [r0, #2] - ldrh r1, [r0, #4] - subs r1, #4 - strh r1, [r0, #4] - adds r0, r4, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0806F4AC: .4byte gUnknown_085D996C -_0806F4B0: .4byte FramScr_Unk5D4F90 - - THUMB_FUNC_END sub_806F47C - - THUMB_FUNC_START sub_806F4B4 -sub_806F4B4: @ 0x0806F4B4 - push {lr} - ldr r0, [r0, #0x60] - bl AnimDelete - pop {r0} - bx r0 - - THUMB_FUNC_END sub_806F4B4 - - THUMB_FUNC_START sub_806F4C0 -sub_806F4C0: @ 0x0806F4C0 - push {r4, lr} - adds r4, r0, #0 - ldr r1, [r4, #0x60] - ldr r0, _0806F4EC @ gUnknown_0862D6A8 - str r0, [r1, #0x24] - str r0, [r1, #0x20] - movs r0, #0 - strh r0, [r1, #6] - ldr r0, [r4, #0x5c] - ldr r1, _0806F4F0 @ Pal_FluxAnimSprites - bl sub_806EB2C - ldr r0, [r4, #0x5c] - ldr r1, _0806F4F4 @ Img_FluxAnimSprites_Orb - bl sub_806EAFC - adds r0, r4, #0 - bl Proc_Break - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806F4EC: .4byte gUnknown_0862D6A8 -_0806F4F0: .4byte Pal_FluxAnimSprites -_0806F4F4: .4byte Img_FluxAnimSprites_Orb - - THUMB_FUNC_END sub_806F4C0 - - THUMB_FUNC_START sub_806F4F8 -sub_806F4F8: @ 0x0806F4F8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, [r4, #0x60] - ldr r0, _0806F524 @ gUnknown_0862D82C - str r0, [r1, #0x24] - str r0, [r1, #0x20] - movs r0, #0 - strh r0, [r1, #6] - ldr r0, [r4, #0x5c] - ldr r1, _0806F528 @ Pal_FluxAnimSprites - bl sub_806EB2C - ldr r0, [r4, #0x5c] - ldr r1, _0806F52C @ Img_FluxAnimSprites_Tendrils - bl sub_806EAFC - adds r0, r4, #0 - bl Proc_Break - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806F524: .4byte gUnknown_0862D82C -_0806F528: .4byte Pal_FluxAnimSprites -_0806F52C: .4byte Img_FluxAnimSprites_Tendrils - - THUMB_FUNC_END sub_806F4F8 - - THUMB_FUNC_START sub_806F530 -sub_806F530: @ 0x0806F530 - push {r4, lr} - adds r4, r0, #0 - ldr r1, [r4, #0x60] - ldr r0, _0806F55C @ gUnknown_0862DCE0 - str r0, [r1, #0x24] - str r0, [r1, #0x20] - movs r0, #0 - strh r0, [r1, #6] - ldr r0, [r4, #0x5c] - ldr r1, _0806F560 @ Pal_FluxAnimSprites - bl sub_806EB2C - ldr r0, [r4, #0x5c] - ldr r1, _0806F564 @ Img_FluxAnimSprites_SigilVoid - bl sub_806EAFC - adds r0, r4, #0 - bl Proc_Break - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806F55C: .4byte gUnknown_0862DCE0 -_0806F560: .4byte Pal_FluxAnimSprites -_0806F564: .4byte Img_FluxAnimSprites_SigilVoid - - THUMB_FUNC_END sub_806F530 - - THUMB_FUNC_START sub_806F568 -sub_806F568: @ 0x0806F568 - push {r4, lr} - adds r4, r0, #0 - ldr r1, [r4, #0x60] - ldr r0, _0806F590 @ gUnknown_0862DC24 - str r0, [r1, #0x24] - str r0, [r1, #0x20] - movs r0, #0 - strh r0, [r1, #6] - movs r0, #0x14 - strh r0, [r1, #0xa] - bl AnimSort - movs r0, #0x27 - strh r0, [r4, #0x2c] - adds r0, r4, #0 - bl Proc_Break - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806F590: .4byte gUnknown_0862DC24 - - THUMB_FUNC_END sub_806F568 - - THUMB_FUNC_START sub_806F594 -sub_806F594: @ 0x0806F594 - push {lr} - adds r1, r0, #0 - ldr r2, [r1, #0x60] - ldrh r0, [r1, #0x2c] - adds r0, #1 - movs r3, #0 - strh r0, [r1, #0x2c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x28 - bne _0806F5B4 - ldr r0, _0806F5B8 @ gUnknown_0862DC58 - str r0, [r2, #0x24] - str r0, [r2, #0x20] - strh r3, [r2, #6] - strh r3, [r1, #0x2c] -_0806F5B4: - pop {r0} - bx r0 - .align 2, 0 -_0806F5B8: .4byte gUnknown_0862DC58 - - THUMB_FUNC_END sub_806F594 - - THUMB_FUNC_START NewEfxopMistyrain -NewEfxopMistyrain: @ 0x0806F5BC - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0806F5DC @ ProcScr_efxopMistyrain - movs r1, #3 - bl Proc_Start - adds r4, r0, #0 - bl SetGlbProcefxopCur - str r5, [r4, #0x5c] - movs r0, #0 - strh r0, [r4, #0x2c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0806F5DC: .4byte ProcScr_efxopMistyrain - - THUMB_FUNC_END NewEfxopMistyrain - - THUMB_FUNC_START sub_806F5E0 -sub_806F5E0: @ 0x0806F5E0 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2c] - adds r0, #1 - strh r0, [r4, #0x2c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #1 - bne _0806F5FA - ldr r0, [r4, #0x5c] - adds r1, r4, #0 - bl sub_806F304 -_0806F5FA: - movs r1, #0x2c - ldrsh r0, [r4, r1] - cmp r0, #0x10 - bne _0806F60A - ldr r0, [r4, #0x5c] - adds r1, r4, #0 - bl sub_806F450 -_0806F60A: - movs r1, #0x2c - ldrsh r0, [r4, r1] - cmp r0, #0x4b - bne _0806F61C - ldr r0, [r4, #0x5c] - adds r1, r4, #0 - bl sub_806F47C - str r0, [r4, #0x64] -_0806F61C: - movs r1, #0x2c - ldrsh r0, [r4, r1] - cmp r0, #0x5e - bne _0806F62C - ldr r0, [r4, #0x5c] - adds r1, r4, #0 - bl sub_806F38C -_0806F62C: - movs r1, #0x2c - ldrsh r0, [r4, r1] - cmp r0, #0x72 - bne _0806F640 - ldr r0, [r4, #0x64] - bl Proc_End - adds r0, r4, #0 - bl Proc_Break -_0806F640: - pop {r4} - pop {r0} - bx r0 - - THUMB_FUNC_END sub_806F5E0 - - THUMB_FUNC_START NewEfxopMyrrh -NewEfxopMyrrh: @ 0x0806F648 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _0806F664 @ ProcScr_efxopMyrrh - movs r1, #3 - bl Proc_Start - adds r5, r0, #0 - bl SetGlbProcefxopCur - str r4, [r5, #0x5c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0806F664: .4byte ProcScr_efxopMyrrh - - THUMB_FUNC_END NewEfxopMyrrh - - THUMB_FUNC_START sub_806F668 -sub_806F668: @ 0x0806F668 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r0, _0806F6A8 @ banim_data - movs r1, #0xc4 - lsls r1, r1, #5 - adds r0, r0, r1 - ldr r0, [r0, #0x1c] - ldr r5, _0806F6AC @ gPalBackupEkrUnitMaybe - adds r1, r5, #0 - bl LZ77UnCompWram - adds r5, #0x20 - ldr r4, _0806F6B0 @ gPaletteBuffer + 0x240 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #8 - bl CpuFastSet - adds r4, #0x20 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #8 - bl CpuFastSet - bl EnablePaletteSync - adds r0, r6, #0 - bl Proc_Break - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0806F6A8: .4byte banim_data -_0806F6AC: .4byte gPalBackupEkrUnitMaybe -_0806F6B0: .4byte gPaletteBuffer + 0x240 - - THUMB_FUNC_END sub_806F668 - - THUMB_FUNC_START sub_806F6B4 -sub_806F6B4: @ 0x0806F6B4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _0806F6D0 @ gUnknown_085D99EC - movs r1, #3 - bl Proc_Start - adds r5, r0, #0 - bl SetGlbProcefxopCur - str r4, [r5, #0x5c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0806F6D0: .4byte gUnknown_085D99EC - - THUMB_FUNC_END sub_806F6B4 - - THUMB_FUNC_START sub_806F6D4 -sub_806F6D4: @ 0x0806F6D4 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x5c] - adds r1, r4, #0 - bl sub_806F7C0 - adds r0, r4, #0 - bl Proc_Break - pop {r4} - pop {r0} - bx r0 - - THUMB_FUNC_END sub_806F6D4 - - THUMB_FUNC_START sub_806F6EC -sub_806F6EC: @ 0x0806F6EC - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x5c] - adds r1, r4, #0 - bl sub_806F704 - adds r0, r4, #0 - bl Proc_Break - pop {r4} - pop {r0} - bx r0 - - THUMB_FUNC_END sub_806F6EC - - THUMB_FUNC_START sub_806F704 -sub_806F704: @ 0x0806F704 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl sub_806E954 - adds r6, r0, #0 - ldr r0, _0806F748 @ gUnknown_085D9A1C - adds r1, r4, #0 - bl Proc_Start - adds r4, r0, #0 - str r5, [r4, #0x5c] - movs r0, #0 - strh r0, [r4, #0x2c] - str r0, [r4, #0x44] - ldr r0, _0806F74C @ gUnknown_080DF954 - str r0, [r4, #0x48] - ldr r0, _0806F750 @ gUnknown_085D9A94 - str r0, [r4, #0x4c] - ldr r0, _0806F754 @ gUnknown_085D9A2C - str r0, [r4, #0x54] - ldr r0, _0806F758 @ gUnknown_085D9AFC - str r0, [r4, #0x58] - ldr r0, [r6, #0x24] - bl _call_via_r0 - ldr r0, [r4, #0x5c] - adds r1, r6, #0 - bl sub_806E95C - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0806F748: .4byte gUnknown_085D9A1C -_0806F74C: .4byte gUnknown_080DF954 -_0806F750: .4byte gUnknown_085D9A94 -_0806F754: .4byte gUnknown_085D9A2C -_0806F758: .4byte gUnknown_085D9AFC - - THUMB_FUNC_END sub_806F704 - - THUMB_FUNC_START sub_806F75C -sub_806F75C: @ 0x0806F75C - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r0, #0x2c - adds r1, r7, #0 - adds r1, #0x44 - ldr r2, [r7, #0x48] - bl EfxAdvanceFrameLut - lsls r0, r0, #0x10 - asrs r4, r0, #0x10 - cmp r4, #0 - blt _0806F7A0 - ldr r1, [r7, #0x4c] - ldr r5, [r7, #0x54] - ldr r6, [r7, #0x58] - ldr r0, [r7, #0x5c] - lsls r4, r4, #2 - adds r1, r4, r1 - ldr r2, [r1] - movs r1, #1 - movs r3, #1 - bl sub_806EA38 - ldr r0, [r7, #0x5c] - adds r5, r4, r5 - ldr r1, [r5] - bl sub_806EAA4 - ldr r0, [r7, #0x5c] - adds r4, r4, r6 - ldr r1, [r4] - bl sub_806EAD4 - b _0806F7B8 -_0806F7A0: - movs r0, #1 - negs r0, r0 - cmp r4, r0 - bne _0806F7B8 - ldr r0, [r7, #0x5c] - bl sub_806E9B4 - bl SetDefaultColorEffects_ - adds r0, r7, #0 - bl Proc_Break -_0806F7B8: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - - THUMB_FUNC_END sub_806F75C - - THUMB_FUNC_START sub_806F7C0 -sub_806F7C0: @ 0x0806F7C0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_806E954 - ldr r0, _0806F80C @ gUnknown_085D9B64 - adds r1, r5, #0 - bl Proc_Start - adds r5, r0, #0 - str r4, [r5, #0x5c] - movs r0, #0 - strh r0, [r5, #0x2c] - ldr r2, _0806F810 @ gUnknown_086C978C - ldr r3, _0806F814 @ gUnknown_086C95C0 - adds r0, r4, #0 - movs r1, #1 - bl sub_806E9E4 - str r0, [r5, #0x60] - ldrh r1, [r0, #2] - subs r1, #0x38 - strh r1, [r0, #2] - ldrh r1, [r0, #4] - adds r1, #0x18 - strh r1, [r0, #4] - ldr r0, [r5, #0x5c] - ldr r1, _0806F818 @ gUnknown_086C93FC - bl sub_806EB2C - ldr r0, [r5, #0x5c] - ldr r1, _0806F81C @ gUnknown_086C90A4 - bl sub_806EAFC - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0806F80C: .4byte gUnknown_085D9B64 -_0806F810: .4byte gUnknown_086C978C -_0806F814: .4byte gUnknown_086C95C0 -_0806F818: .4byte gUnknown_086C93FC -_0806F81C: .4byte gUnknown_086C90A4 - - THUMB_FUNC_END sub_806F7C0 - - THUMB_FUNC_START sub_806F820 -sub_806F820: @ 0x0806F820 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2c] - adds r0, #1 - strh r0, [r4, #0x2c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x3c - ble _0806F83E - ldr r0, [r4, #0x60] - bl AnimDelete - adds r0, r4, #0 - bl Proc_Break -_0806F83E: - pop {r4} - pop {r0} - bx r0 - - THUMB_FUNC_END sub_806F820 - - THUMB_FUNC_START sub_806F844 -sub_806F844: @ 0x0806F844 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _0806F860 @ gUnknown_085D9B74 - movs r1, #3 - bl Proc_Start - adds r5, r0, #0 - bl SetGlbProcefxopCur - str r4, [r5, #0x5c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0806F860: .4byte gUnknown_085D9B74 - - THUMB_FUNC_END sub_806F844 - - THUMB_FUNC_START sub_806F864 -sub_806F864: @ 0x0806F864 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x5c] - adds r1, r4, #0 - bl sub_806F968 - adds r0, r4, #0 - bl Proc_Break - pop {r4} - pop {r0} - bx r0 - - THUMB_FUNC_END sub_806F864 - - THUMB_FUNC_START sub_806F87C -sub_806F87C: @ 0x0806F87C - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x5c] - adds r1, r4, #0 - bl sub_806F894 - adds r0, r4, #0 - bl Proc_Break - pop {r4} - pop {r0} - bx r0 - - THUMB_FUNC_END sub_806F87C - - THUMB_FUNC_START sub_806F894 -sub_806F894: @ 0x0806F894 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl sub_806E954 - adds r6, r0, #0 - ldr r0, _0806F8DC @ gUnknown_085D9BA4 - adds r1, r4, #0 - bl Proc_Start - adds r4, r0, #0 - str r5, [r4, #0x5c] - movs r0, #0 - strh r0, [r4, #0x2c] - str r0, [r4, #0x44] - ldr r0, _0806F8E0 @ gUnknown_080DF9BE - str r0, [r4, #0x48] - ldr r0, _0806F8E4 @ gUnknown_085D9C00 - str r0, [r4, #0x4c] - ldr r0, _0806F8E8 @ gUnknown_085D9BB4 - str r0, [r4, #0x54] - ldr r1, _0806F8EC @ Pal_StoneBg - adds r0, r5, #0 - bl sub_806EAD4 - ldr r0, [r6, #0x24] - bl _call_via_r0 - ldr r0, [r4, #0x5c] - adds r1, r6, #0 - bl sub_806E95C - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0806F8DC: .4byte gUnknown_085D9BA4 -_0806F8E0: .4byte gUnknown_080DF9BE -_0806F8E4: .4byte gUnknown_085D9C00 -_0806F8E8: .4byte gUnknown_085D9BB4 -_0806F8EC: .4byte Pal_StoneBg - - THUMB_FUNC_END sub_806F894 - - THUMB_FUNC_START sub_806F8F0 -sub_806F8F0: @ 0x0806F8F0 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r0, #0x2c - adds r1, r6, #0 - adds r1, #0x44 - ldr r2, [r6, #0x48] - bl EfxAdvanceFrameLut - lsls r0, r0, #0x10 - asrs r7, r0, #0x10 - cmp r7, #0 - blt _0806F948 - ldr r1, [r6, #0x4c] - ldr r5, [r6, #0x54] - ldr r0, [r6, #0x5c] - lsls r4, r7, #2 - adds r1, r4, r1 - ldr r2, [r1] - movs r1, #1 - movs r3, #1 - bl sub_806EA38 - ldr r0, [r6, #0x5c] - adds r4, r4, r5 - ldr r1, [r4] - bl sub_806EAA4 - cmp r7, #0x11 - bne _0806F932 - ldr r0, _0806F940 @ Pal_StoneBg_086C792C - movs r1, #0x20 - bl SpellFx_RegisterBgPal -_0806F932: - cmp r7, #0x12 - bne _0806F960 - ldr r0, _0806F944 @ Pal_StoneBg_086C794C - movs r1, #0x20 - bl SpellFx_RegisterBgPal - b _0806F960 - .align 2, 0 -_0806F940: .4byte Pal_StoneBg_086C792C -_0806F944: .4byte Pal_StoneBg_086C794C -_0806F948: - movs r0, #1 - negs r0, r0 - cmp r7, r0 - bne _0806F960 - ldr r0, [r6, #0x5c] - bl sub_806E9B4 - bl SetDefaultColorEffects_ - adds r0, r6, #0 - bl Proc_Break -_0806F960: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - - THUMB_FUNC_END sub_806F8F0 - - THUMB_FUNC_START sub_806F968 -sub_806F968: @ 0x0806F968 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_806E954 - ldr r0, _0806F9C8 @ gUnknown_085D9C4C - adds r1, r5, #0 - bl Proc_Start - adds r5, r0, #0 - str r4, [r5, #0x5c] - movs r6, #0 - strh r6, [r5, #0x2c] - ldr r3, _0806F9CC @ gUnknown_086BDA5C - adds r0, r4, #0 - movs r1, #1 - adds r2, r3, #0 - bl sub_806E9E4 - str r0, [r5, #0x60] - ldrh r1, [r0, #2] - subs r1, #0x38 - strh r1, [r0, #2] - ldrh r1, [r0, #4] - adds r1, #0xc - strh r1, [r0, #4] - strh r6, [r0, #6] - movs r1, #0x14 - strh r1, [r0, #0xa] - ldrh r2, [r0, #8] - movs r3, #0xc0 - lsls r3, r3, #4 - adds r1, r3, #0 - orrs r1, r2 - strh r1, [r0, #8] - bl AnimSort - ldr r0, [r5, #0x5c] - ldr r1, _0806F9D0 @ Pal_StoneSprites - bl sub_806EB2C - ldr r0, [r5, #0x5c] - ldr r1, _0806F9D4 @ Img_StoneSprites - bl sub_806EAFC - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0806F9C8: .4byte gUnknown_085D9C4C -_0806F9CC: .4byte gUnknown_086BDA5C -_0806F9D0: .4byte Pal_StoneSprites -_0806F9D4: .4byte Img_StoneSprites - - THUMB_FUNC_END sub_806F968 - - THUMB_FUNC_START sub_806F9D8 -sub_806F9D8: @ 0x0806F9D8 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2c] - adds r0, #1 - strh r0, [r4, #0x2c] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xc8 - ble _0806F9F6 - ldr r0, [r4, #0x60] - bl AnimDelete - adds r0, r4, #0 - bl Proc_Break -_0806F9F6: - pop {r4} - pop {r0} - bx r0 - - THUMB_FUNC_END sub_806F9D8 - -.align 2, 0 diff --git a/include/efxbattle.h b/include/efxbattle.h index 1aedae6d7..ff3de7f4e 100644 --- a/include/efxbattle.h +++ b/include/efxbattle.h @@ -417,10 +417,6 @@ extern CONST_DATA u16 Tsa_EfxSkillE[]; extern CONST_DATA u16 Tsa_EfxSkillF[]; extern CONST_DATA u16 Tsa_EfxSkill10[]; -void sub_806E8F0(void); -void sub_806E904(void); -void sub_806E920(void); - extern const u16 FrameLut_EfxSkill[]; struct ProcEfxDamageMojiEffectOBJ { @@ -2632,74 +2628,97 @@ void NewEfxChillAnime(struct Anim * anim, int arg1); // ??? sub_806E290(???); void nullsub_17(struct Anim * anim); -// ??? SetGlbProcefxopCur(???); -// ??? sub_806E948(???); -// ??? sub_806E954(???); -// ??? sub_806E95C(???); -// ??? sub_806E9B4(???); -// ??? sub_806E9E4(???); -// ??? sub_806EA38(???); -// ??? sub_806EAA4(???); -// ??? sub_806EAD4(???); -// ??? sub_806EAFC(???); -// ??? sub_806EB2C(???); -// ??? ExecEfxop(???); -// ??? nullsub_73(???); -// ??? NewEfxopFire(???); -// ??? sub_806EB9C(???); -// ??? NewEfxopFireBG(???); -// ??? sub_806EC1C(???); -// ??? NewEfxopFireOBJ(???); -// ??? sub_806ECE8(???); -// ??? NewEfxopThunder(???); -// ??? sub_806ED2C(???); -// ??? sub_806ED54(???); -// ??? sub_806EDB0(???); -// ??? sub_806EE34(???); -// ??? sub_806EE68(???); -// ??? sub_806EEA8(???); -// ??? sub_806EF24(???); -// ??? NewEfxopLive(???); -// ??? sub_806EF64(???); -// ??? sub_806EFB8(???); -// ??? sub_806F00C(???); -// ??? sub_806F058(???); -// ??? sub_806F08C(???); -// ??? sub_806F0CC(???); -// ??? sub_806F0FC(???); -// ??? sub_806F118(???); -// ??? sub_806F184(???); -// ??? sub_806F1E8(???); -// ??? NewEfxopLightning(???); -// ??? sub_806F230(???); -// ??? sub_806F248(???); -// ??? sub_806F2A0(???); -// ??? sub_806F304(???); -// ??? sub_806F38C(???); -// ??? sub_806F3F8(???); -// ??? sub_806F450(???); -// ??? sub_806F47C(???); -// ??? sub_806F4B4(???); -// ??? sub_806F4C0(???); -// ??? sub_806F4F8(???); -// ??? sub_806F530(???); -// ??? sub_806F568(???); -// ??? sub_806F594(???); -// ??? NewEfxopMistyrain(???); -// ??? sub_806F5E0(???); -// ??? NewEfxopMyrrh(???); -// ??? sub_806F668(???); -// ??? sub_806F6B4(???); -// ??? sub_806F6D4(???); -// ??? sub_806F6EC(???); -// ??? sub_806F704(???); -// ??? sub_806F75C(???); -// ??? sub_806F7C0(???); -// ??? sub_806F820(???); -// ??? sub_806F844(???); -// ??? sub_806F864(???); -// ??? sub_806F87C(???); -// ??? sub_806F894(???); -// ??? sub_806F8F0(???); -// ??? sub_806F968(???); -// ??? sub_806F9D8(???); +struct AnimMagicFxBuffer +{ + /* 00 */ u16 magicFuncIdx; + /* 02 */ s16 xOffsetBg; + /* 04 */ s16 yOffsetBg; + /* 06 */ u16 xOffsetObj; + /* 08 */ u16 yOffsetObj; + /* 0A */ u16 bgChr; + /* 0C */ u16 bgPalId; + /* 0E */ u16 objChr; + /* 10 */ u16 objPalId; + /* 12 */ u16 bg; + /* 14 */ u16 * bgTmBuf; + /* 18 */ void * bgImgBuf; // Used for decompression + /* 1C */ void * bgTsaBuf; // Used for decompression + /* 20 */ void * objImgBuf; // Used for decompression + /* 24 */ void (*resetCallback)(void); +}; + +void sub_806E8F0(void); +void sub_806E904(void); +void sub_806E920(void); +void SetGlbProcefxopCur(ProcPtr proc); +void sub_806E948(ProcPtr proc); +struct AnimMagicFxBuffer * sub_806E954(struct Anim * anim); +void sub_806E95C(struct Anim * anim, struct AnimMagicFxBuffer * magicFx); +void sub_806E9B4(struct Anim * anim); +struct Anim * sub_806E9E4(struct Anim * anim, u16 scrIdx, void * scrA, void * scrB); +void sub_806EA38(struct Anim * anim, u16 notFlipped, void * src, u16 isCompressed); +void sub_806EAA4(struct Anim * anim, void * src); +void sub_806EAD4(struct Anim * anim, u16 * src); +void sub_806EAFC(struct Anim * anim, void * src); +void sub_806EB2C(struct Anim * anim, u16 * src); + +void ExecEfxop(struct Anim * anim); +void nullsub_73(void); +void NewEfxopFire(struct Anim * anim); +void sub_806EB9C(struct ProcEfx * proc); +void NewEfxopFireBG(struct Anim * anim, struct ProcEfx * parent); +void sub_806EC1C(struct ProcEfxBG * proc); +void NewEfxopFireOBJ(struct Anim * anim, struct ProcEfx * parent); +void sub_806ECE8(struct ProcEfxOBJ * proc); +void NewEfxopThunder(struct Anim * anim); +void sub_806ED2C(struct ProcEfx * proc); +void sub_806ED54(struct Anim * anim, struct ProcEfx * unused); +void sub_806EDB0(struct ProcEfxBG * proc); +void sub_806EE34(struct Anim * anim, struct ProcEfx * unused); +void sub_806EE68(struct ProcEfxBGCOL * proc); +void sub_806EEA8(struct Anim * anim, struct ProcEfx * unused); +void sub_806EF24(struct ProcEfxOBJ * proc); +void NewEfxopLive(struct Anim * anim); +void sub_806EF64(struct ProcEfx * proc); +void sub_806EFB8(struct Anim * anim, struct ProcEfx * unused); +void sub_806F00C(struct ProcEfxBG * proc); +void sub_806F058(struct Anim * anim, struct ProcEfx * unused); +void sub_806F08C(struct ProcEfxBGCOL * proc); +void sub_806F0CC(struct Anim * anim, int timer, int c, int d, struct ProcEfx * unused); +void sub_806F0FC(struct ProcEfxALPHA * proc); +void sub_806F118(struct ProcEfxALPHA * proc); +void sub_806F184(struct Anim * anim, struct ProcEfx * unused); +void sub_806F1E8(struct ProcEfxOBJ * proc); +void NewEfxopLightning(struct Anim * anim); +void sub_806F230(struct ProcEfx * proc); +void sub_806F248(struct Anim * anim, struct ProcEfx * parent); +void sub_806F2A0(struct ProcEfxBG * proc); +void sub_806F304(struct Anim * anim, struct ProcEfx * parent); +void sub_806F38C(struct Anim * anim, struct ProcEfx * parent); +void sub_806F3F8(struct ProcEfxBG * proc); +void sub_806F450(struct Anim * anim, struct ProcEfx * parent); +struct ProcEfxOBJ * sub_806F47C(struct Anim * anim, struct ProcEfx * parent); +void sub_806F4B4(struct ProcEfxOBJ * proc); +void sub_806F4C0(struct ProcEfxOBJ * proc); +void sub_806F4F8(struct ProcEfxOBJ * proc); +void sub_806F530(struct ProcEfxOBJ * proc); +void sub_806F568(struct ProcEfxOBJ * proc); +void sub_806F594(struct ProcEfxOBJ * proc); +void NewEfxopMistyrain(struct Anim * anim); +void sub_806F5E0(struct ProcEfx * proc); +void NewEfxopMyrrh(struct Anim * anim); +void sub_806F668(ProcPtr proc); +void sub_806F6B4(struct Anim * anim); +void sub_806F6D4(struct ProcEfx * proc); +void sub_806F6EC(struct ProcEfx * proc); +void sub_806F704(struct Anim * anim, struct ProcEfx * parent); +void sub_806F75C(struct ProcEfxBG * proc); +void sub_806F7C0(struct Anim * anim, struct ProcEfx * parent); +void sub_806F820(struct ProcEfxOBJ * proc); +void sub_806F844(struct Anim * anim); +void sub_806F864(struct ProcEfx * proc); +void sub_806F87C(struct ProcEfx * proc); +void sub_806F894(struct Anim * anim, struct ProcEfx * parent); +void sub_806F8F0(struct ProcEfxBG * proc); +void sub_806F968(struct Anim * anim, struct ProcEfx * parent); +void sub_806F9D8(struct ProcEfxOBJ * proc); diff --git a/ldscript.txt b/ldscript.txt index ceb7070db..7a2c7f462 100644 --- a/ldscript.txt +++ b/ldscript.txt @@ -215,7 +215,7 @@ SECTIONS src/banim-efxhit.o(.text); src/banim-efxmisc.o(.text); src/banim-efxskill.o(.text); - asm/banim-efxop.o(.text); + src/banim-efxop.o(.text); src/banim-ekrdragonstatus.o(.text); src/banim-ekrdragon-dracozombie.o(.text); src/banim-ekrdragon-utils.o(.text); diff --git a/src/banim-efxop.c b/src/banim-efxop.c new file mode 100644 index 000000000..0eac0b0fe --- /dev/null +++ b/src/banim-efxop.c @@ -0,0 +1,1440 @@ +#include "global.h" + +#include "anime.h" +#include "ekrbattle.h" +#include "efxbattle.h" +#include "hardware.h" +#include "bmlib.h" +#include "banim_data.h" +#include "ctc.h" + +extern ProcPtr gpProcefxopCur; +extern ProcPtr gUnknown_0203E1EC; + +//! FE8U = 0x0806E8F0 +void sub_806E8F0(void) +{ + gpProcefxopCur = NULL; + gUnknown_0203E1EC = NULL; + + return; +} + +//! FE8U = 0x0806E904 +void sub_806E904(void) +{ + if (gpProcefxopCur != NULL) + { + Proc_End(gpProcefxopCur); + gpProcefxopCur = NULL; + } + + return; +} + +//! FE8U = 0x0806E920 +void sub_806E920(void) +{ + if (gUnknown_0203E1EC != NULL) + { + Proc_End(gUnknown_0203E1EC); + gUnknown_0203E1EC = NULL; + } + + return; +} + +//! FE8U = 0x0806E93C +void SetGlbProcefxopCur(ProcPtr proc) +{ + gpProcefxopCur = proc; + return; +} + +//! FE8U = 0x0806E948 +void sub_806E948(ProcPtr proc) +{ + gUnknown_0203E1EC = proc; + return; +} + +//! FE8U = 0x0806E954 +struct AnimMagicFxBuffer * sub_806E954(struct Anim * anim) +{ + return ((struct AnimBuffer *)(anim->pUnk44))->unk_30; +} + +//! FE8U = 0x0806E95C +void sub_806E95C(struct Anim * anim, struct AnimMagicFxBuffer * magicFx) +{ + s16 x; + s16 y; + + if (GetAnimPosition(anim) == 0) + { + x = anim->xPosition - BanimTypesPosLeft[0]; + } + else + { + x = BanimTypesPosRight[0] - anim->xPosition; + } + + y = 88 - anim->yPosition; + + BG_SetPosition(magicFx->bg, x - magicFx->xOffsetBg, y - magicFx->yOffsetBg); + + return; +} + +//! FE8U = 0x0806E9B4 +void sub_806E9B4(struct Anim * anim) +{ + struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + + CpuFastFill(0, magicFx->bgTmBuf, 0x800); + BG_EnableSyncByMask(1 << magicFx->bg); + + return; +} + +//! FE8U = 0x0806E9E4 +struct Anim * sub_806E9E4(struct Anim * anim, u16 scrIdx, void * scrA, void * scrB) +{ + struct Anim * newAnim; + + struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + + if (scrIdx == 0) + { + newAnim = AnimCreate(scrA, 120); + } + else + { + newAnim = AnimCreate(scrB, 120); + } + + newAnim->oam2Base = (magicFx->objPalId << 12) | magicFx->objChr | OAM2_LAYER(2); + newAnim->xPosition = anim->xPosition; + newAnim->yPosition = anim->yPosition; + + return newAnim; +} + +//! FE8U = 0x0806EA38 +void sub_806EA38(struct Anim * anim, u16 notFlipped, void * src, u16 isCompressed) +{ + void * buf; + struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + + if (isCompressed == 1) + { + LZ77UnCompWram(src, magicFx->bgTsaBuf); + } + + buf = src; + + if (isCompressed == 1) + { + buf = magicFx->bgTsaBuf; + } + + if (notFlipped == 0) + { + EfxTmCpyBgHFlip(buf, magicFx->bgTmBuf, 30, 20, magicFx->bgPalId, magicFx->bgChr); + } + else + { + EfxTmCpyBG(buf, magicFx->bgTmBuf, 30, 20, magicFx->bgPalId, magicFx->bgChr); + } + + BG_EnableSyncByMask(1 << magicFx->bg); + + return; +} + +//! FE8U = 0x0806EAA4 +void sub_806EAA4(struct Anim * anim, void * src) +{ + struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + + void * dst = (void *)(0x6000000 + magicFx->bgChr * CHR_SIZE); + + LZ77UnCompWram(src, magicFx->bgImgBuf); + RegisterDataMove(magicFx->bgImgBuf, dst, 0x2000); + + return; +} + +//! FE8U = 0x0806EAD4 +void sub_806EAD4(struct Anim * anim, u16 * src) +{ + struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + + CpuFastCopy(src, gPaletteBuffer + (magicFx->bgPalId * 0x10), PLTT_SIZE_4BPP); + EnablePaletteSync(); + + return; +} + +//! FE8U = 0x0806EAFC +void sub_806EAFC(struct Anim * anim, void * src) +{ + struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + + void * dst = (void *)(0x6010000 + magicFx->objChr * CHR_SIZE); + + LZ77UnCompWram(src, magicFx->objImgBuf); + RegisterDataMove(magicFx->objImgBuf, dst, 0x1000); + + return; +} + +//! FE8U = 0x0806EB2C +void sub_806EB2C(struct Anim * anim, u16 * src) +{ + struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + + CpuFastCopy(src, gPaletteBuffer + 0x100 + (magicFx->objPalId * 0x10), 0x20); + EnablePaletteSync(); + + return; +} + +typedef void (*SpellAnimFunc)(struct Anim * anim); +extern SpellAnimFunc gpEfxopFuncLut[]; + +//! FE8U = 0x0806EB54 +void ExecEfxop(struct Anim * anim) +{ + struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + + gpEfxopFuncLut[magicFx->magicFuncIdx](anim); + + return; +} + +//! FE8U = 0x0806EB78 +void nullsub_73(void) +{ + return; +} + +extern struct ProcCmd ProcScr_efxopFire[]; + +//! FE8U = 0x0806EB7C +void NewEfxopFire(struct Anim * anim) +{ + struct ProcEfx * proc = Proc_Start(ProcScr_efxopFire, PROC_TREE_3); + SetGlbProcefxopCur(proc); + + proc->anim = anim; + + return; +} + +//! FE8U = 0x0806EB9C +void sub_806EB9C(struct ProcEfx * proc) +{ + NewEfxopFireBG(proc->anim, proc); + NewEfxopFireOBJ(proc->anim, proc); + + Proc_Break(proc); + + return; +} + +extern struct ProcCmd ProcScr_efxopFireBG[]; + +extern u16 gUnknown_080DF644[]; +extern u16 * gUnknown_085D9494[]; + +//! FE8U = 0x0806EBBC +void NewEfxopFireBG(struct Anim * anim, struct ProcEfx * parent) +{ + struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + struct ProcEfxBG * proc = Proc_Start(ProcScr_efxopFireBG, parent); + + proc->anim = anim; + proc->timer = 0; + + proc->frame = 0; + proc->frame_config = gUnknown_080DF644; + proc->tsal = gUnknown_085D9494; + + sub_806EAD4(anim, gUnknown_085F6230); + sub_806EAA4(proc->anim, gUnknown_085F5638); + + magicFx->resetCallback(); + + sub_806E95C(proc->anim, magicFx); + + return; +} + +//! FE8U = 0x0806EC1C +void sub_806EC1C(struct ProcEfxBG * proc) +{ + s16 ret = EfxAdvanceFrameLut((s16 *)&proc->timer, (s16 *)&proc->frame, proc->frame_config); + + if (ret >= 0) + { + u16 ** tsaL = proc->tsal; + sub_806EA38(proc->anim, 1, *(tsaL + ret), 1); + } + else + { + if (ret == -1) + { + sub_806E9B4(proc->anim); + SetDefaultColorEffects_(); + Proc_Break(proc); + } + } + + return; +} + +extern struct ProcCmd ProcScr_efxopFireOBJ[]; + +extern u32 gUnknown_085F843C[]; +extern u32 gUnknown_085F80B4[]; +extern u16 gUnknown_085F7D64[]; +extern u16 gUnknown_085F7768[]; + +//! FE8U = 0x0806EC68 +void NewEfxopFireOBJ(struct Anim * anim, struct ProcEfx * parent) +{ + struct Anim * frontAnim; + + struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + + struct ProcEfxOBJ * proc = Proc_Start(ProcScr_efxopFireOBJ, parent); + proc->anim = anim; + proc->timer = 0; + + frontAnim = sub_806E9E4(anim, 1, gUnknown_085F843C, gUnknown_085F80B4); + proc->anim2 = frontAnim; + + if (GetAnimPosition(anim) == 0) + { + frontAnim->xPosition = anim->xPosition - 8; + } + else + { + frontAnim->xPosition = anim->xPosition + 8; + } + + frontAnim->yPosition = anim->yPosition + 8; + + frontAnim->xPosition += magicFx->xOffsetObj; + frontAnim->yPosition += magicFx->yOffsetObj; + + sub_806EB2C(proc->anim, gUnknown_085F7D64); + sub_806EAFC(proc->anim, gUnknown_085F7768); + + return; +} + +//! FE8U = 0x0806ECE8 +void sub_806ECE8(struct ProcEfxOBJ * proc) +{ + proc->timer++; + + if (proc->timer > 50) + { + AnimDelete(proc->anim2); + Proc_Break(proc); + } + + return; +} + +extern struct ProcCmd ProcScr_efxopThunder[]; + +//! FE8U = 0x0806ED0C +void NewEfxopThunder(struct Anim * anim) +{ + struct ProcEfx * proc = Proc_Start(ProcScr_efxopThunder, PROC_TREE_3); + SetGlbProcefxopCur(proc); + + proc->anim = anim; + + return; +} + +//! FE8U = 0x0806ED2C +void sub_806ED2C(struct ProcEfx * proc) +{ + sub_806ED54(proc->anim, proc); + sub_806EE34(proc->anim, proc); + sub_806EEA8(proc->anim, proc); + + Proc_Break(proc); + + return; +} + +extern struct ProcCmd ProcScr_efxopThunderBG[]; + +extern u16 gUnknown_080DF6A8[]; + +extern u16 * gUnknown_085D951C[]; + +//! FE8U = 0x0806ED54 +void sub_806ED54(struct Anim * anim, struct ProcEfx * unused) +{ + struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + struct ProcEfxBG * proc = Proc_Start(ProcScr_efxopThunderBG, PROC_TREE_3); + + proc->anim = anim; + proc->timer = 0; + + proc->frame = 0; + proc->frame_config = gUnknown_080DF6A8; + + proc->tsal = gUnknown_085D951C; + + sub_806EAD4(anim, gUnknown_085F367C); + sub_806EAA4(proc->anim, gUnknown_085F2DC0); + + magicFx->resetCallback(); + + sub_806E95C(proc->anim, magicFx); + + return; +} + +//! FE8U = 0x0806EDB0 +void sub_806EDB0(struct ProcEfxBG * proc) +{ + u16 chr = 0; + struct AnimMagicFxBuffer * magicFx = (void *)sub_806E954(proc->anim); + + s16 ret = EfxAdvanceFrameLut((s16 *)&proc->timer, (s16 *)&proc->frame, proc->frame_config); + + if (ret >= 0) + { + u16 ** tsaL = proc->tsal; + sub_806EA38(proc->anim, 0, *(tsaL + ret), 1); + + if (ret == 0) + { + chr = magicFx->bgChr + 31; + } + + if (ret == 1) + { + chr = magicFx->bgChr + 80; + } + + FillBGRect(magicFx->bgTmBuf + 0x1E, 2, 20, magicFx->bgPalId, chr); + } + else + { + if (ret == -1) + { + sub_806E9B4(proc->anim); + SetDefaultColorEffects_(); + Proc_Break(proc); + } + } + + return; +} + +extern struct ProcCmd ProcScr_efxopThunderBGCOL[]; + +extern u16 gUnknown_080DF6C6[]; + +extern u16 gUnknown_085F367C[]; + +//! FE8U = 0x0806EE34 +void sub_806EE34(struct Anim * anim, struct ProcEfx * unused) +{ + struct ProcEfxBGCOL * proc = Proc_Start(ProcScr_efxopThunderBGCOL, PROC_TREE_3); + + sub_806E948(proc); + + proc->anim = anim; + proc->timer = 0; + + proc->frame = 0; + proc->frame_config = gUnknown_080DF6C6; + + proc->pal = gUnknown_085F367C; + + return; +} + +//! FE8U = 0x0806EE68 +void sub_806EE68(struct ProcEfxBGCOL * proc) +{ + s16 ret = EfxAdvanceFrameLut((s16 *)&proc->timer, (s16 *)&proc->frame, proc->frame_config); + + if (ret >= 0) + { + u16 * pal = proc->pal; + sub_806EAD4(proc->anim, pal + ret * 0x10); + } + else + { + if (ret == -1) + { + sub_806E920(); + Proc_Break(proc); + } + } + + return; +} + +extern struct ProcCmd ProcScr_efxopThunderOBJ[]; + +extern u32 gUnknown_085F5550[]; +extern u32 gUnknown_085F4A24[]; + +//! FE8U = 0x0806EEA8 +void sub_806EEA8(struct Anim * anim, struct ProcEfx * unused) +{ + struct Anim * frontAnim; + + struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + struct ProcEfxOBJ * proc = Proc_Start(ProcScr_efxopThunderOBJ, PROC_TREE_3); + + proc->anim = anim; + proc->timer = 0; + + frontAnim = sub_806E9E4(anim, 1, gUnknown_085F5550, gUnknown_085F4A24); + proc->anim2 = frontAnim; + + if (GetAnimPosition(anim) == 0) + { + frontAnim->xPosition = anim->xPosition + 56; + } + else + { + frontAnim->xPosition = anim->xPosition - 56; + } + + frontAnim->xPosition += magicFx->xOffsetObj; + frontAnim->yPosition += magicFx->yOffsetObj; + + sub_806EB2C(proc->anim, Pal_BoltingSprites); + sub_806EAFC(proc->anim, Img_BoltingSprites); + + return; +} + +//! FE8U = 0x0806EF24 +void sub_806EF24(struct ProcEfxOBJ * proc) +{ + proc->timer++; + + if (proc->timer > 50) + { + AnimDelete(proc->anim2); + Proc_Break(proc); + } + + return; +} + +extern struct ProcCmd ProcScr_efxopLive[]; + +//! FE8U = 0x0806EF48 +void NewEfxopLive(struct Anim * anim) +{ + struct ProcEfx * proc = Proc_Start(ProcScr_efxopLive, PROC_TREE_3); + + proc->anim = anim; + proc->timer = 0; + + return; +} + +//! FE8U = 0x0806EF64 +void sub_806EF64(struct ProcEfx * proc) +{ + sub_806F184(proc->anim, proc); + sub_806EFB8(proc->anim, proc); + sub_806F058(proc->anim, proc); + + SetBlendAlpha(0, 16); + + sub_806F0CC(proc->anim, 1, 12, 0, proc); + sub_806F0CC(proc->anim, 35, 25, 1, proc); + + Proc_Break(proc); + + return; +} + +extern struct ProcCmd ProcScr_efxopLiveBG[]; + +extern u16 gUnknown_080DF730[]; + +extern u16 * gUnknown_085D959C[]; + +extern u16 gUnknown_0866F5E4[]; + +//! FE8U = 0x0806EFB8 +void sub_806EFB8(struct Anim * anim, struct ProcEfx * unused) +{ + struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + + struct ProcEfxBG * proc = Proc_Start(ProcScr_efxopLiveBG, PROC_TREE_3); + SetGlbProcefxopCur(proc); + + proc->anim = anim; + proc->timer = 0; + + proc->frame = 0; + proc->frame_config = gUnknown_080DF730; + + proc->tsal = gUnknown_085D959C; + + sub_806EAA4(anim, gUnknown_0866F5E4); + + magicFx->resetCallback(); + + sub_806E95C(proc->anim, magicFx); + + return; +} + +//! FE8U = 0x0806F00C +void sub_806F00C(struct ProcEfxBG * proc) +{ + s16 ret = EfxAdvanceFrameLut((s16 *)&proc->timer, (s16 *)&proc->frame, proc->frame_config); + + if (ret >= 0) + { + u16 ** tsaL = proc->tsal; + sub_806EA38(proc->anim, 1, *(tsaL + ret), 0); + } + else + { + if (ret == -1) + { + sub_806E9B4(proc->anim); + SetDefaultColorEffects_(); + Proc_Break(proc); + } + } + + return; +} + +extern struct ProcCmd ProcScr_efxopLiveBGCOL[]; + +extern u16 gUnknown_080DF748[]; +extern u16 gUnknown_086700D4[]; + +//! FE8U = 0x0806F058 +void sub_806F058(struct Anim * anim, struct ProcEfx * unused) +{ + struct ProcEfxBGCOL * proc = Proc_Start(ProcScr_efxopLiveBGCOL, PROC_TREE_3); + sub_806E948(proc); + + proc->anim = anim; + proc->timer = 0; + + proc->frame = 0; + proc->frame_config = gUnknown_080DF748; + + proc->pal = gUnknown_086700D4; + + return; +} + +//! FE8U = 0x0806F08C +void sub_806F08C(struct ProcEfxBGCOL * proc) +{ + s16 ret = EfxAdvanceFrameLut((s16 *)&proc->timer, (s16 *)&proc->frame, proc->frame_config); + + if (ret >= 0) + { + u16 * pal = proc->pal; + sub_806EAD4(proc->anim, pal + ret * 0x10); + } + else + { + if (ret == -1) + { + sub_806E920(); + Proc_Break(proc); + } + } + + return; +} + +extern struct ProcCmd ProcScr_efxopLiveALPHA[]; + +//! FE8U = 0x0806F0CC +void sub_806F0CC(struct Anim * anim, int timer, int c, int d, struct ProcEfx * unused) +{ + struct ProcEfxALPHA * proc = Proc_Start(ProcScr_efxopLiveALPHA, PROC_TREE_3); + proc->anim = anim; + + proc->timer = timer; + proc->unk2E = c; + + proc->unk29 = d; + + return; +} + +//! FE8U = 0x0806F0FC +void sub_806F0FC(struct ProcEfxALPHA * proc) +{ + if (--proc->timer == 0) + { + Proc_Break(proc); + } + + return; +} + +//! FE8U = 0x0806F118 +void sub_806F118(struct ProcEfxALPHA * proc) +{ + int bldA; + + if (proc->timer > proc->unk2E) + { + Proc_Break(proc); + return; + } + + if (proc->unk29 == 0) + { + bldA = Interpolate(INTERPOLATE_LINEAR, 0, 16, proc->timer, proc->unk2E); + } + else + { + bldA = Interpolate(INTERPOLATE_LINEAR, 16, 0, proc->timer, proc->unk2E); + } + + SetBlendAlpha(bldA, 16); + + proc->timer++; + + return; +} + +extern struct ProcCmd ProcScr_efxopLiveOBJ[]; + +//! FE8U = 0x0806F184 +void sub_806F184(struct Anim * anim, struct ProcEfx * unused) +{ + struct Anim * frontAnim; + u32 * scr; + + struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + struct ProcEfxOBJ * proc = Proc_Start(ProcScr_efxopLiveOBJ, PROC_TREE_3); + + proc->anim = anim; + proc->timer = 0; + proc->terminator = 51; + + scr = gUnknown_08675114; + frontAnim = sub_806E9E4(anim, 1, scr, scr); + proc->anim2 = frontAnim; + + frontAnim->xPosition += magicFx->xOffsetObj; + frontAnim->yPosition += magicFx->yOffsetObj; + + sub_806EB2C(proc->anim, Pal_FimbulvetrSprites_Snow); + sub_806EAFC(proc->anim, gUnknown_086702D4); + + return; +} + +//! FE8U = 0x0806F1E8 +void sub_806F1E8(struct ProcEfxOBJ * proc) +{ + proc->timer++; + + if (proc->timer == proc->terminator) + { + AnimDelete(proc->anim2); + Proc_Break(proc); + } + + return; +} + +extern struct ProcCmd ProcScr_efxopLightning[]; + +//! FE8U = 0x0806F210 +void NewEfxopLightning(struct Anim * anim) +{ + struct ProcEfx * proc = Proc_Start(ProcScr_efxopLightning, PROC_TREE_3); + SetGlbProcefxopCur(proc); + + proc->anim = anim; + + return; +} + +//! FE8U = 0x0806F230 +void sub_806F230(struct ProcEfx * proc) +{ + sub_806F248(proc->anim, proc); + Proc_Break(proc); + return; +} + +extern struct ProcCmd ProcScr_efxopLightningBG[]; + +extern u16 * gUnknown_085D9638[]; +extern u16 * gUnknown_085D96BC[]; +extern u16 * gUnknown_085D9740[]; + +extern u16 gUnknown_080DF7CE[]; + +//! FE8U = 0x0806F248 +void sub_806F248(struct Anim * anim, struct ProcEfx * parent) +{ + struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + struct ProcEfxBG * proc = Proc_Start(ProcScr_efxopLightningBG, parent); + + proc->anim = anim; + proc->timer = 0; + + proc->frame = 0; + proc->frame_config = gUnknown_080DF7CE; + + proc->tsal = gUnknown_085D9740; + proc->tsar = gUnknown_085D9740; + + proc->img = gUnknown_085D9638; + proc->pal = gUnknown_085D96BC; + + magicFx->resetCallback(); + + sub_806E95C(proc->anim, magicFx); + + return; +} + +//! FE8U = 0x0806F2A0 +void sub_806F2A0(struct ProcEfxBG * proc) +{ + s16 ret = EfxAdvanceFrameLut((s16 *)&proc->timer, (s16 *)&proc->frame, proc->frame_config); + + if (ret >= 0) + { + u16 ** tsaL = proc->tsal; + u16 ** img = proc->img; + u16 ** pal = proc->pal; + + sub_806EAA4(proc->anim, *(img + ret)); + sub_806EAD4(proc->anim, *(pal + ret)); + sub_806EA38(proc->anim, 0, *(tsaL + ret), 1); + } + else + { + if (ret == -1) + { + sub_806E9B4(proc->anim); + SetDefaultColorEffects_(); + Proc_Break(proc); + } + } + + return; +} + +extern struct ProcCmd gUnknown_085D97C4[]; + +extern u16 gUnknown_080DF866[]; + +extern u16 * gUnknown_085D97DC[]; +extern u16 * gUnknown_085D9880[]; + +//! FE8U = 0x0806F304 +void sub_806F304(struct Anim * anim, struct ProcEfx * parent) +{ + struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + struct ProcEfxBG * proc = Proc_Start(gUnknown_085D97C4, parent); + + proc->anim = anim; + proc->timer = 0; + + proc->frame = 0; + proc->frame_config = gUnknown_080DF866; + + proc->tsal = gUnknown_085D97DC; + proc->tsar = gUnknown_085D97DC; + proc->img = gUnknown_085D9880; + + proc->terminator = 0; + + sub_806EAD4(anim, gUnknown_0862A2D0); + + if (GetAnimPosition(proc->anim) == 0) + { + gLCDControlBuffer.bgoffset[BG_1].x += 4; + } + else + { + gLCDControlBuffer.bgoffset[BG_1].x -= 4; + } + + gLCDControlBuffer.bgoffset[BG_1].y += 8; + + magicFx->resetCallback(); + + sub_806E95C(proc->anim, magicFx); + + return; +} + +extern struct ProcCmd gUnknown_085D97C4[]; + +extern u16 gUnknown_080DF898[]; + +//! FE8U = 0x0806F38C +void sub_806F38C(struct Anim * anim, struct ProcEfx * parent) +{ + struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + struct ProcEfxBG * proc = Proc_Start(gUnknown_085D97C4, parent); + + proc->anim = anim; + proc->timer = 0; + + proc->frame = 0; + proc->frame_config = gUnknown_080DF898; + + proc->tsal = gUnknown_085D97DC; + proc->tsar = gUnknown_085D97DC; + proc->img = gUnknown_085D9880; + + proc->terminator = 1; + + sub_806EAD4(anim, gUnknown_0862A2F0); + + magicFx->resetCallback(); + + sub_806E95C(proc->anim, magicFx); + + SetBlendAlpha(10, 7); + + return; +} + +//! FE8U = 0x0806F3F8 +void sub_806F3F8(struct ProcEfxBG * proc) +{ + s16 ret = EfxAdvanceFrameLut((s16 *)&proc->timer, (s16 *)&proc->frame, proc->frame_config); + + if (ret >= 0) + { + u16 ** tsaL = proc->tsal; + u16 ** img = proc->img; + + sub_806EAA4(proc->anim, *(img + ret)); + sub_806EA38(proc->anim, proc->terminator, *(tsaL + ret), 1); + } + else + { + if (ret == -1) + { + sub_806E9B4(proc->anim); + SetDefaultColorEffects_(); + Proc_Break(proc); + } + } + + return; +} + +extern struct ProcCmd gUnknown_085D9924[]; +extern u32 FramScr_Unk5D4F90[]; + +//! FE8U = 0x0806F450 +void sub_806F450(struct Anim * anim, struct ProcEfx * parent) +{ + u32 * scr; + + struct ProcEfxOBJ * proc = Proc_Start(gUnknown_085D9924, parent); + proc->anim = anim; + + scr = FramScr_Unk5D4F90; + proc->anim2 = sub_806E9E4(anim, 1, scr, scr); + + return; +} + +extern struct ProcCmd gUnknown_085D996C[]; + +//! FE8U = 0x0806F47C +struct ProcEfxOBJ * sub_806F47C(struct Anim * anim, struct ProcEfx * parent) +{ + struct Anim * frontAnim; + u32 * scr; + + struct ProcEfxOBJ * proc = Proc_Start(gUnknown_085D996C, parent); + proc->anim = anim; + + scr = FramScr_Unk5D4F90; + frontAnim = sub_806E9E4(anim, 0, scr, scr); + proc->anim2 = frontAnim; + + frontAnim->xPosition -= 56; + frontAnim->yPosition -= 4; + + return proc; +} + +void sub_806F4B4(struct ProcEfxOBJ * proc) +{ + AnimDelete(proc->anim2); + return; +} + +//! FE8U = 0x0806F4C0 +void sub_806F4C0(struct ProcEfxOBJ * proc) +{ + struct Anim * anim = proc->anim2; + + u32 * scr = gUnknown_0862D6A8; + + anim->pScrStart = scr; + anim->pScrCurrent = scr; + anim->timer = 0; + + sub_806EB2C(proc->anim, Pal_FluxAnimSprites); + sub_806EAFC(proc->anim, Img_FluxAnimSprites_Orb); + + Proc_Break(proc); + + return; +} + +//! FE8U = 0x0806F4F8 +void sub_806F4F8(struct ProcEfxOBJ * proc) +{ + struct Anim * anim = proc->anim2; + + u32 * scr = gUnknown_0862D82C; + + anim->pScrStart = scr; + anim->pScrCurrent = scr; + anim->timer = 0; + + sub_806EB2C(proc->anim, Pal_FluxAnimSprites); + sub_806EAFC(proc->anim, Img_FluxAnimSprites_Tendrils); + + Proc_Break(proc); + + return; +} + +//! FE8U = 0x0806F530 +void sub_806F530(struct ProcEfxOBJ * proc) +{ + struct Anim * anim = proc->anim2; + + u32 * scr = gUnknown_0862DCE0; + + anim->pScrStart = scr; + anim->pScrCurrent = scr; + anim->timer = 0; + + sub_806EB2C(proc->anim, Pal_FluxAnimSprites); + sub_806EAFC(proc->anim, Img_FluxAnimSprites_SigilVoid); + + Proc_Break(proc); + + return; +} + +//! FE8U = 0x0806F568 +void sub_806F568(struct ProcEfxOBJ * proc) +{ + struct Anim * anim = proc->anim2; + + u32 * scr = gUnknown_0862DC24; + + anim->pScrStart = scr; + anim->pScrCurrent = scr; + anim->timer = 0; + anim->drawLayerPriority = 20; + + AnimSort(); + + proc->timer = 39; + + Proc_Break(proc); + + return; +} + +//! FE8U = 0x0806F594 +void sub_806F594(struct ProcEfxOBJ * proc) +{ + struct Anim * anim = proc->anim2; + + proc->timer++; + + if (proc->timer == 40) + { + u32 * scr = gUnknown_0862DC58; + + anim->pScrStart = scr; + anim->pScrCurrent = scr; + anim->timer = 0; + + proc->timer = 0; + } + + return; +} + +extern struct ProcCmd ProcScr_efxopMistyrain[]; + +//! FE8U = 0x0806F5BC +void NewEfxopMistyrain(struct Anim * anim) +{ + struct ProcEfx * proc = Proc_Start(ProcScr_efxopMistyrain, PROC_TREE_3); + SetGlbProcefxopCur(proc); + + proc->anim = anim; + proc->timer = 0; + + return; +} + +//! FE8U = 0x0806F5E0 +void sub_806F5E0(struct ProcEfx * proc) +{ + proc->timer++; + + if (proc->timer == 1) + { + sub_806F304(proc->anim, proc); + } + + if (proc->timer == 16) + { + sub_806F450(proc->anim, proc); + } + + if (proc->timer == 75) + { + proc->unk_64 = sub_806F47C(proc->anim, proc); + } + + if (proc->timer == 94) + { + sub_806F38C(proc->anim, proc); + } + + if (proc->timer == 114) + { + Proc_End(proc->unk_64); + Proc_Break(proc); + } + + return; +} + +extern struct ProcCmd ProcScr_efxopMyrrh[]; + +//! FE8U = 0x0806F648 +void NewEfxopMyrrh(struct Anim * anim) +{ + struct ProcEfx * proc = Proc_Start(ProcScr_efxopMyrrh, PROC_TREE_3); + SetGlbProcefxopCur(proc); + + proc->anim = anim; + + return; +} + +//! FE8U = 0x0806F668 +void sub_806F668(ProcPtr proc) +{ + struct BattleAnim * banim = banim_data; + LZ77UnCompWram(banim[197 - 1].pal, gPalBackupEkrUnitMaybe); + + CpuFastCopy(gPalBackupEkrUnitMaybe + 0x10, gPaletteBuffer + 0x120, 0x20); + CpuFastCopy(gPalBackupEkrUnitMaybe + 0x10, gPaletteBuffer + 0x130, 0x20); + + EnablePaletteSync(); + + Proc_Break(proc); + + return; +} + +extern struct ProcCmd gUnknown_085D99EC[]; + +//! FE8U = 0x0806F6B4 +void sub_806F6B4(struct Anim * anim) +{ + struct ProcEfx * proc = Proc_Start(gUnknown_085D99EC, PROC_TREE_3); + SetGlbProcefxopCur(proc); + + proc->anim = anim; + + return; +} + +//! FE8U = 0x0806F6D4 +void sub_806F6D4(struct ProcEfx * proc) +{ + sub_806F7C0(proc->anim, proc); + Proc_Break(proc); + return; +} + +//! FE8U = 0x0806F6EC +void sub_806F6EC(struct ProcEfx * proc) +{ + sub_806F704(proc->anim, proc); + Proc_Break(proc); + return; +} + +extern struct ProcCmd gUnknown_085D9A1C[]; + +extern u16 gUnknown_080DF954[]; +extern u16 * gUnknown_085D9A2C[]; +extern u16 * gUnknown_085D9A94[]; +extern u16 * gUnknown_085D9AFC[]; + +//! FE8U = 0x0806F704 +void sub_806F704(struct Anim * anim, struct ProcEfx * parent) +{ + struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + struct ProcEfxBG * proc = Proc_Start(gUnknown_085D9A1C, parent); + + proc->anim = anim; + proc->timer = 0; + + proc->frame = 0; + proc->frame_config = gUnknown_080DF954; + + proc->tsal = gUnknown_085D9A94; + proc->img = gUnknown_085D9A2C; + proc->pal = gUnknown_085D9AFC; + + magicFx->resetCallback(); + + sub_806E95C(proc->anim, magicFx); + + return; +} + +//! FE8U = 0x0806F75C +void sub_806F75C(struct ProcEfxBG * proc) +{ + s16 ret = EfxAdvanceFrameLut((s16 *)&proc->timer, (s16 *)&proc->frame, proc->frame_config); + + if (ret >= 0) + { + u16 ** tsaL = proc->tsal; + u16 ** img = proc->img; + u16 ** pal = proc->pal; + + sub_806EA38(proc->anim, 1, *(tsaL + ret), 1); + sub_806EAA4(proc->anim, *(img + ret)); + sub_806EAD4(proc->anim, *(pal + ret)); + } + else + { + if (ret == -1) + { + sub_806E9B4(proc->anim); + SetDefaultColorEffects_(); + Proc_Break(proc); + } + } + + return; +} + +extern struct ProcCmd gUnknown_085D9B64[]; + +//! FE8U = 0x0806F7C0 +void sub_806F7C0(struct Anim * anim, struct ProcEfx * parent) +{ + struct Anim * frontAnim; + + struct AnimMagicFxBuffer * unused = sub_806E954(anim); + struct ProcEfxOBJ * proc = Proc_Start(gUnknown_085D9B64, parent); + + proc->anim = anim; + proc->timer = 0; + + frontAnim = sub_806E9E4(anim, 1, gUnknown_086C978C, gUnknown_086C95C0); + proc->anim2 = frontAnim; + + frontAnim->xPosition -= 56; + frontAnim->yPosition += 24; + + sub_806EB2C(proc->anim, gUnknown_086C93FC); + sub_806EAFC(proc->anim, gUnknown_086C90A4); + + return; +} + +//! FE8U = 0x0806F820 +void sub_806F820(struct ProcEfxOBJ * proc) +{ + proc->timer++; + + if (proc->timer > 60) + { + AnimDelete(proc->anim2); + Proc_Break(proc); + } + + return; +} + +extern struct ProcCmd gUnknown_085D9B74[]; + +//! FE8U = 0x0806F844 +void sub_806F844(struct Anim * anim) +{ + struct ProcEfx * proc = Proc_Start(gUnknown_085D9B74, PROC_TREE_3); + SetGlbProcefxopCur(proc); + + proc->anim = anim; + + return; +} + +//! FE8U = 0x0806F864 +void sub_806F864(struct ProcEfx * proc) +{ + sub_806F968(proc->anim, proc); + Proc_Break(proc); + return; +} + +//! FE8U = 0x0806F87C +void sub_806F87C(struct ProcEfx * proc) +{ + sub_806F894(proc->anim, proc); + Proc_Break(proc); + return; +} + +extern struct ProcCmd gUnknown_085D9BA4[]; + +extern u16 gUnknown_080DF9BE[]; + +extern u16 * gUnknown_085D9BB4[]; +extern u16 * gUnknown_085D9C00[]; + +//! FE8U = 0x0806F894 +void sub_806F894(struct Anim * anim, struct ProcEfx * parent) +{ + struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + struct ProcEfxBG * proc = Proc_Start(gUnknown_085D9BA4, parent); + + proc->anim = anim; + proc->timer = 0; + + proc->frame = 0; + proc->frame_config = gUnknown_080DF9BE; + + proc->tsal = gUnknown_085D9C00; + proc->img = gUnknown_085D9BB4; + + sub_806EAD4(anim, Pal_StoneBg); + + magicFx->resetCallback(); + + sub_806E95C(proc->anim, magicFx); + + return; +} + +//! FE8U = 0x0806F8F0 +void sub_806F8F0(struct ProcEfxBG * proc) +{ + s16 ret = EfxAdvanceFrameLut((s16 *)&proc->timer, (s16 *)&proc->frame, proc->frame_config); + + if (ret >= 0) + { + u16 ** tsaL = proc->tsal; + u16 ** img = proc->img; + + sub_806EA38(proc->anim, 1, *(tsaL + ret), 1); + sub_806EAA4(proc->anim, *(img + ret)); + + if (ret == 17) + { + SpellFx_RegisterBgPal(Pal_StoneBg_086C792C, PLTT_SIZE_4BPP); + } + + if (ret == 18) + { + SpellFx_RegisterBgPal(Pal_StoneBg_086C794C, PLTT_SIZE_4BPP); + } + } + else + { + if (ret == -1) + { + sub_806E9B4(proc->anim); + SetDefaultColorEffects_(); + Proc_Break(proc); + } + } + + return; +} + +extern struct ProcCmd gUnknown_085D9C4C[]; + +//! FE8U = 0x0806F968 +void sub_806F968(struct Anim * anim, struct ProcEfx * parent) +{ + struct Anim * frontAnim; + u32 * scr; + + struct AnimMagicFxBuffer * unused = sub_806E954(anim); + struct ProcEfxOBJ * proc = Proc_Start(gUnknown_085D9C4C, parent); + + proc->anim = anim; + proc->timer = 0; + + scr = gUnknown_086BDA5C; + frontAnim = sub_806E9E4(anim, 1, scr, scr); + proc->anim2 = frontAnim; + + frontAnim->xPosition -= 56; + frontAnim->yPosition += 12; + frontAnim->timer = 0; + frontAnim->drawLayerPriority = 20; + frontAnim->oam2Base |= OAM2_LAYER(3); + + AnimSort(); + + sub_806EB2C(proc->anim, Pal_StoneSprites); + sub_806EAFC(proc->anim, Img_StoneSprites); + + return; +} + +//! FE8U = 0x0806F9D8 +void sub_806F9D8(struct ProcEfxOBJ * proc) +{ + proc->timer++; + + if (proc->timer > 200) + { + AnimDelete(proc->anim2); + Proc_Break(proc); + } + + return; +} diff --git a/src/opinfo.c b/src/opinfo.c index 772eac5f7..a21fe58d5 100644 --- a/src/opinfo.c +++ b/src/opinfo.c @@ -1100,25 +1100,7 @@ void sub_80B3740(void) { #define gOpInfoData ((struct AnimBuffer *)EWRAM_ENTRY) -struct Unk200A2D8 { - u16 unk_00; - u16 unk_02; - u16 unk_04; - u16 unk_06; - u16 unk_08; - u16 unk_0A; - u16 unk_0C; - u16 unk_0E; - u16 unk_10; - u16 unk_12; - void* unk_14; - void* unk_18; - void* unk_1C; - void* unk_20; - void* unk_24; -}; - -extern struct Unk200A2D8 gUnknown_0200A2D8; +extern struct AnimMagicFxBuffer gUnknown_0200A2D8; extern struct BanimUnkStructComm gUnknown_0201DB00; @@ -1293,21 +1275,21 @@ void ClassInfoDisplay_Init(struct OpInfoClassDisplayProc* proc) { gOpInfoData->unk_30 = &gUnknown_0200A2D8; - gUnknown_0200A2D8.unk_00 = proc->classReelEnt->magicFx; - gUnknown_0200A2D8.unk_02 = proc->classReelEnt->unk_09; - gUnknown_0200A2D8.unk_04 = proc->classReelEnt->unk_0A; - gUnknown_0200A2D8.unk_06 = proc->classReelEnt->unk_0B; - gUnknown_0200A2D8.unk_08 = proc->classReelEnt->unk_0C; - gUnknown_0200A2D8.unk_0E = 0x280; - gUnknown_0200A2D8.unk_10 = 0xF; - gUnknown_0200A2D8.unk_0A = 0x200; - gUnknown_0200A2D8.unk_0C = 0xF; - gUnknown_0200A2D8.unk_12 = 1; - gUnknown_0200A2D8.unk_14 = gBG1TilemapBuffer; - gUnknown_0200A2D8.unk_18 = gUnknown_0200A300; - gUnknown_0200A2D8.unk_1C = gUnknown_0200C300; - gUnknown_0200A2D8.unk_20 = gUnknown_0200CB00; - gUnknown_0200A2D8.unk_24 = sub_80B3740; + gUnknown_0200A2D8.magicFuncIdx = proc->classReelEnt->magicFx; + gUnknown_0200A2D8.xOffsetBg = proc->classReelEnt->unk_09; + gUnknown_0200A2D8.yOffsetBg = proc->classReelEnt->unk_0A; + gUnknown_0200A2D8.xOffsetObj = proc->classReelEnt->unk_0B; + gUnknown_0200A2D8.yOffsetObj = proc->classReelEnt->unk_0C; + gUnknown_0200A2D8.objChr = 0x280; + gUnknown_0200A2D8.objPalId = 0xF; + gUnknown_0200A2D8.bgChr = 0x200; + gUnknown_0200A2D8.bgPalId = 0xF; + gUnknown_0200A2D8.bg = 1; + gUnknown_0200A2D8.bgTmBuf = gBG1TilemapBuffer; + gUnknown_0200A2D8.bgImgBuf = gUnknown_0200A300; + gUnknown_0200A2D8.bgTsaBuf = gUnknown_0200C300; + gUnknown_0200A2D8.objImgBuf = gUnknown_0200CB00; + gUnknown_0200A2D8.resetCallback = sub_80B3740; NewEkrUnitMainMini(gOpInfoData); From c3efe93881efd8108aef1e3c54592fed9b0823e6 Mon Sep 17 00:00:00 2001 From: Eebit Date: Fri, 16 Feb 2024 17:07:29 -0500 Subject: [PATCH 2/3] (banim-efxop) Extract data --- data/banim-efxop.s | 766 --------------------------- data/const_data_banimekrdk.s | 44 +- data/data_banim.s | 60 ++- include/efxbattle.h | 16 +- ldscript.txt | 3 +- src/banim-efxop.c | 998 ++++++++++++++++++++++++++++++++--- 6 files changed, 1006 insertions(+), 881 deletions(-) delete mode 100644 data/banim-efxop.s diff --git a/data/banim-efxop.s b/data/banim-efxop.s deleted file mode 100644 index e6a947628..000000000 --- a/data/banim-efxop.s +++ /dev/null @@ -1,766 +0,0 @@ - .section .data - - .global gpEfxopFuncLut -gpEfxopFuncLut: @ 0x085D9430 - .4byte nullsub_73 - .4byte NewEfxopFire - .4byte NewEfxopThunder - .4byte NewEfxopLive - .4byte NewEfxopLightning - .4byte NewEfxopMistyrain - .4byte NewEfxopMyrrh - .4byte sub_806F6B4 - .4byte sub_806F844 - - .global ProcScr_efxopFire -ProcScr_efxopFire: @ 0x085D9454 - @ PROC_NAME - .short 0x1, 0x0 - .word 0x80df62c - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_806EB9C - @ PROC_SLEEP - .short 0xe, 0x32 - .word 0x0 - @ PROC_CALL - .short 0x2, 0x0 - .word sub_806E904 - @ PROC_END - .short 0x0, 0x0 - .word 0x0 - - - .global ProcScr_efxopFireBG -ProcScr_efxopFireBG: @ 0x085D947C - @ PROC_NAME - .short 0x1, 0x0 - .word 0x80df638 - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_806EC1C - @ PROC_END - .short 0x0, 0x0 - .word 0x0 - - - .global gUnknown_085D9494 -gUnknown_085D9494: @ 0x085D9494 - .4byte gUnknown_085F6230 + 0x20 - .4byte gUnknown_085F6230 + 0xc8 - .4byte gUnknown_085F6230 + 0x170 - .4byte gUnknown_085F6230 + 0x228 - .4byte gUnknown_085F6230 + 0x2f0 - .4byte gUnknown_085F6230 + 0x3c0 - .4byte gUnknown_085F6230 + 0x4c0 - .4byte gUnknown_085F6230 + 0x5c8 - .4byte gUnknown_085F6230 + 0x6dc - .4byte gUnknown_085F6230 + 0x814 - .4byte gUnknown_085F6230 + 0x918 - .4byte gUnknown_085F6230 + 0x9ec - - .global ProcScr_efxopFireOBJ -ProcScr_efxopFireOBJ: @ 0x085D94C4 - @ PROC_NAME - .short 0x1, 0x0 - .word 0x80df678 - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_806ECE8 - @ PROC_END - .short 0x0, 0x0 - .word 0x0 - - - .global ProcScr_efxopThunder -ProcScr_efxopThunder: @ 0x085D94DC - @ PROC_NAME - .short 0x1, 0x0 - .word 0x80df688 - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_806ED2C - @ PROC_SLEEP - .short 0xe, 0x32 - .word 0x0 - @ PROC_CALL - .short 0x2, 0x0 - .word sub_806E904 - @ PROC_END - .short 0x0, 0x0 - .word 0x0 - - - .global ProcScr_efxopThunderBG -ProcScr_efxopThunderBG: @ 0x085D9504 - @ PROC_NAME - .short 0x1, 0x0 - .word 0x80df698 - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_806EDB0 - @ PROC_END - .short 0x0, 0x0 - .word 0x0 - - - .global gUnknown_085D951C -gUnknown_085D951C: @ 0x085D951C - .4byte gUnknown_085F367C + 0x200 - .4byte gUnknown_085F367C + 0x2cc - - .global ProcScr_efxopThunderBGCOL -ProcScr_efxopThunderBGCOL: @ 0x085D9524 - @ PROC_NAME - .short 0x1, 0x0 - .word 0x80df6b4 - @ PROC_MARK - .short 0xf, 0xa - .word 0x0 - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_806EE68 - @ PROC_END - .short 0x0, 0x0 - .word 0x0 - - - .global ProcScr_efxopThunderOBJ -ProcScr_efxopThunderOBJ: @ 0x085D9544 - @ PROC_NAME - .short 0x1, 0x0 - .word 0x80df708 - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_806EF24 - @ PROC_END - .short 0x0, 0x0 - .word 0x0 - - - .global ProcScr_efxopLive -ProcScr_efxopLive: @ 0x085D955C - @ PROC_NAME - .short 0x1, 0x0 - .word 0x80df718 - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_806EF64 - @ PROC_SLEEP - .short 0xe, 0x46 - .word 0x0 - @ PROC_CALL - .short 0x2, 0x0 - .word sub_806E904 - @ PROC_END - .short 0x0, 0x0 - .word 0x0 - - - .global ProcScr_efxopLiveBG -ProcScr_efxopLiveBG: @ 0x085D9584 - @ PROC_NAME - .short 0x1, 0x0 - .word 0x80df724 - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_806F00C - @ PROC_END - .short 0x0, 0x0 - .word 0x0 - - - .global gUnknown_085D959C -gUnknown_085D959C: @ 0x085D959C - .4byte gUnknown_0866F774 - - .global ProcScr_efxopLiveBGCOL -ProcScr_efxopLiveBGCOL: @ 0x085D95A0 - @ PROC_NAME - .short 0x1, 0x0 - .word 0x80df738 - @ PROC_MARK - .short 0xf, 0xa - .word 0x0 - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_806F08C - @ PROC_END - .short 0x0, 0x0 - .word 0x0 - - - .global ProcScr_efxopLiveALPHA -ProcScr_efxopLiveALPHA: @ 0x085D95C0 - @ PROC_NAME - .short 0x1, 0x0 - .word 0x80df78c - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_806F0FC - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_806F118 - @ PROC_END - .short 0x0, 0x0 - .word 0x0 - - - .global ProcScr_efxopLiveOBJ -ProcScr_efxopLiveOBJ: @ 0x085D95E0 - @ PROC_NAME - .short 0x1, 0x0 - .word 0x80df79c - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_806F1E8 - @ PROC_END - .short 0x0, 0x0 - .word 0x0 - - - .global ProcScr_efxopLightning -ProcScr_efxopLightning: @ 0x085D95F8 - @ PROC_NAME - .short 0x1, 0x0 - .word 0x80df7ac - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_806F230 - @ PROC_SLEEP - .short 0xe, 0x32 - .word 0x0 - @ PROC_CALL - .short 0x2, 0x0 - .word sub_806E904 - @ PROC_END - .short 0x0, 0x0 - .word 0x0 - - - .global ProcScr_efxopLightningBG -ProcScr_efxopLightningBG: @ 0x085D9620 - @ PROC_NAME - .short 0x1, 0x0 - .word 0x80df7bc - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_806F2A0 - @ PROC_END - .short 0x0, 0x0 - .word 0x0 - - - .global gUnknown_085D9638 -gUnknown_085D9638: @ 0x085D9638 - .4byte gUnknown_0861AD8C + 0x8 - .4byte gUnknown_0861AD8C + 0x8 - .4byte gUnknown_0861AD8C + 0x8 - .4byte gUnknown_0861AD8C + 0x8d0 - .4byte gUnknown_0861AD8C + 0x8d0 - .4byte gUnknown_0861AD8C + 0x8d0 - .4byte gUnknown_0861AD8C + 0x1020 - .4byte gUnknown_0861AD8C + 0x1020 - .4byte gUnknown_0861AD8C + 0x1020 - .4byte gUnknown_0861AD8C + 0x1020 - .4byte gUnknown_0861AD8C + 0x19e4 - .4byte gUnknown_0861AD8C + 0x19e4 - .4byte gUnknown_0861AD8C + 0x19e4 - .4byte gUnknown_0861AD8C + 0x2538 - .4byte gUnknown_0861AD8C + 0x2538 - .4byte gUnknown_0861AD8C + 0x2538 - .4byte gUnknown_0861AD8C + 0x3040 - .4byte gUnknown_0861AD8C + 0x3040 - .4byte gUnknown_0861AD8C + 0x3040 - .4byte gUnknown_0861AD8C + 0x3040 - .4byte gUnknown_0861AD8C + 0x3040 - .4byte gUnknown_0861AD8C + 0x3040 - .4byte gUnknown_0861AD8C + 0x3040 - .4byte gUnknown_0861AD8C + 0x3040 - .4byte gUnknown_0861AD8C + 0x3040 - .4byte gUnknown_0861AD8C + 0x3358 - .4byte gUnknown_0861AD8C + 0x3358 - .4byte gUnknown_0861AD8C + 0x3358 - .4byte gUnknown_0861AD8C + 0x4008 - .4byte gUnknown_0861AD8C + 0x4008 - .4byte gUnknown_0861AD8C + 0x4008 - .4byte gUnknown_0861AD8C + 0x4008 - .4byte gUnknown_0861AD8C + 0x4008 - - .global gUnknown_085D96BC -gUnknown_085D96BC: @ 0x085D96BC - .4byte gUnknown_0861AD8C + 0x4a28 - .4byte gUnknown_0861AD8C + 0x4a28 - .4byte gUnknown_0861AD8C + 0x4a28 - .4byte gUnknown_0861AD8C + 0x4a28 - .4byte gUnknown_0861AD8C + 0x4a28 - .4byte gUnknown_0861AD8C + 0x4a28 - .4byte gUnknown_0861AD8C + 0x4a28 - .4byte gUnknown_0861AD8C + 0x4a28 - .4byte gUnknown_0861AD8C + 0x4a28 - .4byte gUnknown_0861AD8C + 0x4a28 - .4byte gUnknown_0861AD8C + 0x4a28 - .4byte gUnknown_0861AD8C + 0x4a28 - .4byte gUnknown_0861AD8C + 0x4a28 - .4byte gUnknown_0861AD8C + 0x4a28 - .4byte gUnknown_0861AD8C + 0x4a28 - .4byte gUnknown_0861AD8C + 0x4a28 - .4byte gUnknown_0861AD8C + 0x4a28 - .4byte gUnknown_0861AD8C + 0x4a28 - .4byte gUnknown_0861AD8C + 0x4a28 - .4byte gUnknown_0861AD8C + 0x4a28 - .4byte gUnknown_0861AD8C + 0x4a28 - .4byte gUnknown_0861AD8C + 0x4a28 - .4byte gUnknown_0861AD8C + 0x4a28 - .4byte gUnknown_0861AD8C + 0x4a28 - .4byte gUnknown_0861AD8C + 0x4a28 - .4byte gUnknown_0861AD8C + 0x4a48 - .4byte gUnknown_0861AD8C + 0x4a48 - .4byte gUnknown_0861AD8C + 0x4a48 - .4byte gUnknown_0861AD8C + 0x4a48 - .4byte gUnknown_0861AD8C + 0x4a48 - .4byte gUnknown_0861AD8C + 0x4a48 - .4byte gUnknown_0861AD8C + 0x4a48 - .4byte gUnknown_0861AD8C + 0x4a48 - - .global gUnknown_085D9740 -gUnknown_085D9740: @ 0x085D9740 - .4byte gUnknown_0861AD8C + 0x4a68 - .4byte gUnknown_0861AD8C + 0x4b8c - .4byte gUnknown_0861AD8C + 0x4cac - .4byte gUnknown_0861AD8C + 0x4db8 - .4byte gUnknown_0861AD8C + 0x4eb4 - .4byte gUnknown_0861AD8C + 0x4f9c - .4byte gUnknown_0861AD8C + 0x5080 - .4byte gUnknown_0861AD8C + 0x5164 - .4byte gUnknown_0861AD8C + 0x5240 - .4byte gUnknown_0861AD8C + 0x5320 - .4byte gUnknown_0861AD8C + 0x5414 - .4byte gUnknown_0861AD8C + 0x5508 - .4byte gUnknown_0861AD8C + 0x560c - .4byte gUnknown_0861AD8C + 0x5714 - .4byte gUnknown_0861AD8C + 0x582c - .4byte gUnknown_0861AD8C + 0x5950 - .4byte gUnknown_0861AD8C + 0x5a64 - .4byte gUnknown_0861AD8C + 0x5b14 - .4byte gUnknown_0861AD8C + 0x5c1c - .4byte gUnknown_0861AD8C + 0x5d58 - .4byte gUnknown_0861AD8C + 0x5ecc - .4byte gUnknown_0861AD8C + 0x6064 - .4byte gUnknown_0861AD8C + 0x61d8 - .4byte gUnknown_0861AD8C + 0x62e4 - .4byte gUnknown_0861AD8C + 0x63b8 - .4byte gUnknown_0861AD8C + 0x6458 - .4byte gUnknown_0861AD8C + 0x6578 - .4byte gUnknown_0861AD8C + 0x6694 - .4byte gUnknown_0861AD8C + 0x67a8 - .4byte gUnknown_0861AD8C + 0x68a0 - .4byte gUnknown_0861AD8C + 0x6988 - .4byte gUnknown_0861AD8C + 0x6a58 - .4byte gUnknown_0861AD8C + 0x6b1c - - .global gUnknown_085D97C4 -gUnknown_085D97C4: @ 0x085D97C4 - @ PROC_NAME - .short 0x1, 0x0 - .word 0x80df854 - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_806F3F8 - @ PROC_END - .short 0x0, 0x0 - .word 0x0 - - - .global gUnknown_085D97DC -gUnknown_085D97DC: @ 0x085D97DC - .4byte gUnknown_0862A2F0 + 0x20 - .4byte gUnknown_0862A2F0 + 0x11c - .4byte gUnknown_0862A2F0 + 0x21c - .4byte gUnknown_0862A2F0 + 0x320 - .4byte gUnknown_0862A2F0 + 0x418 - .4byte gUnknown_0862A2F0 + 0x524 - .4byte gUnknown_0862A2F0 + 0x630 - .4byte gUnknown_0862A2F0 + 0x750 - .4byte gUnknown_0862A2F0 + 0x874 - .4byte gUnknown_0862A2F0 + 0x95c - .4byte gUnknown_0862A2F0 + 0xa38 - .4byte gUnknown_0862A2F0 + 0xaf8 - .4byte gUnknown_0862A2F0 + 0xbb0 - .4byte gUnknown_0862A2F0 + 0xc58 - .4byte gUnknown_0862A2F0 + 0xd14 - .4byte gUnknown_0862A2F0 + 0xdec - .4byte gUnknown_0862A2F0 + 0xecc - .4byte gUnknown_0862A2F0 + 0xfbc - .4byte gUnknown_0862A2F0 + 0x10b8 - .4byte gUnknown_0862A2F0 + 0x11ac - .4byte gUnknown_0862A2F0 + 0x12a4 - .4byte gUnknown_0862A2F0 + 0x1390 - .4byte gUnknown_0862A2F0 + 0x1474 - .4byte gUnknown_0862A2F0 + 0x154c - .4byte gUnknown_0862A2F0 + 0x161c - .4byte gUnknown_0862A2F0 + 0x16e8 - .4byte gUnknown_0862A2F0 + 0x17b0 - .4byte gUnknown_0862A2F0 + 0x1864 - .4byte gUnknown_0862A2F0 + 0x1918 - .4byte gUnknown_0862A2F0 + 0x19b8 - .4byte gUnknown_0862A2F0 + 0x1a6c - .4byte gUnknown_0862A2F0 + 0x1b28 - .4byte gUnknown_0862A2F0 + 0x1c04 - .4byte gUnknown_0862A2F0 + 0x1cec - .4byte gUnknown_0862A2F0 + 0x1e10 - .4byte gUnknown_0862A2F0 + 0x1f30 - .4byte gUnknown_0862A2F0 + 0x203c - .4byte gUnknown_0862A2F0 + 0x2148 - .4byte gUnknown_0862A2F0 + 0x2244 - .4byte gUnknown_0862A2F0 + 0x2344 - .4byte gUnknown_0862A2F0 + 0x2440 - - .global gUnknown_085D9880 -gUnknown_085D9880: @ 0x085D9880 - .4byte gUnknown_0862688C + 0xb8 - .4byte gUnknown_0862688C + 0xb8 - .4byte gUnknown_0862688C + 0xb8 - .4byte gUnknown_0862688C + 0xc88 - .4byte gUnknown_0862688C + 0xc88 - .4byte gUnknown_0862688C + 0xc88 - .4byte gUnknown_0862688C + 0x1998 - .4byte gUnknown_0862688C + 0x1998 - .4byte gUnknown_0862688C + 0x1998 - .4byte gUnknown_0862688C + 0x1998 - .4byte gUnknown_0862688C + 0x1998 - .4byte gUnknown_0862688C + 0x1998 - .4byte gUnknown_0862688C + 0x2bf4 - .4byte gUnknown_0862688C + 0x2bf4 - .4byte gUnknown_0862688C + 0x2bf4 - .4byte gUnknown_0862688C + 0x2bf4 - .4byte gUnknown_0862688C + 0x2bf4 - .4byte gUnknown_0862688C + 0x2bf4 - .4byte gUnknown_0862688C + 0x3278 - .4byte gUnknown_0862688C + 0x3278 - .4byte gUnknown_0862688C + 0x3278 - .4byte gUnknown_0862688C + 0x3278 - .4byte gUnknown_0862688C + 0x37d4 - .4byte gUnknown_0862688C + 0x37d4 - .4byte gUnknown_0862688C + 0x37d4 - .4byte gUnknown_0862688C + 0x37d4 - .4byte gUnknown_0862688C + 0x37d4 - .4byte gUnknown_0862688C + 0x37d4 - .4byte gUnknown_0862688C + 0x37d4 - .4byte gUnknown_0862688C + 0x1998 - .4byte gUnknown_0862688C + 0x1998 - .4byte gUnknown_0862688C + 0x1998 - .4byte gUnknown_0862688C + 0x1998 - .4byte gUnknown_0862688C + 0x1998 - .4byte gUnknown_0862688C + 0x1998 - .4byte gUnknown_0862688C + 0xc88 - .4byte gUnknown_0862688C + 0xc88 - .4byte gUnknown_0862688C + 0xc88 - .4byte gUnknown_0862688C + 0xb8 - .4byte gUnknown_0862688C + 0xb8 - .4byte gUnknown_0862688C + 0xb8 - - .global gUnknown_085D9924 -gUnknown_085D9924: @ 0x085D9924 - @ PROC_NAME - .short 0x1, 0x0 - .word 0x80df910 - @ PROC_SET_END_CB - .short 0x4, 0x0 - .word sub_806F4B4 - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_806F4C0 - @ PROC_SLEEP - .short 0xe, 0x20 - .word 0x0 - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_806F4F8 - @ PROC_SLEEP - .short 0xe, 0xb - .word 0x0 - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_806F530 - @ PROC_SLEEP - .short 0xe, 0x16 - .word 0x0 - @ PROC_END - .short 0x0, 0x0 - .word 0x0 - - - .global gUnknown_085D996C -gUnknown_085D996C: @ 0x085D996C - @ PROC_NAME - .short 0x1, 0x0 - .word 0x80df924 - @ PROC_SET_END_CB - .short 0x4, 0x0 - .word sub_806F4B4 - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_806F568 - @ PROC_SLEEP - .short 0xe, 0xe - .word 0x0 - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_806F594 - @ PROC_END - .short 0x0, 0x0 - .word 0x0 - - - .global ProcScr_efxopMistyrain -ProcScr_efxopMistyrain: @ 0x085D999C - @ PROC_NAME - .short 0x1, 0x0 - .word 0x80df938 - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_806F5E0 - @ PROC_SLEEP - .short 0xe, 0xaa - .word 0x0 - @ PROC_CALL - .short 0x2, 0x0 - .word sub_806E904 - @ PROC_END - .short 0x0, 0x0 - .word 0x0 - - - .global ProcScr_efxopMyrrh -ProcScr_efxopMyrrh: @ 0x085D99C4 - @ PROC_NAME - .short 0x1, 0x0 - .word 0x80df948 - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_806F668 - @ PROC_SLEEP - .short 0xe, 0x32 - .word 0x0 - @ PROC_CALL - .short 0x2, 0x0 - .word sub_806E904 - @ PROC_END - .short 0x0, 0x0 - .word 0x0 - - - .global gUnknown_085D99EC -gUnknown_085D99EC: @ 0x085D99EC - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_806F6D4 - @ PROC_SLEEP - .short 0xe, 0x18 - .word 0x0 - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_806F6EC - @ PROC_SLEEP - .short 0xe, 0x48 - .word 0x0 - @ PROC_CALL - .short 0x2, 0x0 - .word sub_806E904 - @ PROC_END - .short 0x0, 0x0 - .word 0x0 - - - .global gUnknown_085D9A1C -gUnknown_085D9A1C: @ 0x085D9A1C - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_806F75C - @ PROC_END - .short 0x0, 0x0 - .word 0x0 - - - .global gUnknown_085D9A2C -gUnknown_085D9A2C: @ 0x085D9A2C - .4byte gUnknown_086C978C + 0x28 - .4byte gUnknown_086C978C + 0x620 - .4byte gUnknown_086C978C + 0xc38 - .4byte gUnknown_086C978C + 0x1308 - .4byte gUnknown_086C978C + 0x1a38 - .4byte gUnknown_086C978C + 0x2164 - .4byte gUnknown_086C978C + 0x2958 - .4byte gUnknown_086C978C + 0x3114 - .4byte gUnknown_086C978C + 0x390c - .4byte gUnknown_086C978C + 0x41fc - .4byte gUnknown_086C978C + 0x49d0 - .4byte gUnknown_086C978C + 0x5270 - .4byte gUnknown_086C978C + 0x5ab8 - .4byte gUnknown_086C978C + 0x624c - .4byte gUnknown_086C978C + 0x6adc - .4byte gUnknown_086C978C + 0x7398 - .4byte gUnknown_086C978C + 0x7bc0 - .4byte gUnknown_086C978C + 0x83e0 - .4byte gUnknown_086C978C + 0x8c74 - .4byte gUnknown_086C978C + 0x9458 - .4byte gUnknown_086C978C + 0xb47c - .4byte gUnknown_086C978C + 0xbc8c - .4byte gUnknown_086C978C + 0xc6b8 - .4byte gUnknown_086C978C + 0xd120 - .4byte gUnknown_086C978C + 0xdc18 - .4byte gUnknown_086C978C + 0xe794 - - .global gUnknown_085D9A94 -gUnknown_085D9A94: @ 0x085D9A94 - .4byte gUnknown_086C978C + 0x9f48 - .4byte gUnknown_086C978C + 0xa028 - .4byte gUnknown_086C978C + 0xa104 - .4byte gUnknown_086C978C + 0xa1ec - .4byte gUnknown_086C978C + 0xa2f0 - .4byte gUnknown_086C978C + 0xa3ec - .4byte gUnknown_086C978C + 0xa4f8 - .4byte gUnknown_086C978C + 0xa600 - .4byte gUnknown_086C978C + 0xa708 - .4byte gUnknown_086C978C + 0xa830 - .4byte gUnknown_086C978C + 0xa940 - .4byte gUnknown_086C978C + 0xaa68 - .4byte gUnknown_086C978C + 0xab8c - .4byte gUnknown_086C978C + 0xac9c - .4byte gUnknown_086C978C + 0xadc0 - .4byte gUnknown_086C978C + 0xaee0 - .4byte gUnknown_086C978C + 0xaffc - .4byte gUnknown_086C978C + 0xb110 - .4byte gUnknown_086C978C + 0xb244 - .4byte gUnknown_086C978C + 0xb350 - .4byte Pal_EvilEyeBg2_A + 0xc0 - .4byte Pal_EvilEyeBg2_A + 0x1d0 - .4byte Pal_EvilEyeBg2_A + 0x358 - .4byte Pal_EvilEyeBg2_A + 0x510 - .4byte Pal_EvilEyeBg2_A + 0x6dc - .4byte Pal_EvilEyeBg2_A + 0x8c0 - - .global gUnknown_085D9AFC -gUnknown_085D9AFC: @ 0x085D9AFC - .4byte gUnknown_086C978C + 0x9cc8 - .4byte gUnknown_086C978C + 0x9ce8 - .4byte gUnknown_086C978C + 0x9d08 - .4byte gUnknown_086C978C + 0x9d28 - .4byte gUnknown_086C978C + 0x9d48 - .4byte gUnknown_086C978C + 0x9d68 - .4byte gUnknown_086C978C + 0x9d88 - .4byte gUnknown_086C978C + 0x9da8 - .4byte gUnknown_086C978C + 0x9dc8 - .4byte gUnknown_086C978C + 0x9de8 - .4byte gUnknown_086C978C + 0x9e08 - .4byte gUnknown_086C978C + 0x9e28 - .4byte gUnknown_086C978C + 0x9e48 - .4byte gUnknown_086C978C + 0x9e68 - .4byte gUnknown_086C978C + 0x9e88 - .4byte gUnknown_086C978C + 0x9ea8 - .4byte gUnknown_086C978C + 0x9ec8 - .4byte gUnknown_086C978C + 0x9ee8 - .4byte gUnknown_086C978C + 0x9f08 - .4byte gUnknown_086C978C + 0x9f28 - .4byte Pal_EvilEyeBg2_A - .4byte Pal_EvilEyeBg2_A + 0x20 - .4byte Pal_EvilEyeBg2_A + 0x40 - .4byte Pal_EvilEyeBg2_A + 0x60 - .4byte Pal_EvilEyeBg2_A + 0x80 - .4byte Pal_EvilEyeBg2_A + 0xa0 - - .global gUnknown_085D9B64 -gUnknown_085D9B64: @ 0x085D9B64 - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_806F820 - @ PROC_END - .short 0x0, 0x0 - .word 0x0 - - - .global gUnknown_085D9B74 -gUnknown_085D9B74: @ 0x085D9B74 - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_806F864 - @ PROC_SLEEP - .short 0xe, 0x3e - .word 0x0 - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_806F87C - @ PROC_SLEEP - .short 0xe, 0x8a - .word 0x0 - @ PROC_CALL - .short 0x2, 0x0 - .word sub_806E904 - @ PROC_END - .short 0x0, 0x0 - .word 0x0 - - - .global gUnknown_085D9BA4 -gUnknown_085D9BA4: @ 0x085D9BA4 - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_806F8F0 - @ PROC_END - .short 0x0, 0x0 - .word 0x0 - - - .global gUnknown_085D9BB4 -gUnknown_085D9BB4: @ 0x085D9BB4 - .4byte gUnknown_086BDA5C + 0x120 - .4byte gUnknown_086BDA5C + 0x670 - .4byte gUnknown_086BDA5C + 0xc0c - .4byte gUnknown_086BDA5C + 0x1200 - .4byte gUnknown_086BDA5C + 0x1898 - .4byte gUnknown_086BDA5C + 0x1f54 - .4byte gUnknown_086BDA5C + 0x26b4 - .4byte gUnknown_086BDA5C + 0x2ec8 - .4byte gUnknown_086BDA5C + 0x3740 - .4byte gUnknown_086BDA5C + 0x4074 - .4byte gUnknown_086BDA5C + 0x49dc - .4byte gUnknown_086BDA5C + 0x534c - .4byte gUnknown_086BDA5C + 0x5d00 - .4byte gUnknown_086BDA5C + 0x6698 - .4byte gUnknown_086BDA5C + 0x7058 - .4byte gUnknown_086BDA5C + 0x7970 - .4byte gUnknown_086BDA5C + 0x82c4 - .4byte gUnknown_086BDA5C + 0x8c40 - .4byte gUnknown_086BDA5C + 0x95b4 - - .global gUnknown_085D9C00 -gUnknown_085D9C00: @ 0x085D9C00 - .4byte Pal_StoneBg_086C794C + 0x20 - .4byte Pal_StoneBg_086C794C + 0xe0 - .4byte Pal_StoneBg_086C794C + 0x1ac - .4byte Pal_StoneBg_086C794C + 0x284 - .4byte Pal_StoneBg_086C794C + 0x370 - .4byte Pal_StoneBg_086C794C + 0x474 - .4byte Pal_StoneBg_086C794C + 0x588 - .4byte Pal_StoneBg_086C794C + 0x6b0 - .4byte Pal_StoneBg_086C794C + 0x7ec - .4byte Pal_StoneBg_086C794C + 0x940 - .4byte Pal_StoneBg_086C794C + 0xab8 - .4byte Pal_StoneBg_086C794C + 0xc24 - .4byte Pal_StoneBg_086C794C + 0xd98 - .4byte Pal_StoneBg_086C794C + 0xf14 - .4byte Pal_StoneBg_086C794C + 0x10a0 - .4byte Pal_StoneBg_086C794C + 0x11e4 - .4byte Pal_StoneBg_086C794C + 0x1338 - .4byte Pal_StoneBg_086C794C + 0x149c - .4byte Pal_StoneBg_086C794C + 0x1600 - - .global gUnknown_085D9C4C -gUnknown_085D9C4C: @ 0x085D9C4C - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_806F9D8 - @ PROC_END - .short 0x0, 0x0 - .word 0x0 diff --git a/data/const_data_banimekrdk.s b/data/const_data_banimekrdk.s index 254c96ec1..71762b481 100644 --- a/data/const_data_banimekrdk.s +++ b/data/const_data_banimekrdk.s @@ -1,46 +1,12 @@ .section .rodata - .incbin "baserom.gba", 0xDF62C, 0xDF644 - 0xDF62C + .asciz "ekrDragonQuake" + .align 2, 0 - .global gUnknown_080DF644 -gUnknown_080DF644: @ 0x080DF644 - .incbin "baserom.gba", 0xDF644, 0x64 + .asciz "ekrWhiteINOUT" + .align 2, 0 - .global gUnknown_080DF6A8 -gUnknown_080DF6A8: @ 0x080DF6A8 - .incbin "baserom.gba", 0xDF6A8, 0x1E - - .global gUnknown_080DF6C6 -gUnknown_080DF6C6: @ 0x080DF6C6 - .incbin "baserom.gba", 0xDF6C6, 0x6A - - .global gUnknown_080DF730 -gUnknown_080DF730: @ 0x080DF730 - .incbin "baserom.gba", 0xDF730, 0x18 - - .global gUnknown_080DF748 -gUnknown_080DF748: @ 0x080DF748 - .incbin "baserom.gba", 0xDF748, 0x86 - - .global gUnknown_080DF7CE -gUnknown_080DF7CE: @ 0x080DF7CE - .incbin "baserom.gba", 0xDF7CE, 0x98 - - .global gUnknown_080DF866 -gUnknown_080DF866: @ 0x080DF866 - .incbin "baserom.gba", 0xDF866, 0x32 - - .global gUnknown_080DF898 -gUnknown_080DF898: @ 0x080DF898 - .incbin "baserom.gba", 0xDF898, 0xBC - - .global gUnknown_080DF954 -gUnknown_080DF954: @ 0x080DF954 - .incbin "baserom.gba", 0xDF954, 0x6A - - .global gUnknown_080DF9BE -gUnknown_080DF9BE: @ 0x080DF9BE - .incbin "baserom.gba", 0xDF9BE, 0x17A6 + .incbin "baserom.gba", 0xDFA2C, 0xE1164 - 0xDFA2C .global Pal_080E1164 Pal_080E1164: @ 0x080E1164 diff --git a/data/data_banim.s b/data/data_banim.s index 4904019db..04fca25d3 100644 --- a/data/data_banim.s +++ b/data/data_banim.s @@ -11544,7 +11544,15 @@ gUnknown_085F2DC0: @ 0x085F2DC0 .global gUnknown_085F367C gUnknown_085F367C: @ 0x085F367C - .incbin "baserom.gba", 0x5F367C, 0x42C + .incbin "baserom.gba", 0x5F367C, 0x200 @ 0x5F387C - 0x5F367C + + .global Tsa_085F387C +Tsa_085F387C: @ 0x085F387C + .incbin "baserom.gba", 0x5F387C, 0xCC @ 0x5F3948 - 0x5F387C + + .global Tsa_085F3948 +Tsa_085F3948: @ 0x085F3948 + .incbin "baserom.gba", 0x5F3948, 0x160 @ 0x5F3AA8 - 0x5F3948 .global Img_BoltingSprites Img_BoltingSprites: @ 0x085F3AA8 @@ -12341,7 +12349,55 @@ gUnknown_085F5638: @ 0x085F5638 .global gUnknown_085F6230 gUnknown_085F6230: @ 0x085F6230 - .incbin "baserom.gba", 0x5F6230, 0x1538 + .incbin "baserom.gba", 0x5F6230, 0x20 @ 0x5F6250 - 0x5F6230 + + .global Tsa_085F6250 +Tsa_085F6250: @ 0x085F6250 + .incbin "baserom.gba", 0x5F6250, 0xA8 @ 0x5F62F8 - 0x5F6250 + + .global Tsa_085F62F8 +Tsa_085F62F8: @ 0x085F62F8 + .incbin "baserom.gba", 0x5F62F8, 0xA8 @ 0x5F63A0 - 0x5F62F8 + + .global Tsa_085F63A0 +Tsa_085F63A0: @ 0x085F63A0 + .incbin "baserom.gba", 0x5F63A0, 0xB8 @ 0x5F6458 - 0x5F63A0 + + .global Tsa_085F6458 +Tsa_085F6458: @ 0x085F6458 + .incbin "baserom.gba", 0x5F6458, 0xC8 @ 0x5F6520 - 0x5F6458 + + .global Tsa_085F6520 +Tsa_085F6520: @ 0x085F6520 + .incbin "baserom.gba", 0x5F6520, 0xD0 @ 0x5F65F0 - 0x5F6520 + + .global Tsa_085F65F0 +Tsa_085F65F0: @ 0x085F65F0 + .incbin "baserom.gba", 0x5F65F0, 0x100 @ 0x5F66F0 - 0x5F65F0 + + .global Tsa_085F66F0 +Tsa_085F66F0: @ 0x085F66F0 + .incbin "baserom.gba", 0x5F66F0, 0x108 @ 0x5F67F8 - 0x5F66F0 + + .global Tsa_085F67F8 +Tsa_085F67F8: @ 0x085F67F8 + .incbin "baserom.gba", 0x5F67F8, 0x114 @ 0x5F690C - 0x5F67F8 + + .global Tsa_085F690C +Tsa_085F690C: @ 0x085F690C + .incbin "baserom.gba", 0x5F690C, 0x138 @ 0x5F6A44 - 0x5F690C + + .global Tsa_085F6A44 +Tsa_085F6A44: @ 0x085F6A44 + .incbin "baserom.gba", 0x5F6A44, 0x104 @ 0x5F6B48 - 0x5F6A44 + + .global Tsa_085F6B48 +Tsa_085F6B48: @ 0x085F6B48 + .incbin "baserom.gba", 0x5F6B48, 0xD4 @ 0x5F6C1C - 0x5F6B48 + + .global Tsa_085F6C1C +Tsa_085F6C1C: @ 0x085F6C1C + .incbin "baserom.gba", 0x5F6C1C, 0xB4C @ 0x5F7768 - 0x5F6C1C .global gUnknown_085F7768 gUnknown_085F7768: @ 0x085F7768 diff --git a/include/efxbattle.h b/include/efxbattle.h index ff3de7f4e..0592d934d 100644 --- a/include/efxbattle.h +++ b/include/efxbattle.h @@ -1024,10 +1024,24 @@ extern u16 gUnknown_085F2DC0[]; extern u16 gUnknown_085F367C[]; extern u16 Img_BoltingSprites[]; extern u16 Pal_BoltingSprites[]; +extern u16 Tsa_085F387C[]; +extern u16 Tsa_085F3948[]; extern u32 gUnknown_085F4A24[]; extern u32 gUnknown_085F5550[]; extern u16 gUnknown_085F5638[]; extern u16 gUnknown_085F6230[]; +extern u16 Tsa_085F6250[]; +extern u16 Tsa_085F62F8[]; +extern u16 Tsa_085F63A0[]; +extern u16 Tsa_085F6458[]; +extern u16 Tsa_085F6520[]; +extern u16 Tsa_085F65F0[]; +extern u16 Tsa_085F66F0[]; +extern u16 Tsa_085F67F8[]; +extern u16 Tsa_085F690C[]; +extern u16 Tsa_085F6A44[]; +extern u16 Tsa_085F6B48[]; +extern u16 Tsa_085F6C1C[]; extern u16 gUnknown_085F7768[]; extern u16 gUnknown_085F7D64[]; extern u32 gUnknown_085F80B4[]; @@ -2663,7 +2677,7 @@ void sub_806EAFC(struct Anim * anim, void * src); void sub_806EB2C(struct Anim * anim, u16 * src); void ExecEfxop(struct Anim * anim); -void nullsub_73(void); +void nullsub_73(struct Anim * anim); void NewEfxopFire(struct Anim * anim); void sub_806EB9C(struct ProcEfx * proc); void NewEfxopFireBG(struct Anim * anim, struct ProcEfx * parent); diff --git a/ldscript.txt b/ldscript.txt index 7a2c7f462..164452a8a 100644 --- a/ldscript.txt +++ b/ldscript.txt @@ -519,6 +519,7 @@ SECTIONS . = ALIGN(4); src/banim-efxhit.o(.rodata); . = ALIGN(4); data/const_data_efxhit.o(.rodata); . = ALIGN(4); src/banim-efxskill.o(.rodata); + . = ALIGN(4); src/banim-efxop.o(.rodata); . = ALIGN(4); data/const_data_banimekrdk.o(.rodata); . = ALIGN(4); src/banim-efxutils.o(.rodata); . = ALIGN(4); src/banim-efxsound.o(.rodata); @@ -756,7 +757,7 @@ SECTIONS . = ALIGN(4); data/banim-efxmantbata.o(.data); . = ALIGN(4); data/banim-efxchill.o(.data); . = ALIGN(4); src/banim-efxskill.o(.data); - . = ALIGN(4); data/banim-efxop.o(.data); + . = ALIGN(4); src/banim-efxop.o(.data); . = ALIGN(4); data/data_banim.o(.data); . = ALIGN(4); src/banim-ekrdragon-dracozombie.o(.data); . = ALIGN(4); src/banim-ekrdragon-utils.o(.data); diff --git a/src/banim-efxop.c b/src/banim-efxop.c index 0eac0b0fe..ff5df93df 100644 --- a/src/banim-efxop.c +++ b/src/banim-efxop.c @@ -7,6 +7,7 @@ #include "bmlib.h" #include "banim_data.h" #include "ctc.h" +#include "efxmagic.h" extern ProcPtr gpProcefxopCur; extern ProcPtr gUnknown_0203E1EC; @@ -200,8 +201,22 @@ void sub_806EB2C(struct Anim * anim, u16 * src) return; } -typedef void (*SpellAnimFunc)(struct Anim * anim); -extern SpellAnimFunc gpEfxopFuncLut[]; +// clang-format off + +CONST_DATA SpellAnimFunc gpEfxopFuncLut[] = +{ + nullsub_73, + NewEfxopFire, + NewEfxopThunder, + NewEfxopLive, + NewEfxopLightning, + NewEfxopMistyrain, + NewEfxopMyrrh, + sub_806F6B4, + sub_806F844, +}; + +// clang-format on //! FE8U = 0x0806EB54 void ExecEfxop(struct Anim * anim) @@ -214,12 +229,26 @@ void ExecEfxop(struct Anim * anim) } //! FE8U = 0x0806EB78 -void nullsub_73(void) +void nullsub_73(struct Anim * anim) { return; } -extern struct ProcCmd ProcScr_efxopFire[]; +// clang-format off + +struct ProcCmd CONST_DATA ProcScr_efxopFire[] = +{ + PROC_NAME("efxopFire"), + + PROC_REPEAT(sub_806EB9C), + PROC_SLEEP(50), + + PROC_CALL(sub_806E904), + + PROC_END, +}; + +// clang-format on //! FE8U = 0x0806EB7C void NewEfxopFire(struct Anim * anim) @@ -243,14 +272,55 @@ void sub_806EB9C(struct ProcEfx * proc) return; } -extern struct ProcCmd ProcScr_efxopFireBG[]; +// clang-format off -extern u16 gUnknown_080DF644[]; -extern u16 * gUnknown_085D9494[]; +struct ProcCmd CONST_DATA ProcScr_efxopFireBG[] = +{ + PROC_NAME("efxopFireBG"), + PROC_REPEAT(sub_806EC1C), + PROC_END, +}; + +u16 * CONST_DATA gUnknown_085D9494[] = +{ + Tsa_085F6250, + Tsa_085F62F8, + Tsa_085F63A0, + Tsa_085F6458, + Tsa_085F6520, + Tsa_085F65F0, + Tsa_085F66F0, + Tsa_085F67F8, + Tsa_085F690C, + Tsa_085F6A44, + Tsa_085F6B48, + Tsa_085F6C1C, +}; + +// clang-format on //! FE8U = 0x0806EBBC void NewEfxopFireBG(struct Anim * anim, struct ProcEfx * parent) { + // clang-format off + static const u16 gUnknown_080DF644[] = + { + 0, 3, + 1, 2, + 2, 2, + 3, 2, + 4, 2, + 5, 2, + 6, 2, + 7, 2, + 8, 2, + 9, 3, + 10, 3, + 11, 3, + -1, + }; + // clang-format on + struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); struct ProcEfxBG * proc = Proc_Start(ProcScr_efxopFireBG, parent); @@ -294,12 +364,16 @@ void sub_806EC1C(struct ProcEfxBG * proc) return; } -extern struct ProcCmd ProcScr_efxopFireOBJ[]; +// clang-format off + +struct ProcCmd CONST_DATA ProcScr_efxopFireOBJ[] = +{ + PROC_NAME("efxopFireOBJ"), + PROC_REPEAT(sub_806ECE8), + PROC_END, +}; -extern u32 gUnknown_085F843C[]; -extern u32 gUnknown_085F80B4[]; -extern u16 gUnknown_085F7D64[]; -extern u16 gUnknown_085F7768[]; +// clang-format on //! FE8U = 0x0806EC68 void NewEfxopFireOBJ(struct Anim * anim, struct ProcEfx * parent) @@ -349,7 +423,21 @@ void sub_806ECE8(struct ProcEfxOBJ * proc) return; } -extern struct ProcCmd ProcScr_efxopThunder[]; +// clang-format off + +struct ProcCmd CONST_DATA ProcScr_efxopThunder[] = +{ + PROC_NAME("efxopThunder"), + + PROC_REPEAT(sub_806ED2C), + PROC_SLEEP(50), + + PROC_CALL(sub_806E904), + + PROC_END, +}; + +// clang-format on //! FE8U = 0x0806ED0C void NewEfxopThunder(struct Anim * anim) @@ -374,15 +462,35 @@ void sub_806ED2C(struct ProcEfx * proc) return; } -extern struct ProcCmd ProcScr_efxopThunderBG[]; +// clang-format off + +struct ProcCmd CONST_DATA ProcScr_efxopThunderBG[] = +{ + PROC_NAME("efxopThunderBG"), + PROC_REPEAT(sub_806EDB0), + PROC_END, +}; -extern u16 gUnknown_080DF6A8[]; +u16 * CONST_DATA gUnknown_085D951C[] = +{ + Tsa_085F387C, + Tsa_085F3948, +}; -extern u16 * gUnknown_085D951C[]; +// clang-format on //! FE8U = 0x0806ED54 void sub_806ED54(struct Anim * anim, struct ProcEfx * unused) { + // clang-format off + static const u16 gUnknown_080DF6A8[] = + { + 0, 4, + 1, 40, + -1, + }; + // clang-format on + struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); struct ProcEfxBG * proc = Proc_Start(ProcScr_efxopThunderBG, PROC_TREE_3); @@ -408,7 +516,7 @@ void sub_806ED54(struct Anim * anim, struct ProcEfx * unused) void sub_806EDB0(struct ProcEfxBG * proc) { u16 chr = 0; - struct AnimMagicFxBuffer * magicFx = (void *)sub_806E954(proc->anim); + struct AnimMagicFxBuffer * magicFx = sub_806E954(proc->anim); s16 ret = EfxAdvanceFrameLut((s16 *)&proc->timer, (s16 *)&proc->frame, proc->frame_config); @@ -442,15 +550,46 @@ void sub_806EDB0(struct ProcEfxBG * proc) return; } -extern struct ProcCmd ProcScr_efxopThunderBGCOL[]; +// clang-format off + +struct ProcCmd CONST_DATA ProcScr_efxopThunderBGCOL[] = +{ + PROC_NAME("efxopThunderBGCOL"), + PROC_MARK(PROC_MARK_A), + + PROC_REPEAT(sub_806EE68), -extern u16 gUnknown_080DF6C6[]; + PROC_END, +}; -extern u16 gUnknown_085F367C[]; +// clang-format on //! FE8U = 0x0806EE34 void sub_806EE34(struct Anim * anim, struct ProcEfx * unused) { + // clang-format off + static const u16 gUnknown_080DF6C6[] = + { + 0, 4, + 1, 4, + 2, 2, + 3, 2, + 4, 20, + 5, 2, + 6, 1, + 7, 1, + 8, 1, + 9, 1, + 10, 1, + 11, 1, + 12, 1, + 13, 1, + 14, 1, + 15, 1, + -1, + }; + // clang-format on + struct ProcEfxBGCOL * proc = Proc_Start(ProcScr_efxopThunderBGCOL, PROC_TREE_3); sub_806E948(proc); @@ -488,10 +627,16 @@ void sub_806EE68(struct ProcEfxBGCOL * proc) return; } -extern struct ProcCmd ProcScr_efxopThunderOBJ[]; +// clang-format off -extern u32 gUnknown_085F5550[]; -extern u32 gUnknown_085F4A24[]; +struct ProcCmd CONST_DATA ProcScr_efxopThunderOBJ[] = +{ + PROC_NAME("efxopThunderOBJ"), + PROC_REPEAT(sub_806EF24), + PROC_END, +}; + +// clang-format on //! FE8U = 0x0806EEA8 void sub_806EEA8(struct Anim * anim, struct ProcEfx * unused) @@ -539,7 +684,21 @@ void sub_806EF24(struct ProcEfxOBJ * proc) return; } -extern struct ProcCmd ProcScr_efxopLive[]; +// clang-format off + +struct ProcCmd CONST_DATA ProcScr_efxopLive[] = +{ + PROC_NAME("efxopLive"), + + PROC_REPEAT(sub_806EF64), + PROC_SLEEP(70), + + PROC_CALL(sub_806E904), + + PROC_END, +}; + +// clang-format on //! FE8U = 0x0806EF48 void NewEfxopLive(struct Anim * anim) @@ -569,17 +728,34 @@ void sub_806EF64(struct ProcEfx * proc) return; } -extern struct ProcCmd ProcScr_efxopLiveBG[]; +// clang-format off -extern u16 gUnknown_080DF730[]; +struct ProcCmd CONST_DATA ProcScr_efxopLiveBG[] = +{ + PROC_NAME("efxopLiveBG"), + PROC_REPEAT(sub_806F00C), + PROC_END, +}; -extern u16 * gUnknown_085D959C[]; +// FIXME: Either this or gUnknown_0866F774 may need to change its type +u16 * CONST_DATA gUnknown_085D959C[] = +{ + (u16 *)gUnknown_0866F774, +}; -extern u16 gUnknown_0866F5E4[]; +// clang-format on //! FE8U = 0x0806EFB8 void sub_806EFB8(struct Anim * anim, struct ProcEfx * unused) { + // clang-format off + static const u16 gUnknown_080DF730[] = + { + 0, 62, + -1, + }; + // clang-format on + struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); struct ProcEfxBG * proc = Proc_Start(ProcScr_efxopLiveBG, PROC_TREE_3); @@ -625,14 +801,46 @@ void sub_806F00C(struct ProcEfxBG * proc) return; } -extern struct ProcCmd ProcScr_efxopLiveBGCOL[]; +// clang-format off + +struct ProcCmd CONST_DATA ProcScr_efxopLiveBGCOL[] = +{ + PROC_NAME("efxopLiveBGCOL"), + PROC_MARK(PROC_MARK_A), + + PROC_REPEAT(sub_806F08C), -extern u16 gUnknown_080DF748[]; -extern u16 gUnknown_086700D4[]; + PROC_END, +}; + +// clang-format on //! FE8U = 0x0806F058 void sub_806F058(struct Anim * anim, struct ProcEfx * unused) { + // clang-format off + static const u16 gUnknown_080DF748[] = + { + 0, 3, + 1, 3, + 2, 3, + 3, 4, + 4, 4, + 5, 4, + 6, 4, + 7, 4, + 8, 4, + 9, 4, + 10, 4, + 11, 4, + 12, 4, + 13, 4, + 14, 4, + 15, 5, + -1, + }; + // clang-format on + struct ProcEfxBGCOL * proc = Proc_Start(ProcScr_efxopLiveBGCOL, PROC_TREE_3); sub_806E948(proc); @@ -669,7 +877,19 @@ void sub_806F08C(struct ProcEfxBGCOL * proc) return; } -extern struct ProcCmd ProcScr_efxopLiveALPHA[]; +// clang-format off + +struct ProcCmd CONST_DATA ProcScr_efxopLiveALPHA[] = +{ + PROC_NAME("efxopLiveALPHA"), + + PROC_REPEAT(sub_806F0FC), + PROC_REPEAT(sub_806F118), + + PROC_END, +}; + +// clang-format on //! FE8U = 0x0806F0CC void sub_806F0CC(struct Anim * anim, int timer, int c, int d, struct ProcEfx * unused) @@ -723,7 +943,18 @@ void sub_806F118(struct ProcEfxALPHA * proc) return; } -extern struct ProcCmd ProcScr_efxopLiveOBJ[]; +// clang-format off + +struct ProcCmd CONST_DATA ProcScr_efxopLiveOBJ[] = +{ + PROC_NAME("efxopLiveOBJ"), + + PROC_REPEAT(sub_806F1E8), + + PROC_END, +}; + +// clang-format on //! FE8U = 0x0806F184 void sub_806F184(struct Anim * anim, struct ProcEfx * unused) @@ -765,7 +996,21 @@ void sub_806F1E8(struct ProcEfxOBJ * proc) return; } -extern struct ProcCmd ProcScr_efxopLightning[]; +// clang-format off + +struct ProcCmd CONST_DATA ProcScr_efxopLightning[] = +{ + PROC_NAME("efxopLightning"), + + PROC_REPEAT(sub_806F230), + PROC_SLEEP(50), + + PROC_CALL(sub_806E904), + + PROC_END, +}; + +// clang-format on //! FE8U = 0x0806F210 void NewEfxopLightning(struct Anim * anim) @@ -786,17 +1031,171 @@ void sub_806F230(struct ProcEfx * proc) return; } -extern struct ProcCmd ProcScr_efxopLightningBG[]; - -extern u16 * gUnknown_085D9638[]; -extern u16 * gUnknown_085D96BC[]; -extern u16 * gUnknown_085D9740[]; - -extern u16 gUnknown_080DF7CE[]; +// clang-format off + +struct ProcCmd CONST_DATA ProcScr_efxopLightningBG[] = +{ + PROC_NAME("efxopLightningBG"), + PROC_REPEAT(sub_806F2A0), + PROC_END, +}; + +u16 * CONST_DATA gUnknown_085D9638[] = +{ + Img_0861AD94, + Img_0861AD94, + Img_0861AD94, + Img_0861B65C, + Img_0861B65C, + Img_0861B65C, + Img_0861BDAC, + Img_0861BDAC, + Img_0861BDAC, + Img_0861BDAC, + Img_0861C770, + Img_0861C770, + Img_0861C770, + Img_0861D2C4, + Img_0861D2C4, + Img_0861D2C4, + Img_0861DDCC, + Img_0861DDCC, + Img_0861DDCC, + Img_0861DDCC, + Img_0861DDCC, + Img_0861DDCC, + Img_0861DDCC, + Img_0861DDCC, + Img_0861DDCC, + Img_0861E0E4, + Img_0861E0E4, + Img_0861E0E4, + Img_0861ED94, + Img_0861ED94, + Img_0861ED94, + Img_0861ED94, + Img_0861ED94, +}; + +u16 * CONST_DATA gUnknown_085D96BC[] = +{ + Pal_0861F7B4, + Pal_0861F7B4, + Pal_0861F7B4, + Pal_0861F7B4, + Pal_0861F7B4, + Pal_0861F7B4, + Pal_0861F7B4, + Pal_0861F7B4, + Pal_0861F7B4, + Pal_0861F7B4, + Pal_0861F7B4, + Pal_0861F7B4, + Pal_0861F7B4, + Pal_0861F7B4, + Pal_0861F7B4, + Pal_0861F7B4, + Pal_0861F7B4, + Pal_0861F7B4, + Pal_0861F7B4, + Pal_0861F7B4, + Pal_0861F7B4, + Pal_0861F7B4, + Pal_0861F7B4, + Pal_0861F7B4, + Pal_0861F7B4, + Pal_0861F7D4, + Pal_0861F7D4, + Pal_0861F7D4, + Pal_0861F7D4, + Pal_0861F7D4, + Pal_0861F7D4, + Pal_0861F7D4, + Pal_0861F7D4, +}; + +u16 * CONST_DATA gUnknown_085D9740[] = +{ + Tsa_0861F7F4, + Tsa_0861F918, + Tsa_0861FA38, + Tsa_0861FB44, + Tsa_0861FC40, + Tsa_0861FD28, + Tsa_0861FE0C, + Tsa_0861FEF0, + Tsa_0861FFCC, + Tsa_086200AC, + Tsa_086201A0, + Tsa_08620294, + Tsa_08620398, + Tsa_086204A0, + Tsa_086205B8, + Tsa_086206DC, + Tsa_086207F0, + Tsa_086208A0, + Tsa_086209A8, + Tsa_08620AE4, + Tsa_08620C58, + Tsa_08620DF0, + Tsa_08620F64, + Tsa_08621070, + Tsa_08621144, + Tsa_086211E4, + Tsa_08621304, + Tsa_08621420, + Tsa_08621534, + Tsa_0862162C, + Tsa_08621714, + Tsa_086217E4, + Tsa_086218A8, +}; + +// clang-format on //! FE8U = 0x0806F248 void sub_806F248(struct Anim * anim, struct ProcEfx * parent) { + // clang-format off + static const u16 gUnknown_080DF7CE[] = + { + 25, 2, + 26, 2, + 27, 2, + 28, 2, + 29, 2, + 30, 2, + 31, 2, + 32, 2, + 16, 1, + 17, 1, + 18, 1, + 19, 1, + 20, 1, + 21, 1, + 22, 1, + 23, 1, + 24, 1, + 0, 7, + 1, 1, + 2, 1, + 3, 1, + 4, 1, + 5, 1, + 6, 1, + 7, 1, + 8, 1, + 9, 1, + 10, 1, + 11, 1, + 12, 1, + 13, 1, + 14, 1, + 15, 1, + -1, + }; + // clang-format on + struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); struct ProcEfxBG * proc = Proc_Start(ProcScr_efxopLightningBG, parent); @@ -847,16 +1246,129 @@ void sub_806F2A0(struct ProcEfxBG * proc) return; } -extern struct ProcCmd gUnknown_085D97C4[]; - -extern u16 gUnknown_080DF866[]; - -extern u16 * gUnknown_085D97DC[]; -extern u16 * gUnknown_085D9880[]; +// clang-format off + +struct ProcCmd CONST_DATA gUnknown_085D97C4[] = +{ + PROC_NAME("efxopMistyrainBG"), + PROC_REPEAT(sub_806F3F8), + PROC_END, +}; + +u16 * CONST_DATA gUnknown_085D97DC[] = +{ + Tsa_0862A310, + Tsa_0862A40C, + Tsa_0862A50C, + Tsa_0862A610, + Tsa_0862A708, + Tsa_0862A814, + Tsa_0862A920, + Tsa_0862AA40, + Tsa_0862AB64, + Tsa_0862AC4C, + Tsa_0862AD28, + Tsa_0862ADE8, + Tsa_0862AEA0, + Tsa_0862AF48, + Tsa_0862B004, + Tsa_0862B0DC, + Tsa_0862B1BC, + Tsa_0862B2AC, + Tsa_0862B3A8, + Tsa_0862B49C, + Tsa_0862B594, + Tsa_0862B680, + Tsa_0862B764, + Tsa_0862B83C, + Tsa_0862B90C, + Tsa_0862B9D8, + Tsa_0862BAA0, + Tsa_0862BB54, + Tsa_0862BC08, + Tsa_0862BCA8, + Tsa_0862BD5C, + Tsa_0862BE18, + Tsa_0862BEF4, + Tsa_0862BFDC, + Tsa_0862C100, + Tsa_0862C220, + Tsa_0862C32C, + Tsa_0862C438, + Tsa_0862C534, + Tsa_0862C634, + Tsa_0862C730, +}; + +u16 * CONST_DATA gUnknown_085D9880[] = +{ + Img_08626944, + Img_08626944, + Img_08626944, + Img_08627514, + Img_08627514, + Img_08627514, + Img_08628224, + Img_08628224, + Img_08628224, + Img_08628224, + Img_08628224, + Img_08628224, + Img_08629480, + Img_08629480, + Img_08629480, + Img_08629480, + Img_08629480, + Img_08629480, + Img_08629B04, + Img_08629B04, + Img_08629B04, + Img_08629B04, + Img_0862A060, + Img_0862A060, + Img_0862A060, + Img_0862A060, + Img_0862A060, + Img_0862A060, + Img_0862A060, + Img_08628224, + Img_08628224, + Img_08628224, + Img_08628224, + Img_08628224, + Img_08628224, + Img_08627514, + Img_08627514, + Img_08627514, + Img_08626944, + Img_08626944, + Img_08626944, +}; + +// clang-format on //! FE8U = 0x0806F304 void sub_806F304(struct Anim * anim, struct ProcEfx * parent) { + // clang-format off + static const u16 gUnknown_080DF866[] = + { + 0, 2, + 1, 2, + 2, 2, + 3, 2, + 4, 2, + 5, 2, + 6, 2, + 7, 2, + 8, 2, + 9, 2, + 10, 2, + 11, 2, + -1, + }; + // clang-format on + struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); struct ProcEfxBG * proc = Proc_Start(gUnknown_085D97C4, parent); @@ -892,13 +1404,45 @@ void sub_806F304(struct Anim * anim, struct ProcEfx * parent) return; } -extern struct ProcCmd gUnknown_085D97C4[]; - -extern u16 gUnknown_080DF898[]; - //! FE8U = 0x0806F38C void sub_806F38C(struct Anim * anim, struct ProcEfx * parent) { + // clang-format off + static const u16 gUnknown_080DF898[] = + { + 12, 6, + 13, 2, + 14, 2, + 15, 2, + 16, 2, + 17, 2, + 18, 2, + 19, 2, + 20, 2, + 21, 2, + 22, 2, + 23, 2, + 24, 2, + 25, 2, + 26, 2, + 27, 2, + 28, 2, + 29, 2, + 30, 2, + 31, 2, + 32, 2, + 33, 2, + 34, 2, + 35, 2, + 36, 2, + 37, 2, + 38, 2, + 39, 2, + 40, 2, + -1, + }; + // clang-format on + struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); struct ProcEfxBG * proc = Proc_Start(gUnknown_085D97C4, parent); @@ -951,8 +1495,27 @@ void sub_806F3F8(struct ProcEfxBG * proc) return; } -extern struct ProcCmd gUnknown_085D9924[]; -extern u32 FramScr_Unk5D4F90[]; +// clang-format off + +struct ProcCmd CONST_DATA gUnknown_085D9924[] = +{ + PROC_NAME("efxopMistyrainOBJ"), + + PROC_SET_END_CB(sub_806F4B4), + + PROC_REPEAT(sub_806F4C0), + PROC_SLEEP(32), + + PROC_REPEAT(sub_806F4F8), + PROC_SLEEP(11), + + PROC_REPEAT(sub_806F530), + PROC_SLEEP(22), + + PROC_END, +}; + +// clang-format on //! FE8U = 0x0806F450 void sub_806F450(struct Anim * anim, struct ProcEfx * parent) @@ -968,7 +1531,23 @@ void sub_806F450(struct Anim * anim, struct ProcEfx * parent) return; } -extern struct ProcCmd gUnknown_085D996C[]; +// clang-format off + +struct ProcCmd CONST_DATA gUnknown_085D996C[] = +{ + PROC_NAME("efxopMistyrainOBJ2"), + + PROC_SET_END_CB(sub_806F4B4), + + PROC_REPEAT(sub_806F568), + PROC_SLEEP(14), + + PROC_REPEAT(sub_806F594), + + PROC_END, +}; + +// clang-format on //! FE8U = 0x0806F47C struct ProcEfxOBJ * sub_806F47C(struct Anim * anim, struct ProcEfx * parent) @@ -1094,7 +1673,21 @@ void sub_806F594(struct ProcEfxOBJ * proc) return; } -extern struct ProcCmd ProcScr_efxopMistyrain[]; +// clang-format off + +struct ProcCmd CONST_DATA ProcScr_efxopMistyrain[] = +{ + PROC_NAME("efxopMistyrain"), + + PROC_REPEAT(sub_806F5E0), + PROC_SLEEP(170), + + PROC_CALL(sub_806E904), + + PROC_END, +}; + +// clang-format on //! FE8U = 0x0806F5BC void NewEfxopMistyrain(struct Anim * anim) @@ -1142,7 +1735,21 @@ void sub_806F5E0(struct ProcEfx * proc) return; } -extern struct ProcCmd ProcScr_efxopMyrrh[]; +// clang-format off + +struct ProcCmd CONST_DATA ProcScr_efxopMyrrh[] = +{ + PROC_NAME("efxopMyrrh"), + + PROC_REPEAT(sub_806F668), + PROC_SLEEP(50), + + PROC_CALL(sub_806E904), + + PROC_END, +}; + +// clang-format on //! FE8U = 0x0806F648 void NewEfxopMyrrh(struct Anim * anim) @@ -1171,7 +1778,22 @@ void sub_806F668(ProcPtr proc) return; } -extern struct ProcCmd gUnknown_085D99EC[]; +// clang-format off + +struct ProcCmd CONST_DATA gUnknown_085D99EC[] = +{ + PROC_REPEAT(sub_806F6D4), + PROC_SLEEP(24), + + PROC_REPEAT(sub_806F6EC), + PROC_SLEEP(72), + + PROC_CALL(sub_806E904), + + PROC_END, +}; + +// clang-format on //! FE8U = 0x0806F6B4 void sub_806F6B4(struct Anim * anim) @@ -1200,16 +1822,142 @@ void sub_806F6EC(struct ProcEfx * proc) return; } -extern struct ProcCmd gUnknown_085D9A1C[]; - -extern u16 gUnknown_080DF954[]; -extern u16 * gUnknown_085D9A2C[]; -extern u16 * gUnknown_085D9A94[]; -extern u16 * gUnknown_085D9AFC[]; +// clang-format off + +struct ProcCmd CONST_DATA gUnknown_085D9A1C[] = +{ + PROC_REPEAT(sub_806F75C), + PROC_END, +}; + +u16 * CONST_DATA gUnknown_085D9A2C[] = +{ + Img_086C97B4, + Img_086C9DAC, + Img_086CA3C4, + Img_086CAA94, + Img_086CB1C4, + Img_086CB8F0, + Img_086CC0E4, + Img_086CC8A0, + Img_086CD098, + Img_086CD988, + Img_086CE15C, + Img_086CE9FC, + Img_086CF244, + Img_086CF9D8, + Img_086D0268, + Img_086D0B24, + Img_086D134C, + Img_086D1B6C, + Img_086D2400, + Img_086D2BE4, + Img_086D4C08, + Img_086D5418, + Img_086D5E44, + Img_086D68AC, + Img_086D73A4, + Img_086D7F20, +}; + +u16 * CONST_DATA gUnknown_085D9A94[] = +{ + Tsa_086D36D4, + Tsa_086D37B4, + Tsa_086D3890, + Tsa_086D3978, + Tsa_086D3A7C, + Tsa_086D3B78, + Tsa_086D3C84, + Tsa_086D3D8C, + Tsa_086D3E94, + Tsa_086D3FBC, + Tsa_086D40CC, + Tsa_086D41F4, + Tsa_086D4318, + Tsa_086D4428, + Tsa_086D454C, + Tsa_086D466C, + Tsa_086D4788, + Tsa_086D489C, + Tsa_086D49D0, + Tsa_086D4ADC, + Tsa_086D8B54, + Tsa_086D8C64, + Tsa_086D8DEC, + Tsa_086D8FA4, + Tsa_086D9170, + Tsa_086D9354, +}; + +u16 * CONST_DATA gUnknown_085D9AFC[] = +{ + Pal_086D3454, + Pal_086D3474, + Pal_086D3494, + Pal_086D34B4, + Pal_086D34D4, + Pal_086D34F4, + Pal_086D3514, + Pal_086D3534, + Pal_086D3554, + Pal_086D3574, + Pal_086D3594, + Pal_086D35B4, + Pal_086D35D4, + Pal_086D35F4, + Pal_086D3614, + Pal_086D3634, + Pal_086D3654, + Pal_086D3674, + Pal_086D3694, + Pal_086D36B4, + Pal_EvilEyeBg2_A, + Pal_086D8AB4, + Pal_086D8AD4, + Pal_086D8AF4, + Pal_086D8B14, + Pal_086D8B34, +}; + +// clang-format on //! FE8U = 0x0806F704 void sub_806F704(struct Anim * anim, struct ProcEfx * parent) { + // clang-format off + static const u16 gUnknown_080DF954[] = + { + 0, 3, + 1, 3, + 2, 3, + 3, 3, + 4, 3, + 5, 3, + 6, 3, + 7, 3, + 8, 3, + 9, 3, + 10, 3, + 11, 3, + 12, 3, + 13, 3, + 14, 3, + 15, 3, + 16, 3, + 17, 3, + 18, 3, + 19, 3, + 20, 2, + 21, 2, + 22, 2, + 23, 2, + 24, 2, + 25, 2, + -1, + }; + // clang-format on + struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); struct ProcEfxBG * proc = Proc_Start(gUnknown_085D9A1C, parent); @@ -1258,7 +2006,15 @@ void sub_806F75C(struct ProcEfxBG * proc) return; } -extern struct ProcCmd gUnknown_085D9B64[]; +// clang-format off + +struct ProcCmd CONST_DATA gUnknown_085D9B64[] = +{ + PROC_REPEAT(sub_806F820), + PROC_END, +}; + +// clang-format on //! FE8U = 0x0806F7C0 void sub_806F7C0(struct Anim * anim, struct ProcEfx * parent) @@ -1297,7 +2053,22 @@ void sub_806F820(struct ProcEfxOBJ * proc) return; } -extern struct ProcCmd gUnknown_085D9B74[]; +// clang-format off + +struct ProcCmd CONST_DATA gUnknown_085D9B74[] = +{ + PROC_REPEAT(sub_806F864), + PROC_SLEEP(62), + + PROC_REPEAT(sub_806F87C), + PROC_SLEEP(138), + + PROC_CALL(sub_806E904), + + PROC_END, +}; + +// clang-format on //! FE8U = 0x0806F844 void sub_806F844(struct Anim * anim) @@ -1326,16 +2097,91 @@ void sub_806F87C(struct ProcEfx * proc) return; } -extern struct ProcCmd gUnknown_085D9BA4[]; - -extern u16 gUnknown_080DF9BE[]; - -extern u16 * gUnknown_085D9BB4[]; -extern u16 * gUnknown_085D9C00[]; +// clang-format off + +struct ProcCmd CONST_DATA gUnknown_085D9BA4[] = +{ + PROC_REPEAT(sub_806F8F0), + PROC_END, +}; + +u16 * CONST_DATA gUnknown_085D9BB4[] = +{ + Img_086BDB7C, + Img_086BE0CC, + Img_086BE668, + Img_086BEC5C, + Img_086BF2F4, + Img_086BF9B0, + Img_086C0110, + Img_086C0924, + Img_086C119C, + Img_086C1AD0, + Img_086C2438, + Img_086C2DA8, + Img_086C375C, + Img_086C40F4, + Img_086C4AB4, + Img_086C53CC, + Img_086C5D20, + Img_086C669C, + Img_086C7010, +}; + +u16 * CONST_DATA gUnknown_085D9C00[] = +{ + Tsa_086C796C, + Tsa_086C7A2C, + Tsa_086C7AF8, + Tsa_086C7BD0, + Tsa_086C7CBC, + Tsa_086C7DC0, + Tsa_086C7ED4, + Tsa_086C7FFC, + Tsa_086C8138, + Tsa_086C828C, + Tsa_086C8404, + Tsa_086C8570, + Tsa_086C86E4, + Tsa_086C8860, + Tsa_086C89EC, + Tsa_086C8B30, + Tsa_086C8C84, + Tsa_086C8DE8, + Tsa_086C8F4C, +}; + +// clang-format on //! FE8U = 0x0806F894 void sub_806F894(struct Anim * anim, struct ProcEfx * parent) { + // clang-format off + static const u16 gUnknown_080DF9BE[] = + { + 0, 4, + 1, 4, + 2, 4, + 3, 4, + 4, 4, + 5, 4, + 6, 4, + 7, 4, + 8, 4, + 9, 4, + 10, 4, + 11, 4, + 12, 4, + 13, 4, + 14, 4, + 15, 4, + 16, 4, + 17, 4, + 18, 4, + -1, + }; + // clang-format on + struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); struct ProcEfxBG * proc = Proc_Start(gUnknown_085D9BA4, parent); @@ -1393,7 +2239,15 @@ void sub_806F8F0(struct ProcEfxBG * proc) return; } -extern struct ProcCmd gUnknown_085D9C4C[]; +// clang-format off + +struct ProcCmd CONST_DATA gUnknown_085D9C4C[] = +{ + PROC_REPEAT(sub_806F9D8), + PROC_END, +}; + +// clang-format on //! FE8U = 0x0806F968 void sub_806F968(struct Anim * anim, struct ProcEfx * parent) From 1101a24339dbdfabc38105c311733501af733b03 Mon Sep 17 00:00:00 2001 From: Eebit Date: Fri, 16 Feb 2024 20:24:55 -0500 Subject: [PATCH 3/3] (banim-efxop) Renames --- data/banim-efxmagic-fire.s | 48 +-- data/banim-efxmagic-thunder.s | 8 +- data/data_banim.s | 88 ++--- include/efxbattle.h | 232 ++++++----- include/variables.h | 4 +- src/banim-efxmagic-evileye.c | 4 +- src/banim-efxmagic-fimbulvetr.c | 4 +- src/banim-efxmagic-fire.c | 8 +- src/banim-efxmagic-flux.c | 4 +- src/banim-efxmagic-healstaves.c | 20 +- src/banim-efxmagic-thunder.c | 4 +- src/banim-efxop.c | 660 ++++++++++++++++---------------- src/banim-ekrmainmini.c | 5 +- src/classchg-sel.c | 2 +- src/opinfo.c | 8 +- sym_ewram.txt | 4 +- 16 files changed, 547 insertions(+), 556 deletions(-) diff --git a/data/banim-efxmagic-fire.s b/data/banim-efxmagic-fire.s index c47779db9..e5c4e7bdf 100644 --- a/data/banim-efxmagic-fire.s +++ b/data/banim-efxmagic-fire.s @@ -28,33 +28,33 @@ ProcScr_efxFireBG: @ 0x085D54B8 .global gUnknown_085D54D0 gUnknown_085D54D0: @ 0x085D54D0 - .4byte gUnknown_085F6230 + 0x20 - .4byte gUnknown_085F6230 + 0xc8 - .4byte gUnknown_085F6230 + 0x170 - .4byte gUnknown_085F6230 + 0x228 - .4byte gUnknown_085F6230 + 0x2f0 - .4byte gUnknown_085F6230 + 0x3c0 - .4byte gUnknown_085F6230 + 0x4c0 - .4byte gUnknown_085F6230 + 0x5c8 - .4byte gUnknown_085F6230 + 0x6dc - .4byte gUnknown_085F6230 + 0x814 - .4byte gUnknown_085F6230 + 0x918 - .4byte gUnknown_085F6230 + 0x9ec + .4byte Pal_FireSpellBg + 0x20 + .4byte Pal_FireSpellBg + 0xc8 + .4byte Pal_FireSpellBg + 0x170 + .4byte Pal_FireSpellBg + 0x228 + .4byte Pal_FireSpellBg + 0x2f0 + .4byte Pal_FireSpellBg + 0x3c0 + .4byte Pal_FireSpellBg + 0x4c0 + .4byte Pal_FireSpellBg + 0x5c8 + .4byte Pal_FireSpellBg + 0x6dc + .4byte Pal_FireSpellBg + 0x814 + .4byte Pal_FireSpellBg + 0x918 + .4byte Pal_FireSpellBg + 0x9ec .global gUnknown_085D5500 gUnknown_085D5500: @ 0x085D5500 - .4byte gUnknown_085F6230 + 0xaac - .4byte gUnknown_085F6230 + 0xb54 - .4byte gUnknown_085F6230 + 0xbfc - .4byte gUnknown_085F6230 + 0xcb4 - .4byte gUnknown_085F6230 + 0xd7c - .4byte gUnknown_085F6230 + 0xe4c - .4byte gUnknown_085F6230 + 0xf4c - .4byte gUnknown_085F6230 + 0x1054 - .4byte gUnknown_085F6230 + 0x1168 - .4byte gUnknown_085F6230 + 0x12a0 - .4byte gUnknown_085F6230 + 0x13a4 - .4byte gUnknown_085F6230 + 0x1478 + .4byte Pal_FireSpellBg + 0xaac + .4byte Pal_FireSpellBg + 0xb54 + .4byte Pal_FireSpellBg + 0xbfc + .4byte Pal_FireSpellBg + 0xcb4 + .4byte Pal_FireSpellBg + 0xd7c + .4byte Pal_FireSpellBg + 0xe4c + .4byte Pal_FireSpellBg + 0xf4c + .4byte Pal_FireSpellBg + 0x1054 + .4byte Pal_FireSpellBg + 0x1168 + .4byte Pal_FireSpellBg + 0x12a0 + .4byte Pal_FireSpellBg + 0x13a4 + .4byte Pal_FireSpellBg + 0x1478 .global ProcScr_efxFireOBJ ProcScr_efxFireOBJ: @ 0x085D5530 diff --git a/data/banim-efxmagic-thunder.s b/data/banim-efxmagic-thunder.s index 8e7ba0808..b2d6ad391 100644 --- a/data/banim-efxmagic-thunder.s +++ b/data/banim-efxmagic-thunder.s @@ -28,13 +28,13 @@ ProcScr_efxThunderBG: @ 0x085D5440 .global gUnknown_085D5458 gUnknown_085D5458: @ 0x085D5458 - .4byte gUnknown_085F367C + 0x200 - .4byte gUnknown_085F367C + 0x2cc + .4byte Pal_ThunderSpellBg + 0x200 + .4byte Pal_ThunderSpellBg + 0x2cc .global gUnknown_085D5460 gUnknown_085D5460: @ 0x085D5460 - .4byte gUnknown_085F367C + 0x200 - .4byte gUnknown_085F367C + 0x2cc + .4byte Pal_ThunderSpellBg + 0x200 + .4byte Pal_ThunderSpellBg + 0x2cc .global ProcScr_efxThunderBGCOL ProcScr_efxThunderBGCOL: @ 0x085D5468 diff --git a/data/data_banim.s b/data/data_banim.s index 04fca25d3..821b25bc3 100644 --- a/data/data_banim.s +++ b/data/data_banim.s @@ -11538,12 +11538,12 @@ gUnknown_085F2D44: @ 0x085F2D44 gUnknown_085F2DAC: @ 0x085F2DAC .incbin "baserom.gba", 0x5F2DAC, 0x14 - .global gUnknown_085F2DC0 -gUnknown_085F2DC0: @ 0x085F2DC0 + .global Img_ThunderSpellBg +Img_ThunderSpellBg: @ 0x085F2DC0 .incbin "baserom.gba", 0x5F2DC0, 0x8BC - .global gUnknown_085F367C -gUnknown_085F367C: @ 0x085F367C + .global Pal_ThunderSpellBg +Pal_ThunderSpellBg: @ 0x085F367C .incbin "baserom.gba", 0x5F367C, 0x200 @ 0x5F387C - 0x5F367C .global Tsa_085F387C @@ -12343,12 +12343,12 @@ gUnknown_085F5550: @ 0x085F5550 .4byte gUnknown_085F4A24 + 0xac1 .4byte 0x80000000 - .global gUnknown_085F5638 -gUnknown_085F5638: @ 0x085F5638 + .global Img_FireSpellBg +Img_FireSpellBg: @ 0x085F5638 .incbin "baserom.gba", 0x5F5638, 0xBF8 - .global gUnknown_085F6230 -gUnknown_085F6230: @ 0x085F6230 + .global Pal_FireSpellBg +Pal_FireSpellBg: @ 0x085F6230 .incbin "baserom.gba", 0x5F6230, 0x20 @ 0x5F6250 - 0x5F6230 .global Tsa_085F6250 @@ -12399,42 +12399,42 @@ Tsa_085F6B48: @ 0x085F6B48 Tsa_085F6C1C: @ 0x085F6C1C .incbin "baserom.gba", 0x5F6C1C, 0xB4C @ 0x5F7768 - 0x5F6C1C - .global gUnknown_085F7768 -gUnknown_085F7768: @ 0x085F7768 + .global Img_FireSpellSprites +Img_FireSpellSprites: @ 0x085F7768 .incbin "baserom.gba", 0x5F7768, 0x5FC - .global gUnknown_085F7D64 -gUnknown_085F7D64: @ 0x085F7D64 + .global Pal_FireSpellSprites +Pal_FireSpellSprites: @ 0x085F7D64 .incbin "baserom.gba", 0x5F7D64, 0x350 .global gUnknown_085F80B4 gUnknown_085F80B4: @ 0x085F80B4 @ Replacing .incbin "baserom.gba", 0x5F80B4, 0x2C .4byte 0x685f7f4d - .4byte gUnknown_085F7D64 + 0x23 - .4byte gUnknown_085F7D64 + 0x3a - .4byte gUnknown_085F7D64 + 0x5e + .4byte Pal_FireSpellSprites + 0x23 + .4byte Pal_FireSpellSprites + 0x3a + .4byte Pal_FireSpellSprites + 0x5e .4byte 0x285f7de6 - .4byte gUnknown_085F7D64 + 0xa7 - .4byte gUnknown_085F7D64 + 0xca - .4byte gUnknown_085F7D64 + 0x11e - .4byte gUnknown_085F7D64 + 0x17e - .4byte gUnknown_085F7D64 + 0x1d2 + .4byte Pal_FireSpellSprites + 0xa7 + .4byte Pal_FireSpellSprites + 0xca + .4byte Pal_FireSpellSprites + 0x11e + .4byte Pal_FireSpellSprites + 0x17e + .4byte Pal_FireSpellSprites + 0x1d2 .4byte 0x80000000 .global gUnknown_085F80E0 gUnknown_085F80E0: @ 0x085F80E0 @ Replacing .incbin "baserom.gba", 0x5F80E0, 0x35C .4byte 0x685f7f4d - .4byte gUnknown_085F7D64 + 0x23 - .4byte gUnknown_085F7D64 + 0x3a - .4byte gUnknown_085F7D64 + 0x5e + .4byte Pal_FireSpellSprites + 0x23 + .4byte Pal_FireSpellSprites + 0x3a + .4byte Pal_FireSpellSprites + 0x5e .4byte 0x285f7de6 - .4byte gUnknown_085F7D64 + 0xa7 - .4byte gUnknown_085F7D64 + 0x202 - .4byte gUnknown_085F7D64 + 0x256 - .4byte gUnknown_085F7D64 + 0x2b6 - .4byte gUnknown_085F7D64 + 0x30a + .4byte Pal_FireSpellSprites + 0xa7 + .4byte Pal_FireSpellSprites + 0x202 + .4byte Pal_FireSpellSprites + 0x256 + .4byte Pal_FireSpellSprites + 0x2b6 + .4byte Pal_FireSpellSprites + 0x30a .4byte 0x80000000 .4byte 0x50000000 .4byte 0xfff80000 @@ -24586,12 +24586,12 @@ Img_08629B04: @ 0x08629B04 Img_0862A060: @ 0x0862A060 .incbin "baserom.gba", 0x62A060, 0x270 @ 0x62A2D0 - 0x62A060 - .global gUnknown_0862A2D0 -gUnknown_0862A2D0: @ 0x0862A2D0 + .global Pal_0862A2D0 +Pal_0862A2D0: @ 0x0862A2D0 .incbin "baserom.gba", 0x62A2D0, 0x20 - .global gUnknown_0862A2F0 -gUnknown_0862A2F0: @ 0x0862A2F0 + .global Pal_0862A2F0 +Pal_0862A2F0: @ 0x0862A2F0 .incbin "baserom.gba", 0x62A2F0, 0x20 @ 0x62A310 - 0x62A2F0 .global Tsa_0862A310 @@ -26362,24 +26362,24 @@ gUnknown_0866F58C: @ 0x0866F58C .4byte 0x84000013 .4byte 0x80000000 - .global gUnknown_0866F5E4 -gUnknown_0866F5E4: @ 0x0866F5E4 + .global Img_HealSpellBg +Img_HealSpellBg: @ 0x0866F5E4 .incbin "baserom.gba", 0x66F5E4, 0x190 .global gUnknown_0866F774 gUnknown_0866F774: @ 0x0866F774 .incbin "baserom.gba", 0x66F774, 0x960 - .global gUnknown_086700D4 -gUnknown_086700D4: @ 0x086700D4 + .global Pal_HealSpellBg +Pal_HealSpellBg: @ 0x086700D4 .incbin "baserom.gba", 0x6700D4, 0x200 - .global gUnknown_086702D4 -gUnknown_086702D4: @ 0x086702D4 + .global Img_HealSprites_Sparkles +Img_HealSprites_Sparkles: @ 0x086702D4 .incbin "baserom.gba", 0x6702D4, 0x254 - .global Pal_FimbulvetrSprites_Snow -Pal_FimbulvetrSprites_Snow: @ 0x08670528 + .global Pal_HealSprites_Sparkles +Pal_HealSprites_Sparkles: @ 0x08670528 .incbin "baserom.gba", 0x670528, 0x20 .global gUnknown_08670548 @@ -30923,12 +30923,12 @@ Tsa_086C8DE8: @ 0x086C8DE8 Tsa_086C8F4C: @ 0x086C8F4C .incbin "baserom.gba", 0x6C8F4C, 0x158 @ 0x6C90A4 - 0x6C8F4C - .global gUnknown_086C90A4 -gUnknown_086C90A4: @ 0x086C90A4 + .global Img_086C90A4 +Img_086C90A4: @ 0x086C90A4 .incbin "baserom.gba", 0x6C90A4, 0x358 - .global gUnknown_086C93FC -gUnknown_086C93FC: @ 0x086C93FC + .global Pal_086C93FC +Pal_086C93FC: @ 0x086C93FC .incbin "baserom.gba", 0x6C93FC, 0x1C4 .global gUnknown_086C95C0 diff --git a/include/efxbattle.h b/include/efxbattle.h index 0592d934d..c27172a36 100644 --- a/include/efxbattle.h +++ b/include/efxbattle.h @@ -691,14 +691,14 @@ extern u16 *TsaLut_EfxSkill[]; extern u16 *ImgLut_EfxSkill[]; extern u16 *PalLut_EfxSkill[]; extern struct ProcCmd ProcScr_efxSkillCommonBG[]; -// extern ??? gpEfxopFuncLut +// extern ??? gClassReelSpellAnimFuncLut // extern ??? ProcScr_efxopFire // extern ??? ProcScr_efxopFireBG -// extern ??? gUnknown_085D9494 +// extern ??? TsaArray_Fire_ClassReel // extern ??? ProcScr_efxopFireOBJ // extern ??? ProcScr_efxopThunder // extern ??? ProcScr_efxopThunderBG -// extern ??? gUnknown_085D951C +// extern ??? TsaArray_Thunder_ClassReel // extern ??? ProcScr_efxopThunderBGCOL // extern ??? ProcScr_efxopThunderOBJ // extern ??? ProcScr_efxopLive @@ -709,27 +709,17 @@ extern struct ProcCmd ProcScr_efxSkillCommonBG[]; // extern ??? ProcScr_efxopLiveOBJ // extern ??? ProcScr_efxopLightning // extern ??? ProcScr_efxopLightningBG -// extern ??? gUnknown_085D9638 -// extern ??? gUnknown_085D96BC -// extern ??? gUnknown_085D9740 -// extern ??? gUnknown_085D97C4 -// extern ??? gUnknown_085D97DC -// extern ??? gUnknown_085D9880 -// extern ??? gUnknown_085D9924 -// extern ??? gUnknown_085D996C +// extern ??? ImgArray_Light_ClassReel +// extern ??? PalArray_Light_ClassReel +// extern ??? TsaArray_Light_ClassReel +// extern ??? ProcScr_efxopMistyrainBG +// extern ??? TsaArray_Flux_ClassReel +// extern ??? ImgArray_Flux_ClassReel +// extern ??? ProcScr_efxopMistyrainOBJ +// extern ??? ProcScr_efxopMistyrainOBJ2 // extern ??? ProcScr_efxopMistyrain // extern ??? ProcScr_efxopMyrrh -// extern ??? gUnknown_080DF644 -// extern ??? gUnknown_080DF6A8 -// extern ??? gUnknown_080DF6C6 -// extern ??? gUnknown_080DF730 -// extern ??? gUnknown_080DF748 -// extern ??? gUnknown_080DF7CE -// extern ??? gUnknown_080DF866 -// extern ??? gUnknown_080DF898 -// extern ??? gUnknown_080DF954 -// extern ??? gUnknown_080DF9BE extern u16 Pal_080E1164[]; extern const u16 gBarfxTileConf1[]; extern const u16 gBarfxTileConf2[]; @@ -871,17 +861,17 @@ extern u32 AnimScr_EkrBaseKaiten7[]; extern u32 AnimScr_EkrBaseKaiten6[]; extern u32 AnimScr_EkrBaseKaiten2[]; -// extern ??? gUnknown_085D99EC -// extern ??? gUnknown_085D9A1C -// extern ??? gUnknown_085D9A2C -// extern ??? gUnknown_085D9A94 -// extern ??? gUnknown_085D9AFC -// extern ??? gUnknown_085D9B64 -// extern ??? gUnknown_085D9B74 -// extern ??? gUnknown_085D9BA4 -// extern ??? gUnknown_085D9BB4 -// extern ??? gUnknown_085D9C00 -// extern ??? gUnknown_085D9C4C +// extern ??? ProcScr_efxopEvilEye +// extern ??? ProcScr_efxopEvilEyeBG +// extern ??? ImgArray_EvilEye_ClassReel +// extern ??? TsaArray_EvilEye_ClassReel +// extern ??? PalArray_EvilEye_ClassReel +// extern ??? ProcScr_efxopEvilEyeOBJ +// extern ??? ProcScr_efxopStone +// extern ??? ProcScr_efxopStoneBG +// extern ??? ImgArray_Stone_ClassReel +// extern ??? TsaArray_Stone_ClassReel +// extern ??? ProcScr_efxopStoneOBJ extern u16 Img_TeonoOBJ[]; extern u16 Pal_TeonoOBJ[]; extern u32 AnimScr_TeonoObjCloseRight[]; @@ -1020,16 +1010,16 @@ extern u32 gUnknown_085F29C0[]; extern u32 gUnknown_085F2C3C[]; extern u32 gUnknown_085F2D44[]; extern u32 gUnknown_085F2DAC[]; -extern u16 gUnknown_085F2DC0[]; -extern u16 gUnknown_085F367C[]; +extern u16 Img_ThunderSpellBg[]; +extern u16 Pal_ThunderSpellBg[]; extern u16 Img_BoltingSprites[]; extern u16 Pal_BoltingSprites[]; extern u16 Tsa_085F387C[]; extern u16 Tsa_085F3948[]; extern u32 gUnknown_085F4A24[]; extern u32 gUnknown_085F5550[]; -extern u16 gUnknown_085F5638[]; -extern u16 gUnknown_085F6230[]; +extern u16 Img_FireSpellBg[]; +extern u16 Pal_FireSpellBg[]; extern u16 Tsa_085F6250[]; extern u16 Tsa_085F62F8[]; extern u16 Tsa_085F63A0[]; @@ -1042,8 +1032,8 @@ extern u16 Tsa_085F690C[]; extern u16 Tsa_085F6A44[]; extern u16 Tsa_085F6B48[]; extern u16 Tsa_085F6C1C[]; -extern u16 gUnknown_085F7768[]; -extern u16 gUnknown_085F7D64[]; +extern u16 Img_FireSpellSprites[]; +extern u16 Pal_FireSpellSprites[]; extern u32 gUnknown_085F80B4[]; extern u32 gUnknown_085F80E0[]; extern u32 gUnknown_085F843C[]; @@ -1172,8 +1162,8 @@ extern u16 Img_08628224[]; extern u16 Img_08629480[]; extern u16 Img_08629B04[]; extern u16 Img_0862A060[]; -extern u16 gUnknown_0862A2D0[]; -extern u16 gUnknown_0862A2F0[]; +extern u16 Pal_0862A2D0[]; +extern u16 Pal_0862A2F0[]; extern u16 Tsa_0862A310[]; extern u16 Tsa_0862A40C[]; extern u16 Tsa_0862A50C[]; @@ -1569,11 +1559,11 @@ extern u16 Tsa_0866EC80[]; extern u16 Img_PurgeSprites[]; extern u16 Pal_PurgeSprites[]; extern u32 gUnknown_0866F58C[]; -extern u16 gUnknown_0866F5E4[]; +extern u16 Img_HealSpellBg[]; extern u16 * gUnknown_0866F774[]; -extern u16 gUnknown_086700D4[]; -extern u16 gUnknown_086702D4[]; -extern u16 Pal_FimbulvetrSprites_Snow[]; +extern u16 Pal_HealSpellBg[]; +extern u16 Img_HealSprites_Sparkles[]; +extern u16 Pal_HealSprites_Sparkles[]; extern u16 gUnknown_08670548[]; extern u16 * gUnknown_08670D40[]; extern u16 * gUnknown_086716A0[]; @@ -1922,8 +1912,8 @@ extern u16 Tsa_086C8F4C[]; extern u16 Pal_StoneBg[]; extern u16 Pal_StoneBg_086C792C[]; extern u16 Pal_StoneBg_086C794C[]; -extern u16 gUnknown_086C90A4[]; -extern u16 gUnknown_086C93FC[]; +extern u16 Img_086C90A4[]; +extern u16 Pal_086C93FC[]; extern u32 gUnknown_086C95C0[]; extern u32 gUnknown_086C978C[]; extern u16 Img_086C97B4[]; @@ -2661,78 +2651,78 @@ struct AnimMagicFxBuffer /* 24 */ void (*resetCallback)(void); }; -void sub_806E8F0(void); -void sub_806E904(void); -void sub_806E920(void); -void SetGlbProcefxopCur(ProcPtr proc); -void sub_806E948(ProcPtr proc); -struct AnimMagicFxBuffer * sub_806E954(struct Anim * anim); -void sub_806E95C(struct Anim * anim, struct AnimMagicFxBuffer * magicFx); -void sub_806E9B4(struct Anim * anim); -struct Anim * sub_806E9E4(struct Anim * anim, u16 scrIdx, void * scrA, void * scrB); -void sub_806EA38(struct Anim * anim, u16 notFlipped, void * src, u16 isCompressed); -void sub_806EAA4(struct Anim * anim, void * src); -void sub_806EAD4(struct Anim * anim, u16 * src); -void sub_806EAFC(struct Anim * anim, void * src); -void sub_806EB2C(struct Anim * anim, u16 * src); - -void ExecEfxop(struct Anim * anim); -void nullsub_73(struct Anim * anim); -void NewEfxopFire(struct Anim * anim); -void sub_806EB9C(struct ProcEfx * proc); -void NewEfxopFireBG(struct Anim * anim, struct ProcEfx * parent); -void sub_806EC1C(struct ProcEfxBG * proc); -void NewEfxopFireOBJ(struct Anim * anim, struct ProcEfx * parent); -void sub_806ECE8(struct ProcEfxOBJ * proc); -void NewEfxopThunder(struct Anim * anim); -void sub_806ED2C(struct ProcEfx * proc); -void sub_806ED54(struct Anim * anim, struct ProcEfx * unused); -void sub_806EDB0(struct ProcEfxBG * proc); -void sub_806EE34(struct Anim * anim, struct ProcEfx * unused); -void sub_806EE68(struct ProcEfxBGCOL * proc); -void sub_806EEA8(struct Anim * anim, struct ProcEfx * unused); -void sub_806EF24(struct ProcEfxOBJ * proc); -void NewEfxopLive(struct Anim * anim); -void sub_806EF64(struct ProcEfx * proc); -void sub_806EFB8(struct Anim * anim, struct ProcEfx * unused); -void sub_806F00C(struct ProcEfxBG * proc); -void sub_806F058(struct Anim * anim, struct ProcEfx * unused); -void sub_806F08C(struct ProcEfxBGCOL * proc); -void sub_806F0CC(struct Anim * anim, int timer, int c, int d, struct ProcEfx * unused); -void sub_806F0FC(struct ProcEfxALPHA * proc); -void sub_806F118(struct ProcEfxALPHA * proc); -void sub_806F184(struct Anim * anim, struct ProcEfx * unused); -void sub_806F1E8(struct ProcEfxOBJ * proc); -void NewEfxopLightning(struct Anim * anim); -void sub_806F230(struct ProcEfx * proc); -void sub_806F248(struct Anim * anim, struct ProcEfx * parent); -void sub_806F2A0(struct ProcEfxBG * proc); -void sub_806F304(struct Anim * anim, struct ProcEfx * parent); -void sub_806F38C(struct Anim * anim, struct ProcEfx * parent); -void sub_806F3F8(struct ProcEfxBG * proc); -void sub_806F450(struct Anim * anim, struct ProcEfx * parent); -struct ProcEfxOBJ * sub_806F47C(struct Anim * anim, struct ProcEfx * parent); -void sub_806F4B4(struct ProcEfxOBJ * proc); -void sub_806F4C0(struct ProcEfxOBJ * proc); -void sub_806F4F8(struct ProcEfxOBJ * proc); -void sub_806F530(struct ProcEfxOBJ * proc); -void sub_806F568(struct ProcEfxOBJ * proc); -void sub_806F594(struct ProcEfxOBJ * proc); -void NewEfxopMistyrain(struct Anim * anim); -void sub_806F5E0(struct ProcEfx * proc); -void NewEfxopMyrrh(struct Anim * anim); -void sub_806F668(ProcPtr proc); -void sub_806F6B4(struct Anim * anim); -void sub_806F6D4(struct ProcEfx * proc); -void sub_806F6EC(struct ProcEfx * proc); -void sub_806F704(struct Anim * anim, struct ProcEfx * parent); -void sub_806F75C(struct ProcEfxBG * proc); -void sub_806F7C0(struct Anim * anim, struct ProcEfx * parent); -void sub_806F820(struct ProcEfxOBJ * proc); -void sub_806F844(struct Anim * anim); -void sub_806F864(struct ProcEfx * proc); -void sub_806F87C(struct ProcEfx * proc); -void sub_806F894(struct Anim * anim, struct ProcEfx * parent); -void sub_806F8F0(struct ProcEfxBG * proc); -void sub_806F968(struct Anim * anim, struct ProcEfx * parent); -void sub_806F9D8(struct ProcEfxOBJ * proc); +void ResetClassReelSpell(void); +void EndActiveClassReelSpell(void); +void EndActiveClassReelBgColorProc(void); +void SetActiveClassReelSpell(ProcPtr proc); +void SetActiveCRSpellBgColorProc(ProcPtr proc); +struct AnimMagicFxBuffer * GetMagicEffectBufferFor(struct Anim * anim); +void SetCRSpellBgPosition(struct Anim * anim, struct AnimMagicFxBuffer * magicFx); +void ClearCRSpellBgTmBuf(struct Anim * anim); +struct Anim * CRSpellCreateFrontAnim(struct Anim * anim, u16 scrIdx, void * scrA, void * scrB); +void CRSpell_WriteBgMap(struct Anim * anim, u16 notFlipped, void * src, u16 isCompressed); +void CRSpell_RegisterBgGfx(struct Anim * anim, void * src); +void CRSpell_RegisterBgPal(struct Anim * anim, u16 * src); +void CRSpell_RegisterObjGfx(struct Anim * anim, void * src); +void CRSpell_RegisterObjPal(struct Anim * anim, u16 * src); + +void StartClassReelSpellAnim(struct Anim * anim); +void StartClassReelSpellAnimDummy(struct Anim * anim); +void StartClassReelSpellAnimFire(struct Anim * anim); +void efxopFire_Loop_Main(struct ProcEfx * proc); +void StartCRSubSpell_efxopFireBG(struct Anim * anim, struct ProcEfx * parent); +void efxopFireBG_Loop(struct ProcEfxBG * proc); +void StartCRSubSpell_efxopFireOBJ(struct Anim * anim, struct ProcEfx * parent); +void efxopFireOBJ_Loop(struct ProcEfxOBJ * proc); +void StartClassReelSpellAnimThunder(struct Anim * anim); +void efxopThunder_Loop_Main(struct ProcEfx * proc); +void StartCRSubSpell_efxopThunderBG(struct Anim * anim, struct ProcEfx * unused); +void efxopThunderBG_Loop(struct ProcEfxBG * proc); +void StartCRSubSpell_efxopThunderBGCOL(struct Anim * anim, struct ProcEfx * unused); +void efxopThunderBGCOL_Loop(struct ProcEfxBGCOL * proc); +void StartCRSubSpell_efxopThunderOBJ(struct Anim * anim, struct ProcEfx * unused); +void efxopThunderOBJ_Loop(struct ProcEfxOBJ * proc); +void StartClassReelSpellAnimHeal(struct Anim * anim); +void efxopLive_Loop_Main(struct ProcEfx * proc); +void StartCRSubSpell_efxopLiveBG(struct Anim * anim, struct ProcEfx * unused); +void efxopLiveBG_Loop(struct ProcEfxBG * proc); +void StartCRSubSpell_efxopLiveBGCOL(struct Anim * anim, struct ProcEfx * unused); +void efxopLiveBGCOL_Loop(struct ProcEfxBGCOL * proc); +void StartCRSubSpell_efxopLiveALPHA(struct Anim * anim, int timer, int c, int d, struct ProcEfx * unused); +void efxopLiveALPHA_Loop_A(struct ProcEfxALPHA * proc); +void efxopLiveALPHA_Loop_B(struct ProcEfxALPHA * proc); +void StartCRSubSpell_efxopLiveOBJ(struct Anim * anim, struct ProcEfx * unused); +void efxopLiveOBJ_Loop(struct ProcEfxOBJ * proc); +void StartClassReelSpellAnimLight(struct Anim * anim); +void efxopLightning_Loop_Main(struct ProcEfx * proc); +void StartCRSubSpell_efxopLightningBG(struct Anim * anim, struct ProcEfx * parent); +void efxopLightningBG_Loop(struct ProcEfxBG * proc); +void StartCRSubSpell_efxopMistyrainBG(struct Anim * anim, struct ProcEfx * parent); +void StartCRSubSpell_efxopMistyrainBG_2(struct Anim * anim, struct ProcEfx * parent); +void efxopMistyrainBG_Loop(struct ProcEfxBG * proc); +void StartCRSubSpell_efxopMistyrainOBJ(struct Anim * anim, struct ProcEfx * parent); +struct ProcEfxOBJ * StartCRSubSpell_efxopMistyrainOBJ2(struct Anim * anim, struct ProcEfx * parent); +void efxopMistyrainOBJ_OnEnd(struct ProcEfxOBJ * proc); +void efxopMistyrainOBJ_Loop_A(struct ProcEfxOBJ * proc); +void efxopMistyrainOBJ_Loop_B(struct ProcEfxOBJ * proc); +void efxopMistyrainOBJ_Loop_C(struct ProcEfxOBJ * proc); +void efxopMistyrainOBJ2_Loop_A(struct ProcEfxOBJ * proc); +void efxopMistyrainOBJ2_Loop_B(struct ProcEfxOBJ * proc); +void StartClassReelSpellAnimFlux(struct Anim * anim); +void efxopMistyrain_Loop_Main(struct ProcEfx * proc); +void StartClassReelSpellAnimMyrrh(struct Anim * anim); +void efxopMyrrh_Loop_Main(ProcPtr proc); +void StartClassReelSpellAnimEvilEye(struct Anim * anim); +void efxopEvilEye_Loop_A(struct ProcEfx * proc); +void efxopEvilEye_Loop_B(struct ProcEfx * proc); +void StartCRSubSpell_efxopEvilEyeBG(struct Anim * anim, struct ProcEfx * parent); +void efxopEvilEyeBG_Loop(struct ProcEfxBG * proc); +void StartCRSubSpell_efxopEvilEyeOBJ(struct Anim * anim, struct ProcEfx * parent); +void efxopEvilEyeOBJ_Loop(struct ProcEfxOBJ * proc); +void StartClassReelSpellAnimStone(struct Anim * anim); +void efxopStone_Loop_A(struct ProcEfx * proc); +void efxopStone_Loop_B(struct ProcEfx * proc); +void StartCRSubSpell_efxopStoneBG(struct Anim * anim, struct ProcEfx * parent); +void efxopStoneBG_Loop(struct ProcEfxBG * proc); +void StartCRSubSpell_efxopStoneOBJ(struct Anim * anim, struct ProcEfx * parent); +void efxopStoneOBJ_Loop(struct ProcEfxOBJ * proc); diff --git a/include/variables.h b/include/variables.h index 7ebfeebab..13d10a4f5 100644 --- a/include/variables.h +++ b/include/variables.h @@ -97,8 +97,8 @@ extern u8 sUnitStackSize; extern int gBattleScriptted; // extern ??? gBaArenaFlag -// extern ??? gpProcefxopCur -// extern ??? gUnknown_0203E1EC +// extern ??? gpActiveClassReelSpellProc +// extern ??? gpActiveCRSpellBgColorProc // extern ??? gManimScanlineBufA // extern ??? gManimScanlineBufs // extern ??? gManimActiveScanlineBuf diff --git a/src/banim-efxmagic-evileye.c b/src/banim-efxmagic-evileye.c index cee01e215..8f59b85a9 100644 --- a/src/banim-efxmagic-evileye.c +++ b/src/banim-efxmagic-evileye.c @@ -441,8 +441,8 @@ void StartSubSpell_efxEvilEyeOBJ(struct Anim * anim, int terminator) AnimSort(); - SpellFx_RegisterObjPal(gUnknown_086C93FC, PLTT_SIZE_4BPP); - SpellFx_RegisterObjGfx(gUnknown_086C90A4, 32 * 4 * CHR_SIZE); + SpellFx_RegisterObjPal(Pal_086C93FC, PLTT_SIZE_4BPP); + SpellFx_RegisterObjGfx(Img_086C90A4, 32 * 4 * CHR_SIZE); return; } diff --git a/src/banim-efxmagic-fimbulvetr.c b/src/banim-efxmagic-fimbulvetr.c index 625e64034..25f9e1638 100644 --- a/src/banim-efxmagic-fimbulvetr.c +++ b/src/banim-efxmagic-fimbulvetr.c @@ -380,7 +380,7 @@ void StartSubSpell_efxFimbulvetrOBJ(struct Anim * anim) proc->anim2 = EfxCreateFrontAnim(anim, gUnknown_0861ACB8, gUnknown_0861ACB8, gUnknown_0861ACB8, gUnknown_0861ACB8); proc->anim2->xPosition += 24; - SpellFx_RegisterObjPal(Pal_FimbulvetrSprites_Snow, PLTT_SIZE_4BPP); + SpellFx_RegisterObjPal(Pal_HealSprites_Sparkles, PLTT_SIZE_4BPP); SpellFx_RegisterObjGfx(Img_FimbulvetrSprites_Snow, 32 * 4 * CHR_SIZE); return; @@ -427,7 +427,7 @@ void StartSubSpell_efxFimbulvetrOBJ2(struct Anim * anim) proc->unk44 = 1; proc->unk48 = 0; - SpellFx_RegisterObjPal(Pal_FimbulvetrSprites_Snow, PLTT_SIZE_4BPP); + SpellFx_RegisterObjPal(Pal_HealSprites_Sparkles, PLTT_SIZE_4BPP); SpellFx_RegisterObjGfx(Img_FimbulvetrSprites_Snow, 32 * 4 * CHR_SIZE); return; diff --git a/src/banim-efxmagic-fire.c b/src/banim-efxmagic-fire.c index 0cf046f98..ac73b4067 100644 --- a/src/banim-efxmagic-fire.c +++ b/src/banim-efxmagic-fire.c @@ -104,8 +104,8 @@ void NewEfxFireBG(struct Anim *anim) proc->tsal = gUnknown_085D54D0; proc->tsar = gUnknown_085D5500; - SpellFx_RegisterBgPal(gUnknown_085F6230, 0x20); - SpellFx_RegisterBgGfx(gUnknown_085F5638, 0x2000); + SpellFx_RegisterBgPal(Pal_FireSpellBg, 0x20); + SpellFx_RegisterBgGfx(Img_FireSpellBg, 0x2000); SpellFx_SetSomeColorEffect(); } @@ -146,8 +146,8 @@ void NewEfxFireOBJ(struct Anim *anim) anim2->yPosition = anim->yPosition + 0x8; - SpellFx_RegisterObjPal(gUnknown_085F7D64, 0x20); - SpellFx_RegisterObjGfx(gUnknown_085F7768, 0x1000); + SpellFx_RegisterObjPal(Pal_FireSpellSprites, 0x20); + SpellFx_RegisterObjGfx(Img_FireSpellSprites, 0x1000); } void sub_805DDA8(struct ProcEfxOBJ *proc) diff --git a/src/banim-efxmagic-flux.c b/src/banim-efxmagic-flux.c index 68f2490a4..71f02b2f7 100644 --- a/src/banim-efxmagic-flux.c +++ b/src/banim-efxmagic-flux.c @@ -235,7 +235,7 @@ void StartSubSpell_efxMistyrainBG(struct Anim * anim) proc->frame_config = frames; proc->tsar = proc->tsal = gUnknown_085D5920; proc->img = gUnknown_085D59C4; - SpellFx_RegisterBgPal(gUnknown_0862A2D0, 0x20); + SpellFx_RegisterBgPal(Pal_0862A2D0, 0x20); SpellFx_SetSomeColorEffect(); if (gEkrDistanceType != 0) @@ -317,7 +317,7 @@ void StartSubSpell_efxMistyrainBG2(struct Anim * anim) proc->tsar = proc->tsal = gUnknown_085D5920; proc->img = gUnknown_085D59C4; - SpellFx_RegisterBgPal(gUnknown_0862A2F0, 0x20); + SpellFx_RegisterBgPal(Pal_0862A2F0, 0x20); SpellFx_SetSomeColorEffect(); SetBlendAlpha(10, 7); diff --git a/src/banim-efxmagic-healstaves.c b/src/banim-efxmagic-healstaves.c index e61d0b076..49b8f42e9 100644 --- a/src/banim-efxmagic-healstaves.c +++ b/src/banim-efxmagic-healstaves.c @@ -430,7 +430,7 @@ void StartSubSpell_efxLiveBG_A(struct Anim * anim, u32 kind) proc->tsal = gUnknown_0866F774; proc->tsar = gUnknown_0866F774; - SpellFx_RegisterBgGfx(gUnknown_0866F5E4, 32 * 1 * CHR_SIZE); + SpellFx_RegisterBgGfx(Img_HealSpellBg, 32 * 1 * CHR_SIZE); if (gEkrDistanceType != 0) { @@ -485,7 +485,7 @@ void StartSubSpell_efxLiveBG_B(struct Anim * anim, u32 kind) proc->tsal = gUnknown_0866F774; proc->tsar = gUnknown_0866F774; - SpellFx_RegisterBgGfx(gUnknown_0866F5E4, 32 * 1 * CHR_SIZE); + SpellFx_RegisterBgGfx(Img_HealSpellBg, 32 * 1 * CHR_SIZE); if (gEkrDistanceType != 0) { @@ -670,7 +670,7 @@ void StartSubSpell_efxLiveBGCOL_A(struct Anim * anim, u32 kind) if (kind == 0) { - proc->pal = gUnknown_086700D4; + proc->pal = Pal_HealSpellBg; } else if (kind == 1) { @@ -711,7 +711,7 @@ void StartSubSpell_efxLiveBGCOL_B(struct Anim * anim, u32 kind) if (kind == 0) { - proc->pal = gUnknown_086700D4; + proc->pal = Pal_HealSpellBg; } else if (kind == 1) { @@ -843,8 +843,8 @@ void StartSubSpell_efxLiveOBJ(struct Anim * anim) proc->anim2 = EfxCreateFrontAnim(anim, gUnknown_08675114, gUnknown_08675114, gUnknown_08675114, gUnknown_08675114); - SpellFx_RegisterObjPal(Pal_FimbulvetrSprites_Snow, PLTT_SIZE_4BPP); - SpellFx_RegisterObjGfx(gUnknown_086702D4, 32 * 4 * CHR_SIZE); + SpellFx_RegisterObjPal(Pal_HealSprites_Sparkles, PLTT_SIZE_4BPP); + SpellFx_RegisterObjGfx(Img_HealSprites_Sparkles, 32 * 4 * CHR_SIZE); return; } @@ -876,8 +876,8 @@ void StartSubSpell_efxReserveOBJ(struct Anim * anim) proc->anim2 = EfxCreateFrontAnim(anim, gUnknown_08675114, gUnknown_08675114, gUnknown_08675114, gUnknown_08675114); - SpellFx_RegisterObjPal(Pal_FimbulvetrSprites_Snow, PLTT_SIZE_4BPP); - SpellFx_RegisterObjGfx(gUnknown_086702D4, 32 * 4 * CHR_SIZE); + SpellFx_RegisterObjPal(Pal_HealSprites_Sparkles, PLTT_SIZE_4BPP); + SpellFx_RegisterObjGfx(Img_HealSprites_Sparkles, 32 * 4 * CHR_SIZE); return; } @@ -1175,7 +1175,7 @@ void StartSubSpell_efxReserveBG(struct Anim * anim) proc->tsal = TsaArray_Fortify; proc->tsar = TsaArray_Fortify; - SpellFx_RegisterBgGfx(gUnknown_0866F5E4, 32 * 1 * CHR_SIZE); + SpellFx_RegisterBgGfx(Img_HealSpellBg, 32 * 1 * CHR_SIZE); SpellFx_SetSomeColorEffect(); return; @@ -1570,7 +1570,7 @@ void StartSubSpell_efxReserveBGCOL2(struct Anim * anim, u32 kind) if (kind == 0) { - proc->pal = gUnknown_086700D4; + proc->pal = Pal_HealSpellBg; } else { diff --git a/src/banim-efxmagic-thunder.c b/src/banim-efxmagic-thunder.c index aa219c940..606926709 100644 --- a/src/banim-efxmagic-thunder.c +++ b/src/banim-efxmagic-thunder.c @@ -67,7 +67,7 @@ void NewEfxThunderBG(struct Anim *anim) proc->tsal = gUnknown_085D5458; proc->tsar = gUnknown_085D5460; - SpellFx_RegisterBgGfx(gUnknown_085F2DC0, 0x10C0); + SpellFx_RegisterBgGfx(Img_ThunderSpellBg, 0x10C0); SpellFx_SetSomeColorEffect(); if (gEkrDistanceType != EKR_DISTANCE_CLOSE) { @@ -116,7 +116,7 @@ void NewEfxThunderBGCOL(struct Anim * anim) proc->timer = 0; proc->frame = 0; proc->frame_config = gUnknown_080DCCC0; - proc->pal = gUnknown_085F367C; + proc->pal = Pal_ThunderSpellBg; } void sub_805D9F8(struct ProcEfxBGCOL * proc) diff --git a/src/banim-efxop.c b/src/banim-efxop.c index ff5df93df..4aab62b2c 100644 --- a/src/banim-efxop.c +++ b/src/banim-efxop.c @@ -9,64 +9,64 @@ #include "ctc.h" #include "efxmagic.h" -extern ProcPtr gpProcefxopCur; -extern ProcPtr gUnknown_0203E1EC; +extern ProcPtr gpActiveClassReelSpellProc; +extern ProcPtr gpActiveCRSpellBgColorProc; //! FE8U = 0x0806E8F0 -void sub_806E8F0(void) +void ResetClassReelSpell(void) { - gpProcefxopCur = NULL; - gUnknown_0203E1EC = NULL; + gpActiveClassReelSpellProc = NULL; + gpActiveCRSpellBgColorProc = NULL; return; } //! FE8U = 0x0806E904 -void sub_806E904(void) +void EndActiveClassReelSpell(void) { - if (gpProcefxopCur != NULL) + if (gpActiveClassReelSpellProc != NULL) { - Proc_End(gpProcefxopCur); - gpProcefxopCur = NULL; + Proc_End(gpActiveClassReelSpellProc); + gpActiveClassReelSpellProc = NULL; } return; } //! FE8U = 0x0806E920 -void sub_806E920(void) +void EndActiveClassReelBgColorProc(void) { - if (gUnknown_0203E1EC != NULL) + if (gpActiveCRSpellBgColorProc != NULL) { - Proc_End(gUnknown_0203E1EC); - gUnknown_0203E1EC = NULL; + Proc_End(gpActiveCRSpellBgColorProc); + gpActiveCRSpellBgColorProc = NULL; } return; } //! FE8U = 0x0806E93C -void SetGlbProcefxopCur(ProcPtr proc) +void SetActiveClassReelSpell(ProcPtr proc) { - gpProcefxopCur = proc; + gpActiveClassReelSpellProc = proc; return; } //! FE8U = 0x0806E948 -void sub_806E948(ProcPtr proc) +void SetActiveCRSpellBgColorProc(ProcPtr proc) { - gUnknown_0203E1EC = proc; + gpActiveCRSpellBgColorProc = proc; return; } //! FE8U = 0x0806E954 -struct AnimMagicFxBuffer * sub_806E954(struct Anim * anim) +struct AnimMagicFxBuffer * GetMagicEffectBufferFor(struct Anim * anim) { return ((struct AnimBuffer *)(anim->pUnk44))->unk_30; } //! FE8U = 0x0806E95C -void sub_806E95C(struct Anim * anim, struct AnimMagicFxBuffer * magicFx) +void SetCRSpellBgPosition(struct Anim * anim, struct AnimMagicFxBuffer * magicFx) { s16 x; s16 y; @@ -88,9 +88,9 @@ void sub_806E95C(struct Anim * anim, struct AnimMagicFxBuffer * magicFx) } //! FE8U = 0x0806E9B4 -void sub_806E9B4(struct Anim * anim) +void ClearCRSpellBgTmBuf(struct Anim * anim) { - struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + struct AnimMagicFxBuffer * magicFx = GetMagicEffectBufferFor(anim); CpuFastFill(0, magicFx->bgTmBuf, 0x800); BG_EnableSyncByMask(1 << magicFx->bg); @@ -99,11 +99,11 @@ void sub_806E9B4(struct Anim * anim) } //! FE8U = 0x0806E9E4 -struct Anim * sub_806E9E4(struct Anim * anim, u16 scrIdx, void * scrA, void * scrB) +struct Anim * CRSpellCreateFrontAnim(struct Anim * anim, u16 scrIdx, void * scrA, void * scrB) { struct Anim * newAnim; - struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + struct AnimMagicFxBuffer * magicFx = GetMagicEffectBufferFor(anim); if (scrIdx == 0) { @@ -122,10 +122,10 @@ struct Anim * sub_806E9E4(struct Anim * anim, u16 scrIdx, void * scrA, void * sc } //! FE8U = 0x0806EA38 -void sub_806EA38(struct Anim * anim, u16 notFlipped, void * src, u16 isCompressed) +void CRSpell_WriteBgMap(struct Anim * anim, u16 notFlipped, void * src, u16 isCompressed) { void * buf; - struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + struct AnimMagicFxBuffer * magicFx = GetMagicEffectBufferFor(anim); if (isCompressed == 1) { @@ -154,9 +154,9 @@ void sub_806EA38(struct Anim * anim, u16 notFlipped, void * src, u16 isCompresse } //! FE8U = 0x0806EAA4 -void sub_806EAA4(struct Anim * anim, void * src) +void CRSpell_RegisterBgGfx(struct Anim * anim, void * src) { - struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + struct AnimMagicFxBuffer * magicFx = GetMagicEffectBufferFor(anim); void * dst = (void *)(0x6000000 + magicFx->bgChr * CHR_SIZE); @@ -167,9 +167,9 @@ void sub_806EAA4(struct Anim * anim, void * src) } //! FE8U = 0x0806EAD4 -void sub_806EAD4(struct Anim * anim, u16 * src) +void CRSpell_RegisterBgPal(struct Anim * anim, u16 * src) { - struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + struct AnimMagicFxBuffer * magicFx = GetMagicEffectBufferFor(anim); CpuFastCopy(src, gPaletteBuffer + (magicFx->bgPalId * 0x10), PLTT_SIZE_4BPP); EnablePaletteSync(); @@ -178,9 +178,9 @@ void sub_806EAD4(struct Anim * anim, u16 * src) } //! FE8U = 0x0806EAFC -void sub_806EAFC(struct Anim * anim, void * src) +void CRSpell_RegisterObjGfx(struct Anim * anim, void * src) { - struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + struct AnimMagicFxBuffer * magicFx = GetMagicEffectBufferFor(anim); void * dst = (void *)(0x6010000 + magicFx->objChr * CHR_SIZE); @@ -191,11 +191,11 @@ void sub_806EAFC(struct Anim * anim, void * src) } //! FE8U = 0x0806EB2C -void sub_806EB2C(struct Anim * anim, u16 * src) +void CRSpell_RegisterObjPal(struct Anim * anim, u16 * src) { - struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + struct AnimMagicFxBuffer * magicFx = GetMagicEffectBufferFor(anim); - CpuFastCopy(src, gPaletteBuffer + 0x100 + (magicFx->objPalId * 0x10), 0x20); + CpuFastCopy(src, gPaletteBuffer + 0x100 + (magicFx->objPalId * 0x10), PLTT_SIZE_4BPP); EnablePaletteSync(); return; @@ -203,33 +203,38 @@ void sub_806EB2C(struct Anim * anim, u16 * src) // clang-format off -CONST_DATA SpellAnimFunc gpEfxopFuncLut[] = -{ - nullsub_73, - NewEfxopFire, - NewEfxopThunder, - NewEfxopLive, - NewEfxopLightning, - NewEfxopMistyrain, - NewEfxopMyrrh, - sub_806F6B4, - sub_806F844, +CONST_DATA SpellAnimFunc gClassReelSpellAnimFuncLut[] = +{ + StartClassReelSpellAnimDummy, + StartClassReelSpellAnimFire, + StartClassReelSpellAnimThunder, + StartClassReelSpellAnimHeal, + StartClassReelSpellAnimLight, + StartClassReelSpellAnimFlux, + StartClassReelSpellAnimMyrrh, + StartClassReelSpellAnimEvilEye, + StartClassReelSpellAnimStone, }; // clang-format on //! FE8U = 0x0806EB54 -void ExecEfxop(struct Anim * anim) +void StartClassReelSpellAnim(struct Anim * anim) { - struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + struct AnimMagicFxBuffer * magicFx = GetMagicEffectBufferFor(anim); - gpEfxopFuncLut[magicFx->magicFuncIdx](anim); +#if BUGFIX + if (gClassReelSpellAnimFuncLut[magicFx->magicFuncIdx] == NULL) + return; +#endif + + gClassReelSpellAnimFuncLut[magicFx->magicFuncIdx](anim); return; } //! FE8U = 0x0806EB78 -void nullsub_73(struct Anim * anim) +void StartClassReelSpellAnimDummy(struct Anim * anim) { return; } @@ -240,10 +245,10 @@ struct ProcCmd CONST_DATA ProcScr_efxopFire[] = { PROC_NAME("efxopFire"), - PROC_REPEAT(sub_806EB9C), + PROC_REPEAT(efxopFire_Loop_Main), PROC_SLEEP(50), - PROC_CALL(sub_806E904), + PROC_CALL(EndActiveClassReelSpell), PROC_END, }; @@ -251,10 +256,10 @@ struct ProcCmd CONST_DATA ProcScr_efxopFire[] = // clang-format on //! FE8U = 0x0806EB7C -void NewEfxopFire(struct Anim * anim) +void StartClassReelSpellAnimFire(struct Anim * anim) { struct ProcEfx * proc = Proc_Start(ProcScr_efxopFire, PROC_TREE_3); - SetGlbProcefxopCur(proc); + SetActiveClassReelSpell(proc); proc->anim = anim; @@ -262,10 +267,10 @@ void NewEfxopFire(struct Anim * anim) } //! FE8U = 0x0806EB9C -void sub_806EB9C(struct ProcEfx * proc) +void efxopFire_Loop_Main(struct ProcEfx * proc) { - NewEfxopFireBG(proc->anim, proc); - NewEfxopFireOBJ(proc->anim, proc); + StartCRSubSpell_efxopFireBG(proc->anim, proc); + StartCRSubSpell_efxopFireOBJ(proc->anim, proc); Proc_Break(proc); @@ -277,11 +282,11 @@ void sub_806EB9C(struct ProcEfx * proc) struct ProcCmd CONST_DATA ProcScr_efxopFireBG[] = { PROC_NAME("efxopFireBG"), - PROC_REPEAT(sub_806EC1C), + PROC_REPEAT(efxopFireBG_Loop), PROC_END, }; -u16 * CONST_DATA gUnknown_085D9494[] = +u16 * CONST_DATA TsaArray_Fire_ClassReel[] = { Tsa_085F6250, Tsa_085F62F8, @@ -300,10 +305,10 @@ u16 * CONST_DATA gUnknown_085D9494[] = // clang-format on //! FE8U = 0x0806EBBC -void NewEfxopFireBG(struct Anim * anim, struct ProcEfx * parent) +void StartCRSubSpell_efxopFireBG(struct Anim * anim, struct ProcEfx * parent) { // clang-format off - static const u16 gUnknown_080DF644[] = + static const u16 frames[] = { 0, 3, 1, 2, @@ -321,41 +326,41 @@ void NewEfxopFireBG(struct Anim * anim, struct ProcEfx * parent) }; // clang-format on - struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + struct AnimMagicFxBuffer * magicFx = GetMagicEffectBufferFor(anim); struct ProcEfxBG * proc = Proc_Start(ProcScr_efxopFireBG, parent); proc->anim = anim; proc->timer = 0; proc->frame = 0; - proc->frame_config = gUnknown_080DF644; - proc->tsal = gUnknown_085D9494; + proc->frame_config = frames; + proc->tsal = TsaArray_Fire_ClassReel; - sub_806EAD4(anim, gUnknown_085F6230); - sub_806EAA4(proc->anim, gUnknown_085F5638); + CRSpell_RegisterBgPal(anim, Pal_FireSpellBg); + CRSpell_RegisterBgGfx(proc->anim, Img_FireSpellBg); magicFx->resetCallback(); - sub_806E95C(proc->anim, magicFx); + SetCRSpellBgPosition(proc->anim, magicFx); return; } //! FE8U = 0x0806EC1C -void sub_806EC1C(struct ProcEfxBG * proc) +void efxopFireBG_Loop(struct ProcEfxBG * proc) { s16 ret = EfxAdvanceFrameLut((s16 *)&proc->timer, (s16 *)&proc->frame, proc->frame_config); if (ret >= 0) { u16 ** tsaL = proc->tsal; - sub_806EA38(proc->anim, 1, *(tsaL + ret), 1); + CRSpell_WriteBgMap(proc->anim, 1, *(tsaL + ret), 1); } else { if (ret == -1) { - sub_806E9B4(proc->anim); + ClearCRSpellBgTmBuf(proc->anim); SetDefaultColorEffects_(); Proc_Break(proc); } @@ -369,24 +374,24 @@ void sub_806EC1C(struct ProcEfxBG * proc) struct ProcCmd CONST_DATA ProcScr_efxopFireOBJ[] = { PROC_NAME("efxopFireOBJ"), - PROC_REPEAT(sub_806ECE8), + PROC_REPEAT(efxopFireOBJ_Loop), PROC_END, }; // clang-format on //! FE8U = 0x0806EC68 -void NewEfxopFireOBJ(struct Anim * anim, struct ProcEfx * parent) +void StartCRSubSpell_efxopFireOBJ(struct Anim * anim, struct ProcEfx * parent) { struct Anim * frontAnim; - struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + struct AnimMagicFxBuffer * magicFx = GetMagicEffectBufferFor(anim); struct ProcEfxOBJ * proc = Proc_Start(ProcScr_efxopFireOBJ, parent); proc->anim = anim; proc->timer = 0; - frontAnim = sub_806E9E4(anim, 1, gUnknown_085F843C, gUnknown_085F80B4); + frontAnim = CRSpellCreateFrontAnim(anim, 1, gUnknown_085F843C, gUnknown_085F80B4); proc->anim2 = frontAnim; if (GetAnimPosition(anim) == 0) @@ -403,14 +408,14 @@ void NewEfxopFireOBJ(struct Anim * anim, struct ProcEfx * parent) frontAnim->xPosition += magicFx->xOffsetObj; frontAnim->yPosition += magicFx->yOffsetObj; - sub_806EB2C(proc->anim, gUnknown_085F7D64); - sub_806EAFC(proc->anim, gUnknown_085F7768); + CRSpell_RegisterObjPal(proc->anim, Pal_FireSpellSprites); + CRSpell_RegisterObjGfx(proc->anim, Img_FireSpellSprites); return; } //! FE8U = 0x0806ECE8 -void sub_806ECE8(struct ProcEfxOBJ * proc) +void efxopFireOBJ_Loop(struct ProcEfxOBJ * proc) { proc->timer++; @@ -429,10 +434,10 @@ struct ProcCmd CONST_DATA ProcScr_efxopThunder[] = { PROC_NAME("efxopThunder"), - PROC_REPEAT(sub_806ED2C), + PROC_REPEAT(efxopThunder_Loop_Main), PROC_SLEEP(50), - PROC_CALL(sub_806E904), + PROC_CALL(EndActiveClassReelSpell), PROC_END, }; @@ -440,10 +445,10 @@ struct ProcCmd CONST_DATA ProcScr_efxopThunder[] = // clang-format on //! FE8U = 0x0806ED0C -void NewEfxopThunder(struct Anim * anim) +void StartClassReelSpellAnimThunder(struct Anim * anim) { struct ProcEfx * proc = Proc_Start(ProcScr_efxopThunder, PROC_TREE_3); - SetGlbProcefxopCur(proc); + SetActiveClassReelSpell(proc); proc->anim = anim; @@ -451,11 +456,11 @@ void NewEfxopThunder(struct Anim * anim) } //! FE8U = 0x0806ED2C -void sub_806ED2C(struct ProcEfx * proc) +void efxopThunder_Loop_Main(struct ProcEfx * proc) { - sub_806ED54(proc->anim, proc); - sub_806EE34(proc->anim, proc); - sub_806EEA8(proc->anim, proc); + StartCRSubSpell_efxopThunderBG(proc->anim, proc); + StartCRSubSpell_efxopThunderBGCOL(proc->anim, proc); + StartCRSubSpell_efxopThunderOBJ(proc->anim, proc); Proc_Break(proc); @@ -467,11 +472,11 @@ void sub_806ED2C(struct ProcEfx * proc) struct ProcCmd CONST_DATA ProcScr_efxopThunderBG[] = { PROC_NAME("efxopThunderBG"), - PROC_REPEAT(sub_806EDB0), + PROC_REPEAT(efxopThunderBG_Loop), PROC_END, }; -u16 * CONST_DATA gUnknown_085D951C[] = +u16 * CONST_DATA TsaArray_Thunder_ClassReel[] = { Tsa_085F387C, Tsa_085F3948, @@ -480,10 +485,10 @@ u16 * CONST_DATA gUnknown_085D951C[] = // clang-format on //! FE8U = 0x0806ED54 -void sub_806ED54(struct Anim * anim, struct ProcEfx * unused) +void StartCRSubSpell_efxopThunderBG(struct Anim * anim, struct ProcEfx * unused) { // clang-format off - static const u16 gUnknown_080DF6A8[] = + static const u16 frames[] = { 0, 4, 1, 40, @@ -491,39 +496,39 @@ void sub_806ED54(struct Anim * anim, struct ProcEfx * unused) }; // clang-format on - struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + struct AnimMagicFxBuffer * magicFx = GetMagicEffectBufferFor(anim); struct ProcEfxBG * proc = Proc_Start(ProcScr_efxopThunderBG, PROC_TREE_3); proc->anim = anim; proc->timer = 0; proc->frame = 0; - proc->frame_config = gUnknown_080DF6A8; + proc->frame_config = frames; - proc->tsal = gUnknown_085D951C; + proc->tsal = TsaArray_Thunder_ClassReel; - sub_806EAD4(anim, gUnknown_085F367C); - sub_806EAA4(proc->anim, gUnknown_085F2DC0); + CRSpell_RegisterBgPal(anim, Pal_ThunderSpellBg); + CRSpell_RegisterBgGfx(proc->anim, Img_ThunderSpellBg); magicFx->resetCallback(); - sub_806E95C(proc->anim, magicFx); + SetCRSpellBgPosition(proc->anim, magicFx); return; } //! FE8U = 0x0806EDB0 -void sub_806EDB0(struct ProcEfxBG * proc) +void efxopThunderBG_Loop(struct ProcEfxBG * proc) { u16 chr = 0; - struct AnimMagicFxBuffer * magicFx = sub_806E954(proc->anim); + struct AnimMagicFxBuffer * magicFx = GetMagicEffectBufferFor(proc->anim); s16 ret = EfxAdvanceFrameLut((s16 *)&proc->timer, (s16 *)&proc->frame, proc->frame_config); if (ret >= 0) { u16 ** tsaL = proc->tsal; - sub_806EA38(proc->anim, 0, *(tsaL + ret), 1); + CRSpell_WriteBgMap(proc->anim, 0, *(tsaL + ret), 1); if (ret == 0) { @@ -541,7 +546,7 @@ void sub_806EDB0(struct ProcEfxBG * proc) { if (ret == -1) { - sub_806E9B4(proc->anim); + ClearCRSpellBgTmBuf(proc->anim); SetDefaultColorEffects_(); Proc_Break(proc); } @@ -557,7 +562,7 @@ struct ProcCmd CONST_DATA ProcScr_efxopThunderBGCOL[] = PROC_NAME("efxopThunderBGCOL"), PROC_MARK(PROC_MARK_A), - PROC_REPEAT(sub_806EE68), + PROC_REPEAT(efxopThunderBGCOL_Loop), PROC_END, }; @@ -565,10 +570,10 @@ struct ProcCmd CONST_DATA ProcScr_efxopThunderBGCOL[] = // clang-format on //! FE8U = 0x0806EE34 -void sub_806EE34(struct Anim * anim, struct ProcEfx * unused) +void StartCRSubSpell_efxopThunderBGCOL(struct Anim * anim, struct ProcEfx * unused) { // clang-format off - static const u16 gUnknown_080DF6C6[] = + static const u16 frames[] = { 0, 4, 1, 4, @@ -591,35 +596,34 @@ void sub_806EE34(struct Anim * anim, struct ProcEfx * unused) // clang-format on struct ProcEfxBGCOL * proc = Proc_Start(ProcScr_efxopThunderBGCOL, PROC_TREE_3); - - sub_806E948(proc); + SetActiveCRSpellBgColorProc(proc); proc->anim = anim; proc->timer = 0; proc->frame = 0; - proc->frame_config = gUnknown_080DF6C6; + proc->frame_config = frames; - proc->pal = gUnknown_085F367C; + proc->pal = Pal_ThunderSpellBg; return; } //! FE8U = 0x0806EE68 -void sub_806EE68(struct ProcEfxBGCOL * proc) +void efxopThunderBGCOL_Loop(struct ProcEfxBGCOL * proc) { s16 ret = EfxAdvanceFrameLut((s16 *)&proc->timer, (s16 *)&proc->frame, proc->frame_config); if (ret >= 0) { u16 * pal = proc->pal; - sub_806EAD4(proc->anim, pal + ret * 0x10); + CRSpell_RegisterBgPal(proc->anim, pal + ret * 0x10); } else { if (ret == -1) { - sub_806E920(); + EndActiveClassReelBgColorProc(); Proc_Break(proc); } } @@ -632,24 +636,24 @@ void sub_806EE68(struct ProcEfxBGCOL * proc) struct ProcCmd CONST_DATA ProcScr_efxopThunderOBJ[] = { PROC_NAME("efxopThunderOBJ"), - PROC_REPEAT(sub_806EF24), + PROC_REPEAT(efxopThunderOBJ_Loop), PROC_END, }; // clang-format on //! FE8U = 0x0806EEA8 -void sub_806EEA8(struct Anim * anim, struct ProcEfx * unused) +void StartCRSubSpell_efxopThunderOBJ(struct Anim * anim, struct ProcEfx * unused) { struct Anim * frontAnim; - struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + struct AnimMagicFxBuffer * magicFx = GetMagicEffectBufferFor(anim); struct ProcEfxOBJ * proc = Proc_Start(ProcScr_efxopThunderOBJ, PROC_TREE_3); proc->anim = anim; proc->timer = 0; - frontAnim = sub_806E9E4(anim, 1, gUnknown_085F5550, gUnknown_085F4A24); + frontAnim = CRSpellCreateFrontAnim(anim, 1, gUnknown_085F5550, gUnknown_085F4A24); proc->anim2 = frontAnim; if (GetAnimPosition(anim) == 0) @@ -664,14 +668,14 @@ void sub_806EEA8(struct Anim * anim, struct ProcEfx * unused) frontAnim->xPosition += magicFx->xOffsetObj; frontAnim->yPosition += magicFx->yOffsetObj; - sub_806EB2C(proc->anim, Pal_BoltingSprites); - sub_806EAFC(proc->anim, Img_BoltingSprites); + CRSpell_RegisterObjPal(proc->anim, Pal_BoltingSprites); + CRSpell_RegisterObjGfx(proc->anim, Img_BoltingSprites); return; } //! FE8U = 0x0806EF24 -void sub_806EF24(struct ProcEfxOBJ * proc) +void efxopThunderOBJ_Loop(struct ProcEfxOBJ * proc) { proc->timer++; @@ -690,10 +694,10 @@ struct ProcCmd CONST_DATA ProcScr_efxopLive[] = { PROC_NAME("efxopLive"), - PROC_REPEAT(sub_806EF64), + PROC_REPEAT(efxopLive_Loop_Main), PROC_SLEEP(70), - PROC_CALL(sub_806E904), + PROC_CALL(EndActiveClassReelSpell), PROC_END, }; @@ -701,7 +705,7 @@ struct ProcCmd CONST_DATA ProcScr_efxopLive[] = // clang-format on //! FE8U = 0x0806EF48 -void NewEfxopLive(struct Anim * anim) +void StartClassReelSpellAnimHeal(struct Anim * anim) { struct ProcEfx * proc = Proc_Start(ProcScr_efxopLive, PROC_TREE_3); @@ -712,16 +716,16 @@ void NewEfxopLive(struct Anim * anim) } //! FE8U = 0x0806EF64 -void sub_806EF64(struct ProcEfx * proc) +void efxopLive_Loop_Main(struct ProcEfx * proc) { - sub_806F184(proc->anim, proc); - sub_806EFB8(proc->anim, proc); - sub_806F058(proc->anim, proc); + StartCRSubSpell_efxopLiveOBJ(proc->anim, proc); + StartCRSubSpell_efxopLiveBG(proc->anim, proc); + StartCRSubSpell_efxopLiveBGCOL(proc->anim, proc); SetBlendAlpha(0, 16); - sub_806F0CC(proc->anim, 1, 12, 0, proc); - sub_806F0CC(proc->anim, 35, 25, 1, proc); + StartCRSubSpell_efxopLiveALPHA(proc->anim, 1, 12, 0, proc); + StartCRSubSpell_efxopLiveALPHA(proc->anim, 35, 25, 1, proc); Proc_Break(proc); @@ -733,7 +737,7 @@ void sub_806EF64(struct ProcEfx * proc) struct ProcCmd CONST_DATA ProcScr_efxopLiveBG[] = { PROC_NAME("efxopLiveBG"), - PROC_REPEAT(sub_806F00C), + PROC_REPEAT(efxopLiveBG_Loop), PROC_END, }; @@ -746,53 +750,53 @@ u16 * CONST_DATA gUnknown_085D959C[] = // clang-format on //! FE8U = 0x0806EFB8 -void sub_806EFB8(struct Anim * anim, struct ProcEfx * unused) +void StartCRSubSpell_efxopLiveBG(struct Anim * anim, struct ProcEfx * unused) { // clang-format off - static const u16 gUnknown_080DF730[] = + static const u16 frames[] = { 0, 62, -1, }; // clang-format on - struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + struct AnimMagicFxBuffer * magicFx = GetMagicEffectBufferFor(anim); struct ProcEfxBG * proc = Proc_Start(ProcScr_efxopLiveBG, PROC_TREE_3); - SetGlbProcefxopCur(proc); + SetActiveClassReelSpell(proc); proc->anim = anim; proc->timer = 0; proc->frame = 0; - proc->frame_config = gUnknown_080DF730; + proc->frame_config = frames; proc->tsal = gUnknown_085D959C; - sub_806EAA4(anim, gUnknown_0866F5E4); + CRSpell_RegisterBgGfx(anim, Img_HealSpellBg); magicFx->resetCallback(); - sub_806E95C(proc->anim, magicFx); + SetCRSpellBgPosition(proc->anim, magicFx); return; } //! FE8U = 0x0806F00C -void sub_806F00C(struct ProcEfxBG * proc) +void efxopLiveBG_Loop(struct ProcEfxBG * proc) { s16 ret = EfxAdvanceFrameLut((s16 *)&proc->timer, (s16 *)&proc->frame, proc->frame_config); if (ret >= 0) { u16 ** tsaL = proc->tsal; - sub_806EA38(proc->anim, 1, *(tsaL + ret), 0); + CRSpell_WriteBgMap(proc->anim, 1, *(tsaL + ret), 0); } else { if (ret == -1) { - sub_806E9B4(proc->anim); + ClearCRSpellBgTmBuf(proc->anim); SetDefaultColorEffects_(); Proc_Break(proc); } @@ -808,7 +812,7 @@ struct ProcCmd CONST_DATA ProcScr_efxopLiveBGCOL[] = PROC_NAME("efxopLiveBGCOL"), PROC_MARK(PROC_MARK_A), - PROC_REPEAT(sub_806F08C), + PROC_REPEAT(efxopLiveBGCOL_Loop), PROC_END, }; @@ -816,10 +820,10 @@ struct ProcCmd CONST_DATA ProcScr_efxopLiveBGCOL[] = // clang-format on //! FE8U = 0x0806F058 -void sub_806F058(struct Anim * anim, struct ProcEfx * unused) +void StartCRSubSpell_efxopLiveBGCOL(struct Anim * anim, struct ProcEfx * unused) { // clang-format off - static const u16 gUnknown_080DF748[] = + static const u16 frames[] = { 0, 3, 1, 3, @@ -842,34 +846,34 @@ void sub_806F058(struct Anim * anim, struct ProcEfx * unused) // clang-format on struct ProcEfxBGCOL * proc = Proc_Start(ProcScr_efxopLiveBGCOL, PROC_TREE_3); - sub_806E948(proc); + SetActiveCRSpellBgColorProc(proc); proc->anim = anim; proc->timer = 0; proc->frame = 0; - proc->frame_config = gUnknown_080DF748; + proc->frame_config = frames; - proc->pal = gUnknown_086700D4; + proc->pal = Pal_HealSpellBg; return; } //! FE8U = 0x0806F08C -void sub_806F08C(struct ProcEfxBGCOL * proc) +void efxopLiveBGCOL_Loop(struct ProcEfxBGCOL * proc) { s16 ret = EfxAdvanceFrameLut((s16 *)&proc->timer, (s16 *)&proc->frame, proc->frame_config); if (ret >= 0) { u16 * pal = proc->pal; - sub_806EAD4(proc->anim, pal + ret * 0x10); + CRSpell_RegisterBgPal(proc->anim, pal + ret * 0x10); } else { if (ret == -1) { - sub_806E920(); + EndActiveClassReelBgColorProc(); Proc_Break(proc); } } @@ -883,8 +887,8 @@ struct ProcCmd CONST_DATA ProcScr_efxopLiveALPHA[] = { PROC_NAME("efxopLiveALPHA"), - PROC_REPEAT(sub_806F0FC), - PROC_REPEAT(sub_806F118), + PROC_REPEAT(efxopLiveALPHA_Loop_A), + PROC_REPEAT(efxopLiveALPHA_Loop_B), PROC_END, }; @@ -892,7 +896,7 @@ struct ProcCmd CONST_DATA ProcScr_efxopLiveALPHA[] = // clang-format on //! FE8U = 0x0806F0CC -void sub_806F0CC(struct Anim * anim, int timer, int c, int d, struct ProcEfx * unused) +void StartCRSubSpell_efxopLiveALPHA(struct Anim * anim, int timer, int c, int d, struct ProcEfx * unused) { struct ProcEfxALPHA * proc = Proc_Start(ProcScr_efxopLiveALPHA, PROC_TREE_3); proc->anim = anim; @@ -906,7 +910,7 @@ void sub_806F0CC(struct Anim * anim, int timer, int c, int d, struct ProcEfx * u } //! FE8U = 0x0806F0FC -void sub_806F0FC(struct ProcEfxALPHA * proc) +void efxopLiveALPHA_Loop_A(struct ProcEfxALPHA * proc) { if (--proc->timer == 0) { @@ -917,7 +921,7 @@ void sub_806F0FC(struct ProcEfxALPHA * proc) } //! FE8U = 0x0806F118 -void sub_806F118(struct ProcEfxALPHA * proc) +void efxopLiveALPHA_Loop_B(struct ProcEfxALPHA * proc) { int bldA; @@ -948,21 +952,19 @@ void sub_806F118(struct ProcEfxALPHA * proc) struct ProcCmd CONST_DATA ProcScr_efxopLiveOBJ[] = { PROC_NAME("efxopLiveOBJ"), - - PROC_REPEAT(sub_806F1E8), - + PROC_REPEAT(efxopLiveOBJ_Loop), PROC_END, }; // clang-format on //! FE8U = 0x0806F184 -void sub_806F184(struct Anim * anim, struct ProcEfx * unused) +void StartCRSubSpell_efxopLiveOBJ(struct Anim * anim, struct ProcEfx * unused) { struct Anim * frontAnim; u32 * scr; - struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + struct AnimMagicFxBuffer * magicFx = GetMagicEffectBufferFor(anim); struct ProcEfxOBJ * proc = Proc_Start(ProcScr_efxopLiveOBJ, PROC_TREE_3); proc->anim = anim; @@ -970,20 +972,20 @@ void sub_806F184(struct Anim * anim, struct ProcEfx * unused) proc->terminator = 51; scr = gUnknown_08675114; - frontAnim = sub_806E9E4(anim, 1, scr, scr); + frontAnim = CRSpellCreateFrontAnim(anim, 1, scr, scr); proc->anim2 = frontAnim; frontAnim->xPosition += magicFx->xOffsetObj; frontAnim->yPosition += magicFx->yOffsetObj; - sub_806EB2C(proc->anim, Pal_FimbulvetrSprites_Snow); - sub_806EAFC(proc->anim, gUnknown_086702D4); + CRSpell_RegisterObjPal(proc->anim, Pal_HealSprites_Sparkles); + CRSpell_RegisterObjGfx(proc->anim, Img_HealSprites_Sparkles); return; } //! FE8U = 0x0806F1E8 -void sub_806F1E8(struct ProcEfxOBJ * proc) +void efxopLiveOBJ_Loop(struct ProcEfxOBJ * proc) { proc->timer++; @@ -1002,10 +1004,10 @@ struct ProcCmd CONST_DATA ProcScr_efxopLightning[] = { PROC_NAME("efxopLightning"), - PROC_REPEAT(sub_806F230), + PROC_REPEAT(efxopLightning_Loop_Main), PROC_SLEEP(50), - PROC_CALL(sub_806E904), + PROC_CALL(EndActiveClassReelSpell), PROC_END, }; @@ -1013,10 +1015,10 @@ struct ProcCmd CONST_DATA ProcScr_efxopLightning[] = // clang-format on //! FE8U = 0x0806F210 -void NewEfxopLightning(struct Anim * anim) +void StartClassReelSpellAnimLight(struct Anim * anim) { struct ProcEfx * proc = Proc_Start(ProcScr_efxopLightning, PROC_TREE_3); - SetGlbProcefxopCur(proc); + SetActiveClassReelSpell(proc); proc->anim = anim; @@ -1024,9 +1026,9 @@ void NewEfxopLightning(struct Anim * anim) } //! FE8U = 0x0806F230 -void sub_806F230(struct ProcEfx * proc) +void efxopLightning_Loop_Main(struct ProcEfx * proc) { - sub_806F248(proc->anim, proc); + StartCRSubSpell_efxopLightningBG(proc->anim, proc); Proc_Break(proc); return; } @@ -1036,11 +1038,11 @@ void sub_806F230(struct ProcEfx * proc) struct ProcCmd CONST_DATA ProcScr_efxopLightningBG[] = { PROC_NAME("efxopLightningBG"), - PROC_REPEAT(sub_806F2A0), + PROC_REPEAT(efxopLightningBG_Loop), PROC_END, }; -u16 * CONST_DATA gUnknown_085D9638[] = +u16 * CONST_DATA ImgArray_Light_ClassReel[] = { Img_0861AD94, Img_0861AD94, @@ -1077,7 +1079,7 @@ u16 * CONST_DATA gUnknown_085D9638[] = Img_0861ED94, }; -u16 * CONST_DATA gUnknown_085D96BC[] = +u16 * CONST_DATA PalArray_Light_ClassReel[] = { Pal_0861F7B4, Pal_0861F7B4, @@ -1114,7 +1116,7 @@ u16 * CONST_DATA gUnknown_085D96BC[] = Pal_0861F7D4, }; -u16 * CONST_DATA gUnknown_085D9740[] = +u16 * CONST_DATA TsaArray_Light_ClassReel[] = { Tsa_0861F7F4, Tsa_0861F918, @@ -1154,10 +1156,10 @@ u16 * CONST_DATA gUnknown_085D9740[] = // clang-format on //! FE8U = 0x0806F248 -void sub_806F248(struct Anim * anim, struct ProcEfx * parent) +void StartCRSubSpell_efxopLightningBG(struct Anim * anim, struct ProcEfx * parent) { // clang-format off - static const u16 gUnknown_080DF7CE[] = + static const u16 frames[] = { 25, 2, 26, 2, @@ -1196,30 +1198,30 @@ void sub_806F248(struct Anim * anim, struct ProcEfx * parent) }; // clang-format on - struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); + struct AnimMagicFxBuffer * magicFx = GetMagicEffectBufferFor(anim); struct ProcEfxBG * proc = Proc_Start(ProcScr_efxopLightningBG, parent); proc->anim = anim; proc->timer = 0; proc->frame = 0; - proc->frame_config = gUnknown_080DF7CE; + proc->frame_config = frames; - proc->tsal = gUnknown_085D9740; - proc->tsar = gUnknown_085D9740; + proc->tsal = TsaArray_Light_ClassReel; + proc->tsar = TsaArray_Light_ClassReel; - proc->img = gUnknown_085D9638; - proc->pal = gUnknown_085D96BC; + proc->img = ImgArray_Light_ClassReel; + proc->pal = PalArray_Light_ClassReel; magicFx->resetCallback(); - sub_806E95C(proc->anim, magicFx); + SetCRSpellBgPosition(proc->anim, magicFx); return; } //! FE8U = 0x0806F2A0 -void sub_806F2A0(struct ProcEfxBG * proc) +void efxopLightningBG_Loop(struct ProcEfxBG * proc) { s16 ret = EfxAdvanceFrameLut((s16 *)&proc->timer, (s16 *)&proc->frame, proc->frame_config); @@ -1229,15 +1231,15 @@ void sub_806F2A0(struct ProcEfxBG * proc) u16 ** img = proc->img; u16 ** pal = proc->pal; - sub_806EAA4(proc->anim, *(img + ret)); - sub_806EAD4(proc->anim, *(pal + ret)); - sub_806EA38(proc->anim, 0, *(tsaL + ret), 1); + CRSpell_RegisterBgGfx(proc->anim, *(img + ret)); + CRSpell_RegisterBgPal(proc->anim, *(pal + ret)); + CRSpell_WriteBgMap(proc->anim, 0, *(tsaL + ret), 1); } else { if (ret == -1) { - sub_806E9B4(proc->anim); + ClearCRSpellBgTmBuf(proc->anim); SetDefaultColorEffects_(); Proc_Break(proc); } @@ -1248,14 +1250,14 @@ void sub_806F2A0(struct ProcEfxBG * proc) // clang-format off -struct ProcCmd CONST_DATA gUnknown_085D97C4[] = +struct ProcCmd CONST_DATA ProcScr_efxopMistyrainBG[] = { PROC_NAME("efxopMistyrainBG"), - PROC_REPEAT(sub_806F3F8), + PROC_REPEAT(efxopMistyrainBG_Loop), PROC_END, }; -u16 * CONST_DATA gUnknown_085D97DC[] = +u16 * CONST_DATA TsaArray_Flux_ClassReel[] = { Tsa_0862A310, Tsa_0862A40C, @@ -1300,7 +1302,7 @@ u16 * CONST_DATA gUnknown_085D97DC[] = Tsa_0862C730, }; -u16 * CONST_DATA gUnknown_085D9880[] = +u16 * CONST_DATA ImgArray_Flux_ClassReel[] = { Img_08626944, Img_08626944, @@ -1348,10 +1350,10 @@ u16 * CONST_DATA gUnknown_085D9880[] = // clang-format on //! FE8U = 0x0806F304 -void sub_806F304(struct Anim * anim, struct ProcEfx * parent) +void StartCRSubSpell_efxopMistyrainBG(struct Anim * anim, struct ProcEfx * parent) { // clang-format off - static const u16 gUnknown_080DF866[] = + static const u16 frames[] = { 0, 2, 1, 2, @@ -1369,22 +1371,22 @@ void sub_806F304(struct Anim * anim, struct ProcEfx * parent) }; // clang-format on - struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); - struct ProcEfxBG * proc = Proc_Start(gUnknown_085D97C4, parent); + struct AnimMagicFxBuffer * magicFx = GetMagicEffectBufferFor(anim); + struct ProcEfxBG * proc = Proc_Start(ProcScr_efxopMistyrainBG, parent); proc->anim = anim; proc->timer = 0; proc->frame = 0; - proc->frame_config = gUnknown_080DF866; + proc->frame_config = frames; - proc->tsal = gUnknown_085D97DC; - proc->tsar = gUnknown_085D97DC; - proc->img = gUnknown_085D9880; + proc->tsal = TsaArray_Flux_ClassReel; + proc->tsar = TsaArray_Flux_ClassReel; + proc->img = ImgArray_Flux_ClassReel; proc->terminator = 0; - sub_806EAD4(anim, gUnknown_0862A2D0); + CRSpell_RegisterBgPal(anim, Pal_0862A2D0); if (GetAnimPosition(proc->anim) == 0) { @@ -1399,16 +1401,16 @@ void sub_806F304(struct Anim * anim, struct ProcEfx * parent) magicFx->resetCallback(); - sub_806E95C(proc->anim, magicFx); + SetCRSpellBgPosition(proc->anim, magicFx); return; } //! FE8U = 0x0806F38C -void sub_806F38C(struct Anim * anim, struct ProcEfx * parent) +void StartCRSubSpell_efxopMistyrainBG_2(struct Anim * anim, struct ProcEfx * parent) { // clang-format off - static const u16 gUnknown_080DF898[] = + static const u16 frames[] = { 12, 6, 13, 2, @@ -1443,26 +1445,26 @@ void sub_806F38C(struct Anim * anim, struct ProcEfx * parent) }; // clang-format on - struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); - struct ProcEfxBG * proc = Proc_Start(gUnknown_085D97C4, parent); + struct AnimMagicFxBuffer * magicFx = GetMagicEffectBufferFor(anim); + struct ProcEfxBG * proc = Proc_Start(ProcScr_efxopMistyrainBG, parent); proc->anim = anim; proc->timer = 0; proc->frame = 0; - proc->frame_config = gUnknown_080DF898; + proc->frame_config = frames; - proc->tsal = gUnknown_085D97DC; - proc->tsar = gUnknown_085D97DC; - proc->img = gUnknown_085D9880; + proc->tsal = TsaArray_Flux_ClassReel; + proc->tsar = TsaArray_Flux_ClassReel; + proc->img = ImgArray_Flux_ClassReel; proc->terminator = 1; - sub_806EAD4(anim, gUnknown_0862A2F0); + CRSpell_RegisterBgPal(anim, Pal_0862A2F0); magicFx->resetCallback(); - sub_806E95C(proc->anim, magicFx); + SetCRSpellBgPosition(proc->anim, magicFx); SetBlendAlpha(10, 7); @@ -1470,7 +1472,7 @@ void sub_806F38C(struct Anim * anim, struct ProcEfx * parent) } //! FE8U = 0x0806F3F8 -void sub_806F3F8(struct ProcEfxBG * proc) +void efxopMistyrainBG_Loop(struct ProcEfxBG * proc) { s16 ret = EfxAdvanceFrameLut((s16 *)&proc->timer, (s16 *)&proc->frame, proc->frame_config); @@ -1479,14 +1481,14 @@ void sub_806F3F8(struct ProcEfxBG * proc) u16 ** tsaL = proc->tsal; u16 ** img = proc->img; - sub_806EAA4(proc->anim, *(img + ret)); - sub_806EA38(proc->anim, proc->terminator, *(tsaL + ret), 1); + CRSpell_RegisterBgGfx(proc->anim, *(img + ret)); + CRSpell_WriteBgMap(proc->anim, proc->terminator, *(tsaL + ret), 1); } else { if (ret == -1) { - sub_806E9B4(proc->anim); + ClearCRSpellBgTmBuf(proc->anim); SetDefaultColorEffects_(); Proc_Break(proc); } @@ -1497,19 +1499,19 @@ void sub_806F3F8(struct ProcEfxBG * proc) // clang-format off -struct ProcCmd CONST_DATA gUnknown_085D9924[] = +struct ProcCmd CONST_DATA ProcScr_efxopMistyrainOBJ[] = { PROC_NAME("efxopMistyrainOBJ"), - PROC_SET_END_CB(sub_806F4B4), + PROC_SET_END_CB(efxopMistyrainOBJ_OnEnd), - PROC_REPEAT(sub_806F4C0), + PROC_REPEAT(efxopMistyrainOBJ_Loop_A), PROC_SLEEP(32), - PROC_REPEAT(sub_806F4F8), + PROC_REPEAT(efxopMistyrainOBJ_Loop_B), PROC_SLEEP(11), - PROC_REPEAT(sub_806F530), + PROC_REPEAT(efxopMistyrainOBJ_Loop_C), PROC_SLEEP(22), PROC_END, @@ -1518,31 +1520,31 @@ struct ProcCmd CONST_DATA gUnknown_085D9924[] = // clang-format on //! FE8U = 0x0806F450 -void sub_806F450(struct Anim * anim, struct ProcEfx * parent) +void StartCRSubSpell_efxopMistyrainOBJ(struct Anim * anim, struct ProcEfx * parent) { u32 * scr; - struct ProcEfxOBJ * proc = Proc_Start(gUnknown_085D9924, parent); + struct ProcEfxOBJ * proc = Proc_Start(ProcScr_efxopMistyrainOBJ, parent); proc->anim = anim; scr = FramScr_Unk5D4F90; - proc->anim2 = sub_806E9E4(anim, 1, scr, scr); + proc->anim2 = CRSpellCreateFrontAnim(anim, 1, scr, scr); return; } // clang-format off -struct ProcCmd CONST_DATA gUnknown_085D996C[] = +struct ProcCmd CONST_DATA ProcScr_efxopMistyrainOBJ2[] = { PROC_NAME("efxopMistyrainOBJ2"), - PROC_SET_END_CB(sub_806F4B4), + PROC_SET_END_CB(efxopMistyrainOBJ_OnEnd), - PROC_REPEAT(sub_806F568), + PROC_REPEAT(efxopMistyrainOBJ2_Loop_A), PROC_SLEEP(14), - PROC_REPEAT(sub_806F594), + PROC_REPEAT(efxopMistyrainOBJ2_Loop_B), PROC_END, }; @@ -1550,16 +1552,16 @@ struct ProcCmd CONST_DATA gUnknown_085D996C[] = // clang-format on //! FE8U = 0x0806F47C -struct ProcEfxOBJ * sub_806F47C(struct Anim * anim, struct ProcEfx * parent) +struct ProcEfxOBJ * StartCRSubSpell_efxopMistyrainOBJ2(struct Anim * anim, struct ProcEfx * parent) { struct Anim * frontAnim; u32 * scr; - struct ProcEfxOBJ * proc = Proc_Start(gUnknown_085D996C, parent); + struct ProcEfxOBJ * proc = Proc_Start(ProcScr_efxopMistyrainOBJ2, parent); proc->anim = anim; scr = FramScr_Unk5D4F90; - frontAnim = sub_806E9E4(anim, 0, scr, scr); + frontAnim = CRSpellCreateFrontAnim(anim, 0, scr, scr); proc->anim2 = frontAnim; frontAnim->xPosition -= 56; @@ -1568,14 +1570,14 @@ struct ProcEfxOBJ * sub_806F47C(struct Anim * anim, struct ProcEfx * parent) return proc; } -void sub_806F4B4(struct ProcEfxOBJ * proc) +void efxopMistyrainOBJ_OnEnd(struct ProcEfxOBJ * proc) { AnimDelete(proc->anim2); return; } //! FE8U = 0x0806F4C0 -void sub_806F4C0(struct ProcEfxOBJ * proc) +void efxopMistyrainOBJ_Loop_A(struct ProcEfxOBJ * proc) { struct Anim * anim = proc->anim2; @@ -1585,8 +1587,8 @@ void sub_806F4C0(struct ProcEfxOBJ * proc) anim->pScrCurrent = scr; anim->timer = 0; - sub_806EB2C(proc->anim, Pal_FluxAnimSprites); - sub_806EAFC(proc->anim, Img_FluxAnimSprites_Orb); + CRSpell_RegisterObjPal(proc->anim, Pal_FluxAnimSprites); + CRSpell_RegisterObjGfx(proc->anim, Img_FluxAnimSprites_Orb); Proc_Break(proc); @@ -1594,7 +1596,7 @@ void sub_806F4C0(struct ProcEfxOBJ * proc) } //! FE8U = 0x0806F4F8 -void sub_806F4F8(struct ProcEfxOBJ * proc) +void efxopMistyrainOBJ_Loop_B(struct ProcEfxOBJ * proc) { struct Anim * anim = proc->anim2; @@ -1604,8 +1606,8 @@ void sub_806F4F8(struct ProcEfxOBJ * proc) anim->pScrCurrent = scr; anim->timer = 0; - sub_806EB2C(proc->anim, Pal_FluxAnimSprites); - sub_806EAFC(proc->anim, Img_FluxAnimSprites_Tendrils); + CRSpell_RegisterObjPal(proc->anim, Pal_FluxAnimSprites); + CRSpell_RegisterObjGfx(proc->anim, Img_FluxAnimSprites_Tendrils); Proc_Break(proc); @@ -1613,7 +1615,7 @@ void sub_806F4F8(struct ProcEfxOBJ * proc) } //! FE8U = 0x0806F530 -void sub_806F530(struct ProcEfxOBJ * proc) +void efxopMistyrainOBJ_Loop_C(struct ProcEfxOBJ * proc) { struct Anim * anim = proc->anim2; @@ -1623,8 +1625,8 @@ void sub_806F530(struct ProcEfxOBJ * proc) anim->pScrCurrent = scr; anim->timer = 0; - sub_806EB2C(proc->anim, Pal_FluxAnimSprites); - sub_806EAFC(proc->anim, Img_FluxAnimSprites_SigilVoid); + CRSpell_RegisterObjPal(proc->anim, Pal_FluxAnimSprites); + CRSpell_RegisterObjGfx(proc->anim, Img_FluxAnimSprites_SigilVoid); Proc_Break(proc); @@ -1632,7 +1634,7 @@ void sub_806F530(struct ProcEfxOBJ * proc) } //! FE8U = 0x0806F568 -void sub_806F568(struct ProcEfxOBJ * proc) +void efxopMistyrainOBJ2_Loop_A(struct ProcEfxOBJ * proc) { struct Anim * anim = proc->anim2; @@ -1653,7 +1655,7 @@ void sub_806F568(struct ProcEfxOBJ * proc) } //! FE8U = 0x0806F594 -void sub_806F594(struct ProcEfxOBJ * proc) +void efxopMistyrainOBJ2_Loop_B(struct ProcEfxOBJ * proc) { struct Anim * anim = proc->anim2; @@ -1679,10 +1681,10 @@ struct ProcCmd CONST_DATA ProcScr_efxopMistyrain[] = { PROC_NAME("efxopMistyrain"), - PROC_REPEAT(sub_806F5E0), + PROC_REPEAT(efxopMistyrain_Loop_Main), PROC_SLEEP(170), - PROC_CALL(sub_806E904), + PROC_CALL(EndActiveClassReelSpell), PROC_END, }; @@ -1690,10 +1692,10 @@ struct ProcCmd CONST_DATA ProcScr_efxopMistyrain[] = // clang-format on //! FE8U = 0x0806F5BC -void NewEfxopMistyrain(struct Anim * anim) +void StartClassReelSpellAnimFlux(struct Anim * anim) { struct ProcEfx * proc = Proc_Start(ProcScr_efxopMistyrain, PROC_TREE_3); - SetGlbProcefxopCur(proc); + SetActiveClassReelSpell(proc); proc->anim = anim; proc->timer = 0; @@ -1702,28 +1704,28 @@ void NewEfxopMistyrain(struct Anim * anim) } //! FE8U = 0x0806F5E0 -void sub_806F5E0(struct ProcEfx * proc) +void efxopMistyrain_Loop_Main(struct ProcEfx * proc) { proc->timer++; if (proc->timer == 1) { - sub_806F304(proc->anim, proc); + StartCRSubSpell_efxopMistyrainBG(proc->anim, proc); } if (proc->timer == 16) { - sub_806F450(proc->anim, proc); + StartCRSubSpell_efxopMistyrainOBJ(proc->anim, proc); } if (proc->timer == 75) { - proc->unk_64 = sub_806F47C(proc->anim, proc); + proc->unk_64 = StartCRSubSpell_efxopMistyrainOBJ2(proc->anim, proc); } if (proc->timer == 94) { - sub_806F38C(proc->anim, proc); + StartCRSubSpell_efxopMistyrainBG_2(proc->anim, proc); } if (proc->timer == 114) @@ -1741,10 +1743,10 @@ struct ProcCmd CONST_DATA ProcScr_efxopMyrrh[] = { PROC_NAME("efxopMyrrh"), - PROC_REPEAT(sub_806F668), + PROC_REPEAT(efxopMyrrh_Loop_Main), PROC_SLEEP(50), - PROC_CALL(sub_806E904), + PROC_CALL(EndActiveClassReelSpell), PROC_END, }; @@ -1752,10 +1754,10 @@ struct ProcCmd CONST_DATA ProcScr_efxopMyrrh[] = // clang-format on //! FE8U = 0x0806F648 -void NewEfxopMyrrh(struct Anim * anim) +void StartClassReelSpellAnimMyrrh(struct Anim * anim) { struct ProcEfx * proc = Proc_Start(ProcScr_efxopMyrrh, PROC_TREE_3); - SetGlbProcefxopCur(proc); + SetActiveClassReelSpell(proc); proc->anim = anim; @@ -1763,13 +1765,13 @@ void NewEfxopMyrrh(struct Anim * anim) } //! FE8U = 0x0806F668 -void sub_806F668(ProcPtr proc) +void efxopMyrrh_Loop_Main(ProcPtr proc) { struct BattleAnim * banim = banim_data; LZ77UnCompWram(banim[197 - 1].pal, gPalBackupEkrUnitMaybe); - CpuFastCopy(gPalBackupEkrUnitMaybe + 0x10, gPaletteBuffer + 0x120, 0x20); - CpuFastCopy(gPalBackupEkrUnitMaybe + 0x10, gPaletteBuffer + 0x130, 0x20); + CpuFastCopy(gPalBackupEkrUnitMaybe + 0x10, gPaletteBuffer + 0x120, PLTT_SIZE_4BPP); + CpuFastCopy(gPalBackupEkrUnitMaybe + 0x10, gPaletteBuffer + 0x130, PLTT_SIZE_4BPP); EnablePaletteSync(); @@ -1780,15 +1782,15 @@ void sub_806F668(ProcPtr proc) // clang-format off -struct ProcCmd CONST_DATA gUnknown_085D99EC[] = +struct ProcCmd CONST_DATA ProcScr_efxopEvilEye[] = { - PROC_REPEAT(sub_806F6D4), + PROC_REPEAT(efxopEvilEye_Loop_A), PROC_SLEEP(24), - PROC_REPEAT(sub_806F6EC), + PROC_REPEAT(efxopEvilEye_Loop_B), PROC_SLEEP(72), - PROC_CALL(sub_806E904), + PROC_CALL(EndActiveClassReelSpell), PROC_END, }; @@ -1796,10 +1798,10 @@ struct ProcCmd CONST_DATA gUnknown_085D99EC[] = // clang-format on //! FE8U = 0x0806F6B4 -void sub_806F6B4(struct Anim * anim) +void StartClassReelSpellAnimEvilEye(struct Anim * anim) { - struct ProcEfx * proc = Proc_Start(gUnknown_085D99EC, PROC_TREE_3); - SetGlbProcefxopCur(proc); + struct ProcEfx * proc = Proc_Start(ProcScr_efxopEvilEye, PROC_TREE_3); + SetActiveClassReelSpell(proc); proc->anim = anim; @@ -1807,30 +1809,30 @@ void sub_806F6B4(struct Anim * anim) } //! FE8U = 0x0806F6D4 -void sub_806F6D4(struct ProcEfx * proc) +void efxopEvilEye_Loop_A(struct ProcEfx * proc) { - sub_806F7C0(proc->anim, proc); + StartCRSubSpell_efxopEvilEyeOBJ(proc->anim, proc); Proc_Break(proc); return; } //! FE8U = 0x0806F6EC -void sub_806F6EC(struct ProcEfx * proc) +void efxopEvilEye_Loop_B(struct ProcEfx * proc) { - sub_806F704(proc->anim, proc); + StartCRSubSpell_efxopEvilEyeBG(proc->anim, proc); Proc_Break(proc); return; } // clang-format off -struct ProcCmd CONST_DATA gUnknown_085D9A1C[] = +struct ProcCmd CONST_DATA ProcScr_efxopEvilEyeBG[] = { - PROC_REPEAT(sub_806F75C), + PROC_REPEAT(efxopEvilEyeBG_Loop), PROC_END, }; -u16 * CONST_DATA gUnknown_085D9A2C[] = +u16 * CONST_DATA ImgArray_EvilEye_ClassReel[] = { Img_086C97B4, Img_086C9DAC, @@ -1860,7 +1862,7 @@ u16 * CONST_DATA gUnknown_085D9A2C[] = Img_086D7F20, }; -u16 * CONST_DATA gUnknown_085D9A94[] = +u16 * CONST_DATA TsaArray_EvilEye_ClassReel[] = { Tsa_086D36D4, Tsa_086D37B4, @@ -1890,7 +1892,7 @@ u16 * CONST_DATA gUnknown_085D9A94[] = Tsa_086D9354, }; -u16 * CONST_DATA gUnknown_085D9AFC[] = +u16 * CONST_DATA PalArray_EvilEye_ClassReel[] = { Pal_086D3454, Pal_086D3474, @@ -1923,10 +1925,10 @@ u16 * CONST_DATA gUnknown_085D9AFC[] = // clang-format on //! FE8U = 0x0806F704 -void sub_806F704(struct Anim * anim, struct ProcEfx * parent) +void StartCRSubSpell_efxopEvilEyeBG(struct Anim * anim, struct ProcEfx * parent) { // clang-format off - static const u16 gUnknown_080DF954[] = + static const u16 frames[] = { 0, 3, 1, 3, @@ -1958,28 +1960,28 @@ void sub_806F704(struct Anim * anim, struct ProcEfx * parent) }; // clang-format on - struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); - struct ProcEfxBG * proc = Proc_Start(gUnknown_085D9A1C, parent); + struct AnimMagicFxBuffer * magicFx = GetMagicEffectBufferFor(anim); + struct ProcEfxBG * proc = Proc_Start(ProcScr_efxopEvilEyeBG, parent); proc->anim = anim; proc->timer = 0; proc->frame = 0; - proc->frame_config = gUnknown_080DF954; + proc->frame_config = frames; - proc->tsal = gUnknown_085D9A94; - proc->img = gUnknown_085D9A2C; - proc->pal = gUnknown_085D9AFC; + proc->tsal = TsaArray_EvilEye_ClassReel; + proc->img = ImgArray_EvilEye_ClassReel; + proc->pal = PalArray_EvilEye_ClassReel; magicFx->resetCallback(); - sub_806E95C(proc->anim, magicFx); + SetCRSpellBgPosition(proc->anim, magicFx); return; } //! FE8U = 0x0806F75C -void sub_806F75C(struct ProcEfxBG * proc) +void efxopEvilEyeBG_Loop(struct ProcEfxBG * proc) { s16 ret = EfxAdvanceFrameLut((s16 *)&proc->timer, (s16 *)&proc->frame, proc->frame_config); @@ -1989,15 +1991,15 @@ void sub_806F75C(struct ProcEfxBG * proc) u16 ** img = proc->img; u16 ** pal = proc->pal; - sub_806EA38(proc->anim, 1, *(tsaL + ret), 1); - sub_806EAA4(proc->anim, *(img + ret)); - sub_806EAD4(proc->anim, *(pal + ret)); + CRSpell_WriteBgMap(proc->anim, 1, *(tsaL + ret), 1); + CRSpell_RegisterBgGfx(proc->anim, *(img + ret)); + CRSpell_RegisterBgPal(proc->anim, *(pal + ret)); } else { if (ret == -1) { - sub_806E9B4(proc->anim); + ClearCRSpellBgTmBuf(proc->anim); SetDefaultColorEffects_(); Proc_Break(proc); } @@ -2008,39 +2010,39 @@ void sub_806F75C(struct ProcEfxBG * proc) // clang-format off -struct ProcCmd CONST_DATA gUnknown_085D9B64[] = +struct ProcCmd CONST_DATA ProcScr_efxopEvilEyeOBJ[] = { - PROC_REPEAT(sub_806F820), + PROC_REPEAT(efxopEvilEyeOBJ_Loop), PROC_END, }; // clang-format on //! FE8U = 0x0806F7C0 -void sub_806F7C0(struct Anim * anim, struct ProcEfx * parent) +void StartCRSubSpell_efxopEvilEyeOBJ(struct Anim * anim, struct ProcEfx * parent) { struct Anim * frontAnim; - struct AnimMagicFxBuffer * unused = sub_806E954(anim); - struct ProcEfxOBJ * proc = Proc_Start(gUnknown_085D9B64, parent); + struct AnimMagicFxBuffer * unused = GetMagicEffectBufferFor(anim); + struct ProcEfxOBJ * proc = Proc_Start(ProcScr_efxopEvilEyeOBJ, parent); proc->anim = anim; proc->timer = 0; - frontAnim = sub_806E9E4(anim, 1, gUnknown_086C978C, gUnknown_086C95C0); + frontAnim = CRSpellCreateFrontAnim(anim, 1, gUnknown_086C978C, gUnknown_086C95C0); proc->anim2 = frontAnim; frontAnim->xPosition -= 56; frontAnim->yPosition += 24; - sub_806EB2C(proc->anim, gUnknown_086C93FC); - sub_806EAFC(proc->anim, gUnknown_086C90A4); + CRSpell_RegisterObjPal(proc->anim, Pal_086C93FC); + CRSpell_RegisterObjGfx(proc->anim, Img_086C90A4); return; } //! FE8U = 0x0806F820 -void sub_806F820(struct ProcEfxOBJ * proc) +void efxopEvilEyeOBJ_Loop(struct ProcEfxOBJ * proc) { proc->timer++; @@ -2055,15 +2057,15 @@ void sub_806F820(struct ProcEfxOBJ * proc) // clang-format off -struct ProcCmd CONST_DATA gUnknown_085D9B74[] = +struct ProcCmd CONST_DATA ProcScr_efxopStone[] = { - PROC_REPEAT(sub_806F864), + PROC_REPEAT(efxopStone_Loop_A), PROC_SLEEP(62), - PROC_REPEAT(sub_806F87C), + PROC_REPEAT(efxopStone_Loop_B), PROC_SLEEP(138), - PROC_CALL(sub_806E904), + PROC_CALL(EndActiveClassReelSpell), PROC_END, }; @@ -2071,10 +2073,10 @@ struct ProcCmd CONST_DATA gUnknown_085D9B74[] = // clang-format on //! FE8U = 0x0806F844 -void sub_806F844(struct Anim * anim) +void StartClassReelSpellAnimStone(struct Anim * anim) { - struct ProcEfx * proc = Proc_Start(gUnknown_085D9B74, PROC_TREE_3); - SetGlbProcefxopCur(proc); + struct ProcEfx * proc = Proc_Start(ProcScr_efxopStone, PROC_TREE_3); + SetActiveClassReelSpell(proc); proc->anim = anim; @@ -2082,30 +2084,30 @@ void sub_806F844(struct Anim * anim) } //! FE8U = 0x0806F864 -void sub_806F864(struct ProcEfx * proc) +void efxopStone_Loop_A(struct ProcEfx * proc) { - sub_806F968(proc->anim, proc); + StartCRSubSpell_efxopStoneOBJ(proc->anim, proc); Proc_Break(proc); return; } //! FE8U = 0x0806F87C -void sub_806F87C(struct ProcEfx * proc) +void efxopStone_Loop_B(struct ProcEfx * proc) { - sub_806F894(proc->anim, proc); + StartCRSubSpell_efxopStoneBG(proc->anim, proc); Proc_Break(proc); return; } // clang-format off -struct ProcCmd CONST_DATA gUnknown_085D9BA4[] = +struct ProcCmd CONST_DATA ProcScr_efxopStoneBG[] = { - PROC_REPEAT(sub_806F8F0), + PROC_REPEAT(efxopStoneBG_Loop), PROC_END, }; -u16 * CONST_DATA gUnknown_085D9BB4[] = +u16 * CONST_DATA ImgArray_Stone_ClassReel[] = { Img_086BDB7C, Img_086BE0CC, @@ -2128,7 +2130,7 @@ u16 * CONST_DATA gUnknown_085D9BB4[] = Img_086C7010, }; -u16 * CONST_DATA gUnknown_085D9C00[] = +u16 * CONST_DATA TsaArray_Stone_ClassReel[] = { Tsa_086C796C, Tsa_086C7A2C, @@ -2154,10 +2156,10 @@ u16 * CONST_DATA gUnknown_085D9C00[] = // clang-format on //! FE8U = 0x0806F894 -void sub_806F894(struct Anim * anim, struct ProcEfx * parent) +void StartCRSubSpell_efxopStoneBG(struct Anim * anim, struct ProcEfx * parent) { // clang-format off - static const u16 gUnknown_080DF9BE[] = + static const u16 frames[] = { 0, 4, 1, 4, @@ -2182,29 +2184,29 @@ void sub_806F894(struct Anim * anim, struct ProcEfx * parent) }; // clang-format on - struct AnimMagicFxBuffer * magicFx = sub_806E954(anim); - struct ProcEfxBG * proc = Proc_Start(gUnknown_085D9BA4, parent); + struct AnimMagicFxBuffer * magicFx = GetMagicEffectBufferFor(anim); + struct ProcEfxBG * proc = Proc_Start(ProcScr_efxopStoneBG, parent); proc->anim = anim; proc->timer = 0; proc->frame = 0; - proc->frame_config = gUnknown_080DF9BE; + proc->frame_config = frames; - proc->tsal = gUnknown_085D9C00; - proc->img = gUnknown_085D9BB4; + proc->tsal = TsaArray_Stone_ClassReel; + proc->img = ImgArray_Stone_ClassReel; - sub_806EAD4(anim, Pal_StoneBg); + CRSpell_RegisterBgPal(anim, Pal_StoneBg); magicFx->resetCallback(); - sub_806E95C(proc->anim, magicFx); + SetCRSpellBgPosition(proc->anim, magicFx); return; } //! FE8U = 0x0806F8F0 -void sub_806F8F0(struct ProcEfxBG * proc) +void efxopStoneBG_Loop(struct ProcEfxBG * proc) { s16 ret = EfxAdvanceFrameLut((s16 *)&proc->timer, (s16 *)&proc->frame, proc->frame_config); @@ -2213,8 +2215,8 @@ void sub_806F8F0(struct ProcEfxBG * proc) u16 ** tsaL = proc->tsal; u16 ** img = proc->img; - sub_806EA38(proc->anim, 1, *(tsaL + ret), 1); - sub_806EAA4(proc->anim, *(img + ret)); + CRSpell_WriteBgMap(proc->anim, 1, *(tsaL + ret), 1); + CRSpell_RegisterBgGfx(proc->anim, *(img + ret)); if (ret == 17) { @@ -2230,7 +2232,7 @@ void sub_806F8F0(struct ProcEfxBG * proc) { if (ret == -1) { - sub_806E9B4(proc->anim); + ClearCRSpellBgTmBuf(proc->anim); SetDefaultColorEffects_(); Proc_Break(proc); } @@ -2241,28 +2243,28 @@ void sub_806F8F0(struct ProcEfxBG * proc) // clang-format off -struct ProcCmd CONST_DATA gUnknown_085D9C4C[] = +struct ProcCmd CONST_DATA ProcScr_efxopStoneOBJ[] = { - PROC_REPEAT(sub_806F9D8), + PROC_REPEAT(efxopStoneOBJ_Loop), PROC_END, }; // clang-format on //! FE8U = 0x0806F968 -void sub_806F968(struct Anim * anim, struct ProcEfx * parent) +void StartCRSubSpell_efxopStoneOBJ(struct Anim * anim, struct ProcEfx * parent) { struct Anim * frontAnim; u32 * scr; - struct AnimMagicFxBuffer * unused = sub_806E954(anim); - struct ProcEfxOBJ * proc = Proc_Start(gUnknown_085D9C4C, parent); + struct AnimMagicFxBuffer * unused = GetMagicEffectBufferFor(anim); + struct ProcEfxOBJ * proc = Proc_Start(ProcScr_efxopStoneOBJ, parent); proc->anim = anim; proc->timer = 0; scr = gUnknown_086BDA5C; - frontAnim = sub_806E9E4(anim, 1, scr, scr); + frontAnim = CRSpellCreateFrontAnim(anim, 1, scr, scr); proc->anim2 = frontAnim; frontAnim->xPosition -= 56; @@ -2273,14 +2275,14 @@ void sub_806F968(struct Anim * anim, struct ProcEfx * parent) AnimSort(); - sub_806EB2C(proc->anim, Pal_StoneSprites); - sub_806EAFC(proc->anim, Img_StoneSprites); + CRSpell_RegisterObjPal(proc->anim, Pal_StoneSprites); + CRSpell_RegisterObjGfx(proc->anim, Img_StoneSprites); return; } //! FE8U = 0x0806F9D8 -void sub_806F9D8(struct ProcEfxOBJ * proc) +void efxopStoneOBJ_Loop(struct ProcEfxOBJ * proc) { proc->timer++; diff --git a/src/banim-ekrmainmini.c b/src/banim-ekrmainmini.c index 51e74c221..a50b89682 100644 --- a/src/banim-ekrmainmini.c +++ b/src/banim-ekrmainmini.c @@ -33,7 +33,6 @@ struct ProcEkrUnitMainMini extern ProcPtr gpProcEfxAnimeDrv; -void ExecEfxop(struct Anim *); void sub_805AE58(void *); //! FE8U = 0x0805A3DC @@ -85,7 +84,7 @@ void sub_805A3DC(struct AnimBuffer * pAnimBuf, struct Anim * anim) // _0805A4F8 if (GetAISLayerId(anim) == 0) { - ExecEfxop(anim); + StartClassReelSpellAnim(anim); } // fallthrough @@ -103,7 +102,7 @@ void sub_805A3DC(struct AnimBuffer * pAnimBuf, struct Anim * anim) case 14: // _0805A518 - ExecEfxop(anim); + StartClassReelSpellAnim(anim); break; case 24: diff --git a/src/classchg-sel.c b/src/classchg-sel.c index 8eaa473c5..769e555fb 100644 --- a/src/classchg-sel.c +++ b/src/classchg-sel.c @@ -573,7 +573,7 @@ void sub_80CD47C(int a, int b, int c, int d, int e) { gUnknown_030053E0.u20 = gEkrBuf2; gUnknown_030053E0.u24 = sub_80CD34C; - sub_806E8F0(); + ResetClassReelSpell(); NewEkrUnitMainMini(&gUnknown_030053A0); } diff --git a/src/opinfo.c b/src/opinfo.c index a21fe58d5..6913df38e 100644 --- a/src/opinfo.c +++ b/src/opinfo.c @@ -196,7 +196,7 @@ void ClassReel_Init(struct OpInfoProc* proc) { NewEfxAnimeDrvProc(); - sub_806E8F0(); + ResetClassReelSpell(); proc->unk_38 = 0; proc->unk_3c = 0; @@ -306,7 +306,7 @@ void ClassReel_OnEnd(ProcPtr proc) { EndEfxAnimeDrvProc(); sub_8009A84(0); - sub_806E920(); + EndActiveClassReelBgColorProc(); return; } @@ -1460,9 +1460,9 @@ void ClassInfoDisplay_OnEnd(struct OpInfoClassDisplayProc* proc) { SetPrimaryHBlankHandler(0); EndTalk(); - sub_806E920(); + EndActiveClassReelBgColorProc(); sub_805AE14(&gUnknown_0201DB00); - sub_806E904(); + EndActiveClassReelSpell(); sub_805AA28(gOpInfoData); if (proc->unk_3c != 0) { diff --git a/sym_ewram.txt b/sym_ewram.txt index 0f5fd1f7a..4e11c33d2 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -339,8 +339,8 @@ . = 0x03E1DC; gUnknown_0203E1DC = .; . = 0x03E1E0; gBattleScriptted = .; . = 0x03E1E4; gBaArenaFlag = .; -. = 0x03E1E8; gpProcefxopCur = .; -. = 0x03E1EC; gUnknown_0203E1EC = .; +. = 0x03E1E8; gpActiveClassReelSpellProc = .; +. = 0x03E1EC; gpActiveCRSpellBgColorProc = .; . = 0x03E1F0; . = ALIGN(4); src/mapanim.o(ewram_data); . = ALIGN(4); src/mapanim_scanline.o(ewram_data);