summaryrefslogtreecommitdiff
path: root/engine/evolution.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/evolution.asm')
-rwxr-xr-xengine/evolution.asm149
1 files changed, 76 insertions, 73 deletions
diff --git a/engine/evolution.asm b/engine/evolution.asm
index 7ae88fdf..a2c52765 100755
--- a/engine/evolution.asm
+++ b/engine/evolution.asm
@@ -1,4 +1,4 @@
-Func_7bde9: ; 7bde9 (1e:7de9)
+EvolveMon:
push hl
push de
push bc
@@ -8,72 +8,72 @@ Func_7bde9: ; 7bde9 (1e:7de9)
push af
xor a
ld [wLowHealthAlarm], a
- ld [wc02a], a
+ ld [wChannelSoundIDs + Ch4], a
dec a
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySound
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ld a, (SFX_08_3c - SFX_Headers_08) / 3
+ ld [H_AUTOBGTRANSFERENABLED], a
+ ld a, SFX_TINK
call PlaySound
call Delay3
xor a
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ ld [H_AUTOBGTRANSFERENABLED], a
ld [hTilesetType], a
- ld a, [wHPBarMaxHP]
- ld [wcf1d], a
- ld c, $0
- call Func_7beb4
- ld a, [wHPBarMaxHP + 1]
+ ld a, [wEvoOldSpecies]
+ ld [wWholeScreenPaletteMonSpecies], a
+ ld c, 0
+ call EvolutionSetWholeScreenPalette
+ ld a, [wEvoNewSpecies]
ld [wcf91], a
ld [wd0b5], a
- call Func_7beb9
+ call Evolution_LoadPic
ld de, vFrontPic
ld hl, vBackPic
ld bc, 7 * 7
call CopyVideoData
- ld a, [wHPBarMaxHP]
+ ld a, [wEvoOldSpecies]
ld [wcf91], a
ld [wd0b5], a
- call Func_7beb9
+ call Evolution_LoadPic
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ld a, [wHPBarMaxHP]
+ ld [H_AUTOBGTRANSFERENABLED], a
+ ld a, [wEvoOldSpecies]
call PlayCry
call WaitForSoundToFinish
ld c, BANK(Music_SafariZone)
ld a, MUSIC_SAFARI_ZONE
call PlayMusic
- ld c, $50
+ ld c, 80
call DelayFrames
- ld c, $1
- call Func_7beb4
- ld bc, $110
-.asm_7be63
+ ld c, 1 ; set PAL_BLACK instead of mon palette
+ call EvolutionSetWholeScreenPalette
+ lb bc, $1, $10
+.animLoop
push bc
- call asm_7befa
- jr c, .asm_7bea9
- call asm_7bec2
+ call Evolution_CheckForCancel
+ jr c, .evolutionCancelled
+ call Evolution_BackAndForthAnim
pop bc
inc b
dec c
dec c
- jr nz, .asm_7be63
+ jr nz, .animLoop
xor a
- ld [wHPBarOldHP + 1], a
+ ld [wEvoCancelled], a
ld a, $31
- ld [wHPBarOldHP], a
- call Func_7bed6
- ld a, [wHPBarMaxHP + 1]
-.asm_7be81
- ld [wcf1d], a
+ ld [wEvoMonTileOffset], a
+ call Evolution_ChangeMonPic ; show the new species pic
+ ld a, [wEvoNewSpecies]
+.done
+ ld [wWholeScreenPaletteMonSpecies], a
ld a, $ff
- ld [wc0ee], a
+ ld [wNewSoundID], a
call PlaySound
- ld a, [wcf1d]
+ ld a, [wWholeScreenPaletteMonSpecies]
call PlayCry
- ld c, $0
- call Func_7beb4
+ ld c, 0
+ call EvolutionSetWholeScreenPalette
pop af
ld [wd0b5], a
pop af
@@ -81,77 +81,80 @@ Func_7bde9: ; 7bde9 (1e:7de9)
pop bc
pop de
pop hl
- ld a, [wHPBarOldHP + 1]
+ ld a, [wEvoCancelled]
and a
ret z
scf
ret
-.asm_7bea9
+.evolutionCancelled
pop bc
- ld a, $1
- ld [wHPBarOldHP + 1], a
- ld a, [wHPBarMaxHP]
- jr .asm_7be81
+ ld a, 1
+ ld [wEvoCancelled], a
+ ld a, [wEvoOldSpecies]
+ jr .done
-Func_7beb4: ; 7beb4 (1e:7eb4)
- ld b, $b
- jp GoPAL_SET
+EvolutionSetWholeScreenPalette:
+ ld b, SET_PAL_POKEMON_WHOLE_SCREEN
+ jp RunPaletteCommand
-Func_7beb9: ; 7beb9 (1e:7eb9)
+Evolution_LoadPic:
call GetMonHeader
- hlCoord 7, 2
+ coord hl, 7, 2
jp LoadFlippedFrontSpriteByMonIndex
-asm_7bec2: ; 7bec2 (1e:7ec2)
+
+Evolution_BackAndForthAnim:
+; show the mon change back and forth between the new and old species b times
ld a, $31
- ld [wHPBarOldHP], a
- call Func_7bed6
- ld a, $cf
- ld [wHPBarOldHP], a
- call Func_7bed6
+ ld [wEvoMonTileOffset], a
+ call Evolution_ChangeMonPic
+ ld a, -$31
+ ld [wEvoMonTileOffset], a
+ call Evolution_ChangeMonPic
dec b
- jr nz, asm_7bec2
+ jr nz, Evolution_BackAndForthAnim
ret
-Func_7bed6: ; 7bed6 (1e:7ed6)
+Evolution_ChangeMonPic:
push bc
xor a
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- hlCoord 7, 2
- ld bc, $707
- ld de, $d
-.asm_7bee3
+ ld [H_AUTOBGTRANSFERENABLED], a
+ coord hl, 7, 2
+ lb bc, 7, 7
+ ld de, SCREEN_WIDTH - 7
+.loop
push bc
-.asm_7bee4
- ld a, [wHPBarOldHP]
+.innerLoop
+ ld a, [wEvoMonTileOffset]
add [hl]
ld [hli], a
dec c
- jr nz, .asm_7bee4
+ jr nz, .innerLoop
pop bc
add hl, de
dec b
- jr nz, .asm_7bee3
- ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ jr nz, .loop
+ ld a, 1
+ ld [H_AUTOBGTRANSFERENABLED], a
call Delay3
pop bc
ret
-asm_7befa: ; 7befa (1e:7efa)
+
+Evolution_CheckForCancel:
call DelayFrame
push bc
call JoypadLowSensitivity
ld a, [hJoy5]
pop bc
- and $2
- jr nz, .asm_7bf0d
-.asm_7bf08
+ and B_BUTTON
+ jr nz, .pressedB
+.notAllowedToCancel
dec c
- jr nz, asm_7befa
+ jr nz, Evolution_CheckForCancel
and a
ret
-.asm_7bf0d
- ld a, [wccd4]
+.pressedB
+ ld a, [wForceEvolution]
and a
- jr nz, .asm_7bf08
+ jr nz, .notAllowedToCancel
scf
ret