diff options
-rw-r--r-- | constants/battle_anim_constants.asm | 5 | ||||
-rw-r--r-- | data/battle_anims/objects.asm | 8 | ||||
-rw-r--r-- | engine/battle_anims/anim_commands.asm | 66 | ||||
-rw-r--r-- | engine/battle_anims/core.asm | 2 |
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 |