summaryrefslogtreecommitdiff
path: root/engine/pikachu_pic_animation.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/pikachu_pic_animation.asm')
-rwxr-xr-xengine/pikachu_pic_animation.asm114
1 files changed, 59 insertions, 55 deletions
diff --git a/engine/pikachu_pic_animation.asm b/engine/pikachu_pic_animation.asm
index b935da19..1d91150e 100755
--- a/engine/pikachu_pic_animation.asm
+++ b/engine/pikachu_pic_animation.asm
@@ -93,7 +93,7 @@ StarterPikachuEmotionCommand_pikapic: ; fd9d0 (3f:59d0)
xor a
ld [H_AUTOBGTRANSFERENABLED], a
ld a, [de]
- ld [wExpressionNumber2], a
+ ld [wPikaPicAnimNumber], a
inc de
push de
call .RunPikapic
@@ -127,10 +127,10 @@ ResetPikaPicAnimBuffer:
ld [wPikaPicAnimTimer], a
ld a, h
ld [wPikaPicAnimTimer + 1], a
- ld a, $07
- ld [wPikaSpriteY], a
- ld a, $06
- ld [wPikaPicTextboxStartY], a
+ ld a, $7
+ ld [wPikaPicPikaDrawStartX], a
+ ld a, $6
+ ld [wPikaPicPikaDrawStartY], a
ret
PlacePikapicTextBoxBorder:
@@ -141,16 +141,16 @@ PlacePikapicTextBoxBorder:
call TextBoxBorder
call Delay3
call UpdateSprites
- ld a, $01
+ ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a
call Delay3
ret
LoadCurrentPikaPicAnimScriptPointer:
- ld a, [wExpressionNumber2]
+ ld a, [wPikaPicAnimNumber]
cp $1d
jr c, .valid
- ld a, 0
+ ld a, $0
.valid
ld e, a
ld d, 0
@@ -199,7 +199,6 @@ endm
pikapic_def PikaPicAnimScript28 ; 1c
pikapic_def PikaPicAnimScript29 ; 1d
-
ExecutePikaPicAnimScript:
.loop
xor a
@@ -208,7 +207,7 @@ ExecutePikaPicAnimScript:
call DummyFunction_fdad5
call AnimateCurrentPikaPicAnimFrame
call DummyFunction_fdad5
- ld a, $01
+ ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a
call PikaPicAnimTimerAndJoypad
and a
@@ -239,7 +238,7 @@ CheckPikaPicAnimTimer:
ret
.timer_expired
- ld a, $01
+ ld a, $1
ret
DummyFunction_fdad5:
@@ -251,43 +250,43 @@ AnimateCurrentPikaPicAnimFrame:
.loop
push af
push bc
- ld hl, 0
+ ld hl, 0 ; struct index
add hl, bc
ld a, [hli]
and a
jr z, .skip
ld a, [hli]
- ld [wCurPikaPicAnimObject], a
+ ld [wCurPikaPicAnimObjectScriptIdx], a
ld a, [hli]
- ld [wCurPikaPicAnimObject + 1], a
+ ld [wCurPikaPicAnimObjectFrameIdx], a
ld a, [hli]
- ld [wCurPikaPicAnimObject + 2], a
+ ld [wCurPikaPicAnimObjectFrameTimer], a
ld a, [hli]
- ld [wd456], a
+ ld [wCurPikaPicAnimObjectVTileOffset], a
ld a, [hli]
- ld [wd457], a
+ ld [wCurPikaPicAnimObjectXOffset], a
ld a, [hli]
- ld [wd458], a
+ ld [wCurPikaPicAnimObjectYOffset], a
ld a, [hli]
- ld [wCurPikaPicAnimObject + 3], a
+ ld [wCurPikaPicAnimObject + 6], a
push bc
call LoadPikaPicAnimObjectData
pop bc
- ld hl, 1
+ ld hl, 1 ; script index
add hl, bc
- ld a, [wCurPikaPicAnimObject]
+ ld a, [wCurPikaPicAnimObjectScriptIdx]
ld [hli], a
- ld a, [wCurPikaPicAnimObject + 1]
+ ld a, [wCurPikaPicAnimObjectFrameIdx]
ld [hli], a
- ld a, [wCurPikaPicAnimObject + 2]
+ ld a, [wCurPikaPicAnimObjectFrameTimer]
ld [hli], a
- ld a, [wd456]
+ ld a, [wCurPikaPicAnimObjectVTileOffset]
ld [hli], a
- ld a, [wd457]
+ ld a, [wCurPikaPicAnimObjectXOffset]
ld [hli], a
- ld a, [wd458]
+ ld a, [wCurPikaPicAnimObjectYOffset]
ld [hli], a
- ld a, [wCurPikaPicAnimObject + 3]
+ ld a, [wCurPikaPicAnimObject + 6]
ld [hl], a
.skip
pop bc
@@ -324,7 +323,7 @@ PikaPicAnimCommand_object:
call GetPikaPicAnimByte
ld [hl], a
xor a
- ld [hli], a
+ ld [hli], a ; overloads
ld [hli], a
call GetPikaPicAnimByte
ld [hli], a
@@ -358,20 +357,20 @@ PikaPicAnimCommand_deleteobject:
LoadPikaPicAnimObjectData:
.loop
- ld a, [wCurPikaPicAnimObject]
+ ld a, [wCurPikaPicAnimObjectScriptIdx]
cp $23
jr c, .valid
ld a, $4
.valid
ld e, a
ld d, 0
- ld hl, PikaPicAnimOAMPointers
+ ld hl, PikaPicAnimBGFramesPointers
add hl, de
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
- ld a, [wCurPikaPicAnimObject + 1]
+ ld a, [wCurPikaPicAnimObjectFrameIdx]
ld e, a
ld d, 0
add hl, de
@@ -383,8 +382,8 @@ LoadPikaPicAnimObjectData:
.end
xor a
- ld [wCurPikaPicAnimObject + 1], a
- ld [wCurPikaPicAnimObject + 2], a
+ ld [wCurPikaPicAnimObjectFrameIdx], a
+ ld [wCurPikaPicAnimObjectFrameTimer], a
jr .loop
.init
@@ -393,18 +392,18 @@ LoadPikaPicAnimObjectData:
pop hl
ld a, [hl]
and a
- jr z, .done
- ld a, [wCurPikaPicAnimObject + 2]
+ jr z, .not_done ; lasts forever
+ ld a, [wCurPikaPicAnimObjectFrameTimer]
inc a
- ld [wCurPikaPicAnimObject + 2], a
+ ld [wCurPikaPicAnimObjectFrameTimer], a
cp [hl]
- jr nz, .done
+ jr nz, .not_done
xor a
- ld [wCurPikaPicAnimObject + 2], a
- ld a, [wCurPikaPicAnimObject + 1]
+ ld [wCurPikaPicAnimObjectFrameTimer], a
+ ld a, [wCurPikaPicAnimObjectFrameIdx]
inc a
- ld [wCurPikaPicAnimObject + 1], a
-.done
+ ld [wCurPikaPicAnimObjectFrameIdx], a
+.not_done
ret
INCLUDE "data/pikachu_pic_objects.asm"
@@ -428,13 +427,13 @@ LoadCurPikaPicObjectTilemap:
inc de
push de
push bc
- call .GetYCoordinate
+ call .GetStartCoords
pop bc
pop de
.row
push bc
push hl
- ld a, [wd456]
+ ld a, [wCurPikaPicAnimObjectVTileOffset] ; tile id offset
ld c, a
.col
ld a, [de]
@@ -455,18 +454,18 @@ LoadCurPikaPicObjectTilemap:
jr nz, .row
ret
-.GetYCoordinate:
+.GetStartCoords:
push bc
- ld a, [wd458]
+ ld a, [wCurPikaPicAnimObjectYOffset] ; Y offset
ld b, a
- ld a, [wPikaPicTextboxStartY]
+ ld a, [wPikaPicPikaDrawStartY]
add b
coord hl, 0, 0
ld bc, SCREEN_WIDTH
call AddNTimes
- ld a, [wd457]
+ ld a, [wCurPikaPicAnimObjectXOffset] ; X offset
ld c, a
- ld a, [wPikaSpriteY]
+ ld a, [wPikaPicPikaDrawStartX]
add c
ld c, a
ld b, 0
@@ -704,6 +703,11 @@ GetPikaPicVRAMAddressForNewGFX:
ret
CheckIfThereIsRoomForPikaPicAnimGFX:
+; d: idx
+; e: size
+; FATAL: If the graphic has already been loaded, or if there are
+; already 8 graphics objects loaded, the game will execute arbitrary
+; code.
push bc
push hl
ld hl, wPikaPicUsedGFX
@@ -788,12 +792,12 @@ PikaPicAnimCommand_thunderbolt:
call DelayFrame
ld a, [wAudioROMBank]
push af
- ld a, BANK(SFX_Battle_2F)
+ ld a, BANK(SFX_Thunderbolt)
ld [wAudioROMBank], a
ld [wAudioSavedROMBank], a
- call PikaPicAnimLoadThunderboltAudio
+ call .LoadAudio
call PlaySound
- call PikaPicAnimThunderboltFlashScreen
+ call .FlashScreen
call WaitForSoundToFinish
pop af
ld [wAudioROMBank], a
@@ -802,7 +806,7 @@ PikaPicAnimCommand_thunderbolt:
ld [wMuteAudioAndPauseMusic], a
ret
-PikaPicAnimLoadThunderboltAudio:
+.LoadAudio:
ld hl, MoveSoundTable
ld e, THUNDERBOLT
ld d, 0
@@ -823,7 +827,7 @@ PikaPicAnimLoadThunderboltAudio:
ld a, b
ret
-PikaPicAnimThunderboltFlashScreen:
+.FlashScreen:
ld hl, PikaPicAnimThunderboltPals
.loop
ld a, [hli]
@@ -833,11 +837,11 @@ PikaPicAnimThunderboltFlashScreen:
ld b, [hl]
inc hl
push hl
- call GetDMGBGPalForPikaThunderbolt
+ call .UpdatePal
pop hl
jr .loop
-GetDMGBGPalForPikaThunderbolt:
+.UpdatePal:
ld a, b
ld [rBGP], a
call UpdateGBCPal_BGP