summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--constants/battle_anim_constants.asm5
-rw-r--r--data/battle_anims/objects.asm8
-rw-r--r--engine/battle_anims/anim_commands.asm66
-rw-r--r--engine/battle_anims/core.asm2
4 files changed, 43 insertions, 38 deletions
diff --git a/constants/battle_anim_constants.asm b/constants/battle_anim_constants.asm
index 58e19462e..87e9e0cae 100644
--- a/constants/battle_anim_constants.asm
+++ b/constants/battle_anim_constants.asm
@@ -26,6 +26,9 @@
const BATTLEANIMSTRUCT_17
BATTLEANIMSTRUCT_LENGTH EQU const_value
+; Start tile for battle animation graphics
+BATTLEANIM_BASE_TILE EQU 7 * 7 ; Maximum size of a pokemon picture
+
; BattleAnimObjects indexes (see data/battle_anims/objects.asm)
const_def
const ANIM_OBJ_00
@@ -804,6 +807,8 @@ BATTLEANIMSTRUCT_LENGTH EQU const_value
const ANIM_GFX_ANGELS
const ANIM_GFX_WAVE
const ANIM_GFX_AEROBLAST
+ const ANIM_GFX_PLAYER
+ const ANIM_GFX_ENEMY
; battle_bg_effect struct members (see macros/wram.asm)
const_def
diff --git a/data/battle_anims/objects.asm b/data/battle_anims/objects.asm
index d870cd997..18a2c2f1b 100644
--- a/data/battle_anims/objects.asm
+++ b/data/battle_anims/objects.asm
@@ -202,7 +202,7 @@ BattleAnimObjects:
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_4E, PAL_BATTLE_OB_BROWN, ANIM_GFX_ROCKS ; ANIM_OBJ_ROCK_SMASH
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_73, BATTLEANIMFUNC_08, PAL_BATTLE_OB_RED, ANIM_GFX_FLOWER ; ANIM_OBJ_FLOWER
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_89, BATTLEANIMFUNC_4F, PAL_BATTLE_OB_RED, ANIM_GFX_MISC ; ANIM_OBJ_COTTON
- battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B5, BATTLEANIMFUNC_00, PAL_BATTLE_OB_ENEMY, $28 ; ANIM_OBJ_PLAYERFEETFOLLOW
- battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B6, BATTLEANIMFUNC_00, PAL_BATTLE_OB_PLAYER, $29 ; ANIM_OBJ_ENEMYFEETFOLLOW
- battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B7, BATTLEANIMFUNC_00, PAL_BATTLE_OB_ENEMY, $28 ; ANIM_OBJ_PLAYERHEADFOLLOW
- battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B8, BATTLEANIMFUNC_00, PAL_BATTLE_OB_PLAYER, $29 ; ANIM_OBJ_ENEMYHEADFOLLOW
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B5, BATTLEANIMFUNC_00, PAL_BATTLE_OB_ENEMY, ANIM_GFX_PLAYER ; ANIM_OBJ_PLAYERFEETFOLLOW
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B6, BATTLEANIMFUNC_00, PAL_BATTLE_OB_PLAYER, ANIM_GFX_ENEMY ; ANIM_OBJ_ENEMYFEETFOLLOW
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B7, BATTLEANIMFUNC_00, PAL_BATTLE_OB_ENEMY, ANIM_GFX_PLAYER ; ANIM_OBJ_PLAYERHEADFOLLOW
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B8, BATTLEANIMFUNC_00, PAL_BATTLE_OB_PLAYER, ANIM_GFX_ENEMY ; ANIM_OBJ_ENEMYHEADFOLLOW
diff --git a/engine/battle_anims/anim_commands.asm b/engine/battle_anims/anim_commands.asm
index 4191fdf81..fcf61c43f 100644
--- a/engine/battle_anims/anim_commands.asm
+++ b/engine/battle_anims/anim_commands.asm
@@ -665,7 +665,7 @@ BattleAnimCmd_5GFX:
ld [wBattleAnimTemp0], a
.loop
ld a, [wBattleAnimTemp0]
- cp (vTiles1 - vTiles0) / $10 - $31
+ cp (vTiles1 - vTiles0) / LEN_2BPP_TILE - BATTLEANIM_BASE_TILE
ret nc
call GetBattleAnimByte
ld [hli], a
@@ -678,7 +678,7 @@ BattleAnimCmd_5GFX:
rept 4
add hl, hl
endr
- ld de, vTiles0 tile $31
+ ld de, vTiles0 tile BATTLEANIM_BASE_TILE
add hl, de
ld a, [wBattleAnimByte]
call LoadBattleAnimObj
@@ -778,33 +778,33 @@ BattleAnimCmd_EnemyFeetObj:
jr .loop
.okay
- ld a, $28
+ ld a, ANIM_GFX_PLAYER
ld [hli], a
- ld a, $42
+ ld a, ($80 - 6 - 7) - BATTLEANIM_BASE_TILE
ld [hli], a
- ld a, $29
+ ld a, ANIM_GFX_ENEMY
ld [hli], a
- ld a, $49
+ ld a, ($80 - 6) - BATTLEANIM_BASE_TILE
ld [hl], a
- ld hl, vTiles0 tile $73
- ld de, vTiles2 tile $06
- ld a, $70
+ ld hl, vTiles0 tile ($80 - 6 - 7)
+ ld de, vTiles2 tile $06 ; Enemy feet start tile
+ ld a, 7 tiles ; Enemy pic height
ld [wBattleAnimTemp0], a
- ld a, $7
- call .LoadFootprint
- ld de, vTiles2 tile $31
- ld a, $60
+ ld a, 7 ; Copy 7x1 tiles
+ call .LoadFeet
+ ld de, vTiles2 tile $31 ; Player head start tile
+ ld a, 6 tiles ; Player pic height
ld [wBattleAnimTemp0], a
- ld a, $6
- call .LoadFootprint
+ ld a, 6 ; Copy 6x1 tiles
+ call .LoadFeet
ret
-.LoadFootprint:
+.LoadFeet:
push af
push hl
push de
- lb bc, BANK(BattleAnimCmd_EnemyFeetObj), 1
+ lb bc, BANK(@), 1
call Request2bpp
pop de
ld a, [wBattleAnimTemp0]
@@ -818,7 +818,7 @@ BattleAnimCmd_EnemyFeetObj:
add hl, bc
pop af
dec a
- jr nz, .LoadFootprint
+ jr nz, .LoadFeet
ret
BattleAnimCmd_PlayerHeadObj:
@@ -832,25 +832,25 @@ BattleAnimCmd_PlayerHeadObj:
jr .loop
.okay
- ld a, $28
+ ld a, ANIM_GFX_PLAYER
ld [hli], a
- ld a, $35
+ ld a, ($80 - 6 * 2 - 7 * 2) - BATTLEANIM_BASE_TILE
ld [hli], a
- ld a, $29
+ ld a, ANIM_GFX_ENEMY
ld [hli], a
- ld a, $43
+ ld a, ($80 - 6 * 2) - BATTLEANIM_BASE_TILE
ld [hl], a
- ld hl, vTiles0 tile $66
- ld de, vTiles2 tile $05
- ld a, $70
+ ld hl, vTiles0 tile ($80 - 6 * 2 - 7 * 2)
+ ld de, vTiles2 tile $05 ; Enemy feet start tile
+ ld a, 7 tiles ; Enemy pic height
ld [wBattleAnimTemp0], a
- ld a, $7
+ ld a, 7 ; Copy 7x2 tiles
call .LoadHead
- ld de, vTiles2 tile $31
- ld a, $60
+ ld de, vTiles2 tile $31 ; Player head start tile
+ ld a, 6 tiles ; Player pic height
ld [wBattleAnimTemp0], a
- ld a, $6
+ ld a, 6 ; Copy 6x2 tiles
call .LoadHead
ret
@@ -858,7 +858,7 @@ BattleAnimCmd_PlayerHeadObj:
push af
push hl
push de
- lb bc, BANK(BattleAnimCmd_EnemyFeetObj), 2
+ lb bc, BANK(@), 2
call Request2bpp
pop de
ld a, [wBattleAnimTemp0]
@@ -927,14 +927,14 @@ BattleAnimCmd_UpdateActorPic:
ld hl, vTiles2 tile $00
ld b, 0
- ld c, $31
+ ld c, 7 * 7
call Request2bpp
ret
.player
ld hl, vTiles2 tile $31
ld b, 0
- ld c, $24
+ ld c, 6 * 6
call Request2bpp
ret
@@ -1028,7 +1028,7 @@ BattleAnimCmd_MinimizeOpp:
GetMinimizePic:
ld hl, sScratch
- ld bc, $31 tiles
+ ld bc, (7 * 7) tiles
.loop
xor a
ld [hli], a
diff --git a/engine/battle_anims/core.asm b/engine/battle_anims/core.asm
index 541de6fc7..b213a9f82 100644
--- a/engine/battle_anims/core.asm
+++ b/engine/battle_anims/core.asm
@@ -147,7 +147,7 @@ BattleAnimOAMUpdate:
inc hl
inc de
ld a, [wBattleAnimTempTileID]
- add $31
+ add BATTLEANIM_BASE_TILE
add [hl]
ld [de], a
inc hl