summaryrefslogtreecommitdiff
path: root/battle/bg_effects.asm
diff options
context:
space:
mode:
authorRemy Oukaour <remy.oukaour@gmail.com>2017-12-26 17:47:05 -0500
committerRemy Oukaour <remy.oukaour@gmail.com>2017-12-26 17:47:05 -0500
commitb5417fafec7dd37cb4be391f3bd3d4541a2a381e (patch)
treea4e7d08afb2e862186a138e82c8ef4785d82786d /battle/bg_effects.asm
parent2f98c2032fd47ada3484bfc37d590992f286d3d4 (diff)
Split battle/ into data/ and engine/ components
Diffstat (limited to 'battle/bg_effects.asm')
-rw-r--r--battle/bg_effects.asm2957
1 files changed, 0 insertions, 2957 deletions
diff --git a/battle/bg_effects.asm b/battle/bg_effects.asm
deleted file mode 100644
index 7799c2cf7..000000000
--- a/battle/bg_effects.asm
+++ /dev/null
@@ -1,2957 +0,0 @@
- const_def
- const BGSQUARE_SIX
- const BGSQUARE_FOUR
- const BGSQUARE_TWO
- const BGSQUARE_SEVEN
- const BGSQUARE_FIVE
- const BGSQUARE_THREE
-
-; BG effects for use in battle animations.
-
-ExecuteBGEffects: ; c8000 (32:4000)
- ld hl, ActiveBGEffects
- ld e, 5
-.loop
- ld a, [hl]
- and a
- jr z, .next
- ld c, l
- ld b, h
- push hl
- push de
- call DoBattleBGEffectFunction
- pop de
- pop hl
-.next
- ld bc, 4
- add hl, bc
- dec e
- jr nz, .loop
- ret
-
-QueueBGEffect: ; c801a (32:401a)
- ld hl, ActiveBGEffects
- ld e, 5
-.loop
- ld a, [hl]
- and a
- jr z, .load
- ld bc, 4
- add hl, bc
- dec e
- jr nz, .loop
- scf
- ret
-
-.load
- ld c, l
- ld b, h
- ld hl, BG_EFFECT_STRUCT_FUNCTION
- add hl, bc
- ld a, [wBattleAnimTemp0]
- ld [hli], a
- ld a, [wBattleAnimTemp1]
- ld [hli], a
- ld a, [wBattleAnimTemp2]
- ld [hli], a
- ld a, [wBattleAnimTemp3]
- ld [hl], a
- ret
-
-EndBattleBGEffect: ; c8043 (32:4043)
- ld hl, BG_EFFECT_STRUCT_FUNCTION
- add hl, bc
- ld [hl], 0
- ret
-
-DoBattleBGEffectFunction: ; c804a (32:404a)
- ld hl, BG_EFFECT_STRUCT_FUNCTION
- add hl, bc
- ld e, [hl]
- ld d, 0
- ld hl, BattleBGEffects
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-
-BattleBGEffects: ; c805a (32:405a)
- dw BattleBGEffect_End
- dw BattleBGEffect_FlashInverted
- dw BattleBGEffect_FlashWhite
- dw BattleBGEffect_WhiteHues
- dw BattleBGEffect_BlackHues
- dw BattleBGEffect_AlternateHues
- dw BattleBGEffect_06
- dw BattleBGEffect_07
- dw BattleBGEffect_08
- dw BattleBGEffect_HideMon
- dw BattleBGEffect_ShowMon
- dw BattleBGEffect_EnterMon
- dw BattleBGEffect_ReturnMon
- dw BattleBGEffect_Surf
- dw BattleBGEffect_Whirlpool
- dw BattleBGEffect_Teleport
- dw BattleBGEffect_NightShade
- dw BattleBGEffect_FeetFollow
- dw BattleBGEffect_HeadFollow
- dw BattleBGEffect_DoubleTeam
- dw BattleBGEffect_AcidArmor
- dw BattleBGEffect_RapidFlash
- dw BattleBGEffect_16
- dw BattleBGEffect_17
- dw BattleBGEffect_18
- dw BattleBGEffect_19
- dw BattleBGEffect_1a
- dw BattleBGEffect_1b
- dw BattleBGEffect_1c
- dw BattleBGEffect_1d
- dw BattleBGEffect_1e
- dw BattleBGEffect_1f
- dw BattleBGEffect_20
- dw BattleBGEffect_Withdraw
- dw BattleBGEffect_BounceDown
- dw BattleBGEffect_Dig
- dw BattleBGEffect_Tackle
- dw BattleBGEffect_25
- dw BattleBGEffect_26
- dw BattleBGEffect_27
- dw BattleBGEffect_28
- dw BattleBGEffect_Psychic
- dw BattleBGEffect_2a
- dw BattleBGEffect_2b
- dw BattleBGEffect_2c
- dw BattleBGEffect_2d
- dw BattleBGEffect_2e
- dw BattleBGEffect_2f
- dw BattleBGEffect_30
- dw BattleBGEffect_31
- dw BattleBGEffect_32
- dw BattleBGEffect_VibrateMon
- dw BattleBGEffect_WobbleMon
- dw BattleBGEffect_35
-
-
-BattleBGEffect_End: ; c80c6 (32:40c6)
- call EndBattleBGEffect
- ret
-
-BatttleBGEffects_GetNamedJumptablePointer: ; c80ca (32:40ca)
- ld hl, BG_EFFECT_STRUCT_JT_INDEX
- add hl, bc
- ld l, [hl]
- ld h, 0
- add hl, hl
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ret
-
-BattleBGEffects_AnonJumptable: ; c80d7 (32:40d7)
- pop de
- ld hl, BG_EFFECT_STRUCT_JT_INDEX
- add hl, bc
- ld l, [hl]
- ld h, 0
- add hl, hl
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-
-BattleBGEffects_IncrementJumptable: ; c80e5 (32:40e5)
- ld hl, BG_EFFECT_STRUCT_JT_INDEX
- add hl, bc
- inc [hl]
- ret
-
-BattleBGEffect_FlashInverted: ; c80eb (32:40eb)
- ld de, .inverted
- jp BattleBGEffect_FlashContinue
-
-.inverted
- db %11100100 ; 3210
- db %00011011 ; 0123
-; c80f3
-
-BattleBGEffect_FlashWhite: ; c80f3 (32:40f3)
- ld de, .white
- jp BattleBGEffect_FlashContinue
-
-.white
- db %11100100 ; 3210
- db %00000000 ; 0000
-; c80fb
-
-BattleBGEffect_FlashContinue: ; c80fb (32:40fb)
-; current timer, flash duration, number of flashes
- ld a, $1
- ld [wBattleAnimTemp0], a
- ld hl, BG_EFFECT_STRUCT_JT_INDEX
- add hl, bc
- ld a, [hl]
- and a
- jr z, .init
- dec [hl]
- ret
-
-.init
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- ld a, [hl]
- ld hl, BG_EFFECT_STRUCT_JT_INDEX
- add hl, bc
- ld [hl], a
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld a, [hl]
- and a
- jr nz, .apply_pal
- call EndBattleBGEffect
- ret
-
-.apply_pal
- dec a
- ld [hl], a
- and 1
- ld l, a
- ld h, 0
- add hl, de
- ld a, [hl]
- ld [wBGP], a
- ret
-
-BattleBGEffect_WhiteHues: ; c812d (32:412d)
- ld de, .Pals
- call BattleBGEffect_GetNthDMGPal
- jr c, .quit
- ld [wBGP], a
- ret
-
-.quit
- call EndBattleBGEffect
- ret
-
-.Pals:
- db %11100100
- db %11100000
- db %11010000
- db -1
-; c8141
-
-BattleBGEffect_BlackHues: ; c8141 (32:4141)
- ld de, .Pals
- call BattleBGEffect_GetNthDMGPal
- jr c, .quit
- ld [wBGP], a
- ret
-
-.quit
- call EndBattleBGEffect
- ret
-
-.Pals:
- db %11100100
- db %11110100
- db %11111000
- db -1
-; c8155
-
-BattleBGEffect_AlternateHues: ; c8155 (32:4155)
- ld de, .Pals
- call BattleBGEffect_GetNthDMGPal
- jr c, .quit
- ld [wBGP], a
- ld [wOBP1], a
- ret
-
-.quit
- call EndBattleBGEffect
- ret
-
-.Pals:
- db %11100100
- db %11111000
- db %11111100
- db %11111000
- db %11100100
- db %10010000
- db %01000000
- db %10010000
- db -2
-; c8171
-
-BattleBGEffect_06: ; c8171 (32:4171)
- call BattleBGEffects_CheckSGB
- jr nz, .sgb
- ld de, .PalsCGB
- jr .okay
-
-.sgb
- ld de, .PalsSGB
-.okay
- call BattleBGEffect_GetNthDMGPal
- ld [wOBP0], a
- ret
-
-.PalsCGB:
- db %11100100
- db %10010000
- db -2
-
-.PalsSGB:
- db %11110000
- db %11000000
- db -2
-; c818b
-
-BattleBGEffect_07: ; c818b (32:418b)
- call BattleBGEffects_CheckSGB
- jr nz, .sgb
- ld de, .PalsCGB
- jr .okay
-
-.sgb
- ld de, .PalsSGB
-.okay
- call BattleBGEffect_GetNthDMGPal
- ld [wOBP0], a
- ret
-
-.PalsCGB:
- db %11100100
- db %11011000
- db -2
-
-.PalsSGB:
- db %11110000
- db %11001100
- db -2
-; c81a5
-
-BattleBGEffect_08: ; c81a5 (32:41a5)
- ld de, .Pals
- call BattleBGEffect_GetNthDMGPal
- ld [wBGP], a
- ret
-
-.Pals:
- db %00011011
- db %01100011
- db %10000111
- db -2
-; c81b3
-
-BattleBGEffect_HideMon: ; c81b3 (32:41b3)
- call BattleBGEffects_AnonJumptable
-.anon_dw
- dw .zero
- dw BattleBGEffects_IncrementJumptable
- dw BattleBGEffects_IncrementJumptable
- dw BattleBGEffects_IncrementJumptable
- dw .four
-
-
-.zero
- call BattleBGEffects_IncrementJumptable
- push bc
- call BGEffect_CheckBattleTurn
- jr nz, .player_side
- hlcoord 12, 0
- lb bc, 7, 7
- jr .got_pointer
-
-.player_side
- hlcoord 2, 6
- lb bc, 6, 6
-.got_pointer
- call ClearBox
- pop bc
- xor a
- ld [hBGMapThird], a
- ld a, $1
- ld [hBGMapMode], a
- ret
-
-.four
- xor a
- ld [hBGMapMode], a
- call EndBattleBGEffect
- ret
-
-BattleBGEffect_ShowMon: ; c81ea (32:41ea)
- call BGEffect_CheckFlyDigStatus
- jr z, .not_flying
- call EndBattleBGEffect
- ret
-
-.not_flying
- call BGEffect_CheckBattleTurn
- jr nz, .player_side
- ld de, .EnemyData
- jr .got_pointer
-
-.player_side
- ld de, .PlayerData
-.got_pointer
- ld a, e
- ld [wBattleAnimTemp1], a
- ld a, d
- ld [wBattleAnimTemp2], a
- call BattleBGEffect_RunPicResizeScript
- ret
-
-.PlayerData:
- db 0, $31, 0
- db -1
-.EnemyData:
- db 3, $00, 3
- db -1
-; c8214
-
-BattleBGEffect_FeetFollow: ; c8214 (32:4214)
- call BattleBGEffects_AnonJumptable
-.anon_dw
- dw .zero
- dw .one
- dw BattleBGEffects_IncrementJumptable
- dw BattleBGEffects_IncrementJumptable
- dw BattleBGEffects_IncrementJumptable
- dw .five
-
-
-.zero
- call BGEffect_CheckFlyDigStatus
- jr z, .not_flying_digging
- ld hl, wNumActiveBattleAnims
- inc [hl]
- call EndBattleBGEffect
- ret
-
-.not_flying_digging
- call BattleBGEffects_IncrementJumptable
- push bc
- call BGEffect_CheckBattleTurn
- jr nz, .player_turn
- ld a, ANIM_OBJ_PLAYERFEETFOLLOW
- ld [wBattleAnimTemp0], a
- ld a, 16 * 8 + 4
- jr .okay
-
-.player_turn
- ld a, ANIM_OBJ_ENEMYFEETFOLLOW
- ld [wBattleAnimTemp0], a
- ld a, 6 * 8
-.okay
- ld [wBattleAnimTemp1], a
- ld a, 8 * 8
- ld [wBattleAnimTemp2], a
- xor a
- ld [wBattleAnimTemp3], a
- call _QueueBattleAnimation
- pop bc
- ret
-
-.one
- call BattleBGEffects_IncrementJumptable
- push bc
- call BGEffect_CheckBattleTurn
- jr nz, .player_turn_2
- hlcoord 12, 6
- lb bc, 1, 7
- jr .okay2
-
-.player_turn_2
- hlcoord 2, 6
- lb bc, 1, 6
-.okay2
- call ClearBox
- ld a, $1
- ld [hBGMapMode], a
- pop bc
- ret
-
-.five
- xor a
- ld [hBGMapMode], a
- call EndBattleBGEffect
- ret
-
-BattleBGEffect_HeadFollow: ; c8281 (32:4281)
- call BattleBGEffects_AnonJumptable
-.anon_dw
- dw .zero
- dw .one
- dw BattleBGEffects_IncrementJumptable
- dw BattleBGEffects_IncrementJumptable
- dw BattleBGEffects_IncrementJumptable
- dw .five
-
-
-.zero
- call BGEffect_CheckFlyDigStatus
- jr z, .not_flying_digging
- ld hl, wNumActiveBattleAnims
- inc [hl]
- call EndBattleBGEffect
- ret
-
-.not_flying_digging
- call BattleBGEffects_IncrementJumptable
- push bc
- call BGEffect_CheckBattleTurn
- jr nz, .player_turn
- ld a, ANIM_OBJ_BA
- ld [wBattleAnimTemp0], a
- ld a, 16 * 8 + 4
- jr .okay
-
-.player_turn
- ld a, ANIM_OBJ_BB
- ld [wBattleAnimTemp0], a
- ld a, 6 * 8
-.okay
- ld [wBattleAnimTemp1], a
- ld a, 8 * 8
- ld [wBattleAnimTemp2], a
- xor a
- ld [wBattleAnimTemp3], a
- call _QueueBattleAnimation
- pop bc
- ret
-
-.one
- call BattleBGEffects_IncrementJumptable
- push bc
- call BGEffect_CheckBattleTurn
- jr nz, .player_turn_2
- hlcoord 12, 5
- lb bc, 2, 7
- jr .okay2
-
-.player_turn_2
- hlcoord 2, 6
- lb bc, 2, 6
-.okay2
- call ClearBox
- ld a, $1
- ld [hBGMapMode], a
- pop bc
- ret
-
-.five
- xor a
- ld [hBGMapMode], a
- call EndBattleBGEffect
- ret
-
-_QueueBattleAnimation: ; c82ee (32:42ee)
- callfar QueueBattleAnimation
- ret
-
-BattleBGEffect_27: ; c82f5 (32:42f5)
- call BattleBGEffects_AnonJumptable
-.anon_dw
- dw .zero
- dw .one
- dw BattleBGEffects_IncrementJumptable
- dw BattleBGEffects_IncrementJumptable
- dw .four
-
-
-.zero
- call BattleBGEffects_IncrementJumptable
- call BGEffect_CheckBattleTurn
- ld [hl], a
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- ld a, [hl]
- and a
- jr z, .user
- ld a, $9
- jr .okay
-
-.user
- ld a, $8
-.okay
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld [hl], a
- ret
-
-.one
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- ld a, [hl]
- and a
- jr z, .user_2
- hlcoord 0, 6
- lb de, 8, 6
-.row1
- push de
- push hl
-.col1
- inc hl
- ld a, [hld]
- ld [hli], a
- dec d
- jr nz, .col1
- pop hl
- ld de, SCREEN_WIDTH
- add hl, de
- pop de
- dec e
- jr nz, .row1
- jr .okay2
-
-.user_2
- hlcoord 19, 0
- lb de, 8, 7
-.row2
- push de
- push hl
-.col2
- dec hl
- ld a, [hli]
- ld [hld], a
- dec d
- jr nz, .col2
- pop hl
- ld de, SCREEN_WIDTH
- add hl, de
- pop de
- dec e
- jr nz, .row2
-.okay2
- xor a
- ld [hBGMapThird], a
- ld a, $1
- ld [hBGMapMode], a
- call BattleBGEffects_IncrementJumptable
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- dec [hl]
- ret
-
-.four
- xor a
- ld [hBGMapMode], a
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld a, [hl]
- and a
- jr z, .done
- ld hl, BG_EFFECT_STRUCT_JT_INDEX
- add hl, bc
- ld [hl], $1
- ret
-
-.done
- call EndBattleBGEffect
- ret
-
-BattleBGEffect_EnterMon: ; c837b (32:437b)
- call BGEffect_CheckBattleTurn
- jr nz, .player_turn
- ld de, .EnemyData
- jr .okay
-
-.player_turn
- ld de, .PlayerData
-.okay
- ld a, e
- ld [wBattleAnimTemp1], a
- ld a, d
- ld [wBattleAnimTemp2], a
- call BattleBGEffect_RunPicResizeScript
- ret
-
-.PlayerData:
- db 2, $31, 2
- db 1, $31, 1
- db 0, $31, 0
- db -1
-.EnemyData:
- db 5, $00, 5
- db 4, $00, 4
- db 3, $00, 3
- db -1
-; c83a8
-
-BattleBGEffect_ReturnMon: ; c83a8 (32:43a8)
- call BGEffect_CheckBattleTurn
- jr nz, .player_turn
- ld de, .EnemyData
- jr .okay
-
-.player_turn
- ld de, .PlayerData
-.okay
- ld a, e
- ld [wBattleAnimTemp1], a
- ld a, d
- ld [wBattleAnimTemp2], a
- call BattleBGEffect_RunPicResizeScript
- ret
-
-.PlayerData:
- db 0, $31, 0
- db -2, $66, 0
- db 1, $31, 1
- db -2, $44, 1
- db 2, $31, 2
- db -2, $22, 2
- db -3, $00, 0
- db -1
-.EnemyData:
- db 3, $00, 3
- db -2, $77, 3
- db 4, $00, 4
- db -2, $55, 4
- db 5, $00, 5
- db -2, $33, 5
- db -3, $00, 0
- db -1
-; c83ed
-
-BattleBGEffect_RunPicResizeScript: ; c83ed (32:43ed)
- call BattleBGEffects_AnonJumptable
-.anon_dw
- dw .zero
- dw BattleBGEffects_IncrementJumptable
- dw BattleBGEffects_IncrementJumptable
- dw .restart
- dw .end
-
-
-.zero
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld e, [hl]
- ld d, $0
- inc [hl]
- ld a, [wBattleAnimTemp1]
- ld l, a
- ld a, [wBattleAnimTemp2]
- ld h, a
- add hl, de
- add hl, de
- add hl, de
- ld a, [hl]
- cp -1
- jr z, .end
- cp -2
- jr z, .clear
- cp -3
- jr z, .skip
- call .PlaceGraphic
-.skip
- call BattleBGEffects_IncrementJumptable
- ld a, $1
- ld [hBGMapMode], a
- ret
-
-.clear
- call .ClearBox
- jr .zero
-
-.restart
- xor a
- ld [hBGMapMode], a
- ld hl, BG_EFFECT_STRUCT_JT_INDEX
- add hl, bc
- ld [hl], $0
- ret
-
-.end
- xor a
- ld [hBGMapMode], a
- call EndBattleBGEffect
- ret
-
-.ClearBox:
-; get dims
- push bc
- inc hl
- ld a, [hli]
- ld b, a
- and $f
- ld c, a
- ld a, b
- swap a
- and $f
- ld b, a
-; get coords
- ld e, [hl]
- ld d, 0
- ld hl, .Coords
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call ClearBox
- pop bc
- ret
-
-.PlaceGraphic:
-; get dims
- push bc
- push hl
- ld e, [hl]
- ld d, 0
- ld hl, .BGSquares
- add hl, de
- add hl, de
- add hl, de
- ld a, [hli]
- ld b, a
- and $f
- ld c, a
- ld a, b
- swap a
- and $f
- ld b, a
-; store pointer
- ld e, [hl]
- inc hl
- ld d, [hl]
-; get byte
- pop hl
- inc hl
- ld a, [hli]
- ld [wBattleAnimTemp0], a
-; get coord
- push de
- ld e, [hl]
- ld d, 0
- ld hl, .Coords
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- pop de
-; fill box
-.row
- push bc
- push hl
- ld a, [wBattleAnimTemp0]
- ld b, a
-.col
- ld a, [de]
- add b
- ld [hli], a
- inc de
- dec c
- jr nz, .col
- pop hl
- ld bc, SCREEN_WIDTH
- add hl, bc
- pop bc
- dec b
- jr nz, .row
- pop bc
- ret
-
-.Coords:
- dwcoord 2, 6
- dwcoord 3, 8
- dwcoord 4, 10
- dwcoord 12, 0
- dwcoord 13, 2
- dwcoord 14, 4
-
-.BGSquares:
-bgsquare: MACRO
- dn \1, \2
- dw \3
-endm
-
- bgsquare 6, 6, .SixBySix
- bgsquare 4, 4, .FourByFour
- bgsquare 2, 2, .TwoByTwo
- bgsquare 7, 7, .SevenBySeven
- bgsquare 5, 5, .FiveByFive
- bgsquare 3, 3, .ThreeByThree
-
-.SixBySix:
- db $00, $06, $0c, $12, $18, $1e
- db $01, $07, $0d, $13, $19, $1f
- db $02, $08, $0e, $14, $1a, $20
- db $03, $09, $0f, $15, $1b, $21
- db $04, $0a, $10, $16, $1c, $22
- db $05, $0b, $11, $17, $1d, $23
-
-.FourByFour:
- db $00, $0c, $12, $1e
- db $02, $0e, $14, $20
- db $03, $0f, $15, $21
- db $05, $11, $17, $23
-
-.TwoByTwo:
- db $00, $1e
- db $05, $23
-
-.SevenBySeven:
- db $00, $07, $0e, $15, $1c, $23, $2a
- db $01, $08, $0f, $16, $1d, $24, $2b
- db $02, $09, $10, $17, $1e, $25, $2c
- db $03, $0a, $11, $18, $1f, $26, $2d
- db $04, $0b, $12, $19, $20, $27, $2e
- db $05, $0c, $13, $1a, $21, $28, $2f
- db $06, $0d, $14, $1b, $22, $29, $30
-
-.FiveByFive:
- db $00, $07, $15, $23, $2a
- db $01, $08, $16, $24, $2b
- db $03, $0a, $18, $26, $2d
- db $05, $0c, $1a, $28, $2f
- db $06, $0d, $1b, $29, $30
-
-.ThreeByThree:
- db $00, $15, $2a
- db $03, $18, $2d
- db $06, $1b, $30
-; c8545
-
-BattleBGEffect_Surf: ; c8545 (32:4545)
- call BattleBGEffects_AnonJumptable
-.anon_dw
- dw .zero
- dw .one
- dw .two
-
-
-.zero
- call BattleBGEffects_IncrementJumptable
- lb de, 2, 2
- call InitSurfWaves
-
-.one
- ld a, [hLCDCPointer]
- and a
- ret z
- push bc
- call .RotatewSurfWaveBGEffect
- pop bc
- ret
-
-.two
- call BattleAnim_ResetLCDStatCustom
- ret
-
-.RotatewSurfWaveBGEffect:
- ld hl, wSurfWaveBGEffect
- ld de, wSurfWaveBGEffect + 1
- ld c, wSurfWaveBGEffectEnd - wSurfWaveBGEffect - 1
- ld a, [hl]
- push af
-.loop
- ld a, [de]
- inc de
- ld [hli], a
- dec c
- jr nz, .loop
- pop af
- ld [hl], a
- ld de, LYOverridesBackup
- ld hl, wSurfWaveBGEffect
- ld bc, $0
-.loop2
- ld a, [hLYOverrideStart]
- cp e
- jr nc, .load_zero
- push hl
- add hl, bc
- ld a, [hl]
- pop hl
- jr .okay
-
-.load_zero
- xor a
-.okay
- ld [de], a
- ld a, c
- inc a
- and $3f
- ld c, a
- inc de
- ld a, e
- cp $5f
- jr c, .loop2
- ret
-
-BattleBGEffect_Whirlpool: ; c8599 (32:4599)
- call BattleBGEffects_AnonJumptable
-.anon_dw
- dw .zero
- dw .one
- dw .two
-
-
-.zero
- call BattleBGEffects_IncrementJumptable
- call BattleBGEffects_ClearLYOverrides
- ld a, rSCY - $ff00
- ld [hLCDCPointer], a
- xor a
- ld [hLYOverrideStart], a
- ld a, $5e
- ld [hLYOverrideEnd], a
- lb de, 2, 2
- call Functionc8f2e
- ret
-
-.one
- call BattleBGEffect_WavyScreenFX
- ret
-
-.two
- call BattleAnim_ResetLCDStatCustom
- ret
-
-BattleBGEffect_30: ; c85c2 (32:45c2)
- call BattleBGEffects_ClearLYOverrides
- ld a, rSCY - $ff00
- call BattleBGEffect_SetLCDStatCustoms1
- call EndBattleBGEffect
- ret
-
-BattleBGEffect_31: ; c85ce (32:45ce)
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld a, [hl]
- ld e, a
- add $4
- ld [hl], a
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- ld a, [hl]
- and $f0
- swap a
- xor $ff
- add $4
- ld d, a
- ld hl, BG_EFFECT_STRUCT_JT_INDEX
- add hl, bc
- ld a, [hl]
- ld [wBattleAnimTemp0], a
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- ld a, [hl]
- cp $20
- jr nc, .done
- inc [hl]
- inc [hl]
- call Functionc8f9a
- ret
-
-.done
- call BattleBGEffects_ClearLYOverrides
- call EndBattleBGEffect
- ret
-
-BattleBGEffect_32: ; c8603 (32:4603)
- call BattleAnim_ResetLCDStatCustom
- ret
-
-BattleBGEffect_Psychic: ; c8607 (32:4607)
- call BattleBGEffects_AnonJumptable
-.anon_dw
- dw .zero
- dw .one
- dw .two
-
-
-.zero
- call BattleBGEffects_IncrementJumptable
- call BattleBGEffects_ClearLYOverrides
- ld a, rSCX - $ff00
- ld [hLCDCPointer], a
- xor a
- ld [hLYOverrideStart], a
- ld a, $5f
- ld [hLYOverrideEnd], a
- lb de, 6, 5
- call Functionc8f2e
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld [hl], $0
- ret
-
-.one
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld a, [hl]
- inc [hl]
- and $3
- ret nz
- call BattleBGEffect_WavyScreenFX
- ret
-
-.two
- call BattleAnim_ResetLCDStatCustom
- ret
-
-BattleBGEffect_Teleport: ; c863f (32:463f)
- call BattleBGEffects_AnonJumptable
-.anon_dw
- dw .zero
- dw .one
- dw .two
-
-
-.zero
- call BattleBGEffects_IncrementJumptable
- call BattleBGEffects_ClearLYOverrides
- ld a, rSCX - $ff00
- call BattleBGEffect_SetLCDStatCustoms1
- lb de, 6, 5
- call Functionc8f2e
- ret
-
-.one
- call BattleBGEffect_WavyScreenFX
- ret
-
-.two
- call BattleAnim_ResetLCDStatCustom
- ret
-
-BattleBGEffect_NightShade: ; c8662 (32:4662)
- call BattleBGEffects_AnonJumptable
-.anon_dw
- dw .zero
- dw .one
- dw .two
-
-
-.zero
- call BattleBGEffects_IncrementJumptable
- call BattleBGEffects_ClearLYOverrides
- ld a, rSCY - $ff00
- call BattleBGEffect_SetLCDStatCustoms1
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld e, [hl]
- ld d, 2
- call Functionc8f2e
- ret
-
-.one
- call BattleBGEffect_WavyScreenFX
- ret
-
-.two
- call BattleAnim_ResetLCDStatCustom
- ret
-
-BattleBGEffect_DoubleTeam: ; c8689 (32:4689)
- call BattleBGEffects_AnonJumptable
-.anon_dw
- dw .zero
- dw .one
- dw .two
- dw .three
- dw .four
- dw .five
-
-
-.zero
- call BattleBGEffects_IncrementJumptable
- call BattleBGEffects_ClearLYOverrides
- ld a, rSCX - $ff00
- call BattleBGEffect_SetLCDStatCustoms1
- ld a, [hLYOverrideEnd]
- inc a
- ld [hLYOverrideEnd], a
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- ld [hl], $0
- ret
-
-.one
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld a, [hl]
- cp $10
- jr nc, .next
- inc [hl]
- call .UpdateLYOverrides
- ret
-
-.three
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld a, [hl]
- cp $ff
- jr z, .next
- dec [hl]
- call .UpdateLYOverrides
- ret
-
-.next
- call BattleBGEffects_IncrementJumptable
- ret
-
-.two
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- ld a, [hl]
- ld d, $2
- call BattleBGEffects_Sine
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- add [hl]
- call .UpdateLYOverrides
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- ld a, [hl]
- add $4
- ld [hl], a
-
-.four
- ret
-
-.UpdateLYOverrides:
- ld e, a
- xor $ff
- inc a
- ld d, a
- ld h, HIGH(LYOverridesBackup)
- ld a, [hLYOverrideStart]
- ld l, a
- ld a, [hLYOverrideEnd]
- sub l
- srl a
- push af
-.loop
- ld [hl], e
- inc hl
- ld [hl], d
- inc hl
- dec a
- jr nz, .loop
- pop af
- ret nc
- ld [hl], e
- ret
-
-.five
- call BattleAnim_ResetLCDStatCustom
- ret
-
-BattleBGEffect_AcidArmor: ; c8709 (32:4709)
- call BattleBGEffects_AnonJumptable
-.anon_dw
- dw .zero
- dw .one
- dw .two
-
-
-.zero
- call BattleBGEffects_IncrementJumptable
- call BattleBGEffects_ClearLYOverrides
- ld a, rSCY - $ff00
- call BattleBGEffect_SetLCDStatCustoms1
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld e, [hl]
- ld d, 2
- call Functionc8f2e
- ld h, HIGH(LYOverridesBackup)
- ld a, [hLYOverrideEnd]
- ld l, a
- ld [hl], $0
- dec l
- ld [hl], $0
- ret
-
-.one
- ld a, [hLYOverrideEnd]
- ld l, a
- ld h, HIGH(LYOverridesBackup)
- ld e, l
- ld d, h
- dec de
-.loop
- ld a, [de]
- dec de
- ld [hld], a
- ld a, [hLYOverrideStart]
- cp l
- jr nz, .loop
- ld [hl], $90
- ld a, [hLYOverrideEnd]
- ld l, a
- ld a, [hl]
- cp $1
- jr c, .okay
- cp $90
- jr z, .okay
- ld [hl], $0
-.okay
- dec l
- ld a, [hl]
- cp $2
- ret c
- cp $90
- ret z
- ld [hl], $0
- ret
-
-.two
- call BattleAnim_ResetLCDStatCustom
- ret
-
-BattleBGEffect_Withdraw: ; c8761 (32:4761)
- call BattleBGEffects_AnonJumptable
-.anon_dw
- dw .zero
- dw .one
- dw .two
-
-
-.zero
- call BattleBGEffects_IncrementJumptable
- call BattleBGEffects_ClearLYOverrides
- ld a, rSCY - $ff00
- call BattleBGEffect_SetLCDStatCustoms1
- ld a, [hLYOverrideEnd]
- inc a
- ld [hLYOverrideEnd], a
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- ld [hl], $1
- ret
-
-.one
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld a, [hl]
- and $3f
- ld d, a
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- ld a, [hl]
- cp d
- ret nc
- call BGEffect_DisplaceLYOverridesBackup
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld a, [hl]
- rlca
- rlca
- and $3
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- add [hl]
- ld [hl], a
- ret
-
-.two
- call BattleAnim_ResetLCDStatCustom
- ret
-
-BattleBGEffect_Dig: ; c87a7 (32:47a7)
- call BattleBGEffects_AnonJumptable
-.anon_dw
- dw .zero
- dw .one
- dw .two
- dw .three
-
-
-.zero
- call BattleBGEffects_IncrementJumptable
- call BattleBGEffects_ClearLYOverrides
- ld a, rSCY - $ff00
- call BattleBGEffect_SetLCDStatCustoms1
- ld a, [hLYOverrideEnd]
- inc a
- ld [hLYOverrideEnd], a
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- ld [hl], $2
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld [hl], $0
- ret
-
-.one
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld a, [hl]
- and a
- jr z, .next
- dec [hl]
- ret
-
-.next
- ld [hl], $10
- call BattleBGEffects_IncrementJumptable
-.two
- ld a, [hLYOverrideStart]
- ld l, a
- ld a, [hLYOverrideEnd]
- sub l
- dec a
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- cp [hl]
- ret c
- ld a, [hl]
- push af
- and $7
- jr nz, .skip
- ld hl, BG_EFFECT_STRUCT_JT_INDEX
- add hl, bc
- dec [hl]
-.skip
- pop af
- call BGEffect_DisplaceLYOverridesBackup
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- inc [hl]
- inc [hl]
- ret
-
-.three
- call BattleAnim_ResetLCDStatCustom
- ret
-
-BattleBGEffect_Tackle: ; c8805 (32:4805)
- call BattleBGEffects_AnonJumptable
-.anon_dw
- dw .zero
- dw Tackle_BGEffect25_2d_one
- dw Tackle_BGEffect25_2d_two
- dw .three
-
-
-.zero
- call BattleBGEffects_IncrementJumptable
- call BattleBGEffects_ClearLYOverrides
- ld a, rSCX - $ff00
- call BattleBGEffect_SetLCDStatCustoms1
- ld a, [hLYOverrideEnd]
- inc a
- ld [hLYOverrideEnd], a
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld [hl], $0
- call BGEffect_CheckBattleTurn
- jr nz, .player_side
- ld a, 2
- jr .okay
-
-.player_side
- ld a, -2
-.okay
- ld [hl], a
- ret
-
-.three
- call BattleAnim_ResetLCDStatCustom
- ret
-
-BattleBGEffect_25: ; c8837 (32:4837)
- call BattleBGEffects_AnonJumptable
-.anon_dw
- dw .zero
- dw Tackle_BGEffect25_2d_one
- dw Tackle_BGEffect25_2d_two
- dw .three
-
-
-.zero
- call BattleBGEffects_IncrementJumptable
- call BattleBGEffects_ClearLYOverrides
- ld a, rSCX - $ff00
- call BattleBGEffect_SetLCDStatCustoms2
- ld a, [hLYOverrideEnd]
- inc a
- ld [hLYOverrideEnd], a
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld [hl], $0
- call BGEffect_CheckBattleTurn
- jr nz, .player_side
- ld a, 2
- jr .okay
-
-.player_side
- ld a, -2
-.okay
- ld [hl], a
- ret
-
-.three
- call BattleAnim_ResetLCDStatCustom
- ret
-
-Tackle_BGEffect25_2d_one:
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld a, [hl]
- cp -8
- jr z, .reached_limit
- cp 8
- jr nz, .finish
-.reached_limit
- call BattleBGEffects_IncrementJumptable
-.finish
- call Functionc88a5
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- ld a, [hl]
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- add [hl]
- ld [hl], a
- ret
-
-Tackle_BGEffect25_2d_two:
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld a, [hl]
- and a
- jr nz, .asm_c8893
- call BattleBGEffects_IncrementJumptable
-.asm_c8893
- call Functionc88a5
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- ld a, [hl]
- xor $ff
- inc a
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- add [hl]
- ld [hl], a
- ret
-
-Functionc88a5: ; c88a5 (32:48a5)
- push af
- ld a, [FXAnimID + 1] ; FXAnimID + 1
- or a
- jr nz, .not_rollout
- ld a, [FXAnimID] ; FXAnimID
- cp ROLLOUT
- jr z, .rollout
-.not_rollout
- pop af
- jp BGEffect_FillLYOverridesBackup
-
-.rollout
- ld a, [hLYOverrideStart]
- ld d, a
- ld a, [hLYOverrideEnd]
- sub d
- ld d, a
- ld h, HIGH(LYOverridesBackup)
- ld a, [hSCY]
- or a
- jr nz, .skip1
- ld a, [hLYOverrideStart]
- or a
- jr z, .skip2
- dec a
- ld l, a
- ld [hl], $0
- jr .skip2
-
-.skip1
- ld a, [hLYOverrideEnd]
- dec a
- ld l, a
- ld [hl], $0
-.skip2
- ld a, [hSCY]
- ld l, a
- ld a, [hLYOverrideStart]
- sub l
- jr nc, .skip3
- xor a
- dec d
-.skip3
- ld l, a
- pop af
-.loop
- ld [hli], a
- dec d
- jr nz, .loop
- ret
-
-BattleBGEffect_2d: ; c88e7 (32:48e7)
- call BattleBGEffects_AnonJumptable
-.anon_dw
- dw BGEffect2d_2f_zero
- dw Tackle_BGEffect25_2d_one
- dw Tackle_BGEffect25_2d_two
- dw .three
-
-
-.three
- call BattleAnim_ResetLCDStatCustom
- ret
-
-BGEffect2d_2f_zero:
- call BattleBGEffects_IncrementJumptable
- call BattleBGEffects_ClearLYOverrides
- ld a, rSCX - $ff00
- call BattleBGEffect_SetLCDStatCustoms1
- ld a, [hLYOverrideEnd]
- inc a
- ld [hLYOverrideEnd], a
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld [hl], $0
- call BGEffect_CheckBattleTurn
- jr nz, .player_turn
- ld a, -2
- jr .okay
-
-.player_turn
- ld a, 2
-.okay
- ld [hl], a
- ret
-
-BattleBGEffect_2f: ; c8919 (32:4919)
- call BattleBGEffects_AnonJumptable
-.anon_dw
- dw BGEffect2d_2f_zero
- dw Tackle_BGEffect25_2d_one
- dw .two
- dw Tackle_BGEffect25_2d_two
- dw .four
-
-.four
- call BattleAnim_ResetLCDStatCustom
-.two
- ret
-
-BattleBGEffect_26: ; c892a (32:492a)
- call BattleBGEffects_AnonJumptable
-.anon_dw
- dw .zero
- dw .one
- dw .two
-
-
-.zero
- call BattleBGEffects_IncrementJumptable
- call BattleBGEffects_ClearLYOverrides
- ld a, rSCX - $ff00
- call BattleBGEffect_SetLCDStatCustoms1
- ld a, [hLYOverrideEnd]
- inc a
- ld [hLYOverrideEnd], a
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld [hl], $0
- ret
-
-.one
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld a, [hl]
- ld d, $8
- call BattleBGEffects_Sine
- call BGEffect_FillLYOverridesBackup
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld a, [hl]
- add $4
- ld [hl], a
- ret
-
-.two
- call BattleAnim_ResetLCDStatCustom
- ret
-
-BattleBGEffect_2c: ; c8964 (32:4964)
- call BattleBGEffects_AnonJumptable
-.anon_dw
- dw .zero
- dw .one
- dw .two
-
-
-.zero
- call BattleBGEffects_IncrementJumptable
- call BattleBGEffects_ClearLYOverrides
- ld a, rSCX - $ff00
- call BattleBGEffect_SetLCDStatCustoms1
- ld a, [hLYOverrideEnd]
- inc a
- ld [hLYOverrideEnd], a
- xor a
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- ld [hli], a
- ld [hl], a
- ret
-
-.one
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld a, [hl]
- ld d, $6
- call BattleBGEffects_Sine
- push af
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- ld a, [hl]
- ld d, $2
- call BattleBGEffects_Sine
- ld e, a
- pop af
- add e
- call BGEffect_FillLYOverridesBackup
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- ld a, [hl]
- add $8
- ld [hl], a
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld a, [hl]
- add $2
- ld [hl], a
- ret
-
-.two
- call BattleAnim_ResetLCDStatCustom
- ret
-
-BattleBGEffect_28: ; c89b5 (32:49b5)
- call BattleBGEffects_AnonJumptable
-.anon_dw
- dw .zero
- dw .one
- dw .two
-
-
-.zero
- call BattleBGEffects_IncrementJumptable
- call BattleBGEffects_ClearLYOverrides
- ld a, rSCX - $ff00
- call BattleBGEffect_SetLCDStatCustoms1
- ret
-
-.one
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld a, [hl]
- cp $20
- ret nc
- inc [hl]
- ld d, a
- ld e, 4
- call Functionc8f2e
- ret
-
-.two
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld a, [hl]
- and a
- jr z, .reset
- dec [hl]
- ld d, a
- ld e, 4
- call Functionc8f2e
- ret
-
-.reset
- call BattleAnim_ResetLCDStatCustom
- ret
-
-BattleBGEffect_BounceDown: ; c89ee (32:49ee)
- call BattleBGEffects_AnonJumptable
-.anon_dw
- dw .zero
- dw .one
- dw .two
-
-
-.zero
- call BattleBGEffects_IncrementJumptable
- call BattleBGEffects_ClearLYOverrides
- ld a, rSCY - $ff00
- call BattleBGEffect_SetLCDStatCustoms2
- ld a, [hLYOverrideEnd]
- inc a
- ld [hLYOverrideEnd], a
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- ld [hl], $1
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld [hl], $20
- ret
-
-.one
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- ld a, [hl]
- cp $38
- ret nc
- push af
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld a, [hl]
- ld d, $10
- call BattleBGEffects_Cosine
- add $10
- ld d, a
- pop af
- add d
- call BGEffect_DisplaceLYOverridesBackup
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- inc [hl]
- inc [hl]
- ret
-
-.two
- call BattleAnim_ResetLCDStatCustom
- ret
-
-BattleBGEffect_2a: ; c8a3a (32:4a3a)
- call BattleBGEffects_AnonJumptable
-.anon_dw
- dw .zero
- dw .one
- dw .two
- dw .three
- dw .four
- dw .five
-
-.zero
- call BattleBGEffects_IncrementJumptable
- ld a, $e4
- call BattleBGEffects_SetLYOverrides
- ld a, $47
- call BattleBGEffect_SetLCDStatCustoms1
- ld a, [hLYOverrideEnd]
- inc a
- ld [hLYOverrideEnd], a
- ld a, [hLYOverrideStart]
- ld l, a
- ld h, HIGH(LYOverridesBackup)
-.loop
- ld a, [hLYOverrideEnd]
- cp l
- jr z, .done
- xor a
- ld [hli], a
- jr .loop
-
-.done
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld [hl], $0
-.one
-.four
- ret
-
-.two
- call .GetLYOverride
- jr nc, .next
- call .SetLYOverridesBackup
- ret
-
-.next
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld [hl], $0
- ld a, [hLYOverrideStart]
- inc a
- ld [hLYOverrideStart], a
- call BattleBGEffects_IncrementJumptable
- ret
-
-.three
- call .GetLYOverride
- jr nc, .finish
- call .SetLYOverridesBackup
- ld a, [hLYOverrideEnd]
- dec a
- ld l, a
- ld [hl], e
- ret
-
-.finish
- call BattleBGEffects_IncrementJumptable
- ret
-
-.SetLYOverridesBackup:
- ld e, a
- ld a, [hLYOverrideStart]
- ld l, a
- ld a, [hLYOverrideEnd]
- sub l
- srl a
- ld h, HIGH(LYOverridesBackup)
-.loop2
- ld [hl], e
- inc hl
- inc hl
- dec a
- jr nz, .loop2
- ret
-
-.five
- call BattleBGEffects_ResetVideoHRAM
- ret
-
-.GetLYOverride:
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld a, [hl]
- inc [hl]
- srl a
- srl a
- srl a
- ld e, a
- ld d, 0
- ld hl, .data
- add hl, de
- ld a, [hl]
- cp $ff
- ret
-
-.data
- db $00, $40, $90, $e4
- db -1
-; c8acc
-
-BattleBGEffect_2b: ; c8acc (32:4acc)
- call BattleBGEffects_AnonJumptable
-.anon_dw
- dw .zero
- dw .one
-
-
-.zero
- call BattleBGEffects_IncrementJumptable
- call BattleBGEffects_ClearLYOverrides
- ld a, rSCX - $ff00
- call BattleBGEffect_SetLCDStatCustoms1
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- ld [hl], $40
- ret
-
-.one
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- ld a, [hl]
- and a
- jr z, .done
- dec [hl]
- srl a
- srl a
- srl a
- and $f
- ld d, a
- ld e, a
- call Functionc8f2e
- ret
-
-.done
- call BattleAnim_ResetLCDStatCustom
- ret
-
-BattleBGEffect_1c: ; c8b00 (32:4b00)
- ld a, [hCGB]
- and a
- jr nz, .cgb
- call BattleBGEffects_AnonJumptable
-.anon_dw
- dw .zero
- dw .one
- dw .two
-
-
-.zero
- call BattleBGEffects_IncrementJumptable
- ld a, $e4
- call BattleBGEffects_SetLYOverrides
- ld a, rBGP - $ff00
- ld [hLCDCPointer], a
- xor a
- ld [hLYOverrideStart], a
- ld a, $60
- ld [hLYOverrideEnd], a
- ret
-
-.one
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld a, [hl]
- inc [hl]
- ld e, a
- and $7
- ret nz
- ld a, e
- and $18
- sla a
- swap a
- sla a
- ld e, a
- ld d, $0
- push bc
- call BGEffect_CheckBattleTurn
- jr nz, .player
- ld hl, .CGB_DMGEnemyData
- add hl, de
- ld a, [hli]
- ld [wOBP1], a
- ld d, a
- ld e, [hl]
- lb bc, $2f, $30
- jr .okay
-
-.player
- ld hl, .DMG_PlayerData
- add hl, de
- ld d, [hl]
- inc hl
- ld a, [hl]
- ld [wOBP1], a
- ld e, a
- lb bc, $37, $28
-.okay
- call .DMG_LYOverrideLoads
- pop bc
- ret
-
-.two
- call BattleBGEffects_ResetVideoHRAM
- ld a, $e4
- ld [wBGP], a
- ld [wOBP1], a
- ret
-
-.DMG_LYOverrideLoads:
- ld hl, LYOverridesBackup
-.loop1
- ld [hl], d
- inc hl
- dec b
- jr nz, .loop1
-.loop2
- ld [hl], e
- inc hl
- dec c
- jr nz, .loop2
- ret
-
-.cgb
- ld de, .Jumptable
- call BatttleBGEffects_GetNamedJumptablePointer
- jp hl
-
-.Jumptable:
- dw .cgb_zero
- dw .cgb_one
- dw .cgb_two
-.cgb_zero
- call BattleBGEffects_IncrementJumptable
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld [hl], $0
- ret
-
-.cgb_one
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld a, [hl]
- inc [hl]
- ld e, a
- and $7
- ret nz
- ld a, e
- and $18
- sla a
- swap a
- sla a
- ld e, a
- ld d, 0
- call BGEffect_CheckBattleTurn
- jr nz, .player_2
- ld hl, .CGB_DMGEnemyData
- add hl, de
- ld a, [hli]
- push hl
- call BGEffects_LoadBGPal1_OBPal0
- pop hl
- ld a, [hl]
- call BGEffects_LoadBGPal0_OBPal1
- ret
-
-.player_2
- ld hl, .CGB_DMGEnemyData
- add hl, de
- ld a, [hli]
- push hl
- call BGEffects_LoadBGPal0_OBPal1
- pop hl
- ld a, [hl]
- call BGEffects_LoadBGPal1_OBPal0
- ret
-
-.cgb_two
- ld a, $e4
- call BGEffects_LoadBGPal0_OBPal1
- ld a, $e4
- call BGEffects_LoadBGPal1_OBPal0
- call EndBattleBGEffect
- ret
-
-.CGB_DMGEnemyData:
- db $e4, $e4
- db $f8, $90
- db $fc, $40
- db $f8, $90
-.DMG_PlayerData:
- db $e4, $e4
- db $90, $f8
- db $40, $fc
- db $90, $f8
-; c8be8
-
-BattleBGEffect_RapidFlash: ; c8be8 (32:4be8)
- ld de, .FlashPals
- call BGEffect_RapidCyclePals
- ret
-
-.FlashPals:
- db $e4, $6c, $fe
-; c8bf2
-
-BattleBGEffect_16: ; c8bf2 (32:4bf2)
- ld de, .Pals
- call BGEffect_RapidCyclePals
- ret
-
-.Pals:
- db $e4, $90, $40, $ff
-; c8bfd
-
-BattleBGEffect_17: ; c8bfd (32:4bfd)
- ld de, .Pals
- call BGEffect_RapidCyclePals
- ret
-
-.Pals:
- db $e4, $f8, $fc, $ff
-; c8c08
-
-BattleBGEffect_18: ; c8c08 (32:4c08)
- ld de, .Pals
- call BGEffect_RapidCyclePals
- ret
-
-.Pals:
- db $e4, $90, $40, $90, $fe
-; c8c14
-
-BattleBGEffect_19: ; c8c14 (32:4c14)
- ld de, .Pals
- call BGEffect_RapidCyclePals
- ret
-
-.Pals:
- db $e4, $f8, $fc, $f8, $fe
-; c8c20
-
-BattleBGEffect_1a: ; c8c20 (32:4c20)
- ld de, .Pals
- call BGEffect_RapidCyclePals
- ret
-
-.Pals:
- db $e4, $f8, $fc, $f8, $e4, $90, $40, $90, $fe
-; c8c30
-
-BattleBGEffect_1b: ; c8c30 (32:4c30)
- ld de, .Pals
- call BGEffect_RapidCyclePals
- ret
-
-.Pals:
- db $e4, $fc, $e4, $00, $fe
-; c8c3c
-
-BattleBGEffect_1d: ; c8c3c (32:4c3c)
- ld de, .Pals
- call BGEffect_RapidCyclePals
- ret
-
-.Pals:
- db $e4, $90, $40, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $90, $e4, $ff
-; c8c55
-
-BattleBGEffect_1e: ; c8c55 (32:4c55)
- ld de, .Pals
- call BGEffect_RapidCyclePals
- ret
-
-.Pals:
- db $00, $40, $90, $e4, $ff
-; c8c61
-
-BattleBGEffect_VibrateMon: ; c8c61 (32:4c61)
- call BattleBGEffects_AnonJumptable
-.anon_dw
- dw .zero
- dw .one
-
-
-.zero ; c8c68 (32:4c68)
- call BattleBGEffects_IncrementJumptable
- call BattleBGEffects_ClearLYOverrides
- ld a, rSCX - $ff00
- call BattleBGEffect_SetLCDStatCustoms1
- ld a, [hLYOverrideEnd]
- inc a
- ld [hLYOverrideEnd], a
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- ld [hl], $1
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld [hl], $20
- ret
-
-.one ; c8c85 (32:4c85)
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld a, [hl]
- and a
- jr z, .finish
- dec [hl]
- and $1
- ret nz
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- ld a, [hl]
- xor $ff
- inc a
- ld [hl], a
- call BGEffect_FillLYOverridesBackup
- ret
-
-.finish
- call BattleAnim_ResetLCDStatCustom
- ret
-
-BattleBGEffect_WobbleMon: ; c8ca2 (32:4ca2)
- call BattleBGEffects_AnonJumptable
-.anon_dw
- dw .zero
- dw .one
- dw .two
-
-
-.zero ; c8cab (32:4cab)
- call BattleBGEffects_IncrementJumptable
- call BattleBGEffects_ClearLYOverrides
- ld a, rSCX - $ff00
- ld [hLCDCPointer], a
- xor a
- ld [hLYOverrideStart], a
- ld a, $37
- ld [hLYOverrideEnd], a
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld [hl], $0
- ret
-
-.one ; c8cc3 (32:4cc3)
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld a, [hl]
- cp $40
- jr nc, .two
- ld d, $6
- call BattleBGEffects_Sine
- call BGEffect_FillLYOverridesBackup
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld a, [hl]
- add $2
- ld [hl], a
- ret
-
-.two ; c8cdd (32:4cdd)
- call BattleAnim_ResetLCDStatCustom
- ret
-
-BattleBGEffect_2e: ; c8ce1 (32:4ce1)
- call Functionc8d0b
- jr c, .xor_a
- bit 7, a
- jr z, .okay
-.xor_a
- xor a
-.okay
- push af
- call DelayFrame
- pop af
- ld [hSCY], a
- xor $ff
- inc a
- ld [AnimObject01_YOffset], a
- ret
-
-BattleBGEffect_1f: ; c8cf9 (32:4cf9)
- call Functionc8d0b
- jr nc, .skip
- xor a
-.skip
- ld [hSCX], a
- ret
-
-BattleBGEffect_20: ; c8d02 (32:4d02)
- call Functionc8d0b
- jr nc, .skip
- xor a
-.skip
- ld [hSCY], a
- ret
-
-Functionc8d0b: ; c8d0b (32:4d0b)
- ld hl, BG_EFFECT_STRUCT_JT_INDEX
- add hl, bc
- ld a, [hl]
- and a
- jr nz, .okay
- call EndBattleBGEffect
- scf
- ret
-
-.okay
- dec [hl]
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld a, [hl]
- and $f
- jr z, .every_16_frames
- dec [hl]
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- ld a, [hl]
- and a
- ret
-
-.every_16_frames
- ld a, [hl]
- swap a
- or [hl]
- ld [hl], a
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- ld a, [hl]
- xor $ff
- inc a
- ld [hl], a
- and a
- ret
-
-BattleBGEffect_35: ; c8d3a (32:4d3a)
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld a, [hl]
- cp $40
- jr nc, .finish
- ld d, $6
- call BattleBGEffects_Sine
- ld [hSCX], a
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld a, [hl]
- add $2
- ld [hl], a
- ret
-
-.finish
- xor a
- ld [hSCX], a
- ret
-
-BattleBGEffect_GetNthDMGPal: ; c8d57 (32:4d57)
- ld hl, BG_EFFECT_STRUCT_JT_INDEX
- add hl, bc
- ld a, [hl]
- and a
- jr z, .zero
- dec [hl]
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld a, [hl]
- call BattleBGEffect_GetNextDMGPal
- ret
-
-.zero
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- ld a, [hl]
- ld hl, BG_EFFECT_STRUCT_JT_INDEX
- add hl, bc
- ld [hl], a
- call BattleBGEffect_GetFirstDMGPal
- ret
-
-BGEffect_RapidCyclePals: ; c8d77 (32:4d77)
- ld a, [hCGB]
- and a
- jr nz, .cgb
- push de
- ld de, .Jumptable_DMG
- call BatttleBGEffects_GetNamedJumptablePointer
- pop de
- jp hl
-
-.Jumptable_DMG:
- dw .zero_dmg
- dw .one_dmg
- dw .two_dmg
-
-
-.zero_dmg ; c8d8b (32:4d8b)
- call BattleBGEffects_IncrementJumptable
- ld a, $e4
- call BattleBGEffects_SetLYOverrides
- ld a, $47
- call BattleBGEffect_SetLCDStatCustoms1
- ld a, [hLYOverrideEnd]
- inc a
- ld [hLYOverrideEnd], a
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld a, [hl]
- ld [hl], $0
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- ld [hl], a
- ret
-
-.one_dmg ; c8daa (32:4daa)
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- ld a, [hl]
- and $f
- jr z, .okay_1_dmg
- dec [hl]
- ret
-
-.okay_1_dmg
- ld a, [hl]
- swap a
- or [hl]
- ld [hl], a
- call BattleBGEffect_GetFirstDMGPal
- jr c, .okay_2_dmg
- call BGEffect_FillLYOverridesBackup
- ret
-
-.okay_2_dmg
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- dec [hl]
- ret
-
-.two_dmg ; c8dc9 (32:4dc9)
- call BattleBGEffects_ResetVideoHRAM
- ld a, %11100100
- ld [rBGP], a
- call EndBattleBGEffect
- ret
-
-.cgb
- push de
- ld de, .Jumptable_CGB
- call BatttleBGEffects_GetNamedJumptablePointer
- pop de
- jp hl
-
-.Jumptable_CGB: ; c8ddd (32:4ddd)
- dw .zero_cgb
- dw .one_cgb
- dw .two_cgb
- dw .three_cgb
- dw .four_cgb
-
-
-.zero_cgb ; c8de7 (32:4de7)
- call BGEffect_CheckBattleTurn
- jr nz, .player_turn_cgb
- call BattleBGEffects_IncrementJumptable
- call BattleBGEffects_IncrementJumptable
-.player_turn_cgb
- call BattleBGEffects_IncrementJumptable
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld a, [hl]
- ld [hl], $0
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- ld [hl], a
- ret
-
-.one_cgb ; c8e02 (32:4e02)
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- ld a, [hl]
- and $f
- jr z, .okay_1_cgb
- dec [hl]
- ret
-
-.okay_1_cgb
- ld a, [hl]
- swap a
- or [hl]
- ld [hl], a
- call BattleBGEffect_GetFirstDMGPal
- jr c, .okay_2_cgb
- call BGEffects_LoadBGPal0_OBPal1
- ret
-
-.okay_2_cgb
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- dec [hl]
- ret
-
-.two_cgb ; c8e21 (32:4e21)
- ld a, $e4
- call BGEffects_LoadBGPal0_OBPal1
- call EndBattleBGEffect
- ret
-
-.three_cgb ; c8e2a (32:4e2a)
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- ld a, [hl]
- and $f
- jr z, .okay_3_cgb
- dec [hl]
- ret
-
-.okay_3_cgb
- ld a, [hl]
- swap a
- or [hl]
- ld [hl], a
- call BattleBGEffect_GetFirstDMGPal
- jr c, .okay_4_cgb
- call BGEffects_LoadBGPal1_OBPal0
- ret
-
-.okay_4_cgb
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- dec [hl]
- ret
-
-.four_cgb ; c8e49 (32:4e49)
- ld a, $e4
- call BGEffects_LoadBGPal1_OBPal0
- call EndBattleBGEffect
- ret
-
-BGEffects_LoadBGPal0_OBPal1: ; c8e52 (32:4e52)
- ld h, a
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld a, h
- push bc
- push af
- ld hl, BGPals
- ld de, UnknBGPals
- ld b, a
- ld c, $1
- call CopyPals
- ld hl, OBPals + 8
- ld de, UnknOBPals + 8
- pop af
- ld b, a
- ld c, $1
- call CopyPals
- pop bc
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-
-BGEffects_LoadBGPal1_OBPal0: ; c8e7f (32:4e7f)
- ld h, a
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld a, h
- push bc
- push af
- ld hl, BGPals + 8
- ld de, UnknBGPals + 8
- ld b, a
- ld c, $1
- call CopyPals
- ld hl, OBPals ; OBPals
- ld de, UnknOBPals ; wd040
- pop af
- ld b, a
- ld c, $1
- call CopyPals
- pop bc
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-
-BattleBGEffect_GetFirstDMGPal: ; c8eac (32:4eac)
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld a, [hl]
- inc [hl]
-BattleBGEffect_GetNextDMGPal: ; c8eb2 (32:4eb2)
- ld l, a
- ld h, $0
- add hl, de
- ld a, [hl]
- cp -1
- jr z, .quit
- cp -2
- jr nz, .repeat
- ld a, [de]
- ld hl, BG_EFFECT_STRUCT_03
- add hl, bc
- ld [hl], $0
-.repeat
- and a
- ret
-
-.quit
- scf
- ret
-
-BattleBGEffects_ClearLYOverrides: ; c8eca (32:4eca)
- xor a
-BattleBGEffects_SetLYOverrides: ; c8ecb (32:4ecb)
- ld hl, LYOverrides ; wListPointer
- ld e, $99
-.loop1
- ld [hli], a
- dec e
- jr nz, .loop1
- ld hl, LYOverridesBackup
- ld e, $91
-.loop2
- ld [hli], a
- dec e
- jr nz, .loop2
- ret
-
-BattleBGEffect_SetLCDStatCustoms1: ; c8ede (32:4ede)
- ld [hLCDCPointer], a
- call BGEffect_CheckBattleTurn
- jr nz, .player_turn
- lb de, $00, $36
- jr .okay
-
-.player_turn
- lb de, $2f, $5e
-.okay
- ld a, d
- ld [hLYOverrideStart], a
- ld a, e
- ld [hLYOverrideEnd], a
- ret
-
-BattleBGEffect_SetLCDStatCustoms2: ; c8ef4 (32:4ef4)
- ld [hLCDCPointer], a
- call BGEffect_CheckBattleTurn
- jr nz, .player_turn
- lb de, $00, $36
- jr .okay
-
-.player_turn
- lb de, $2d, $5e
-.okay
- ld a, d
- ld [hLYOverrideStart], a
- ld a, e
- ld [hLYOverrideEnd], a
- ret
-
-BattleAnim_ResetLCDStatCustom: ; c8f0a (32:4f0a)
- xor a
- ld [hLYOverrideStart], a
- ld [hLYOverrideEnd], a
- call BattleBGEffects_ClearLYOverrides
- xor a
- ld [hLCDCPointer], a
- call EndBattleBGEffect
- ret
-
-BattleBGEffects_ResetVideoHRAM: ; c8f19 (32:4f19)
- xor a
- ld [hLCDCPointer], a
- ld a, %11100100
- ld [rBGP], a
- ld [wBGP], a
- ld [wOBP1], a
- ld [hLYOverrideStart], a
- ld [hLYOverrideEnd], a
- call BattleBGEffects_ClearLYOverrides
- ret
-
-Functionc8f2e: ; c8f2e (32:4f2e)
- push bc
- xor a
- ld [wBattleAnimTemp0], a
- ld a, e
- ld [wBattleAnimTemp1], a
- ld a, d
- ld [wBattleAnimTemp2], a
- ld a, $80
- ld [wBattleAnimTemp3], a
- ld bc, LYOverridesBackup
-.loop
- ld a, [hLYOverrideStart]
- cp c
- jr nc, .next
- ld a, [hLYOverrideEnd]
- cp c
- jr c, .next
- ld a, [wBattleAnimTemp2]
- ld d, a
- ld a, [wBattleAnimTemp0]
- call BattleBGEffects_Sine
- ld [bc], a
-.next
- inc bc
- ld a, [wBattleAnimTemp1]
- ld hl, wBattleAnimTemp0
- add [hl]
- ld [hl], a
- ld hl, wBattleAnimTemp3
- dec [hl]
- jr nz, .loop
- pop bc
- ret
-
-InitSurfWaves: ; c8f69 (32:4f69)
- push bc
- xor a
- ld [wBattleAnimTemp0], a
- ld a, e
- ld [wBattleAnimTemp1], a
- ld a, d
- ld [wBattleAnimTemp2], a
- ld a, $40
- ld [wBattleAnimTemp3], a
- ld bc, wSurfWaveBGEffect
-.loop
- ld a, [wBattleAnimTemp2]
- ld d, a
- ld a, [wBattleAnimTemp0]
- call BattleBGEffects_Sine
- ld [bc], a
- inc bc
- ld a, [wBattleAnimTemp1]
- ld hl, wBattleAnimTemp0
- add [hl]
- ld [hl], a
- ld hl, wBattleAnimTemp3
- dec [hl]
- jr nz, .loop
- pop bc
- ret
-
-Functionc8f9a: ; c8f9a (32:4f9a)
- push bc
- ld [wBattleAnimTemp3], a
- ld a, e
- ld [wBattleAnimTemp1], a
- ld a, d
- ld [wBattleAnimTemp2], a
- call .GetLYOverrideBackupAddrOffset
- ld hl, LYOverridesBackup
- add hl, de
- ld c, l
- ld b, h
-.loop
- ld a, [wBattleAnimTemp3]
- and a
- jr z, .done
- dec a
- ld [wBattleAnimTemp3], a
- push af
- ld a, [wBattleAnimTemp2]
- ld d, a
- ld a, [wBattleAnimTemp1]
- push hl
- call BattleBGEffects_Sine
- ld e, a
- pop hl
- ld a, [hLYOverrideEnd]
- cp c
- jr c, .skip1
- ld a, e
- ld [bc], a
- inc bc
-.skip1
- ld a, [hLYOverrideStart]
- cp l
- jr nc, .skip2
- ld [hl], e
- dec hl
-.skip2
- ld a, [wBattleAnimTemp1]
- add $4
- ld [wBattleAnimTemp1], a
- pop af
- jr .loop
-
-.done
- pop bc
- and a
- ret
-
-.GetLYOverrideBackupAddrOffset:
- ld a, [hLYOverrideStart]
- ld e, a
- ld a, [wBattleAnimTemp0]
- add e
- ld e, a
- ld d, $0
- ret
-
-BattleBGEffect_WavyScreenFX: ; c8fef (32:4fef)
- push bc
- ld a, [hLYOverrideStart]
- ld l, a
- inc a
- ld e, a
- ld h, HIGH(LYOverridesBackup)
- ld d, h
- ld a, [hLYOverrideEnd]
- sub l
- and a
- jr z, .done
- ld c, a
- ld a, [hl]
- push af
-.loop
- ld a, [de]
- inc de
- ld [hli], a
- dec c
- jr nz, .loop
- pop af
- ld [hl], a
-.done
- pop bc
- ret
-
-BGEffect_FillLYOverridesBackup: ; c900b (32:500b)
- push af
- ld h, HIGH(LYOverridesBackup)
- ld a, [hLYOverrideStart]
- ld l, a
- ld a, [hLYOverrideEnd]
- sub l
- ld d, a
- pop af
-.loop
- ld [hli], a
- dec d
- jr nz, .loop
- ret
-
-BGEffect_DisplaceLYOverridesBackup: ; c901b (32:501b)
- ; e = a; d = [hLYOverrideEnd] - [hLYOverrideStart] - a
- push af
- ld e, a
- ld a, [hLYOverrideStart]
- ld l, a
- ld a, [hLYOverrideEnd]
- sub l
- sub e
- ld d, a
- ld h, HIGH(LYOverridesBackup)
- ld a, [hLYOverrideStart]
- ld l, a
- ld a, $90
-.loop
- ld [hli], a
- dec e
- jr nz, .loop
- pop af
- xor $ff
-.loop2
- ld [hli], a
- dec d
- jr nz, .loop2
- ret
-
-BGEffect_CheckBattleTurn: ; c9038 (32:5038)
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- ld a, [hBattleTurn]
- and $1
- xor [hl]
- ret
-
-BGEffect_CheckFlyDigStatus: ; c9042 (32:5042)
- ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
- add hl, bc
- ld a, [hBattleTurn]
- and $1
- xor [hl]
- jr nz, .player
- ld a, [EnemySubStatus3] ; EnemySubStatus3
- and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
- ret
-
-.player
- ld a, [PlayerSubStatus3] ; PlayerSubStatus3
- and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
- ret
-
-BattleBGEffects_CheckSGB: ; c9059 (32:5059)
- ld a, [hSGB]
- and a
- ret
-
-BattleBGEffects_Sine: ; c905d (32:505d)
- ld e, a
- callfar BattleAnim_Sine_e
- ld a, e
- ret
-
-BattleBGEffects_Cosine: ; c9066 (32:5066)
- ld e, a
- callfar BattleAnim_Cosine_e
- ld a, e
- ret
-
-; c906f (32:506f)