pokeemerald/asm/macros/battle_anim_script.inc

286 lines
4.1 KiB
PHP
Raw Normal View History

2017-12-31 16:28:57 +01:00
@ commands
2018-12-02 19:24:06 +01:00
.macro loadspritegfx tag:req
2017-12-31 16:28:57 +01:00
.byte 0x0
2018-12-02 19:24:06 +01:00
.2byte \tag
2017-12-31 16:28:57 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro unloadspritegfx tag:req
2017-12-31 16:28:57 +01:00
.byte 0x1
2018-12-02 19:24:06 +01:00
.2byte \tag
2017-12-31 16:28:57 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro createsprite template:req, anim_battler:req, subpriority_offset:req, argv:vararg
2017-12-31 16:28:57 +01:00
.byte 0x02
.4byte \template
2018-11-13 22:19:52 +01:00
.if \anim_battler == ANIM_TARGET
.byte 0x80 | (\subpriority_offset & 0x7F)
.else
.byte (\subpriority_offset & 0x7F)
.endif
.byte (.Lsprite_\@_2 - .Lsprite_\@_1) / 2
.Lsprite_\@_1:
.2byte \argv
.Lsprite_\@_2:
.endm
2018-12-02 19:24:06 +01:00
.macro createvisualtask addr:req, priority:req, argv:vararg
2017-12-31 16:28:57 +01:00
.byte 0x03
.4byte \addr
.byte \priority
.byte (.Lcreatetask_\@_2 - .Lcreatetask_\@_1) / 2
.Lcreatetask_\@_1:
.2byte \argv
.Lcreatetask_\@_2:
.endm
2018-12-02 19:24:06 +01:00
.macro delay param0:req
2017-12-31 16:28:57 +01:00
.byte 0x4
.byte \param0
.endm
.macro waitforvisualfinish
.byte 0x5
.endm
.macro hang1
.byte 0x6
.endm
.macro hang2
.byte 0x7
.endm
.macro end
.byte 0x8
.endm
2018-12-02 19:24:06 +01:00
.macro playse se:req
2017-12-31 16:28:57 +01:00
.byte 0x9
2018-12-02 19:24:06 +01:00
.2byte \se
2017-12-31 16:28:57 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro monbg battler:req
2017-12-31 16:28:57 +01:00
.byte 0xa
2018-09-01 18:36:08 +02:00
.byte \battler
2017-12-31 16:28:57 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro clearmonbg battler:req
2017-12-31 16:28:57 +01:00
.byte 0xb
2018-09-01 18:36:08 +02:00
.byte \battler
2017-12-31 16:28:57 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro setalpha eva:req, evb:req
2018-09-12 22:58:03 +02:00
.byte 0x0C
.2byte ((\evb) << 8) | (\eva)
2017-12-31 16:28:57 +01:00
.endm
.macro blendoff
.byte 0xd
.endm
2018-12-02 19:24:06 +01:00
.macro call param0:req
2017-12-31 16:28:57 +01:00
.byte 0xe
.4byte \param0
.endm
.macro return
.byte 0xf
.endm
2018-12-02 19:24:06 +01:00
.macro setarg param0:req, param1:req
2017-12-31 16:28:57 +01:00
.byte 0x10
.byte \param0
.2byte \param1
.endm
2018-12-02 19:24:06 +01:00
.macro choosetwoturnanim param0:req, param1:req
2017-12-31 16:28:57 +01:00
.byte 0x11
.4byte \param0
.4byte \param1
.endm
2018-12-02 19:24:06 +01:00
.macro jumpifmoveturn param0:req, ptr:req
2017-12-31 16:28:57 +01:00
.byte 0x12
.byte \param0
2018-12-02 19:24:06 +01:00
.4byte \ptr
2017-12-31 16:28:57 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro goto ptr:req
2017-12-31 16:28:57 +01:00
.byte 0x13
2018-12-02 19:24:06 +01:00
.4byte \ptr
2017-12-31 16:28:57 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro fadetobg bg:req
2017-12-31 16:28:57 +01:00
.byte 0x14
2018-12-02 19:24:06 +01:00
.byte \bg
2017-12-31 16:28:57 +01:00
.endm
.macro restorebg
.byte 0x15
.endm
.macro waitbgfadeout
.byte 0x16
.endm
.macro waitbgfadein
.byte 0x17
.endm
2018-12-02 19:24:06 +01:00
.macro changebg bg:req
2017-12-31 16:28:57 +01:00
.byte 0x18
2018-12-02 19:24:06 +01:00
.byte \bg
2017-12-31 16:28:57 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro playsewithpan se:req, pan:req
2017-12-31 16:28:57 +01:00
.byte 0x19
2018-12-02 19:24:06 +01:00
.2byte \se
.byte \pan
2017-12-31 16:28:57 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro setpan pan:req
2017-12-31 16:28:57 +01:00
.byte 0x1a
2018-12-02 19:24:06 +01:00
.byte \pan
2017-12-31 16:28:57 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro panse_1B se:req, param1:req, param2:req, param3:req, param4
2017-12-31 16:28:57 +01:00
.byte 0x1b
2018-12-02 19:24:06 +01:00
.2byte \se
2017-12-31 16:28:57 +01:00
.byte \param1
.byte \param2
.byte \param3
.byte \param4
.endm
2019-04-02 08:36:22 +02:00
.macro loopsewithpan se:req, pan:req, wait:req, times:req
2017-12-31 16:28:57 +01:00
.byte 0x1c
2018-12-02 19:24:06 +01:00
.2byte \se
2019-04-02 08:36:22 +02:00
.byte \pan
.byte \wait
.byte \times
2017-12-31 16:28:57 +01:00
.endm
2019-04-02 08:36:22 +02:00
.macro waitplaysewithpan se:req, pan:req, wait:req
2017-12-31 16:28:57 +01:00
.byte 0x1d
2018-12-02 19:24:06 +01:00
.2byte \se
2019-04-02 08:36:22 +02:00
.byte \pan
.byte \wait
2017-12-31 16:28:57 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro setbldcnt param0:req
2017-12-31 16:28:57 +01:00
.byte 0x1e
.2byte \param0
.endm
2018-12-02 19:24:06 +01:00
.macro createsoundtask addr:req, argv:vararg
2017-12-31 16:28:57 +01:00
.byte 0x1F
.4byte \addr
.byte (.Lcreatetask_1F_\@_2 - .Lcreatetask_1F_\@_1) / 2
.Lcreatetask_1F_\@_1:
.2byte \argv
.Lcreatetask_1F_\@_2:
.endm
.macro waitsound
.byte 0x20
.endm
2018-12-02 19:24:06 +01:00
.macro jumpargeq param0:req, param1:req, ptr:req
2017-12-31 16:28:57 +01:00
.byte 0x21
.byte \param0
.2byte \param1
2018-12-02 19:24:06 +01:00
.4byte \ptr
2017-12-31 16:28:57 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro monbg_22 battler:req
2017-12-31 16:28:57 +01:00
.byte 0x22
2018-09-01 18:36:08 +02:00
.byte \battler
2017-12-31 16:28:57 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro clearmonbg_23 battler:req
2017-12-31 16:28:57 +01:00
.byte 0x23
2018-09-01 18:36:08 +02:00
.byte \battler
2017-12-31 16:28:57 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro jumpifcontest ptr:req
2017-12-31 16:28:57 +01:00
.byte 0x24
2018-12-02 19:24:06 +01:00
.4byte \ptr
2017-12-31 16:28:57 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro fadetobgfromset param0:req, param1:req, param2:req
2017-12-31 16:28:57 +01:00
.byte 0x25
.byte \param0
.byte \param1
.byte \param2
.endm
2018-12-02 19:24:06 +01:00
.macro panse_26 se:req, param1:req, param2:req, param3:req, param4
2017-12-31 16:28:57 +01:00
.byte 0x26
2018-12-02 19:24:06 +01:00
.2byte \se
2017-12-31 16:28:57 +01:00
.byte \param1
.byte \param2
.byte \param3
.byte \param4
.endm
2018-12-02 19:24:06 +01:00
.macro panse_27 se:req, param1:req, param2:req, param3:req, param4
2017-12-31 16:28:57 +01:00
.byte 0x27
2018-12-02 19:24:06 +01:00
.2byte \se
2017-12-31 16:28:57 +01:00
.byte \param1
.byte \param2
.byte \param3
.byte \param4
.endm
2018-12-02 19:24:06 +01:00
.macro monbgprio_28 battler:req
2017-12-31 16:28:57 +01:00
.byte 0x28
2018-09-01 18:36:08 +02:00
.byte \battler
2017-12-31 16:28:57 +01:00
.endm
.macro monbgprio_29
.byte 0x29
.endm
2018-12-02 19:24:06 +01:00
.macro monbgprio_2A battler:req
2017-12-31 16:28:57 +01:00
.byte 0x2a
2018-09-01 18:36:08 +02:00
.byte \battler
2017-12-31 16:28:57 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro invisible battler:req
2017-12-31 16:28:57 +01:00
.byte 0x2b
2018-09-01 18:36:08 +02:00
.byte \battler
2017-12-31 16:28:57 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro visible battler:req
2017-12-31 16:28:57 +01:00
.byte 0x2c
2018-09-01 18:36:08 +02:00
.byte \battler
2017-12-31 16:28:57 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro doublebattle_2D battler:req
2017-12-31 16:28:57 +01:00
.byte 0x2d
2018-09-01 18:36:08 +02:00
.byte \battler
2017-12-31 16:28:57 +01:00
.endm
2018-12-02 19:24:06 +01:00
.macro doublebattle_2E battler:req
2017-12-31 16:28:57 +01:00
.byte 0x2e
2018-09-01 18:36:08 +02:00
.byte \battler
2017-12-31 16:28:57 +01:00
.endm
.macro stopsound
.byte 0x2f
.endm
2018-09-10 21:19:19 +02:00
@ useful macros
2018-12-02 19:24:06 +01:00
.macro jumpreteq value:req, ptr:req
2018-09-10 21:19:19 +02:00
jumpargeq ARG_RET_ID, \value, \ptr
.endm
2018-12-02 19:24:06 +01:00
.macro jumprettrue ptr:req
2018-09-10 21:19:19 +02:00
jumpreteq TRUE, \ptr
.endm
2018-12-02 19:24:06 +01:00
.macro jumpretfalse ptr:req
2018-09-10 21:19:19 +02:00
jumpreteq FALSE, \ptr
.endm