pokered/engine/evolution.asm

160 lines
2.5 KiB
NASM
Raw Normal View History

EvolveMon: ; 7bde9 (1e:7de9)
2014-05-22 22:13:20 +00:00
push hl
push de
push bc
ld a, [wcf91]
2014-05-22 22:13:20 +00:00
push af
ld a, [wd0b5]
2014-05-22 22:13:20 +00:00
push af
xor a
ld [wLowHealthAlarm], a
ld [wc02a], a
2014-05-22 22:13:20 +00:00
dec a
ld [wc0ee], a
2014-05-22 22:13:20 +00:00
call PlaySound
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a
2014-05-22 22:13:20 +00:00
ld a, (SFX_08_3c - SFX_Headers_08) / 3
call PlaySound
call Delay3
xor a
ld [H_AUTOBGTRANSFERENABLED], a
2014-09-14 18:29:18 +00:00
ld [hTilesetType], a
ld a, [wHPBarMaxHP]
ld [wcf1d], a
2014-05-22 22:13:20 +00:00
ld c, $0
call EvolutionSetWholeScreenPalette
ld a, [wHPBarMaxHP + 1]
ld [wcf91], a
ld [wd0b5], a
call Evolution_LoadPic
2014-05-29 08:31:46 +00:00
ld de, vFrontPic
ld hl, vBackPic
ld bc, 7 * 7
2014-05-22 22:13:20 +00:00
call CopyVideoData
ld a, [wHPBarMaxHP]
ld [wcf91], a
ld [wd0b5], a
call Evolution_LoadPic
2014-05-22 22:13:20 +00:00
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a
ld a, [wHPBarMaxHP]
2014-05-22 22:13:20 +00:00
call PlayCry
call WaitForSoundToFinish
ld c, BANK(Music_SafariZone)
ld a, MUSIC_SAFARI_ZONE
call PlayMusic
ld c, 80
2014-05-22 22:13:20 +00:00
call DelayFrames
ld c, $1
call EvolutionSetWholeScreenPalette
2014-05-22 22:13:20 +00:00
ld bc, $110
.asm_7be63
push bc
call Evolution_CheckForCancel
jr c, .evolutionCancelled
call Func_7bec2
2014-05-22 22:13:20 +00:00
pop bc
inc b
dec c
dec c
jr nz, .asm_7be63
xor a
ld [wHPBarOldHP + 1], a
2014-05-22 22:13:20 +00:00
ld a, $31
ld [wHPBarOldHP], a
2014-05-22 22:13:20 +00:00
call Func_7bed6
ld a, [wHPBarMaxHP + 1]
.afterCancellation
ld [wcf1d], a
2014-05-22 22:13:20 +00:00
ld a, $ff
ld [wc0ee], a
2014-05-22 22:13:20 +00:00
call PlaySound
ld a, [wcf1d]
2014-05-22 22:13:20 +00:00
call PlayCry
ld c, $0
call EvolutionSetWholeScreenPalette
2014-05-22 22:13:20 +00:00
pop af
ld [wd0b5], a
2014-05-22 22:13:20 +00:00
pop af
ld [wcf91], a
2014-05-22 22:13:20 +00:00
pop bc
pop de
pop hl
ld a, [wHPBarOldHP + 1]
2014-05-22 22:13:20 +00:00
and a
ret z
scf
ret
.evolutionCancelled
2014-05-22 22:13:20 +00:00
pop bc
ld a, $1
ld [wHPBarOldHP + 1], a
ld a, [wHPBarMaxHP]
jr .afterCancellation
2014-05-22 22:13:20 +00:00
EvolutionSetWholeScreenPalette: ; 7beb4 (1e:7eb4)
2014-05-22 22:13:20 +00:00
ld b, $b
jp GoPAL_SET
Evolution_LoadPic: ; 7beb9 (1e:7eb9)
2014-05-22 22:13:20 +00:00
call GetMonHeader
2015-07-18 20:52:03 +00:00
coord hl, 7, 2
2014-05-22 22:13:20 +00:00
jp LoadFlippedFrontSpriteByMonIndex
Func_7bec2: ; 7bec2 (1e:7ec2)
2014-05-22 22:13:20 +00:00
ld a, $31
ld [wHPBarOldHP], a
2014-05-22 22:13:20 +00:00
call Func_7bed6
ld a, $cf
ld [wHPBarOldHP], a
2014-05-22 22:13:20 +00:00
call Func_7bed6
dec b
jr nz, Func_7bec2
2014-05-22 22:13:20 +00:00
ret
Func_7bed6: ; 7bed6 (1e:7ed6)
push bc
xor a
ld [H_AUTOBGTRANSFERENABLED], a
2015-07-18 20:52:03 +00:00
coord hl, 7, 2
2014-05-22 22:13:20 +00:00
ld bc, $707
ld de, $d
.asm_7bee3
push bc
.asm_7bee4
ld a, [wHPBarOldHP]
2014-05-22 22:13:20 +00:00
add [hl]
ld [hli], a
dec c
jr nz, .asm_7bee4
pop bc
add hl, de
dec b
jr nz, .asm_7bee3
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a
2014-05-22 22:13:20 +00:00
call Delay3
pop bc
ret
Evolution_CheckForCancel: ; 7befa (1e:7efa)
2014-05-22 22:13:20 +00:00
call DelayFrame
push bc
2014-05-25 18:21:48 +00:00
call JoypadLowSensitivity
ld a, [hJoy5]
2014-05-22 22:13:20 +00:00
pop bc
and B_BUTTON
jr nz, .pressedB
.notAllowedToCancel
2014-05-22 22:13:20 +00:00
dec c
jr nz, Evolution_CheckForCancel
2014-05-22 22:13:20 +00:00
and a
ret
.pressedB
ld a, [wForceEvolution]
2014-05-22 22:13:20 +00:00
and a
jr nz, .notAllowedToCancel
2014-05-22 22:13:20 +00:00
scf
ret