summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/data/palettes1.asm2
-rw-r--r--src/engine/bank01.asm26
-rwxr-xr-xsrc/engine/bank03.asm2
-rw-r--r--src/engine/bank04.asm4
-rw-r--r--src/engine/bank06.asm12
-rw-r--r--src/engine/bank07.asm53
-rw-r--r--src/engine/bank20.asm23
-rw-r--r--src/engine/home.asm25
-rw-r--r--src/wram.asm11
9 files changed, 83 insertions, 75 deletions
diff --git a/src/data/palettes1.asm b/src/data/palettes1.asm
index 75b7c10..8514090 100644
--- a/src/data/palettes1.asm
+++ b/src/data/palettes1.asm
@@ -1,4 +1,4 @@
-; palette data are read by Func_80418, expected to be structured as so:
+; palette data are read by LoadPaletteData, expected to be structured as so:
; the first byte has possible values of 0, 1 or 2
; - if 0, nothing is done;
; - if 1, then the next byte is written to OBP0 (or to OBP1 if wd4ca == $1);
diff --git a/src/engine/bank01.asm b/src/engine/bank01.asm
index ba06c56..46f5919 100644
--- a/src/engine/bank01.asm
+++ b/src/engine/bank01.asm
@@ -218,7 +218,7 @@ MainDuelLoop: ; 40ee (1:40ee)
ldtx hl, LostDuelText
.handle_duel_finished
- call Func_3b6a
+ call PlayDuelAnimation
ld a, c
call PlaySong
ld a, OPPONENT_TURN
@@ -1523,7 +1523,7 @@ PlayTurnDuelistDrawAnimation: ; 49a8 (1:49a8)
ld e, DUEL_ANIM_OPP_DRAW
.got_duelist
ld a, e
- call Func_3b6a
+ call PlayDuelAnimation
.loop_anim
call DoFrame
@@ -2229,11 +2229,11 @@ PlayShuffleAndDrawCardsAnimation: ; 4e98 (1:4e98)
ld hl, sp+$03
; play animation 3 times
ld a, [hl]
- call Func_3b6a
+ call PlayDuelAnimation
ld a, [hl]
- call Func_3b6a
+ call PlayDuelAnimation
ld a, [hl]
- call Func_3b6a
+ call PlayDuelAnimation
.loop_shuffle_anim
call DoFrame
@@ -2255,7 +2255,7 @@ PlayShuffleAndDrawCardsAnimation: ; 4e98 (1:4e98)
; get the draw animation from input value of c
ld hl, sp+$00
ld a, [hl]
- call Func_3b6a
+ call PlayDuelAnimation
.loop_drawing_anim
call DoFrame
@@ -2328,11 +2328,11 @@ Func_4f2d: ; 4f2d (1:4f2d)
.load_anim
; play animation 3 times
ld a, e
- call Func_3b6a
+ call PlayDuelAnimation
ld a, e
- call Func_3b6a
+ call PlayDuelAnimation
ld a, e
- call Func_3b6a
+ call PlayDuelAnimation
.loop_anim
call DoFrame
@@ -6942,7 +6942,7 @@ Func_6cab: ; 6cab (1:6cab)
pop af
; play animation
- call Func_3b6a
+ call PlayDuelAnimation
.loop_anim
call DoFrame
call CheckAnyAnimationPlaying
@@ -7844,7 +7844,7 @@ _TossCoin: ; 71ad (1:71ad)
.asm_7223
call Func_3b21
ld a, DUEL_ANIM_COIN_SPIN
- call Func_3b6a
+ call PlayDuelAnimation
ld a, [wCoinTossDuelistType]
or a
@@ -7871,7 +7871,7 @@ _TossCoin: ; 71ad (1:71ad)
; load the correct tossing animation
; and wait for it to finish
ld a, d
- call Func_3b6a
+ call PlayDuelAnimation
ld a, [wCoinTossDuelistType]
or a
jr z, .wait_anim
@@ -7901,7 +7901,7 @@ _TossCoin: ; 71ad (1:71ad)
.show_result
ld a, b
- call Func_3b6a
+ call PlayDuelAnimation
; load correct sound effect
; the sound of the coin toss result
diff --git a/src/engine/bank03.asm b/src/engine/bank03.asm
index 2e3f0d9..79a7edf 100755
--- a/src/engine/bank03.asm
+++ b/src/engine/bank03.asm
@@ -570,7 +570,7 @@ Func_c4b9: ; c4b9 (3:44b9)
ld [wVRAMTileOffset], a
ld [wd4cb], a
ld a, $1d
- farcall Func_80418
+ farcall LoadPaletteData
ld b, $0
ld a, [wConsole]
cp $2
diff --git a/src/engine/bank04.asm b/src/engine/bank04.asm
index e4db318..13666ec 100644
--- a/src/engine/bank04.asm
+++ b/src/engine/bank04.asm
@@ -1632,11 +1632,11 @@ HandleAnimationFrame: ; 12b13 (4:6b13)
adc 0
ld [hl], a
- ld de, wd23e
+ ld de, wLoadedPalData
ld bc, SPRITE_FRAME_OFFSET_SIZE
call CopyBankedDataToDE
pop hl ; beginning of current sprite_anim_buffer
- ld de, wd23e
+ ld de, wLoadedPalData
ld a, [de]
call GetAnimFramePointerFromOffset
inc de
diff --git a/src/engine/bank06.asm b/src/engine/bank06.asm
index 09d9de1..1eb85be 100644
--- a/src/engine/bank06.asm
+++ b/src/engine/bank06.asm
@@ -1084,7 +1084,7 @@ Func_18f9c: ; 18f9c (6:4f9c)
cp $04
jr z, .asm_4fd3
ld a, $96
- call Func_3b6a
+ call PlayDuelAnimation
.asm_4fd3
pop de
.asm_4fd4
@@ -1140,12 +1140,12 @@ Func_19014: ; 19014 (6:5014)
jr z, .shake_3
.play_anim
- call Func_3b6a
+ call PlayDuelAnimation
jr Func_18f9c.asm_4fd4
.show_damage
ld a, $97
- call Func_3b6a
+ call PlayDuelAnimation
ld a, [wce81]
ld [wd4b3], a
@@ -1160,12 +1160,12 @@ Func_19014: ; 19014 (6:5014)
pop de
ld a, $8c
- call Func_3b6a
+ call PlayDuelAnimation
ld a, [wDuelDisplayedScreen]
cp DUEL_MAIN_SCENE
jr nz, .asm_5054
ld a, $98
- call Func_3b6a
+ call PlayDuelAnimation
.asm_5054
jp Func_18f9c.asm_4fd4
@@ -1203,7 +1203,7 @@ Func_19079: ; 19079 (6:5079)
ld [wDuelAnimLocationParam], a
call Func_1909d
ld a, $96
- call Func_3b6a
+ call PlayDuelAnimation
jp Func_18f9c.asm_4fd4
PointerTable_006_508f: ; 1908f (6:508f)
diff --git a/src/engine/bank07.asm b/src/engine/bank07.asm
index 4695918..d664eb8 100644
--- a/src/engine/bank07.asm
+++ b/src/engine/bank07.asm
@@ -573,8 +573,8 @@ Func_1c8bc: ; 1c8bc (7:48bc)
ld [wd42a], a
ld [wd4c0], a
xor a
- ld [wd4ac], a
- ld [wd4ad], a
+ ld [wDuelAnimBufferCurPos], a
+ ld [wDuelAnimBufferSize], a
ld [wd4b3], a
call Func_1ccbc
call Func_3ca0
@@ -583,7 +583,7 @@ Func_1c8bc: ; 1c8bc (7:48bc)
ret
; 0x1c8ef
-Func_1c8ef: ; 1c8ef (7:48ef)
+PlayLoadedDuelAnimation: ; 1c8ef (7:48ef)
ld a, [wDoFrameFunction + 0]
cp LOW(Func_3ba2)
jr nz, .error
@@ -603,7 +603,7 @@ Func_1c8ef: ; 1c8ef (7:48ef)
push hl
push bc
push de
- call Func_1cab3
+ call GetAnimationData
; hl: pointer
ld a, [wAnimationsDisabled]
@@ -684,7 +684,7 @@ Func_1c8ef: ; 1c8ef (7:48ef)
ld [wd4cb], a
ld a, [hli] ; ANIM_PALETTE_ID
- farcall Func_80418
+ farcall LoadPaletteData
ld a, [hli] ; ANIM_SPRITE_ANIM_ID
push af
@@ -830,18 +830,20 @@ AnimationCoordinates:
anim_coords 56, 40, $00
anim_coords 24, 40, $00
-Func_1ca31: ; 1ca31 (7:4a31)
+; appends to end of wDuelAnimBuffer
+; the current duel animation
+LoadDuelAnimationToBuffer: ; 1ca31 (7:4a31)
push hl
push bc
- ld a, [wd4ac]
+ ld a, [wDuelAnimBufferCurPos]
ld b, a
- ld hl, wd4ad
+ ld hl, wDuelAnimBufferSize
ld a, [hl]
ld c, a
add DUEL_ANIM_STRUCT_SIZE
and %01111111
cp b
- jp z, .asm_007_4a6b
+ jp z, .skip
ld [hl], a
ld b, $00
@@ -864,25 +866,27 @@ Func_1ca31: ; 1ca31 (7:4a31)
ld a, [wDuelAnimReturnBank]
ld [hl], a
-.asm_007_4a6b
+.skip
pop bc
pop hl
ret
-Func_1ca6e: ; 1ca6e (7:4a6e)
+; loads the animations from wDuelAnimBuffer
+; in acending order, starting at wDuelAnimBufferCurPos
+PlayBufferedDuelAnimations: ; 1ca6e (7:4a6e)
push hl
push bc
-.asm_1ca70
- ld a, [wd4ad]
+.next_duel_anim
+ ld a, [wDuelAnimBufferSize]
ld b, a
- ld a, [wd4ac]
+ ld a, [wDuelAnimBufferCurPos]
cp b
- jr z, .asm_1cab0
+ jr z, .skip
ld c, a
add DUEL_ANIM_STRUCT_SIZE
and %01111111
- ld [wd4ac], a
+ ld [wDuelAnimBufferCurPos], a
ld b, $00
ld hl, wDuelAnimBuffer
@@ -904,18 +908,19 @@ Func_1ca6e: ; 1ca6e (7:4a6e)
ld a, [hl]
ld [wDuelAnimReturnBank], a
- call Func_1c8ef
+ call PlayLoadedDuelAnimation
call CheckAnyAnimationPlaying
- jr nc, .asm_1ca70
+ jr nc, .next_duel_anim
-.asm_1cab0
+.skip
pop bc
pop hl
ret
; 0x1cab3
; gets data from Animations for anim ID in a
-Func_1cab3: ; 1cab3 (7:4ab3)
+; outputs the pointer to the data in hl
+GetAnimationData: ; 1cab3 (7:4ab3)
push bc
ld a, [wTempAnimation]
ld l, a
@@ -965,7 +970,7 @@ Func_1cac5: ; 1cac5 (7:4ac5)
.asm_1cafb
cp $ff
jr nz, .asm_1cb02
- call Func_1ca6e
+ call PlayBufferedDuelAnimations
.asm_1cb02
ret
@@ -1016,8 +1021,8 @@ Func_1cb18: ; 1cb18 (7:4b18)
dec c
jr nz, .asm_1cb3b
xor a
- ld [wd4ac], a
- ld [wd4ad], a
+ ld [wDuelAnimBufferCurPos], a
+ ld [wDuelAnimBufferSize], a
.asm_1cb57
pop de
pop bc
@@ -1049,7 +1054,7 @@ Func_1cb5e: ; 1cb5e (7:4b5e)
ld [wd4cb], a
ld a, $25
- farcall Func_80418
+ farcall LoadPaletteData
call Func_1cba6
ld hl, wd4b3
diff --git a/src/engine/bank20.asm b/src/engine/bank20.asm
index c2a8cdf..dfc8304 100644
--- a/src/engine/bank20.asm
+++ b/src/engine/bank20.asm
@@ -33,7 +33,7 @@ Func_80077: ; 80077 (20:4077)
call Func_803b9
ld a, [wTempPointerBank]
ld [wd23d], a
- ld de, wd23e
+ ld de, wLoadedPalData
ld bc, $0006
call CopyBankedDataToDE
ld l, e
@@ -87,7 +87,7 @@ Func_800e0: ; 800e0 (20:40e0)
sla [hl]
.asm_800f0
ld c, $40
- ld hl, wd23e
+ ld hl, wLoadedPalData
xor a
.asm_800f6
ld [hli], a
@@ -101,13 +101,13 @@ Func_800e0: ; 800e0 (20:40e0)
ld b, $00
ld a, [$d28e]
ld c, a
- ld de, wd23e
+ ld de, wLoadedPalData
call Func_3be4
ld a, [wd12f]
ld b, a
pop de
push de
- ld hl, wd23e
+ ld hl, wLoadedPalData
call Func_8016e
ld a, [wConsole]
cp $02
@@ -116,7 +116,7 @@ Func_800e0: ; 800e0 (20:40e0)
ld a, [wd12f]
ld c, a
ld b, $00
- ld hl, wd23e
+ ld hl, wLoadedPalData
add hl, bc
pop de
push de
@@ -422,7 +422,7 @@ Func_803b9: ; 803b9 (20:43b9)
; b = palette index
; c = palette size
; hl = palette data to copy
-LoadPaletteData: ; 803ec (20:43ec)
+LoadPaletteDataFromHL: ; 803ec (20:43ec)
push hl
push bc
push de
@@ -466,13 +466,14 @@ LoadPaletteData: ; 803ec (20:43ec)
ret
; 0x80418
-Func_80418: ; 80418 (20:4418)
+; loads palette index a
+LoadPaletteData: ; 80418 (20:4418)
push hl
push bc
push de
call CopyPaletteDataToBuffer
- ld hl, wd23e
+ ld hl, wLoadedPalData
ld a, [hli] ; number palettes
ld c, a
or a
@@ -513,7 +514,7 @@ Func_80418: ; 80418 (20:4418)
; ensure it's a palette index starting from wObjectPalettesCGB
or NUM_BACKGROUND_PALETTES
ld b, a
- call LoadPaletteData
+ call LoadPaletteDataFromHL
.done
pop de
@@ -522,7 +523,7 @@ Func_80418: ; 80418 (20:4418)
ret
; 0x80456
-; copies palette data of index in a to wd23e
+; copies palette data of index in a to wLoadedPalData
CopyPaletteDataToBuffer: ; 80456 (20:4456)
push hl
push bc
@@ -545,7 +546,7 @@ CopyPaletteDataToBuffer: ; 80456 (20:4456)
ld c, a
ld b, $00
- ld de, wd23e
+ ld de, wLoadedPalData
call CopyBankedDataToDE
pop de
pop bc
diff --git a/src/engine/home.asm b/src/engine/home.asm
index cc16ca3..476f182 100644
--- a/src/engine/home.asm
+++ b/src/engine/home.asm
@@ -11115,9 +11115,12 @@ CheckAnyAnimationPlaying: ; 3b52 (0:3b52)
pop hl
ret
+; plays duel animation
+; the animations are loaded to a buffer
+; and played in order, so they can be stacked
; input:
; - a = animation index
-Func_3b6a: ; 3b6a (0:3b6a)
+PlayDuelAnimation: ; 3b6a (0:3b6a)
ld [wTempAnimation], a ; hold an animation temporarily
ldh a, [hBankROM]
push af
@@ -11126,25 +11129,25 @@ Func_3b6a: ; 3b6a (0:3b6a)
push hl
push bc
push de
- ld a, BANK(Func_1ca31)
+ ld a, BANK(LoadDuelAnimationToBuffer)
call BankswitchROM
ld a, [wTempAnimation]
cp $61
- jr nc, .asm_3b90
+ jr nc, .load_buffer
- ld hl, wd4ad
- ld a, [wd4ac]
+ ld hl, wDuelAnimBufferSize
+ ld a, [wDuelAnimBufferCurPos]
cp [hl]
- jr nz, .asm_3b90
+ jr nz, .load_buffer
call CheckAnyAnimationPlaying
- jr nc, .asm_3b95
+ jr nc, .play_anim
-.asm_3b90
- call Func_1ca31
+.load_buffer
+ call LoadDuelAnimationToBuffer
jr .done
-.asm_3b95
- call Func_1c8ef
+.play_anim
+ call PlayLoadedDuelAnimation
jr .done
.done
diff --git a/src/wram.asm b/src/wram.asm
index 34f2333..4fbe652 100644
--- a/src/wram.asm
+++ b/src/wram.asm
@@ -2129,10 +2129,9 @@ wd23c:: ; d23c
wd23d:: ; d23d
ds $1
-wd23e:: ; d23e
- ds $1
-
- ds $50
+; palette loaded from Palette* data
+wLoadedPalData:: ; d23e
+ ds $51
wd28f:: ; d28f
ds $1
@@ -2383,10 +2382,10 @@ wDuelAnimBuffer:: ; d42c
duel_anim_struct wDuelAnim15
duel_anim_struct wDuelAnim16
-wd4ac:: ; d4ac
+wDuelAnimBufferCurPos:: ; d4ac
ds $1
-wd4ad:: ; d4ad
+wDuelAnimBufferSize:: ; d4ad
ds $1
; used to know what coordinate offsets to use to place animations