summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--constants/battle_anim_constants.asm3
-rw-r--r--engine/battle_anims/anim_commands.asm25
-rw-r--r--engine/battle_anims/bg_effects.asm8
-rw-r--r--engine/battle_anims/core.asm2
4 files changed, 22 insertions, 16 deletions
diff --git a/constants/battle_anim_constants.asm b/constants/battle_anim_constants.asm
index c9eeac130..167bfd7e5 100644
--- 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 @@ BATTLEANIM_BASE_TILE EQU 7 * 7 ; Maximum size of a pokemon picture
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
diff --git a/engine/battle_anims/anim_commands.asm b/engine/battle_anims/anim_commands.asm
index 6c30ab51d..cdb8555bd 100644
--- a/engine/battle_anims/anim_commands.asm
+++ b/engine/battle_anims/anim_commands.asm
@@ -112,10 +112,10 @@ RunBattleAnimScript:
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 @@ BattleAnimCmd_ResetObp0:
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 @@ endr
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_IncObj:
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_IncBGEffect:
BattleAnimCmd_SetObj:
call GetBattleAnimByte
- ld e, 10
+ ld e, NUM_ANIM_OBJECTS
ld bc, wActiveAnimObjects
.loop
ld hl, BATTLEANIMSTRUCT_INDEX
@@ -1430,10 +1433,10 @@ BattleAnim_SetOBPals:
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
diff --git a/engine/battle_anims/bg_effects.asm b/engine/battle_anims/bg_effects.asm
index a510038a5..00eb9a4ce 100644
--- 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 @@ ExecuteBGEffects:
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 @@ ExecuteBGEffects:
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
diff --git a/engine/battle_anims/core.asm b/engine/battle_anims/core.asm
index c5afb53ba..1a63b98e1 100644
--- 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