diff options
-rw-r--r-- | constants/battle_anim_constants.asm | 3 | ||||
-rw-r--r-- | engine/battle_anims/anim_commands.asm | 25 | ||||
-rw-r--r-- | engine/battle_anims/bg_effects.asm | 8 | ||||
-rw-r--r-- | engine/battle_anims/core.asm | 2 |
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 |