mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-11-16 11:27:33 -08:00
Document wBattleAnimFlags
`anim_clearsprites` was misnamed, so I renamed it to `anim_keepsprites`, and documented it in docs/battle_anim_commands.md
This commit is contained in:
parent
7e93916c8a
commit
80ece33e3e
@ -123,6 +123,13 @@ DARKNESS EQU 1 << DARKNESS_F
|
|||||||
|
|
||||||
ANYTIME EQU MORN | DAY | NITE
|
ANYTIME EQU MORN | DAY | NITE
|
||||||
|
|
||||||
|
; wBattleAnimFlags:: ; d40f
|
||||||
|
const_def
|
||||||
|
const BATTLEANIM_STOP_F ; 0
|
||||||
|
const BATTLEANIM_IN_SUBROUTINE_F ; 1
|
||||||
|
const BATTLEANIM_IN_LOOP_F ; 2
|
||||||
|
const BATTLEANIM_KEEPSPRITES_F ; 3
|
||||||
|
|
||||||
; wPlayerSpriteSetupFlags:: ; d45b
|
; wPlayerSpriteSetupFlags:: ; d45b
|
||||||
PLAYERSPRITESETUP_FACING_MASK EQU %11
|
PLAYERSPRITESETUP_FACING_MASK EQU %11
|
||||||
PLAYERSPRITESETUP_FEMALE_TO_MALE_F EQU 2
|
PLAYERSPRITESETUP_FEMALE_TO_MALE_F EQU 2
|
||||||
|
@ -398,7 +398,7 @@ BattleAnim_ThrowPokeBall:
|
|||||||
anim_jump .Loop
|
anim_jump .Loop
|
||||||
|
|
||||||
.Click:
|
.Click:
|
||||||
anim_clearsprites
|
anim_keepsprites
|
||||||
anim_ret
|
anim_ret
|
||||||
|
|
||||||
.BreakFree:
|
.BreakFree:
|
||||||
|
@ -91,6 +91,7 @@ Caveats:
|
|||||||
- Doesn't work with `anim_4gfx` and `anim_5gfx`.
|
- Doesn't work with `anim_4gfx` and `anim_5gfx`.
|
||||||
- This overwrites previously loaded animation graphics if you've loaded more than 53 tiles (2row) or 66 tiles (1row).
|
- This overwrites previously loaded animation graphics if you've loaded more than 53 tiles (2row) or 66 tiles (1row).
|
||||||
|
|
||||||
|
|
||||||
## `$DB`: `anim_checkpokeball`
|
## `$DB`: `anim_checkpokeball`
|
||||||
|
|
||||||
Sets `BattleAnimVar` to the result of [GetPokeBallWobble](/engine/battle_anims/pokeball_wobble.asm).
|
Sets `BattleAnimVar` to the result of [GetPokeBallWobble](/engine/battle_anims/pokeball_wobble.asm).
|
||||||
@ -196,7 +197,11 @@ Sets `rOBP0` to *colors*.
|
|||||||
Sets `rOBP1` to *colors*.
|
Sets `rOBP1` to *colors*.
|
||||||
|
|
||||||
|
|
||||||
## `$F4`: `anim_clearsprites`
|
## `$F4`: `anim_keepsprites`
|
||||||
|
|
||||||
|
Causes only the palettes to be cleared from the OAM memory when the animation ends, instead of clearing all of the OAM memory. This causes all objects to start using palette 0 (monochrome) when the animation script ends, and whatever objects were on the screen before the last `anim_ret` will stay on the screen.
|
||||||
|
|
||||||
|
This is only used for the Poke Ball animation.
|
||||||
|
|
||||||
|
|
||||||
## `$F5`: `anim_0xf5`
|
## `$F5`: `anim_0xf5`
|
||||||
|
@ -128,10 +128,10 @@ RunBattleAnimScript:
|
|||||||
|
|
||||||
.done
|
.done
|
||||||
ld a, [wBattleAnimFlags]
|
ld a, [wBattleAnimFlags]
|
||||||
bit 0, a
|
bit BATTLEANIM_STOP_F, a
|
||||||
jr z, .playframe
|
jr z, .playframe
|
||||||
|
|
||||||
call BattleAnim_ClearCGB_OAMFlags
|
call BattleAnim_ClearOAM
|
||||||
ret
|
ret
|
||||||
|
|
||||||
BattleAnimClearHud:
|
BattleAnimClearHud:
|
||||||
@ -232,16 +232,17 @@ Unreferenced_Functioncc220:
|
|||||||
call BattleAnimDelayFrame
|
call BattleAnimDelayFrame
|
||||||
ret
|
ret
|
||||||
|
|
||||||
BattleAnim_ClearCGB_OAMFlags:
|
BattleAnim_ClearOAM:
|
||||||
ld a, [wBattleAnimFlags]
|
ld a, [wBattleAnimFlags]
|
||||||
bit 3, a
|
bit BATTLEANIM_KEEPSPRITES_F, a
|
||||||
jr z, .delete
|
jr z, .delete
|
||||||
|
|
||||||
|
; Instead of deleting the sprites, make them all use palette 0 (monochrome)
|
||||||
ld hl, wVirtualOAMSprite00Attributes
|
ld hl, wVirtualOAMSprite00Attributes
|
||||||
ld c, NUM_SPRITE_OAM_STRUCTS
|
ld c, NUM_SPRITE_OAM_STRUCTS
|
||||||
.loop
|
.loop
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
and $f0
|
and ~PALETTE_MASK & ~VRAM_BANK_1
|
||||||
ld [hli], a
|
ld [hli], a
|
||||||
rept SPRITEOAMSTRUCT_LENGTH + -1
|
rept SPRITEOAMSTRUCT_LENGTH + -1
|
||||||
inc hl
|
inc hl
|
||||||
@ -289,10 +290,10 @@ RunBattleAnimCommand:
|
|||||||
|
|
||||||
; Return from a subroutine.
|
; Return from a subroutine.
|
||||||
ld hl, wBattleAnimFlags
|
ld hl, wBattleAnimFlags
|
||||||
bit 1, [hl]
|
bit BATTLEANIM_IN_SUBROUTINE_F, [hl]
|
||||||
jr nz, .do_anim
|
jr nz, .do_anim
|
||||||
|
|
||||||
set 0, [hl]
|
set BATTLEANIM_STOP_F, [hl]
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.not_done_with_anim
|
.not_done_with_anim
|
||||||
@ -361,7 +362,7 @@ BattleAnimCommands::
|
|||||||
dw BattleAnimCmd_BGP
|
dw BattleAnimCmd_BGP
|
||||||
dw BattleAnimCmd_OBP0
|
dw BattleAnimCmd_OBP0
|
||||||
dw BattleAnimCmd_OBP1
|
dw BattleAnimCmd_OBP1
|
||||||
dw BattleAnimCmd_ClearSprites
|
dw BattleAnimCmd_KeepSprites
|
||||||
dw BattleAnimCmd_F5
|
dw BattleAnimCmd_F5
|
||||||
dw BattleAnimCmd_F6
|
dw BattleAnimCmd_F6
|
||||||
dw BattleAnimCmd_F7
|
dw BattleAnimCmd_F7
|
||||||
@ -382,7 +383,7 @@ BattleAnimCmd_ED:
|
|||||||
|
|
||||||
BattleAnimCmd_Ret:
|
BattleAnimCmd_Ret:
|
||||||
ld hl, wBattleAnimFlags
|
ld hl, wBattleAnimFlags
|
||||||
res 1, [hl]
|
res BATTLEANIM_IN_SUBROUTINE_F, [hl]
|
||||||
ld hl, wBattleAnimParent
|
ld hl, wBattleAnimParent
|
||||||
ld e, [hl]
|
ld e, [hl]
|
||||||
inc hl
|
inc hl
|
||||||
@ -413,7 +414,7 @@ BattleAnimCmd_Call:
|
|||||||
inc hl
|
inc hl
|
||||||
ld [hl], d
|
ld [hl], d
|
||||||
ld hl, wBattleAnimFlags
|
ld hl, wBattleAnimFlags
|
||||||
set 1, [hl]
|
set BATTLEANIM_IN_SUBROUTINE_F, [hl]
|
||||||
ret
|
ret
|
||||||
|
|
||||||
BattleAnimCmd_Jump:
|
BattleAnimCmd_Jump:
|
||||||
@ -430,12 +431,12 @@ BattleAnimCmd_Jump:
|
|||||||
BattleAnimCmd_Loop:
|
BattleAnimCmd_Loop:
|
||||||
call GetBattleAnimByte
|
call GetBattleAnimByte
|
||||||
ld hl, wBattleAnimFlags
|
ld hl, wBattleAnimFlags
|
||||||
bit 2, [hl]
|
bit BATTLEANIM_IN_LOOP_F, [hl]
|
||||||
jr nz, .continue_loop
|
jr nz, .continue_loop
|
||||||
and a
|
and a
|
||||||
jr z, .perpetual
|
jr z, .perpetual
|
||||||
dec a
|
dec a
|
||||||
set 2, [hl]
|
set BATTLEANIM_IN_LOOP_F, [hl]
|
||||||
ld [wBattleAnimLoops], a
|
ld [wBattleAnimLoops], a
|
||||||
.continue_loop
|
.continue_loop
|
||||||
ld hl, wBattleAnimLoops
|
ld hl, wBattleAnimLoops
|
||||||
@ -456,7 +457,7 @@ BattleAnimCmd_Loop:
|
|||||||
|
|
||||||
.return_from_loop
|
.return_from_loop
|
||||||
ld hl, wBattleAnimFlags
|
ld hl, wBattleAnimFlags
|
||||||
res 2, [hl]
|
res BATTLEANIM_IN_LOOP_F, [hl]
|
||||||
ld hl, wBattleAnimAddress
|
ld hl, wBattleAnimAddress
|
||||||
ld e, [hl]
|
ld e, [hl]
|
||||||
inc hl
|
inc hl
|
||||||
@ -1155,9 +1156,9 @@ BattleAnimCmd_OAMOff:
|
|||||||
ldh [hOAMUpdate], a
|
ldh [hOAMUpdate], a
|
||||||
ret
|
ret
|
||||||
|
|
||||||
BattleAnimCmd_ClearSprites:
|
BattleAnimCmd_KeepSprites:
|
||||||
ld hl, wBattleAnimFlags
|
ld hl, wBattleAnimFlags
|
||||||
set 3, [hl]
|
set BATTLEANIM_KEEPSPRITES_F, [hl]
|
||||||
ret
|
ret
|
||||||
|
|
||||||
BattleAnimCmd_F5:
|
BattleAnimCmd_F5:
|
||||||
|
@ -233,7 +233,7 @@ anim_obp1: MACRO
|
|||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
enum anim_clearsprites_command ; $f4
|
enum anim_clearsprites_command ; $f4
|
||||||
anim_clearsprites: MACRO
|
anim_keepsprites: MACRO
|
||||||
db anim_clearsprites_command
|
db anim_clearsprites_command
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user