ref: 54c1893d579cdf6853c6a64953bae281a6075fe3
dir: /engine/evolution.asm/
EvolveMon: ; 7bde9 (1e:7de9) push hl push de push bc ld a, [wcf91] push af ld a, [wd0b5] push af xor a ld [wLowHealthAlarm], a ld [wc02a], a dec a ld [wc0ee], a call PlaySound ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a ld a, (SFX_08_3c - SFX_Headers_08) / 3 call PlaySound call Delay3 xor a ld [H_AUTOBGTRANSFERENABLED], a ld [hTilesetType], a ld a, [wHPBarMaxHP] ld [wcf1d], a ld c, $0 call EvolutionSetWholeScreenPalette ld a, [wHPBarMaxHP + 1] ld [wcf91], a ld [wd0b5], a call Evolution_LoadPic ld de, vFrontPic ld hl, vBackPic ld bc, 7 * 7 call CopyVideoData ld a, [wHPBarMaxHP] ld [wcf91], a ld [wd0b5], a call Evolution_LoadPic ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a ld a, [wHPBarMaxHP] call PlayCry call WaitForSoundToFinish ld c, BANK(Music_SafariZone) ld a, MUSIC_SAFARI_ZONE call PlayMusic ld c, 80 call DelayFrames ld c, $1 call EvolutionSetWholeScreenPalette ld bc, $110 .asm_7be63 push bc call Evolution_CheckForCancel jr c, .evolutionCancelled call Func_7bec2 pop bc inc b dec c dec c jr nz, .asm_7be63 xor a ld [wHPBarOldHP + 1], a ld a, $31 ld [wHPBarOldHP], a call Func_7bed6 ld a, [wHPBarMaxHP + 1] .afterCancellation ld [wcf1d], a ld a, $ff ld [wc0ee], a call PlaySound ld a, [wcf1d] call PlayCry ld c, $0 call EvolutionSetWholeScreenPalette pop af ld [wd0b5], a pop af ld [wcf91], a pop bc pop de pop hl ld a, [wHPBarOldHP + 1] and a ret z scf ret .evolutionCancelled pop bc ld a, $1 ld [wHPBarOldHP + 1], a ld a, [wHPBarMaxHP] jr .afterCancellation EvolutionSetWholeScreenPalette: ; 7beb4 (1e:7eb4) ld b, $b jp GoPAL_SET Evolution_LoadPic: ; 7beb9 (1e:7eb9) call GetMonHeader hlCoord 7, 2 jp LoadFlippedFrontSpriteByMonIndex Func_7bec2: ; 7bec2 (1e:7ec2) ld a, $31 ld [wHPBarOldHP], a call Func_7bed6 ld a, $cf ld [wHPBarOldHP], a call Func_7bed6 dec b jr nz, Func_7bec2 ret Func_7bed6: ; 7bed6 (1e:7ed6) push bc xor a ld [H_AUTOBGTRANSFERENABLED], a hlCoord 7, 2 ld bc, $707 ld de, $d .asm_7bee3 push bc .asm_7bee4 ld a, [wHPBarOldHP] 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 call Delay3 pop bc ret Evolution_CheckForCancel: ; 7befa (1e:7efa) call DelayFrame push bc call JoypadLowSensitivity ld a, [hJoy5] pop bc and B_BUTTON jr nz, .pressedB .notAllowedToCancel dec c jr nz, Evolution_CheckForCancel and a ret .pressedB ld a, [wForceEvolution] and a jr nz, .notAllowedToCancel scf ret