ref: 7e93916c8a825d4dfc29cf73e73b41d8c1fc06de
parent: ee86b367662ab8f7a81a644c66f5bf14ead59ba8
author: mid-kid <esteve.varela@gmail.com>
date: Fri Feb 15 20:33:40 EST 2019
Add more constants for battle anim structs Any access of the wram arrays for battle anim objects and background effects use appropriate macros and constants, now.
--- a/constants/battle_anim_constants.asm
+++ b/constants/battle_anim_constants.asm
@@ -25,6 +25,7 @@
const BATTLEANIMSTRUCT_16
const BATTLEANIMSTRUCT_17
BATTLEANIMSTRUCT_LENGTH EQU const_value
+NUM_ANIM_OBJECTS EQUS "(wActiveAnimObjectsEnd - wActiveAnimObjects) / BATTLEANIMSTRUCT_LENGTH"
; Start tile for battle animation graphics
BATTLEANIM_BASE_TILE EQU 7 * 7 ; Maximum size of a pokemon picture
@@ -816,6 +817,8 @@
const BG_EFFECT_STRUCT_JT_INDEX
const BG_EFFECT_STRUCT_BATTLE_TURN
const BG_EFFECT_STRUCT_03
+BG_EFFECT_STRUCT_LENGTH EQU const_value
+NUM_BG_EFFECTS EQUS "(wActiveBGEffectsEnd - wActiveBGEffects) / BG_EFFECT_STRUCT_LENGTH"
; battle palettes
const_def
--- a/engine/battle_anims/anim_commands.asm
+++ b/engine/battle_anims/anim_commands.asm
@@ -112,10 +112,10 @@
cp ROLLOUT
jr nz, .not_rollout
- ld a, $2e
- ld b, 5
- ld de, 4
- ld hl, wActiveBGEffects
+ ld a, ANIM_BG_2E
+ ld b, NUM_BG_EFFECTS
+ ld de, BG_EFFECT_STRUCT_LENGTH
+ ld hl, wBGEffect1Function
.find
cp [hl]
jr z, .done
@@ -643,10 +643,13 @@
ret
BattleAnimCmd_ClearObjs:
+; BUG: This function only clears the first 6+(2/3) objects
+
ld hl, wActiveAnimObjects
ld a, $a0
+ ; ld a, wActiveAnimObjectsEnd - wActiveAnimObjects
.loop
- ld [hl], $0
+ ld [hl], 0
inc hl
dec a
jr nz, .loop
@@ -693,7 +696,7 @@
BattleAnimCmd_IncObj:
call GetBattleAnimByte
- ld e, 10
+ ld e, NUM_ANIM_OBJECTS
ld bc, wActiveAnimObjects
.loop
ld hl, BATTLEANIMSTRUCT_INDEX
@@ -718,8 +721,8 @@
BattleAnimCmd_IncBGEffect:
call GetBattleAnimByte
- ld e, 5
- ld bc, wActiveBGEffects
+ ld e, NUM_BG_EFFECTS
+ ld bc, wBGEffect1Function
.loop
ld hl, $0
add hl, bc
@@ -743,7 +746,7 @@
BattleAnimCmd_SetObj:
call GetBattleAnimByte
- ld e, 10
+ ld e, NUM_ANIM_OBJECTS
ld bc, wActiveAnimObjects
.loop
ld hl, BATTLEANIMSTRUCT_INDEX
@@ -1430,10 +1433,10 @@
ret
BattleAnim_UpdateOAM_All:
- ld a, $0
+ ld a, 0
ld [wBattleAnimOAMPointerLo], a
ld hl, wActiveAnimObjects
- ld e, 10
+ ld e, NUM_ANIM_OBJECTS
.loop
ld a, [hl]
and a
--- a/engine/battle_anims/bg_effects.asm
+++ b/engine/battle_anims/bg_effects.asm
@@ -10,7 +10,7 @@
ExecuteBGEffects:
ld hl, wActiveBGEffects
- ld e, 5
+ ld e, NUM_BG_EFFECTS
.loop
ld a, [hl]
and a
@@ -23,7 +23,7 @@
pop de
pop hl
.next
- ld bc, 4
+ ld bc, BG_EFFECT_STRUCT_LENGTH
add hl, bc
dec e
jr nz, .loop
@@ -31,12 +31,12 @@
QueueBGEffect:
ld hl, wActiveBGEffects
- ld e, 5
+ ld e, NUM_BG_EFFECTS
.loop
ld a, [hl]
and a
jr z, .load
- ld bc, 4
+ ld bc, BG_EFFECT_STRUCT_LENGTH
add hl, bc
dec e
jr nz, .loop
--- a/engine/battle_anims/core.asm
+++ b/engine/battle_anims/core.asm
@@ -1,6 +1,6 @@
QueueBattleAnimation:
ld hl, wActiveAnimObjects
- ld e, 10
+ ld e, NUM_ANIM_OBJECTS
.loop
ld a, [hl]
and a