ref: b921226aea7e624655f0d32436638ea3ffd63419
dir: /engine/evolution_animation.asm/
EvolutionAnimation: ; 4e5e1 push hl push de push bc ld a, [CurSpecies] push af ld a, [rOBP0] push af ld a, [BaseDexNo] push af call _EvolutionAnimation pop af ld [BaseDexNo], a pop af ld [rOBP0], a pop af ld [CurSpecies], a pop bc pop de pop hl ld a, [wd1ed] and a ret z scf ret ; 4e607 _EvolutionAnimation: ; 4e607 ld a, $e4 ld [rOBP0], a ld de, MUSIC_NONE call PlayMusic callba Function8cf53 ld de, EvolutionGFX ld hl, VTiles0 lb bc, BANK(EvolutionGFX), 8 call Request2bpp xor a ld [Danger], a call WaitBGMap xor a ld [hBGMapMode], a ld a, [Buffer1] ld [PlayerHPPal], a ld c, $0 call Function4e703 ld a, [Buffer1] ld [CurPartySpecies], a ld [CurSpecies], a call Function4e708 ld de, VTiles2 ld hl, VTiles2 tile $31 ld bc, $31 call Request2bpp ld a, $31 ld [wd1ec], a call Evolution_FlashFrontpics ld a, [Buffer2] ld [CurPartySpecies], a ld [CurSpecies], a call Function4e711 ld a, [Buffer1] ld [CurPartySpecies], a ld [CurSpecies], a ld a, $1 ld [hBGMapMode], a call Function4e794 jr c, .skip_cry ld a, [Buffer1] call PlayCry .skip_cry ld de, MUSIC_EVOLUTION call PlayMusic ld c, 80 call DelayFrames ld c, $1 call Function4e703 call Function4e726 jr c, .pressed_b ld a, $cf ld [wd1ec], a call Evolution_FlashFrontpics xor a ld [wd1ed], a ld a, [Buffer2] ld [PlayerHPPal], a ld c, $0 call Function4e703 call Function4e7a6 callba Function8cf53 call Function4e794 jr c, .asm_4e6de ld a, [wc2c6] push af ld a, $1 ld [wc2c6], a ld a, [CurPartySpecies] push af ld a, [PlayerHPPal] ld [CurPartySpecies], a hlcoord 7, 2 ld d, $0 ld e, ANIM_MON_EVOLVE predef AnimateFrontpic pop af ld [CurPartySpecies], a pop af ld [wc2c6], a ret .asm_4e6de ret .pressed_b ld a, $1 ld [wd1ed], a ld a, [Buffer1] ld [PlayerHPPal], a ld c, $0 call Function4e703 call Function4e7a6 callba Function8cf53 call Function4e794 ret c ld a, [PlayerHPPal] call PlayCry ret ; 4e703 Function4e703: ; 4e703 ld b, $b jp GetSGBLayout ; 4e708 Function4e708: ; 4e708 call GetBaseData hlcoord 7, 2 jp PrepMonFrontpic ; 4e711 Function4e711: ; 4e711 call GetBaseData ld a, $1 ld [wc2c6], a ld de, VTiles2 predef Function5108b xor a ld [wc2c6], a ret ; 4e726 Function4e726: ; 4e726 call ClearJoypad lb bc, 1, 14 .loop push bc call Evolution_CheckPressedB pop bc jr c, .pressed_b push bc call Evolution_NextFrame pop bc inc b rept 2 dec c endr jr nz, .loop and a ret .pressed_b scf ret ; 4e741 Evolution_NextFrame: ; 4e741 .loop ld a, -49 ld [wd1ec], a call Evolution_FlashFrontpics ld a, 49 ld [wd1ec], a call Evolution_FlashFrontpics dec b jr nz, .loop ret ; 4e755 Evolution_FlashFrontpics: ; 4e755 push bc xor a ld [hBGMapMode], a hlcoord 7, 2 lb bc, 7, 7 ld de, $d .loop1 push bc .loop2 ld a, [wd1ec] add [hl] ld [hli], a dec c jr nz, .loop2 pop bc add hl, de dec b jr nz, .loop1 ld a, $1 ld [hBGMapMode], a call WaitBGMap pop bc ret ; 4e779 Evolution_CheckPressedB: ; 4e779 .loop call DelayFrame push bc call JoyTextDelay ld a, [hJoyDown] pop bc and B_BUTTON jr nz, .pressed_b .loop2 dec c jr nz, .loop and a ret .pressed_b ld a, [wd1e9] and a jr nz, .loop2 scf ret ; 4e794 Function4e794: ; 4e794 ld a, [CurPartyMon] ld hl, PartyMon1Species call GetPartyLocation ld b, h ld c, l callba CheckFaintedFrzSlp ret ; 4e7a6 Function4e7a6: ; 4e7a6 ld a, [wd1ed] and a ret nz ld de, SFX_EVOLVED call PlaySFX ld hl, wJumptableIndex ld a, [hl] push af ld [hl], $0 .asm_4e7b8 call Function4e7cf jr nc, .asm_4e7c2 call Function4e80c jr .asm_4e7b8 .asm_4e7c2 ld c, $20 .asm_4e7c4 call Function4e80c dec c jr nz, .asm_4e7c4 pop af ld [wJumptableIndex], a ret ; 4e7cf Function4e7cf: ; 4e7cf ld hl, wJumptableIndex ld a, [hl] cp $20 ret nc ld d, a inc [hl] and $1 jr nz, .asm_4e7e6 ld e, $0 call Function4e7e8 ld e, $10 call Function4e7e8 .asm_4e7e6 scf ret ; 4e7e8 Function4e7e8: ; 4e7e8 push de ld de, $4858 ld a, $13 call _InitSpriteAnimStruct ld hl, $b add hl, bc ld a, [wJumptableIndex] and $e sla a pop de add e ld [hl], a ld hl, $3 add hl, bc ld [hl], $0 ld hl, $c add hl, bc ld [hl], $10 ret ; 4e80c Function4e80c: ; 4e80c push bc callab Function8cf69 ld a, [hVBlankCounter] and $e srl a rept 2 inc a endr and $7 ld b, a ld hl, Sprites + 3 ld c, $28 .asm_4e823 ld a, [hl] or b ld [hli], a rept 3 inc hl endr dec c jr nz, .asm_4e823 pop bc call DelayFrame ret ; 4e831 EvolutionGFX: INCBIN "gfx/evo/bubble_large.2bpp" INCBIN "gfx/evo/bubble.2bpp" Function4e881: ; 4e881 call ClearBGPalettes call ClearTileMap call ClearSprites call DisableLCD call LoadStandardFont call LoadFontsBattleExtra ld hl, VBGMap0 ld bc, VBGMap1 - VBGMap0 ld a, " " call ByteFill hlcoord 0, 0, AttrMap ld bc, SCREEN_WIDTH * SCREEN_HEIGHT xor a call ByteFill xor a ld [hSCY], a ld [hSCX], a call EnableLCD ld hl, UnknownText_0x4e8bd call PrintText call Function3200 call SetPalettes ret ; 4e8bd UnknownText_0x4e8bd: ; 0x4e8bd ; SAVING RECORD… DON'T TURN OFF! text_jump UnknownText_0x1bd39e db "@" ; 0x4e8c2 Function4e8c2: ; 4e8c2 call ClearBGPalettes call ClearTileMap call ClearSprites call DisableLCD call LoadStandardFont call LoadFontsBattleExtra ld hl, VBGMap0 ld bc, VBGMap1 - VBGMap0 ld a, " " call ByteFill hlcoord 0, 0, AttrMap ld bc, SCREEN_WIDTH * SCREEN_HEIGHT xor a call ByteFill ld hl, wd000 ld c, $40 .asm_4e8ee ld a, -1 ld [hli], a ld a, " " ld [hli], a dec c jr nz, .asm_4e8ee xor a ld [hSCY], a ld [hSCX], a call EnableLCD call Function3200 call SetPalettes ret ; 4e906 Function4e906: ; 4e906 ld a, [rSVBK] push af ld a, $6 ld [rSVBK], a ld hl, w6_d000 ld bc, w6_d400 - w6_d000 ld a, " " call ByteFill ld hl, VBGMap0 ld de, w6_d000 ld b, $0 ld c, $40 call Request2bpp pop af ld [rSVBK], a ret ; 4e929