123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- EvolveMon:
- push hl
- push de
- push bc
- ld a, [wcf91]
- push af
- ld a, [wd0b5]
- push af
- xor a
- ld [wLowHealthAlarm], a
- ld [wChannelSoundIDs + Ch4], a
- dec a
- ld [wNewSoundID], a
- call PlaySound
- ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a
- ld a, SFX_TINK
- call PlaySound
- call Delay3
- xor a
- ld [H_AUTOBGTRANSFERENABLED], a
- ld [hTilesetType], a
- ld a, [wEvoOldSpecies]
- ld [wWholeScreenPaletteMonSpecies], a
- ld c, 0
- call EvolutionSetWholeScreenPalette
- ld a, [wEvoNewSpecies]
- ld [wcf91], a
- ld [wd0b5], a
- call Evolution_LoadPic
- ld de, vFrontPic
- ld hl, vBackPic
- ld bc, 7 * 7
- call CopyVideoData
- ld a, [wEvoOldSpecies]
- ld [wcf91], a
- ld [wd0b5], a
- call Evolution_LoadPic
- ld a, $1
- 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, 80
- call DelayFrames
- ld c, 1 ; set PAL_BLACK instead of mon palette
- call EvolutionSetWholeScreenPalette
- lb bc, $1, $10
- .animLoop
- push bc
- call Evolution_CheckForCancel
- jr c, .evolutionCancelled
- call Evolution_BackAndForthAnim
- pop bc
- inc b
- dec c
- dec c
- jr nz, .animLoop
- xor a
- ld [wEvoCancelled], a
- ld a, $31
- ld [wEvoMonTileOffset], a
- call Evolution_ChangeMonPic ; show the new species pic
- ld a, [wEvoNewSpecies]
- .done
- ld [wWholeScreenPaletteMonSpecies], a
- ld a, $ff
- ld [wNewSoundID], a
- call PlaySound
- ld a, [wWholeScreenPaletteMonSpecies]
- 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, [wEvoCancelled]
- and a
- ret z
- scf
- ret
- .evolutionCancelled
- pop bc
- ld a, 1
- ld [wEvoCancelled], a
- ld a, [wEvoOldSpecies]
- jr .done
- EvolutionSetWholeScreenPalette:
- ld b, SET_PAL_POKEMON_WHOLE_SCREEN
- jp RunPaletteCommand
- Evolution_LoadPic:
- call GetMonHeader
- coord hl, 7, 2
- jp LoadFlippedFrontSpriteByMonIndex
- Evolution_BackAndForthAnim:
- ; show the mon change back and forth between the new and old species b times
- ld a, $31
- ld [wEvoMonTileOffset], a
- call Evolution_ChangeMonPic
- ld a, -$31
- ld [wEvoMonTileOffset], a
- call Evolution_ChangeMonPic
- dec b
- jr nz, Evolution_BackAndForthAnim
- ret
- Evolution_ChangeMonPic:
- push bc
- xor a
- ld [H_AUTOBGTRANSFERENABLED], a
- coord hl, 7, 2
- lb bc, 7, 7
- ld de, SCREEN_WIDTH - 7
- .loop
- push bc
- .innerLoop
- ld a, [wEvoMonTileOffset]
- add [hl]
- ld [hli], a
- dec c
- jr nz, .innerLoop
- pop bc
- add hl, de
- dec b
- jr nz, .loop
- ld a, 1
- ld [H_AUTOBGTRANSFERENABLED], a
- call Delay3
- pop bc
- ret
- Evolution_CheckForCancel:
- 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
|