efxmagic-phywpn: decompiled

This commit is contained in:
MokhaLeee 2023-11-22 17:28:16 +00:00
parent 5a06511780
commit f178e5bb39
24 changed files with 1135 additions and 1827 deletions

View File

@ -30,8 +30,8 @@ _0805C968: .4byte ProcScr_efxSong
THUMB_FUNC_END StartSpellAnimSong
THUMB_FUNC_START sub_805C96C
sub_805C96C: @ 0x0805C96C
THUMB_FUNC_START EfxSongMain
EfxSongMain: @ 0x0805C96C
push {r4, r5, r6, r7, lr}
sub sp, #8
adds r5, r0, #0
@ -143,7 +143,7 @@ _0805CA5A:
pop {r0}
bx r0
THUMB_FUNC_END sub_805C96C
THUMB_FUNC_END EfxSongMain
THUMB_FUNC_START sub_805CA64
sub_805CA64: @ 0x0805CA64
@ -189,8 +189,8 @@ _0805CAC0: .4byte gUnknown_08754870
THUMB_FUNC_END sub_805CA64
THUMB_FUNC_START sub_805CAC4
sub_805CAC4: @ 0x0805CAC4
THUMB_FUNC_START EfxSongBgMain
EfxSongBgMain: @ 0x0805CAC4
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
@ -251,7 +251,7 @@ _0805CB32:
.align 2, 0
_0805CB3C: .4byte gEfxBgSemaphore
THUMB_FUNC_END sub_805CAC4
THUMB_FUNC_END EfxSongBgMain
THUMB_FUNC_START sub_805CB40
sub_805CB40: @ 0x0805CB40

File diff suppressed because it is too large Load Diff

View File

@ -1,167 +1,5 @@
.section .data
.global ProcScr_efxALPHA
ProcScr_efxALPHA: @ 0x085D5028
@ PROC_NAME
.short 0x1, 0x0
.word 0x80dc8a0
@ PROC_REPEAT
.short 0x3, 0x0
.word EfxALPHAMain
@ PROC_END
.short 0x0, 0x0
.word 0x0
.global ProcScr_efxCircleWIN
ProcScr_efxCircleWIN: @ 0x085D5040
@ PROC_NAME
.short 0x1, 0x0
.word 0x80dc8ac
@ PROC_REPEAT
.short 0x3, 0x0
.word EfxCircleWINMain
@ PROC_END
.short 0x0, 0x0
.word 0x0
.global ProcScr_efxMagicQUAKE
ProcScr_efxMagicQUAKE: @ 0x085D5058
@ PROC_NAME
.short 0x1, 0x0
.word 0x80dc8bc
@ PROC_REPEAT
.short 0x3, 0x0
.word Loop6C_efxMagicQUAKE
@ PROC_END
.short 0x0, 0x0
.word 0x0
.global ProcScr_efxDummymagic
ProcScr_efxDummymagic: @ 0x085D5070
@ PROC_NAME
.short 0x1, 0x0
.word 0x80dc8cc
@ PROC_REPEAT
.short 0x3, 0x0
.word Loop6C_efxDummymagic
@ PROC_END
.short 0x0, 0x0
.word 0x0
.global ProcScr_efxTeono
ProcScr_efxTeono: @ 0x085D5088
@ PROC_NAME
.short 0x1, 0x0
.word 0x80dc8dc
@ PROC_REPEAT
.short 0x3, 0x0
.word sub_805BF40
@ PROC_END
.short 0x0, 0x0
.word 0x0
.global ProcScr_efxTeonoOBJ
ProcScr_efxTeonoOBJ: @ 0x085D50A0
@ PROC_NAME
.short 0x1, 0x0
.word 0x80dc8e8
@ PROC_REPEAT
.short 0x3, 0x0
.word sub_805C080
@ PROC_REPEAT
.short 0x3, 0x0
.word sub_805C0DC
@ PROC_END
.short 0x0, 0x0
.word 0x0
.global ProcScr_efxTeonoOBJ2
ProcScr_efxTeonoOBJ2: @ 0x085D50C0
@ PROC_NAME
.short 0x1, 0x0
.word 0x80dc8f4
@ PROC_REPEAT
.short 0x3, 0x0
.word sub_805C188
@ PROC_END
.short 0x0, 0x0
.word 0x0
.global ProcScr_efxTeonoSE
ProcScr_efxTeonoSE: @ 0x085D50D8
@ PROC_NAME
.short 0x1, 0x0
.word 0x80dc904
@ PROC_SET_END_CB
.short 0x4, 0x0
.word sub_805C20C
@ PROC_REPEAT
.short 0x3, 0x0
.word sub_805C21C
@ PROC_END
.short 0x0, 0x0
.word 0x0
.global ProcScr_efxArrow
ProcScr_efxArrow: @ 0x085D50F8
@ PROC_NAME
.short 0x1, 0x0
.word 0x80dc910
@ PROC_REPEAT
.short 0x3, 0x0
.word sub_805C29C
@ PROC_END
.short 0x0, 0x0
.word 0x0
.global ProcScr_efxArrowOBJ
ProcScr_efxArrowOBJ: @ 0x085D5110
@ PROC_NAME
.short 0x1, 0x0
.word 0x80dc91c
@ PROC_REPEAT
.short 0x3, 0x0
.word sub_805C3C0
@ PROC_END
.short 0x0, 0x0
.word 0x0
.global ProcScr_efxTeyari
ProcScr_efxTeyari: @ 0x085D5128
@ PROC_NAME
.short 0x1, 0x0
.word 0x80dc928
@ PROC_REPEAT
.short 0x3, 0x0
.word sub_805C7E4
@ PROC_END
.short 0x0, 0x0
.word 0x0
.global ProcScr_efxTeyariOBJ
ProcScr_efxTeyariOBJ: @ 0x085D5140
@ PROC_NAME
.short 0x1, 0x0
.word 0x80dc934
@ PROC_REPEAT
.short 0x3, 0x0
.word sub_805C904
@ PROC_END
.short 0x0, 0x0
.word 0x0
.global ProcScr_efxSong
ProcScr_efxSong: @ 0x085D5158
@ PROC_NAME
@ -169,7 +7,7 @@ ProcScr_efxSong: @ 0x085D5158
.word 0x80dc944
@ PROC_REPEAT
.short 0x3, 0x0
.word sub_805C96C
.word EfxSongMain
@ PROC_END
.short 0x0, 0x0
.word 0x0
@ -182,7 +20,7 @@ ProcScr_efxSongBG: @ 0x085D5170
.word 0x80dc94c
@ PROC_REPEAT
.short 0x3, 0x0
.word sub_805CAC4
.word EfxSongBgMain
@ PROC_END
.short 0x0, 0x0
.word 0x0

View File

@ -0,0 +1,39 @@
.section .data
.global ProcScr_efxALPHA
ProcScr_efxALPHA: @ 0x085D5028
@ PROC_NAME
.short 0x1, 0x0
.word 0x80dc8a0
@ PROC_REPEAT
.short 0x3, 0x0
.word EfxALPHAMain
@ PROC_END
.short 0x0, 0x0
.word 0x0
.global ProcScr_efxCircleWIN
ProcScr_efxCircleWIN: @ 0x085D5040
@ PROC_NAME
.short 0x1, 0x0
.word 0x80dc8ac
@ PROC_REPEAT
.short 0x3, 0x0
.word EfxCircleWINMain
@ PROC_END
.short 0x0, 0x0
.word 0x0
.global ProcScr_efxMagicQUAKE
ProcScr_efxMagicQUAKE: @ 0x085D5058
@ PROC_NAME
.short 0x1, 0x0
.word 0x80dc8bc
@ PROC_REPEAT
.short 0x3, 0x0
.word Loop6C_efxMagicQUAKE
@ PROC_END
.short 0x0, 0x0
.word 0x0

View File

@ -1,6 +1,6 @@
.section .rodata
.incbin "baserom.gba", 0xDC8A0, 0xDC956 - 0xDC8A0
.incbin "baserom.gba", 0xDC944, 0xDC956 - 0xDC944
.global gUnknown_080DC956
gUnknown_080DC956: @ 0x080DC956

View File

@ -1,68 +1,102 @@
.section .data
.include "animscr.inc"
.global gUnknown_085D9C5C
gUnknown_085D9C5C: @ 0x085D9C5C
.incbin "baserom.gba", 0x5D9C5C, 0x400
.global Img_TeonoOBJ
Img_TeonoOBJ: @ 0x085D9C5C
.incbin "./graphics/efxmagic/Img_EfxTeonoOBJ.4bpp.lz"
.global gUnknown_085DA05C
gUnknown_085DA05C: @ 0x085DA05C
.incbin "baserom.gba", 0x5DA05C, 0x308
.global Pal_TeonoOBJ
Pal_TeonoOBJ: @ 0x085DA05C
.incbin "./graphics/efxmagic/Img_EfxTeonoOBJ.gbapal", 0x0, 0x20
.global gUnknown_085DA364
gUnknown_085DA364: @ 0x085DA364
.global Obj_085DA07C
Obj_085DA07C:
AnimSprite_EfxTeonoObj1:
ANIM_SPRITE 0x80004000, 0x100 / 0x20, -0x12, -0x04
ANIM_SPRITE_END
AnimSprite_EfxTeonoObj2:
ANIM_SPRITE 0x80004000, 0x0, -0x29, 0x1
ANIM_SPRITE_END
AnimSprite_EfxTeonoObj3:
ANIM_SPRITE 0x80004000, 0x80 / 0x20, -0x3B, 0x3
ANIM_SPRITE_END
AnimSprite_EfxTeonoObj4:
ANIM_SPRITE 0x80004000, 0x100 / 0x20, -0x4B, 0x3
ANIM_SPRITE_END
AnimSprite_EfxTeonoObj5:
ANIM_SPRITE 0x80004000, 0x0 / 0x20, -0x5B, 0x3
ANIM_SPRITE_END
AnimSprite_EfxTeonoObj6:
ANIM_SPRITE 0x80004000, 0x80 / 0x20, -0x65, -0x1
ANIM_SPRITE_END
AnimSprite_EfxTeonoObj7:
ANIM_SPRITE 0x80004000, 0x100 / 0x20, -0x68, -0x4
ANIM_SPRITE_END
.incbin "baserom.gba", 0x5DA124, 0x5DA364 - 0x5DA124
.global AnimScr_TeonoObjCloseRight
AnimScr_TeonoObjCloseRight: @ 0x085DA364
@ Replacing .incbin "baserom.gba", 0x5DA364, 0x5C
.4byte gUnknown_085DA05C + 0x21
.4byte gUnknown_085DA05C + 0x3a
.4byte gUnknown_085DA05C + 0x51
.4byte gUnknown_085DA05C + 0x6a
.4byte gUnknown_085DA05C + 0x81
.4byte gUnknown_085DA05C + 0x9a
.4byte gUnknown_085DA05C + 0xb1
.4byte gUnknown_085DA05C + 0xc9
.4byte gUnknown_085DA05C + 0xe2
.4byte gUnknown_085DA05C + 0xfb
.4byte gUnknown_085DA05C + 0x112
.4byte gUnknown_085DA05C + 0x136
.4byte gUnknown_085DA05C + 0x15a
.4byte gUnknown_085DA05C + 0x17d
.4byte gUnknown_085DA05C + 0x1a2
.4byte gUnknown_085DA05C + 0x1c5
.4byte gUnknown_085DA05C + 0x1ea
.4byte gUnknown_085DA05C + 0x20d
.4byte gUnknown_085DA05C + 0x232
.4byte gUnknown_085DA05C + 0x255
.4byte gUnknown_085DA05C + 0x27a
.4byte gUnknown_085DA05C + 0x29d
ANIMSCR_FORCE_SPRITE AnimSprite_EfxTeonoObj1, 1
ANIMSCR_FORCE_SPRITE AnimSprite_EfxTeonoObj2, 2
ANIMSCR_FORCE_SPRITE AnimSprite_EfxTeonoObj3, 1
ANIMSCR_FORCE_SPRITE AnimSprite_EfxTeonoObj4, 2
ANIMSCR_FORCE_SPRITE AnimSprite_EfxTeonoObj5, 1
ANIMSCR_FORCE_SPRITE AnimSprite_EfxTeonoObj6, 2
ANIMSCR_FORCE_SPRITE AnimSprite_EfxTeonoObj7, 1
.4byte Obj_085DA07C + 0xA9
.4byte Obj_085DA07C + 0xC2
.4byte Obj_085DA07C + 0xDb
.4byte Obj_085DA07C + 0xF2
.4byte Obj_085DA07C + 0x116
.4byte Obj_085DA07C + 0x13a
.4byte Obj_085DA07C + 0x15d
.4byte Obj_085DA07C + 0x182
.4byte Obj_085DA07C + 0x1A5
.4byte Obj_085DA07C + 0x1Ca
.4byte Obj_085DA07C + 0x1Ed
.4byte Obj_085DA07C + 0x212
.4byte Obj_085DA07C + 0x235
.4byte Obj_085DA07C + 0x25a
.4byte Obj_085DA07C + 0x27d
.4byte 0x80000000
.global gUnknown_085DA3C0
gUnknown_085DA3C0: @ 0x085DA3C0
.global AnimScr_TeonoObjFarRight
AnimScr_TeonoObjFarRight: @ 0x085DA3C0
@ Replacing .incbin "baserom.gba", 0x5DA3C0, 0x20
.4byte gUnknown_085DA05C + 0x21
.4byte gUnknown_085DA05C + 0x39
.4byte gUnknown_085DA05C + 0x51
.4byte gUnknown_085DA05C + 0x6a
.4byte gUnknown_085DA05C + 0x81
.4byte gUnknown_085DA05C + 0x2b6
.4byte gUnknown_085DA05C + 0x2ce
ANIMSCR_FORCE_SPRITE AnimSprite_EfxTeonoObj1, 1
ANIMSCR_FORCE_SPRITE AnimSprite_EfxTeonoObj2, 1
ANIMSCR_FORCE_SPRITE AnimSprite_EfxTeonoObj3, 1
ANIMSCR_FORCE_SPRITE AnimSprite_EfxTeonoObj4, 2
ANIMSCR_FORCE_SPRITE AnimSprite_EfxTeonoObj5, 1
.4byte Obj_085DA07C + 0x296
.4byte Obj_085DA07C + 0x2Ae
.4byte 0x80000000
.global gUnknown_085DA3E0
gUnknown_085DA3E0: @ 0x085DA3E0
.global AnimScr_TeonoObj2Right
AnimScr_TeonoObj2Right: @ 0x085DA3E0
@ Replacing .incbin "baserom.gba", 0x5DA3E0, 0x31C
.4byte gUnknown_085DA05C + 0x2e6
.4byte gUnknown_085DA05C + 0x135
.4byte gUnknown_085DA05C + 0x15a
.4byte gUnknown_085DA05C + 0x17d
.4byte gUnknown_085DA05C + 0x1a2
.4byte gUnknown_085DA05C + 0x1c6
.4byte gUnknown_085DA05C + 0x1e9
.4byte gUnknown_085DA05C + 0x20d
.4byte gUnknown_085DA05C + 0x232
.4byte gUnknown_085DA05C + 0x255
.4byte gUnknown_085DA05C + 0x279
.4byte gUnknown_085DA05C + 0x29d
.4byte Obj_085DA07C + 0x2C6
.4byte Obj_085DA07C + 0x115
.4byte Obj_085DA07C + 0x13a
.4byte Obj_085DA07C + 0x15d
.4byte Obj_085DA07C + 0x182
.4byte Obj_085DA07C + 0x1A6
.4byte Obj_085DA07C + 0x1C9
.4byte Obj_085DA07C + 0x1Ed
.4byte Obj_085DA07C + 0x212
.4byte Obj_085DA07C + 0x235
.4byte Obj_085DA07C + 0x259
.4byte Obj_085DA07C + 0x27d
.4byte 0x80000000
.4byte 0x90004000
.4byte 0xfff20008
.4byte 0x0000fffc
@ -250,194 +284,221 @@ gUnknown_085DA3E0: @ 0x085DA3E0
.4byte 0x00000000
.4byte 0x00000000
.global gUnknown_085DA6FC
gUnknown_085DA6FC: @ 0x085DA6FC
.global AnimScr_TeonoObjCloseLeft
AnimScr_TeonoObjCloseLeft: @ 0x085DA6FC
@ Replacing .incbin "baserom.gba", 0x5DA6FC, 0x5C
.4byte gUnknown_085DA3E0 + 0x35
.4byte gUnknown_085DA3E0 + 0x4e
.4byte gUnknown_085DA3E0 + 0x65
.4byte gUnknown_085DA3E0 + 0x7e
.4byte gUnknown_085DA3E0 + 0x95
.4byte gUnknown_085DA3E0 + 0xae
.4byte gUnknown_085DA3E0 + 0xc5
.4byte gUnknown_085DA3E0 + 0xdd
.4byte gUnknown_085DA3E0 + 0xf6
.4byte gUnknown_085DA3E0 + 0x10f
.4byte gUnknown_085DA3E0 + 0x126
.4byte gUnknown_085DA3E0 + 0x14a
.4byte gUnknown_085DA3E0 + 0x16e
.4byte gUnknown_085DA3E0 + 0x191
.4byte gUnknown_085DA3E0 + 0x1b6
.4byte gUnknown_085DA3E0 + 0x1d9
.4byte gUnknown_085DA3E0 + 0x1fe
.4byte gUnknown_085DA3E0 + 0x221
.4byte gUnknown_085DA3E0 + 0x246
.4byte gUnknown_085DA3E0 + 0x269
.4byte gUnknown_085DA3E0 + 0x28e
.4byte gUnknown_085DA3E0 + 0x2b1
.4byte AnimScr_TeonoObj2Right + 0x35
.4byte AnimScr_TeonoObj2Right + 0x4e
.4byte AnimScr_TeonoObj2Right + 0x65
.4byte AnimScr_TeonoObj2Right + 0x7e
.4byte AnimScr_TeonoObj2Right + 0x95
.4byte AnimScr_TeonoObj2Right + 0xae
.4byte AnimScr_TeonoObj2Right + 0xc5
.4byte AnimScr_TeonoObj2Right + 0xdd
.4byte AnimScr_TeonoObj2Right + 0xf6
.4byte AnimScr_TeonoObj2Right + 0x10f
.4byte AnimScr_TeonoObj2Right + 0x126
.4byte AnimScr_TeonoObj2Right + 0x14a
.4byte AnimScr_TeonoObj2Right + 0x16e
.4byte AnimScr_TeonoObj2Right + 0x191
.4byte AnimScr_TeonoObj2Right + 0x1b6
.4byte AnimScr_TeonoObj2Right + 0x1d9
.4byte AnimScr_TeonoObj2Right + 0x1fe
.4byte AnimScr_TeonoObj2Right + 0x221
.4byte AnimScr_TeonoObj2Right + 0x246
.4byte AnimScr_TeonoObj2Right + 0x269
.4byte AnimScr_TeonoObj2Right + 0x28e
.4byte AnimScr_TeonoObj2Right + 0x2b1
.4byte 0x80000000
.global gUnknown_085DA758
gUnknown_085DA758: @ 0x085DA758
.global AnimScr_TeonoObjFarLeft
AnimScr_TeonoObjFarLeft: @ 0x085DA758
@ Replacing .incbin "baserom.gba", 0x5DA758, 0x20
.4byte gUnknown_085DA3E0 + 0x35
.4byte gUnknown_085DA3E0 + 0x4d
.4byte gUnknown_085DA3E0 + 0x65
.4byte gUnknown_085DA3E0 + 0x7e
.4byte gUnknown_085DA3E0 + 0x95
.4byte gUnknown_085DA3E0 + 0x2ca
.4byte gUnknown_085DA3E0 + 0x2e2
.4byte AnimScr_TeonoObj2Right + 0x35
.4byte AnimScr_TeonoObj2Right + 0x4d
.4byte AnimScr_TeonoObj2Right + 0x65
.4byte AnimScr_TeonoObj2Right + 0x7e
.4byte AnimScr_TeonoObj2Right + 0x95
.4byte AnimScr_TeonoObj2Right + 0x2ca
.4byte AnimScr_TeonoObj2Right + 0x2e2
.4byte 0x80000000
.global gUnknown_085DA778
gUnknown_085DA778: @ 0x085DA778
.global AnimScr_TeonoObj2Left
AnimScr_TeonoObj2Left: @ 0x085DA778
@ Replacing .incbin "baserom.gba", 0x5DA778, 0x34
.4byte gUnknown_085DA3E0 + 0x2fa
.4byte gUnknown_085DA3E0 + 0x149
.4byte gUnknown_085DA3E0 + 0x16e
.4byte gUnknown_085DA3E0 + 0x191
.4byte gUnknown_085DA3E0 + 0x1b6
.4byte gUnknown_085DA3E0 + 0x1da
.4byte gUnknown_085DA3E0 + 0x1fd
.4byte gUnknown_085DA3E0 + 0x221
.4byte gUnknown_085DA3E0 + 0x246
.4byte gUnknown_085DA3E0 + 0x269
.4byte gUnknown_085DA3E0 + 0x28d
.4byte gUnknown_085DA3E0 + 0x2b1
.4byte AnimScr_TeonoObj2Right + 0x2fa
.4byte AnimScr_TeonoObj2Right + 0x149
.4byte AnimScr_TeonoObj2Right + 0x16e
.4byte AnimScr_TeonoObj2Right + 0x191
.4byte AnimScr_TeonoObj2Right + 0x1b6
.4byte AnimScr_TeonoObj2Right + 0x1da
.4byte AnimScr_TeonoObj2Right + 0x1fd
.4byte AnimScr_TeonoObj2Right + 0x221
.4byte AnimScr_TeonoObj2Right + 0x246
.4byte AnimScr_TeonoObj2Right + 0x269
.4byte AnimScr_TeonoObj2Right + 0x28d
.4byte AnimScr_TeonoObj2Right + 0x2b1
.4byte 0x80000000
.global gUnknown_085DA7AC
gUnknown_085DA7AC: @ 0x085DA7AC
.incbin "baserom.gba", 0x5DA7AC, 0xA8
.global Img_EfxArrowOBJ
Img_EfxArrowOBJ: @ 0x085DA7AC
.incbin "./graphics/efxmagic/Img_EfxArrowOBJ.4bpp.lz"
.global gUnknown_085DA854
gUnknown_085DA854: @ 0x085DA854
.incbin "baserom.gba", 0x5DA854, 0x10
.global Obj_085DA7E8
Obj_085DA7E8:
AnimSprite_EfxArrowObj1:
ANIM_SPRITE 0x00004000, 0x000 / 0x20, -0x3D, -0x0E
ANIM_SPRITE 0x00000000, 0x040 / 0x20, -0x2D, -0x0E
ANIM_SPRITE_END
.global gUnknown_085DA864
gUnknown_085DA864: @ 0x085DA864
.incbin "baserom.gba", 0x5DA864, 0x7C
AnimSprite_EfxArrowObj2:
ANIM_SPRITE 0x00004000, 0x000 / 0x20, -0x5D, -0x0E
ANIM_SPRITE 0x00000000, 0x040 / 0x20, -0x4D, -0x0E
ANIM_SPRITE_END
.global gUnknown_085DA8E0
gUnknown_085DA8E0: @ 0x085DA8E0
AnimSprite_EfxArrowObj3:
ANIM_SPRITE 0x00004000, 0x000 / 0x20, -0x7D, -0x0E
ANIM_SPRITE 0x00000000, 0x040 / 0x20, -0x6D, -0x0E
ANIM_SPRITE_END
.global AnimScr_ArrowCloseRight
AnimScr_ArrowCloseRight: @ 0x085DA854
ANIMSCR_FORCE_SPRITE AnimSprite_EfxArrowObj1, 1
ANIMSCR_FORCE_SPRITE AnimSprite_EfxArrowObj2, 1
ANIMSCR_FORCE_SPRITE AnimSprite_EfxArrowObj3, 1
ANIMSCR_BLOCKED
.global AnimScr_ArrowFarRight
AnimScr_ArrowFarRight: @ 0x085DA864
ANIMSCR_FORCE_SPRITE AnimSprite_EfxArrowObj1, 1
ANIMSCR_FORCE_SPRITE AnimSprite_EfxArrowObj2, 1
ANIMSCR_FORCE_SPRITE AnimSprite_EfxArrowObj3, 1
ANIMSCR_BLOCKED
.incbin "baserom.gba", 0x5DA874, 0x6C
.global AnimScr_ArrowCloseLeft
AnimScr_ArrowCloseLeft: @ 0x085DA8E0
.incbin "baserom.gba", 0x5DA8E0, 0x10
.global gUnknown_085DA8F0
gUnknown_085DA8F0: @ 0x085DA8F0
.global AnimScr_ArrowFarLeft
AnimScr_ArrowFarLeft: @ 0x085DA8F0
.incbin "baserom.gba", 0x5DA8F0, 0x10
.global gUnknown_085DA900
gUnknown_085DA900: @ 0x085DA900
.incbin "baserom.gba", 0x5DA900, 0x230
.global Img_SpellJavelin
Img_SpellJavelin: @ 0x085DA900
.incbin "./graphics/efxmagic/Img_SpellJavelin.4bpp.lz"
.global gUnknown_085DAB30
gUnknown_085DAB30: @ 0x085DAB30
.incbin "baserom.gba", 0x5DAB30, 0x20
.global Pal_SpellJavelin
Pal_SpellJavelin: @ 0x085DAB30
.incbin "./graphics/efxmagic/Img_SpellJavelin.gbapal", 0x0, 0x20
.global gUnknown_085DAB50
gUnknown_085DAB50: @ 0x085DAB50
.incbin "baserom.gba", 0x5DAB50, 0x21C
.global Img_SpellJavelinCavalier
Img_SpellJavelinCavalier: @ 0x085DAB50
.incbin "./graphics/efxmagic/Img_SpellJavelinCavalier.4bpp.lz"
.global gUnknown_085DAD6C
gUnknown_085DAD6C: @ 0x085DAD6C
.incbin "baserom.gba", 0x5DAD6C, 0x20
.global Pal_SpellJavelinCavalier
Pal_SpellJavelinCavalier: @ 0x085DAD6C
.incbin "./graphics/efxmagic/Img_SpellJavelinCavalier.gbapal", 0x0, 0x20
.global gUnknown_085DAD8C
gUnknown_085DAD8C: @ 0x085DAD8C
.incbin "baserom.gba", 0x5DAD8C, 0x218
.global Img_SpellJavelinSoldier
Img_SpellJavelinSoldier: @ 0x085DAD8C
.incbin "./graphics/efxmagic/Img_SpellJavelinSoldier.4bpp.lz"
.global gUnknown_085DAFA4
gUnknown_085DAFA4: @ 0x085DAFA4
.incbin "baserom.gba", 0x5DAFA4, 0x20
.global Pal_SpellJavelinSoldier
Pal_SpellJavelinSoldier: @ 0x085DAFA4
.incbin "./graphics/efxmagic/Img_SpellJavelinSoldier.gbapal", 0x0, 0x20
.global gUnknown_085DAFC4
gUnknown_085DAFC4: @ 0x085DAFC4
.incbin "baserom.gba", 0x5DAFC4, 0x21C
.global Img_SpellJavelinPaladin
Img_SpellJavelinPaladin: @ 0x085DAFC4
.incbin "./graphics/efxmagic/Img_SpellJavelinPaladin.4bpp.lz"
.global gUnknown_085DB1E0
gUnknown_085DB1E0: @ 0x085DB1E0
.incbin "baserom.gba", 0x5DB1E0, 0x20
.global Pal_SpellJavelinPaladin
Pal_SpellJavelinPaladin: @ 0x085DB1E0
.incbin "./graphics/efxmagic/Img_SpellJavelinPaladin.gbapal", 0x0, 0x20
.global gUnknown_085DB200
gUnknown_085DB200: @ 0x085DB200
.incbin "baserom.gba", 0x5DB200, 0x22C
.global Img_SpellJavelinPrgasusKnight
Img_SpellJavelinPrgasusKnight: @ 0x085DB200
.incbin "./graphics/efxmagic/Img_SpellJavelinPrgasusKnight.4bpp.lz"
.global gUnknown_085DB42C
gUnknown_085DB42C: @ 0x085DB42C
.incbin "baserom.gba", 0x5DB42C, 0x20
.global Pal_SpellJavelinPrgasusKnight
Pal_SpellJavelinPrgasusKnight: @ 0x085DB42C
.incbin "./graphics/efxmagic/Img_SpellJavelinPrgasusKnight.gbapal", 0x0, 0x20
.global gUnknown_085DB44C
gUnknown_085DB44C: @ 0x085DB44C
.incbin "baserom.gba", 0x5DB44C, 0x248
.global Img_SpellJavelinFalcon
Img_SpellJavelinFalcon: @ 0x085DB44C
.incbin "./graphics/efxmagic/Img_SpellJavelinFalcon.4bpp.lz"
.global gUnknown_085DB694
gUnknown_085DB694: @ 0x085DB694
.incbin "baserom.gba", 0x5DB694, 0x20
.global Pal_SpellJavelinFalcon
Pal_SpellJavelinFalcon: @ 0x085DB694
.incbin "./graphics/efxmagic/Img_SpellJavelinFalcon.gbapal", 0x0, 0x20
.global gUnknown_085DB6B4
gUnknown_085DB6B4: @ 0x085DB6B4
.incbin "baserom.gba", 0x5DB6B4, 0x238
.global Img_SpellJavelinWyvernRider
Img_SpellJavelinWyvernRider: @ 0x085DB6B4
.incbin "./graphics/efxmagic/Img_SpellJavelinWyvernRider.4bpp.lz"
.global gUnknown_085DB8EC
gUnknown_085DB8EC: @ 0x085DB8EC
.incbin "baserom.gba", 0x5DB8EC, 0x20
.global Pal_SpellJavelinWyvernRider
Pal_SpellJavelinWyvernRider: @ 0x085DB8EC
.incbin "./graphics/efxmagic/Img_SpellJavelinWyvernRider.gbapal", 0x0, 0x20
.global gUnknown_085DB90C
gUnknown_085DB90C: @ 0x085DB90C
.incbin "baserom.gba", 0x5DB90C, 0x264
.global Img_SpellJavelinWyvernLord
Img_SpellJavelinWyvernLord: @ 0x085DB90C
.incbin "./graphics/efxmagic/Img_SpellJavelinWyvernLord.4bpp.lz"
.global gUnknown_085DBB70
gUnknown_085DBB70: @ 0x085DBB70
.incbin "baserom.gba", 0x5DBB70, 0x20
.global Pal_SpellJavelinWyvernLord
Pal_SpellJavelinWyvernLord: @ 0x085DBB70
.incbin "./graphics/efxmagic/Img_SpellJavelinWyvernLord.gbapal", 0x0, 0x20
.global gUnknown_085DBB90
gUnknown_085DBB90: @ 0x085DBB90
.incbin "baserom.gba", 0x5DBB90, 0x270
.global Img_SpellJavelinGenerial
Img_SpellJavelinGenerial: @ 0x085DBB90
.incbin "./graphics/efxmagic/Img_SpellJavelinGenerial.4bpp.lz"
.global gUnknown_085DBE00
gUnknown_085DBE00: @ 0x085DBE00
.incbin "baserom.gba", 0x5DBE00, 0x20
.global Pal_SpellJavelinGenerial
Pal_SpellJavelinGenerial: @ 0x085DBE00
.incbin "./graphics/efxmagic/Img_SpellJavelinGenerial.gbapal", 0x0, 0x20
.global gUnknown_085DBE20
gUnknown_085DBE20: @ 0x085DBE20
.incbin "baserom.gba", 0x5DBE20, 0x230
.global Img_SpellJavelinUnk
Img_SpellJavelinUnk: @ 0x085DBE20
.incbin "./graphics/efxmagic/Img_SpellJavelinUnk.4bpp.lz"
.global gUnknown_085DC050
gUnknown_085DC050: @ 0x085DC050
.incbin "baserom.gba", 0x5DC050, 0x1F4
.global Pal_SpellJavelinUnk
Pal_SpellJavelinUnk: @ 0x085DC050
.incbin "./graphics/efxmagic/Img_SpellJavelinUnk.gbapal", 0x0, 0x20
.global gUnknown_085DC244
gUnknown_085DC244: @ 0x085DC244
.incbin "baserom.gba", 0x5DC070, 0x1D4
.global AnimScr_085DC244
AnimScr_085DC244: @ 0x085DC244
@ Replacing .incbin "baserom.gba", 0x5DC244, 0x254
.4byte gUnknown_085DC050 + 0x21
.4byte gUnknown_085DC050 + 0x45
.4byte gUnknown_085DC050 + 0x69
.4byte gUnknown_085DC050 + 0x82
.4byte gUnknown_085DC050 + 0xa5
.4byte gUnknown_085DC050 + 0xca
.4byte gUnknown_085DC050 + 0xee
.4byte gUnknown_085DC050 + 0x112
.4byte gUnknown_085DC050 + 0x135
.4byte gUnknown_085DC050 + 0x15a
.4byte gUnknown_085DC050 + 0x17e
.4byte gUnknown_085DC050 + 0x1a2
.4byte gUnknown_085DC050 + 0x1c7
.4byte gUnknown_085DC050 + 0x1de
.4byte gUnknown_085DC050 + 0x1c6
.4byte gUnknown_085DC050 + 0x1de
.4byte gUnknown_085DC050 + 0x1c6
.4byte gUnknown_085DC050 + 0x1de
.4byte gUnknown_085DC050 + 0x1c6
.4byte gUnknown_085DC050 + 0x1de
.4byte gUnknown_085DC050 + 0x1c5
.4byte gUnknown_085DC050 + 0x1de
.4byte gUnknown_085DC050 + 0x1c5
.4byte gUnknown_085DC050 + 0x1de
.4byte gUnknown_085DC050 + 0x1c5
.4byte gUnknown_085DC050 + 0x1de
.4byte gUnknown_085DC050 + 0x1c5
.4byte gUnknown_085DC050 + 0x1de
.4byte gUnknown_085DC050 + 0x1c5
.4byte Pal_SpellJavelinUnk + 0x21
.4byte Pal_SpellJavelinUnk + 0x45
.4byte Pal_SpellJavelinUnk + 0x69
.4byte Pal_SpellJavelinUnk + 0x82
.4byte Pal_SpellJavelinUnk + 0xa5
.4byte Pal_SpellJavelinUnk + 0xca
.4byte Pal_SpellJavelinUnk + 0xee
.4byte Pal_SpellJavelinUnk + 0x112
.4byte Pal_SpellJavelinUnk + 0x135
.4byte Pal_SpellJavelinUnk + 0x15a
.4byte Pal_SpellJavelinUnk + 0x17e
.4byte Pal_SpellJavelinUnk + 0x1a2
.4byte Pal_SpellJavelinUnk + 0x1c7
.4byte Pal_SpellJavelinUnk + 0x1de
.4byte Pal_SpellJavelinUnk + 0x1c6
.4byte Pal_SpellJavelinUnk + 0x1de
.4byte Pal_SpellJavelinUnk + 0x1c6
.4byte Pal_SpellJavelinUnk + 0x1de
.4byte Pal_SpellJavelinUnk + 0x1c6
.4byte Pal_SpellJavelinUnk + 0x1de
.4byte Pal_SpellJavelinUnk + 0x1c5
.4byte Pal_SpellJavelinUnk + 0x1de
.4byte Pal_SpellJavelinUnk + 0x1c5
.4byte Pal_SpellJavelinUnk + 0x1de
.4byte Pal_SpellJavelinUnk + 0x1c5
.4byte Pal_SpellJavelinUnk + 0x1de
.4byte Pal_SpellJavelinUnk + 0x1c5
.4byte Pal_SpellJavelinUnk + 0x1de
.4byte Pal_SpellJavelinUnk + 0x1c5
.4byte 0x785dc22f
.4byte 0x84000013
.4byte 0x80000000
@ -559,38 +620,38 @@ gUnknown_085DC244: @ 0x085DC244
.4byte 0x00000000
.4byte 0x00000000
.global gUnknown_085DC498
gUnknown_085DC498: @ 0x085DC498
.global AnimScr_085DC498
AnimScr_085DC498: @ 0x085DC498
@ Replacing .incbin "baserom.gba", 0x5DC498, 0x260
.4byte gUnknown_085DC244 + 0x81
.4byte gUnknown_085DC244 + 0xa5
.4byte gUnknown_085DC244 + 0xc9
.4byte gUnknown_085DC244 + 0xe2
.4byte gUnknown_085DC244 + 0x105
.4byte gUnknown_085DC244 + 0x12a
.4byte gUnknown_085DC244 + 0x14e
.4byte gUnknown_085DC244 + 0x172
.4byte gUnknown_085DC244 + 0x195
.4byte gUnknown_085DC244 + 0x1ba
.4byte gUnknown_085DC244 + 0x1de
.4byte gUnknown_085DC244 + 0x202
.4byte gUnknown_085DC244 + 0x227
.4byte gUnknown_085DC244 + 0x23e
.4byte gUnknown_085DC244 + 0x226
.4byte gUnknown_085DC244 + 0x23e
.4byte gUnknown_085DC244 + 0x226
.4byte gUnknown_085DC244 + 0x23e
.4byte gUnknown_085DC244 + 0x226
.4byte gUnknown_085DC244 + 0x23e
.4byte gUnknown_085DC244 + 0x225
.4byte gUnknown_085DC244 + 0x23e
.4byte gUnknown_085DC244 + 0x225
.4byte gUnknown_085DC244 + 0x23e
.4byte gUnknown_085DC244 + 0x225
.4byte gUnknown_085DC244 + 0x23e
.4byte gUnknown_085DC244 + 0x225
.4byte gUnknown_085DC244 + 0x23e
.4byte gUnknown_085DC244 + 0x225
.4byte AnimScr_085DC244 + 0x81
.4byte AnimScr_085DC244 + 0xa5
.4byte AnimScr_085DC244 + 0xc9
.4byte AnimScr_085DC244 + 0xe2
.4byte AnimScr_085DC244 + 0x105
.4byte AnimScr_085DC244 + 0x12a
.4byte AnimScr_085DC244 + 0x14e
.4byte AnimScr_085DC244 + 0x172
.4byte AnimScr_085DC244 + 0x195
.4byte AnimScr_085DC244 + 0x1ba
.4byte AnimScr_085DC244 + 0x1de
.4byte AnimScr_085DC244 + 0x202
.4byte AnimScr_085DC244 + 0x227
.4byte AnimScr_085DC244 + 0x23e
.4byte AnimScr_085DC244 + 0x226
.4byte AnimScr_085DC244 + 0x23e
.4byte AnimScr_085DC244 + 0x226
.4byte AnimScr_085DC244 + 0x23e
.4byte AnimScr_085DC244 + 0x226
.4byte AnimScr_085DC244 + 0x23e
.4byte AnimScr_085DC244 + 0x225
.4byte AnimScr_085DC244 + 0x23e
.4byte AnimScr_085DC244 + 0x225
.4byte AnimScr_085DC244 + 0x23e
.4byte AnimScr_085DC244 + 0x225
.4byte AnimScr_085DC244 + 0x23e
.4byte AnimScr_085DC244 + 0x225
.4byte AnimScr_085DC244 + 0x23e
.4byte AnimScr_085DC244 + 0x225
.4byte 0x785dc483
.4byte 0x84000013
.4byte 0x80000000
@ -715,38 +776,38 @@ gUnknown_085DC498: @ 0x085DC498
.4byte 0x00000000
.4byte 0x00000000
.global gUnknown_085DC6F8
gUnknown_085DC6F8: @ 0x085DC6F8
.global AnimScr_085DC6F8
AnimScr_085DC6F8: @ 0x085DC6F8
@ Replacing .incbin "baserom.gba", 0x5DC6F8, 0x260
.4byte gUnknown_085DC498 + 0x81
.4byte gUnknown_085DC498 + 0x99
.4byte gUnknown_085DC498 + 0xc9
.4byte gUnknown_085DC498 + 0xed
.4byte gUnknown_085DC498 + 0x111
.4byte gUnknown_085DC498 + 0x136
.4byte gUnknown_085DC498 + 0x159
.4byte gUnknown_085DC498 + 0x17e
.4byte gUnknown_085DC498 + 0x1a1
.4byte gUnknown_085DC498 + 0x1c6
.4byte gUnknown_085DC498 + 0x1ea
.4byte gUnknown_085DC498 + 0x20e
.4byte gUnknown_085DC498 + 0x233
.4byte gUnknown_085DC498 + 0x24a
.4byte gUnknown_085DC498 + 0x232
.4byte gUnknown_085DC498 + 0x24a
.4byte gUnknown_085DC498 + 0x232
.4byte gUnknown_085DC498 + 0x24a
.4byte gUnknown_085DC498 + 0x232
.4byte gUnknown_085DC498 + 0x24a
.4byte gUnknown_085DC498 + 0x231
.4byte gUnknown_085DC498 + 0x24a
.4byte gUnknown_085DC498 + 0x231
.4byte gUnknown_085DC498 + 0x24a
.4byte gUnknown_085DC498 + 0x231
.4byte gUnknown_085DC498 + 0x24a
.4byte gUnknown_085DC498 + 0x231
.4byte gUnknown_085DC498 + 0x24a
.4byte gUnknown_085DC498 + 0x231
.4byte AnimScr_085DC498 + 0x81
.4byte AnimScr_085DC498 + 0x99
.4byte AnimScr_085DC498 + 0xc9
.4byte AnimScr_085DC498 + 0xed
.4byte AnimScr_085DC498 + 0x111
.4byte AnimScr_085DC498 + 0x136
.4byte AnimScr_085DC498 + 0x159
.4byte AnimScr_085DC498 + 0x17e
.4byte AnimScr_085DC498 + 0x1a1
.4byte AnimScr_085DC498 + 0x1c6
.4byte AnimScr_085DC498 + 0x1ea
.4byte AnimScr_085DC498 + 0x20e
.4byte AnimScr_085DC498 + 0x233
.4byte AnimScr_085DC498 + 0x24a
.4byte AnimScr_085DC498 + 0x232
.4byte AnimScr_085DC498 + 0x24a
.4byte AnimScr_085DC498 + 0x232
.4byte AnimScr_085DC498 + 0x24a
.4byte AnimScr_085DC498 + 0x232
.4byte AnimScr_085DC498 + 0x24a
.4byte AnimScr_085DC498 + 0x231
.4byte AnimScr_085DC498 + 0x24a
.4byte AnimScr_085DC498 + 0x231
.4byte AnimScr_085DC498 + 0x24a
.4byte AnimScr_085DC498 + 0x231
.4byte AnimScr_085DC498 + 0x24a
.4byte AnimScr_085DC498 + 0x231
.4byte AnimScr_085DC498 + 0x24a
.4byte AnimScr_085DC498 + 0x231
.4byte 0x785dc6e3
.4byte 0x84000013
.4byte 0x80000000
@ -871,38 +932,38 @@ gUnknown_085DC6F8: @ 0x085DC6F8
.4byte 0x00000000
.4byte 0x00000000
.global gUnknown_085DC958
gUnknown_085DC958: @ 0x085DC958
.global AnimScr_085DC958
AnimScr_085DC958: @ 0x085DC958
@ Replacing .incbin "baserom.gba", 0x5DC958, 0x104
.4byte gUnknown_085DC6F8 + 0x81
.4byte gUnknown_085DC6F8 + 0x99
.4byte gUnknown_085DC6F8 + 0xc9
.4byte gUnknown_085DC6F8 + 0xed
.4byte gUnknown_085DC6F8 + 0x111
.4byte gUnknown_085DC6F8 + 0x136
.4byte gUnknown_085DC6F8 + 0x159
.4byte gUnknown_085DC6F8 + 0x17e
.4byte gUnknown_085DC6F8 + 0x1a1
.4byte gUnknown_085DC6F8 + 0x1c6
.4byte gUnknown_085DC6F8 + 0x1ea
.4byte gUnknown_085DC6F8 + 0x20e
.4byte gUnknown_085DC6F8 + 0x233
.4byte gUnknown_085DC6F8 + 0x24a
.4byte gUnknown_085DC6F8 + 0x232
.4byte gUnknown_085DC6F8 + 0x24a
.4byte gUnknown_085DC6F8 + 0x232
.4byte gUnknown_085DC6F8 + 0x24a
.4byte gUnknown_085DC6F8 + 0x232
.4byte gUnknown_085DC6F8 + 0x24a
.4byte gUnknown_085DC6F8 + 0x231
.4byte gUnknown_085DC6F8 + 0x24a
.4byte gUnknown_085DC6F8 + 0x231
.4byte gUnknown_085DC6F8 + 0x24a
.4byte gUnknown_085DC6F8 + 0x231
.4byte gUnknown_085DC6F8 + 0x24a
.4byte gUnknown_085DC6F8 + 0x231
.4byte gUnknown_085DC6F8 + 0x24a
.4byte gUnknown_085DC6F8 + 0x231
.4byte AnimScr_085DC6F8 + 0x81
.4byte AnimScr_085DC6F8 + 0x99
.4byte AnimScr_085DC6F8 + 0xc9
.4byte AnimScr_085DC6F8 + 0xed
.4byte AnimScr_085DC6F8 + 0x111
.4byte AnimScr_085DC6F8 + 0x136
.4byte AnimScr_085DC6F8 + 0x159
.4byte AnimScr_085DC6F8 + 0x17e
.4byte AnimScr_085DC6F8 + 0x1a1
.4byte AnimScr_085DC6F8 + 0x1c6
.4byte AnimScr_085DC6F8 + 0x1ea
.4byte AnimScr_085DC6F8 + 0x20e
.4byte AnimScr_085DC6F8 + 0x233
.4byte AnimScr_085DC6F8 + 0x24a
.4byte AnimScr_085DC6F8 + 0x232
.4byte AnimScr_085DC6F8 + 0x24a
.4byte AnimScr_085DC6F8 + 0x232
.4byte AnimScr_085DC6F8 + 0x24a
.4byte AnimScr_085DC6F8 + 0x232
.4byte AnimScr_085DC6F8 + 0x24a
.4byte AnimScr_085DC6F8 + 0x231
.4byte AnimScr_085DC6F8 + 0x24a
.4byte AnimScr_085DC6F8 + 0x231
.4byte AnimScr_085DC6F8 + 0x24a
.4byte AnimScr_085DC6F8 + 0x231
.4byte AnimScr_085DC6F8 + 0x24a
.4byte AnimScr_085DC6F8 + 0x231
.4byte AnimScr_085DC6F8 + 0x24a
.4byte AnimScr_085DC6F8 + 0x231
.4byte 0x785dc943
.4byte 0x84000013
.4byte 0x80000000

Binary file not shown.

After

Width:  |  Height:  |  Size: 942 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 991 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 972 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1019 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 978 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 989 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 961 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1003 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 996 B

23
include/animscr.inc Normal file
View File

@ -0,0 +1,23 @@
@ anim script macros
@ by Mokha
.macro ANIM_SPRITE header, oam2, x, y
.word \header
.short \oam2
.short \x
.short \y
.short 0
.endm
.macro ANIM_SPRITE_END
ANIM_SPRITE 0x1, 0, 0, 0
.endm
.macro ANIMSCR_FORCE_SPRITE anim_sprite, duration
.4byte \anim_sprite + \duration
.endm
.macro ANIMSCR_BLOCKED
.4byte 0x80000000
.endm

View File

@ -865,43 +865,43 @@ extern u32 AnimScr_EkrBaseKaiten2[];
// extern ??? gUnknown_085D9BB4
// extern ??? gUnknown_085D9C00
// extern ??? gUnknown_085D9C4C
// extern ??? gUnknown_085D9C5C
// extern ??? gUnknown_085DA05C
// extern ??? gUnknown_085DA364
// extern ??? gUnknown_085DA3C0
// extern ??? gUnknown_085DA3E0
// extern ??? gUnknown_085DA6FC
// extern ??? gUnknown_085DA758
// extern ??? gUnknown_085DA778
// extern ??? gUnknown_085DA7AC
// extern ??? gUnknown_085DA854
// extern ??? gUnknown_085DA864
// extern ??? gUnknown_085DA8E0
// extern ??? gUnknown_085DA8F0
// extern ??? gUnknown_085DA900
// extern ??? gUnknown_085DAB30
// extern ??? gUnknown_085DAB50
// extern ??? gUnknown_085DAD6C
// extern ??? gUnknown_085DAD8C
// extern ??? gUnknown_085DAFA4
// extern ??? gUnknown_085DAFC4
// extern ??? gUnknown_085DB1E0
// extern ??? gUnknown_085DB200
// extern ??? gUnknown_085DB42C
// extern ??? gUnknown_085DB44C
// extern ??? gUnknown_085DB694
// extern ??? gUnknown_085DB6B4
// extern ??? gUnknown_085DB8EC
// extern ??? gUnknown_085DB90C
// extern ??? gUnknown_085DBB70
// extern ??? gUnknown_085DBB90
// extern ??? gUnknown_085DBE00
// extern ??? gUnknown_085DBE20
// extern ??? gUnknown_085DC050
// extern ??? gUnknown_085DC244
// extern ??? gUnknown_085DC498
// extern ??? gUnknown_085DC6F8
// extern ??? gUnknown_085DC958
extern u16 Img_TeonoOBJ[];
extern u16 Pal_TeonoOBJ[];
extern u32 AnimScr_TeonoObjCloseRight[];
extern u32 AnimScr_TeonoObjFarRight[];
extern u32 AnimScr_TeonoObj2Right[];
extern u32 AnimScr_TeonoObjCloseLeft[];
extern u32 AnimScr_TeonoObjFarLeft[];
extern u32 AnimScr_TeonoObj2Left[];
extern u16 Img_EfxArrowOBJ[];
extern u32 AnimScr_ArrowCloseRight[];
extern u32 AnimScr_ArrowFarRight[];
extern u32 AnimScr_ArrowCloseLeft[];
extern u32 AnimScr_ArrowFarLeft[];
extern u16 Img_SpellJavelin[];
extern u16 Pal_SpellJavelin[];
extern u16 Img_SpellJavelinCavalier[];
extern u16 Pal_SpellJavelinCavalier[];
extern u16 Img_SpellJavelinSoldier[];
extern u16 Pal_SpellJavelinSoldier[];
extern u16 Img_SpellJavelinPaladin[];
extern u16 Pal_SpellJavelinPaladin[];
extern u16 Img_SpellJavelinPrgasusKnight[];
extern u16 Pal_SpellJavelinPrgasusKnight[];
extern u16 Img_SpellJavelinFalcon[];
extern u16 Pal_SpellJavelinFalcon[];
extern u16 Img_SpellJavelinWyvernRider[];
extern u16 Pal_SpellJavelinWyvernRider[];
extern u16 Img_SpellJavelinWyvernLord[];
extern u16 Pal_SpellJavelinWyvernLord[];
extern u16 Img_SpellJavelinGenerial[];
extern u16 Pal_SpellJavelinGenerial[];
extern u16 Img_SpellJavelinUnk[];
extern u16 Pal_SpellJavelinUnk[];
extern u32 AnimScr_085DC244[];
extern u32 AnimScr_085DC498[];
extern u32 AnimScr_085DC6F8[];
extern u32 AnimScr_085DC958[];
// extern ??? gUnknown_085DCA5C
// extern ??? gUnknown_085DCAF8
extern u16 gUnknown_085DCB10[];

View File

@ -2,6 +2,19 @@
#include "global.h"
#include "anime.h"
#include "efxbattle.h"
struct ProcEfxMagicOBJ {
PROC_HEADER;
STRUCT_PAD(0x29, 0x2C);
/* 2C */ s16 timer;
/* 2E */ s16 terminator;
STRUCT_PAD(0x30, 0x5C);
/* 5C */ struct Anim * anim;
/* 60 */ struct Anim * anim2;
/* 64 */ ProcPtr seproc;
};
typedef void (*SpellAnimFunc)(struct Anim * anim);
extern CONST_DATA SpellAnimFunc gEkrSpellAnimLut[];
@ -284,21 +297,21 @@ void NewEfxALPHA(struct Anim * anim, int a, int b, int c, int d, int e);
// ??? StartSpellThing_MagicQuake(???);
// ??? Loop6C_efxMagicQUAKE(???);
void StartSpellAnimDummy(struct Anim * anim);
// ??? Loop6C_efxDummymagic(???);
void EfxDummymagicMain(struct ProcEfx * proc);
void StartSpellAnimHandAxe(struct Anim * anim);
// ??? sub_805BF40(???);
// ??? sub_805BFDC(???);
// ??? sub_805C080(???);
// ??? sub_805C0DC(???);
// ??? sub_805C104(???);
// ??? sub_805C188(???);
// ??? sub_805C1C8(???);
// ??? sub_805C20C(???);
// ??? sub_805C21C(???);
void EfxTeonoMain(struct ProcEfx * proc);
void NewEfxTeonoOBJ(struct Anim * anim);
void EfxTeonoObjMain(struct ProcEfxMagicOBJ * proc);
void EfxTeonoObjEnd(struct ProcEfxMagicOBJ * proc);
void NewEfxTeonoOBJ2(struct Anim * anim);
void EfxTeonoObj2Main(struct ProcEfxMagicOBJ * proc);
ProcPtr NewEfxTeonoSE(struct Anim * anim, struct Anim * anim2);
void EfxTeonoSeCallBack(struct ProcEfxMagicOBJ * proc);
void EfxTeonoSeMain(struct ProcEfxMagicOBJ * proc);
void StartSpellAnimArrow(struct Anim * anim);
// ??? sub_805C29C(???);
// ??? sub_805C358(???);
// ??? sub_805C3C0(???);
void EfxArrowMain(struct ProcEfx * proc);
void NewEfxArrowOBJ(struct Anim * anim);
void EfxArrowObjMain(struct ProcEfxMagicOBJ * proc);
void StartSpellAnimJavelin(struct Anim * anim);
void StartSpellAnimJavelinCavalier(struct Anim * anim);
void StartSpellAnimJavelinSoldier(struct Anim * anim);
@ -308,15 +321,15 @@ void StartSpellAnimJavelinFalcon(struct Anim * anim);
void StartSpellAnimJavelinWyvernRider(struct Anim * anim);
void StartSpellAnimJavelinWyvernLord(struct Anim * anim);
void StartSpellAnimJavelinGenerial(struct Anim * anim);
void sub_805C72C(struct Anim * anim);
void StartSpellAnimJavelinUnk(struct Anim * anim);
void StartSpellAnimJavelinPaladinF(struct Anim * anim);
// ??? sub_805C7E4(???);
// ??? sub_805C88C(???);
// ??? sub_805C904(???);
void EfxTeyariMain(struct ProcEfx * proc);
void NewEfxTeyariOBJ(struct Anim * anim, int type);
void EfxTeyariObjMain(struct ProcEfxMagicOBJ * proc);
void StartSpellAnimSong(struct Anim * anim);
// ??? sub_805C96C(???);
// ??? EfxSongMain(???);
// ??? sub_805CA64(???);
// ??? sub_805CAC4(???);
// ??? EfxSongBgMain(???);
// ??? sub_805CB40(???);
// ??? sub_805CBA8(???);
void StartSpellAnimDance(struct Anim * anim);

View File

@ -175,7 +175,7 @@ SECTIONS
asm/banim-ekrarena.o(.text);
src/banim-efxmagic.o(.text);
asm/banim-efxmagic-util.o(.text);
asm/banim-efxmagic-phywpn.o(.text);
src/banim-efxmagic-phywpn.o(.text);
asm/banim-efxmagic-5BA64.o(.text);
src/banim-efxmagic-thunder.o(.text);
src/banim-efxmagic-fire.o(.text);
@ -442,6 +442,7 @@ SECTIONS
. = ALIGN(4); src/banim-ekrmain.o(.rodata);
. = ALIGN(4); data/const_data_DAEF0.o(.rodata);
. = ALIGN(4); src/banim-efxmagic.o(.rodata);
. = ALIGN(4); src/banim-efxmagic-phywpn.o(.rodata);
. = ALIGN(4); data/const_data_DAF18.o(.rodata);
. = ALIGN(4); src/banim-efxskill.o(.rodata);
. = ALIGN(4); data/const_data_banimekrdk.o(.rodata);
@ -632,6 +633,8 @@ SECTIONS
. = ALIGN(4); data/banim-ekrmainminifx.o(.data);
. = ALIGN(4); data/data_banim_5B9D5C.o(.data);
. = ALIGN(4); src/banim-efxmagic.o(.data);
. = ALIGN(4); data/banim-efxmagic-utils.o(.data);
. = ALIGN(4); src/banim-efxmagic-phywpn.o(.data);
. = ALIGN(4); data/banim-efxmagic-5D5028.o(.data);
. = ALIGN(4); data/banim-efxmagic-thunder.o(.data);
. = ALIGN(4); data/banim-efxmagic-fire.o(.data);

628
src/banim-efxmagic-phywpn.c Normal file
View File

@ -0,0 +1,628 @@
#include "global.h"
#include "proc.h"
#include "anime.h"
#include "ekrbattle.h"
#include "efxbattle.h"
#include "efxmagic.h"
CONST_DATA struct ProcCmd ProcScr_efxDummymagic[] = {
PROC_NAME("efxDummymagic"),
PROC_REPEAT(EfxDummymagicMain),
PROC_END
};
void StartSpellAnimDummy(struct Anim * anim)
{
struct ProcEfx * proc;
SpellFx_Begin();
SpellFx_ClearBG1Position();
proc = Proc_Start(ProcScr_efxDummymagic, PROC_TREE_3);
proc->anim = anim;
proc->timer = 0;
}
void EfxDummymagicMain(struct ProcEfx * proc)
{
struct Anim * animc = GetAnimAnotherSide(proc->anim);
int time = ++proc->timer;
if (time == 1)
{
animc->state3 |= ANIM_BIT3_TAKE_BACK_ENABLE | ANIM_BIT3_HIT_EFFECT_APPLIED;
return;
}
if (time == 10)
{
if (GetAnimNextRoundType(animc) != ANIM_ROUND_INVALID)
animc->state3 |= ANIM_BIT3_NEXT_ROUND_START;
SpellFx_Finish();
Proc_Break(proc);
return;
}
}
CONST_DATA struct ProcCmd ProcScr_efxTeono[] = {
PROC_NAME("efxTeono"),
PROC_REPEAT(EfxTeonoMain),
PROC_END
};
void StartSpellAnimHandAxe(struct Anim * anim)
{
struct ProcEfx * proc;
SpellFx_Begin();
SpellFx_ClearBG1Position();
proc = Proc_Start(ProcScr_efxTeono, PROC_TREE_3);
proc->anim = anim;
proc->timer = 0;
proc->hitted = CheckRoundMiss(GetAnimRoundTypeAnotherSide(anim));
}
void EfxTeonoMain(struct ProcEfx * proc)
{
struct Anim * animc = GetAnimAnotherSide(proc->anim);
if (++proc->timer == 1)
{
NewEfxFarAttackWithDistance(proc->anim, -1);
NewEfxTeonoOBJ(proc->anim);
if (proc->timer == 1)
{
animc->state3 |= ANIM_BIT3_TAKE_BACK_ENABLE | ANIM_BIT3_HIT_EFFECT_APPLIED;
StartBattleAnimHitEffectsDefault(animc, proc->hitted);
if (GetEfxHpChangeType(animc) != EFX_HPT_NOT_CHANGE)
{
if (CheckRoundCrit(proc->anim) == true)
NewEfxPierceCritical(animc);
else if (proc->hitted != false)
return;
else
NewEfxNormalEffect(proc->anim);
}
if (proc->hitted == false)
EfxPlayHittedSFX(animc);
return;
}
}
if (proc->timer == 0x46)
{
return;
}
if (proc->timer == 0x50)
{
SpellFx_Finish();
Proc_Break(proc);
return;
}
}
CONST_DATA struct ProcCmd ProcScr_efxTeonoOBJ[] = {
PROC_NAME("efxTeonoOBJ"),
PROC_REPEAT(EfxTeonoObjMain),
PROC_REPEAT(EfxTeonoObjEnd),
PROC_END
};
void NewEfxTeonoOBJ(struct Anim * anim)
{
struct Anim * anim2;
struct ProcEfxMagicOBJ * proc;
gEfxBgSemaphore++;
proc = Proc_Start(ProcScr_efxTeonoOBJ, PROC_TREE_3);
proc->anim = anim;
proc->timer = 0;
anim2 = EfxCreateFrontAnim(anim, AnimScr_TeonoObjCloseLeft, AnimScr_TeonoObjCloseRight, AnimScr_TeonoObjFarLeft, AnimScr_TeonoObjFarRight);
proc->anim2 = anim2;
if (GetAnimPosition(anim) == POS_L)
anim2->xPosition += 0x48;
else
anim2->xPosition -= 0x48;
if (gEkrDistanceType == EKR_DISTANCE_CLOSE)
proc->terminator = 35;
else
proc->terminator = 10;
proc->seproc = NewEfxTeonoSE(proc->anim, proc->anim2);
SpellFx_RegisterObjPal(Pal_TeonoOBJ, 0x20);
SpellFx_RegisterObjGfx(Img_TeonoOBJ, 0x1000);
}
void EfxTeonoObjMain(struct ProcEfxMagicOBJ * proc)
{
if (++proc->timer == proc->terminator)
{
gEfxBgSemaphore--;
AnimDelete(proc->anim2);
if (gEkrDistanceType == EKR_DISTANCE_CLOSE)
{
gUnknown_02017758 = 1;
Proc_End(proc->seproc);
Proc_End(proc);
}
else
{
Proc_Break(proc);
}
}
}
void EfxTeonoObjEnd(struct ProcEfxMagicOBJ * proc)
{
gUnknown_02017754 = 0;
Proc_End(proc->seproc);
NewEfxTeonoOBJ2(proc->anim);
Proc_Break(proc);
}
CONST_DATA struct ProcCmd ProcScr_efxTeonoOBJ2[] = {
PROC_NAME("efxTeonoOBJ2"),
PROC_REPEAT(EfxTeonoObj2Main),
PROC_END
};
void NewEfxTeonoOBJ2(struct Anim * anim)
{
struct Anim * anim2;
struct ProcEfxMagicOBJ * proc;
gEfxBgSemaphore++;
proc = Proc_Start(ProcScr_efxTeonoOBJ2, PROC_TREE_3);
proc->anim = anim;
proc->timer = 0;
anim2 = EfxCreateFrontAnim(anim, AnimScr_TeonoObj2Left, AnimScr_TeonoObj2Right, AnimScr_TeonoObj2Left, AnimScr_TeonoObj2Right);
proc->anim2 = anim2;
if (GetAnimPosition(anim) == POS_L)
anim2->xPosition += 0x48;
else
anim2->xPosition -= 0x48;
SpellFx_RegisterObjPal(Pal_TeonoOBJ, 0x20);
SpellFx_RegisterObjGfx(Img_TeonoOBJ, 0x1000);
proc->seproc = NewEfxTeonoSE(proc->anim, proc->anim2);
}
void EfxTeonoObj2Main(struct ProcEfxMagicOBJ * proc)
{
if (++proc->timer == 17)
{
gEfxBgSemaphore--;
gUnknown_02017758 = 1;
Proc_End(proc->seproc);
AnimDelete(proc->anim2);
Proc_Break(proc);
}
}
CONST_DATA struct ProcCmd ProcScr_efxTeonoSE[] = {
PROC_NAME("efxTeonoSE"),
PROC_SET_END_CB(EfxTeonoSeCallBack),
PROC_REPEAT(EfxTeonoSeMain),
PROC_END
};
ProcPtr NewEfxTeonoSE(struct Anim * anim, struct Anim * anim2)
{
struct ProcEfxMagicOBJ * proc;
gEfxBgSemaphore++;
proc = Proc_Start(ProcScr_efxTeonoSE, PROC_TREE_3);
proc->anim = anim;
proc->anim2 = anim2;
proc->timer = 0;
proc->terminator = 1;
PlaySFX(0xCD, 0x100, anim->xPosition, 1);
return proc;
}
void EfxTeonoSeCallBack(struct ProcEfxMagicOBJ * proc)
{
gEfxBgSemaphore--;
}
void EfxTeonoSeMain(struct ProcEfxMagicOBJ * proc)
{
int sound_pos;
if (++proc->timer == 0x8)
{
sound_pos = (u16)proc->anim2->xPosition + GetProperAnimSoundLocation(proc->anim2);
PlaySFX(0xCD, 0x100, (s16)sound_pos, 1);
proc->timer = 0;
if (proc->terminator <= 8)
proc->terminator++;
}
}
CONST_DATA struct ProcCmd ProcScr_efxArrow[] = {
PROC_NAME("efxArrow"),
PROC_REPEAT(EfxArrowMain),
PROC_END
};
void StartSpellAnimArrow(struct Anim * anim)
{
struct ProcEfx * proc;
SpellFx_Begin();
SpellFx_ClearBG1Position();
proc = Proc_Start(ProcScr_efxArrow, PROC_TREE_3);
proc->anim = anim;
proc->timer = 0;
proc->hitted = CheckRoundMiss(GetAnimRoundTypeAnotherSide(anim));
}
void EfxArrowMain(struct ProcEfx * proc)
{
struct Anim * animc = GetAnimAnotherSide(proc->anim);
int frame = EfxGetCamMovDuration();
if (++proc->timer == 1)
{
NewEfxFarAttackWithDistance(proc->anim, -1);
NewEfxArrowOBJ(proc->anim);
PlaySFX(0xCC, 0x100, proc->anim->xPosition, 1);
if (proc->timer == 1)
{
animc->state3 |= ANIM_BIT3_TAKE_BACK_ENABLE | ANIM_BIT3_HIT_EFFECT_APPLIED;
StartBattleAnimHitEffectsDefault(animc, proc->hitted);
if (GetEfxHpChangeType(animc) != EFX_HPT_NOT_CHANGE)
{
if (CheckRoundCrit(proc->anim) == true)
NewEfxPierceCritical(animc);
else if (proc->hitted != false)
return;
else
NewEfxNormalEffect(proc->anim);
}
if (proc->hitted == false)
EfxPlayHittedSFX(animc);
return;
}
}
if (proc->timer == (frame + 9))
{
return;
}
if (proc->timer == (frame + 10))
{
SpellFx_Finish();
Proc_Break(proc);
return;
}
}
CONST_DATA struct ProcCmd ProcScr_efxArrowOBJ[] = {
PROC_NAME("efxArrowOBJ"),
PROC_REPEAT(EfxArrowObjMain),
PROC_END
};
void NewEfxArrowOBJ(struct Anim * anim)
{
struct Anim * anim2;
struct ProcEfxMagicOBJ * proc;
gEfxBgSemaphore++;
proc = Proc_Start(ProcScr_efxArrowOBJ, PROC_TREE_3);
proc->anim = anim;
proc->timer = 0;
proc->anim2 = EfxCreateFrontAnim(anim, AnimScr_ArrowCloseLeft, AnimScr_ArrowCloseRight, AnimScr_ArrowFarLeft, AnimScr_ArrowFarRight);
SpellFx_RegisterObjPal(Pal_TeonoOBJ, 0x20);
SpellFx_RegisterObjGfx(Img_EfxArrowOBJ, 0x60);
}
void EfxArrowObjMain(struct ProcEfxMagicOBJ * proc)
{
if (++proc->timer == 4)
{
gEfxBgSemaphore--;
AnimDelete(proc->anim2);
Proc_Break(proc);
}
}
CONST_DATA struct ProcCmd ProcScr_efxTeyari[] = {
PROC_NAME("efxTeyari"),
PROC_REPEAT(EfxTeyariMain),
PROC_END
};
void StartSpellAnimJavelin(struct Anim * anim)
{
struct ProcEfx * proc;
SpellFx_Begin();
SpellFx_ClearBG1Position();
proc = Proc_Start(ProcScr_efxTeyari, PROC_TREE_3);
proc->anim = anim;
proc->timer = 0;
proc->hitted = CheckRoundMiss(GetAnimRoundTypeAnotherSide(anim));
NewEfxTeyariOBJ(anim, 0);
SpellFx_RegisterObjPal(Pal_SpellJavelin, 0x20);
SpellFx_RegisterObjGfx(Img_SpellJavelin, 0x1000);
}
void StartSpellAnimJavelinCavalier(struct Anim * anim)
{
struct ProcEfx * proc;
SpellFx_Begin();
SpellFx_ClearBG1Position();
proc = Proc_Start(ProcScr_efxTeyari, PROC_TREE_3);
proc->anim = anim;
proc->timer = 0;
proc->hitted = CheckRoundMiss(GetAnimRoundTypeAnotherSide(anim));
NewEfxTeyariOBJ(anim, 1);
SpellFx_RegisterObjPal(Pal_SpellJavelinCavalier, 0x20);
SpellFx_RegisterObjGfx(Img_SpellJavelinCavalier, 0x1000);
}
void StartSpellAnimJavelinSoldier(struct Anim * anim)
{
struct ProcEfx * proc;
SpellFx_Begin();
SpellFx_ClearBG1Position();
proc = Proc_Start(ProcScr_efxTeyari, PROC_TREE_3);
proc->anim = anim;
proc->timer = 0;
proc->hitted = CheckRoundMiss(GetAnimRoundTypeAnotherSide(anim));
NewEfxTeyariOBJ(anim, 0);
SpellFx_RegisterObjPal(Pal_SpellJavelinSoldier, 0x20);
SpellFx_RegisterObjGfx(Img_SpellJavelinSoldier, 0x1000);
}
void StartSpellAnimJavelinPaladin(struct Anim * anim)
{
struct ProcEfx * proc;
SpellFx_Begin();
SpellFx_ClearBG1Position();
proc = Proc_Start(ProcScr_efxTeyari, PROC_TREE_3);
proc->anim = anim;
proc->timer = 0;
proc->hitted = CheckRoundMiss(GetAnimRoundTypeAnotherSide(anim));
NewEfxTeyariOBJ(anim, 1);
SpellFx_RegisterObjPal(Pal_SpellJavelinPaladin, 0x20);
SpellFx_RegisterObjGfx(Img_SpellJavelinPaladin, 0x1000);
}
void StartSpellAnimJavelinPrgasusKnight(struct Anim * anim)
{
struct ProcEfx * proc;
SpellFx_Begin();
SpellFx_ClearBG1Position();
proc = Proc_Start(ProcScr_efxTeyari, PROC_TREE_3);
proc->anim = anim;
proc->timer = 0;
proc->hitted = CheckRoundMiss(GetAnimRoundTypeAnotherSide(anim));
NewEfxTeyariOBJ(anim, 1);
SpellFx_RegisterObjPal(Pal_SpellJavelinPrgasusKnight, 0x20);
SpellFx_RegisterObjGfx(Img_SpellJavelinPrgasusKnight, 0x1000);
}
void StartSpellAnimJavelinFalcon(struct Anim * anim)
{
struct ProcEfx * proc;
SpellFx_Begin();
SpellFx_ClearBG1Position();
proc = Proc_Start(ProcScr_efxTeyari, PROC_TREE_3);
proc->anim = anim;
proc->timer = 0;
proc->hitted = CheckRoundMiss(GetAnimRoundTypeAnotherSide(anim));
NewEfxTeyariOBJ(anim, 1);
SpellFx_RegisterObjPal(Pal_SpellJavelinFalcon, 0x20);
SpellFx_RegisterObjGfx(Img_SpellJavelinFalcon, 0x1000);
}
void StartSpellAnimJavelinWyvernRider(struct Anim * anim)
{
struct ProcEfx * proc;
SpellFx_Begin();
SpellFx_ClearBG1Position();
proc = Proc_Start(ProcScr_efxTeyari, PROC_TREE_3);
proc->anim = anim;
proc->timer = 0;
proc->hitted = CheckRoundMiss(GetAnimRoundTypeAnotherSide(anim));
NewEfxTeyariOBJ(anim, 1);
SpellFx_RegisterObjPal(Pal_SpellJavelinWyvernRider, 0x20);
SpellFx_RegisterObjGfx(Img_SpellJavelinWyvernRider, 0x1000);
}
void StartSpellAnimJavelinWyvernLord(struct Anim * anim)
{
struct ProcEfx * proc;
SpellFx_Begin();
SpellFx_ClearBG1Position();
proc = Proc_Start(ProcScr_efxTeyari, PROC_TREE_3);
proc->anim = anim;
proc->timer = 0;
proc->hitted = CheckRoundMiss(GetAnimRoundTypeAnotherSide(anim));
NewEfxTeyariOBJ(anim, 1);
SpellFx_RegisterObjPal(Pal_SpellJavelinWyvernLord, 0x20);
SpellFx_RegisterObjGfx(Img_SpellJavelinWyvernLord, 0x1000);
}
void StartSpellAnimJavelinGenerial(struct Anim * anim)
{
struct ProcEfx * proc;
SpellFx_Begin();
SpellFx_ClearBG1Position();
proc = Proc_Start(ProcScr_efxTeyari, PROC_TREE_3);
proc->anim = anim;
proc->timer = 0;
proc->hitted = CheckRoundMiss(GetAnimRoundTypeAnotherSide(anim));
NewEfxTeyariOBJ(anim, 1);
SpellFx_RegisterObjPal(Pal_SpellJavelinGenerial, 0x20);
SpellFx_RegisterObjGfx(Img_SpellJavelinGenerial, 0x1000);
}
void StartSpellAnimJavelinUnk(struct Anim * anim)
{
struct ProcEfx * proc;
SpellFx_Begin();
SpellFx_ClearBG1Position();
proc = Proc_Start(ProcScr_efxTeyari, PROC_TREE_3);
proc->anim = anim;
proc->timer = 0;
proc->hitted = CheckRoundMiss(GetAnimRoundTypeAnotherSide(anim));
NewEfxTeyariOBJ(anim, 1);
SpellFx_RegisterObjPal(Pal_SpellJavelinUnk, 0x20);
SpellFx_RegisterObjGfx(Img_SpellJavelinUnk, 0x1000);
}
void StartSpellAnimJavelinPaladinF(struct Anim * anim)
{
struct ProcEfx * proc;
SpellFx_Begin();
SpellFx_ClearBG1Position();
proc = Proc_Start(ProcScr_efxTeyari, PROC_TREE_3);
proc->anim = anim;
proc->timer = 0;
proc->hitted = CheckRoundMiss(GetAnimRoundTypeAnotherSide(anim));
NewEfxTeyariOBJ(anim, 1);
SpellFx_RegisterObjPal(Pal_SpellJavelinPaladin, 0x20);
SpellFx_RegisterObjGfx(Img_SpellJavelinPaladin, 0x1000);
}
void EfxTeyariMain(struct ProcEfx * proc)
{
if (++proc->timer == 1)
{
NewEfxFarAttackWithDistance(proc->anim, -1);
PlaySFX(0xCA, 0x100, proc->anim->xPosition, 1);
if (proc->timer == 1)
{
struct Anim * animc = GetAnimAnotherSide(proc->anim);
animc->state3 |= ANIM_BIT3_TAKE_BACK_ENABLE | ANIM_BIT3_HIT_EFFECT_APPLIED;
StartBattleAnimHitEffectsDefault(animc, proc->hitted);
if (GetEfxHpChangeType(animc) != EFX_HPT_NOT_CHANGE)
{
if (CheckRoundCrit(proc->anim) == true)
NewEfxPierceCritical(animc);
else if (proc->hitted != false)
return;
else
NewEfxNormalEffect(proc->anim);
}
if (proc->hitted == false)
EfxPlayHittedSFX(animc);
return;
}
}
if (proc->timer == 0xE)
{
return;
}
if (proc->timer == 0x10)
{
SpellFx_Finish();
Proc_Break(proc);
return;
}
}
CONST_DATA struct ProcCmd ProcScr_efxTeyariOBJ[] = {
PROC_NAME("efxTeyariOBJ"),
PROC_REPEAT(EfxTeyariObjMain),
PROC_END
};
void NewEfxTeyariOBJ(struct Anim * anim, int type)
{
struct Anim * anim2;
struct ProcEfxMagicOBJ * proc;
u32 * scr1, * scr2;
gEfxBgSemaphore++;
proc = Proc_Start(ProcScr_efxTeyariOBJ, PROC_TREE_3);
proc->anim = anim;
proc->timer = 0;
if (type == 0)
{
scr2 = AnimScr_085DC244;
scr1 = AnimScr_085DC498;
}
else
{
scr2 = AnimScr_085DC6F8;
scr1 = AnimScr_085DC958;
}
anim2 = EfxCreateFrontAnim(anim, scr1, scr2, scr1, scr2);
proc->anim2 = anim2;
if (GetAnimPosition(anim) == POS_L)
anim2->xPosition += 0x38;
else
anim2->xPosition -= 0x38;
}
void EfxTeyariObjMain(struct ProcEfxMagicOBJ * proc)
{
if (++proc->timer == 0xC)
{
gEfxBgSemaphore--;
AnimDelete(proc->anim2);
Proc_Break(proc);
}
}

View File

@ -18,7 +18,7 @@ CONST_DATA SpellAnimFunc gEkrSpellAnimLut[] = {
StartSpellAnimJavelinWyvernRider,
StartSpellAnimJavelinWyvernLord,
StartSpellAnimJavelinGenerial,
sub_805C72C,
StartSpellAnimJavelinUnk,
StartSpellAnimJavelinPaladinF,
StartSpellAnimSong,
StartSpellAnimDance,
@ -458,3 +458,7 @@ void NewEfxALPHA(struct Anim *anim, int a, int b, int c, int d, int e)
proc->unk48 = d;
proc->unk4C = e;
}
const char aEfxalpha[] = "efxALPHA";
const char aEfxcirclewin[] = "efxCircleWIN";
const char aEfxmagicquake[] = "efxMagicQUAKE";