Split "gfx anims" into "pic anims" and "sprite anims"

Fixes #876
This commit is contained in:
Rangi
2022-06-22 21:07:46 -04:00
committed by Rangi
parent d3da137de8
commit a2e8f078a4
11 changed files with 1079 additions and 1059 deletions

View File

@@ -338,6 +338,11 @@ DEF anim_enemyfeetobj EQUS "anim_battlergfx_2row"
DEF anim_playerheadobj EQUS "anim_battlergfx_1row"
DEF anim_clearsprites EQUS "anim_keepsprites"
; macros/scripts/oam_anims.asm
DEF dorestart EQUS "oamrestart"
DEF dowait EQUS "oamwait"
DEF delanim EQUS "oamdel"
; engine/events/std_scripts.asm
DEF pokecenternurse EQUS "PokecenterNurseScript"
DEF difficultbookshelf EQUS "DifficultBookshelfScript"

View File

@@ -1,53 +0,0 @@
; pic + oam animations
MACRO frame
db \1
DEF x = \2
if _NARG > 2
rept _NARG - 2
DEF x |= 1 << (\3 + 1)
shift
endr
endc
db x
ENDM
const_def -1, -1
const endanim_command ; $ff
MACRO endanim
db endanim_command
ENDM
const dorestart_command ; $fe
MACRO dorestart
db dorestart_command
ENDM
const dowait_command ; $fd
MACRO dowait
db dowait_command
db \1 ; frames
ENDM
const delanim_command ; $fc
MACRO delanim
; Removes the object from the screen, as opposed to `endanim` which just stops all motion
db delanim_command
ENDM
; Used for pic animations
const_def -2, -1
const setrepeat_command ; $fe
MACRO setrepeat
db setrepeat_command
db \1 ; amount of times to repeat
ENDM
const dorepeat_command ; $fd
MACRO dorepeat
db dorepeat_command
db \1 ; command offset to jump to
ENDM

View File

@@ -0,0 +1,38 @@
; Battle and sprite OAM animations
MACRO oamframe
db \1 ; duration
DEF x = \2
assert !(x & (1 << (OAM_X_FLIP + 1) | 1 << (OAM_Y_FLIP + 1))), \
"oamframe duration overflows into X/Y flip bits"
if _NARG > 2
rept _NARG - 2
DEF x |= 1 << (\3 + 1)
shift
endr
endc
db x ; flags
ENDM
const_def -1, -1
const oamend_command ; $ff
MACRO oamend
db oamend_command
ENDM
const oamrestart_command ; $fe
MACRO oamrestart
db oamrestart_command
ENDM
const oamwait_command ; $fd
MACRO oamwait
db oamwait_command
db \1 ; frames
ENDM
const oamdelete_command ; $fc
MACRO oamdelete
db oamdelete_command
ENDM

View File

@@ -0,0 +1,28 @@
MACRO frame
if _NARG <= 2
db \1 ; index
db \2 ; duration
else
; LEGACY: Support for the old name of "oamanim"
oamanim \#
endc
ENDM
const_def -1, -1
const endanim_command ; $ff
MACRO endanim
db endanim_command
ENDM
const setrepeat_command ; $fe
MACRO setrepeat
db setrepeat_command
db \1 ; amount of times to repeat
ENDM
const dorepeat_command ; $fd
MACRO dorepeat
db dorepeat_command
db \1 ; command offset to jump to
ENDM