diff options
author | Rangi <remy.oukaour+rangi42@gmail.com> | 2020-06-17 17:02:45 -0400 |
---|---|---|
committer | Rangi <remy.oukaour+rangi42@gmail.com> | 2020-06-17 17:02:45 -0400 |
commit | 451f529b0d6311fc0b6c507d8ccb5336e2984889 (patch) | |
tree | b2c5643d6973e79c02f3e7aba7d9e86702c51870 /engine/pokemon/evolve.asm | |
parent | 993f87a852974b000a0ec770cfd53afb392136ce (diff) |
Harmonize engine/{movie, pokemon} with pokecrystal
To do: engine/{menus, overworld}
Diffstat (limited to 'engine/pokemon/evolve.asm')
-rw-r--r-- | engine/pokemon/evolve.asm | 287 |
1 files changed, 3 insertions, 284 deletions
diff --git a/engine/pokemon/evolve.asm b/engine/pokemon/evolve.asm index 5c6d68b0..e538a040 100644 --- a/engine/pokemon/evolve.asm +++ b/engine/pokemon/evolve.asm @@ -241,15 +241,15 @@ EvolveAfterBattle_MasterLoop: push hl ld hl, EvolvedIntoText call PrintTextboxText - push de + push de ld de, MUSIC_NONE call PlayMusic ld de, SFX_CAUGHT_MON call PlaySFX call WaitSFX - pop de + ld c, 40 call DelayFrames @@ -601,288 +601,7 @@ EvoFlagAction: pop de ret -EvolutionAnimation: - push hl - push de - push bc - ld a, [wCurSpecies] - push af - ldh a, [rOBP0] - push af - ld a, %11100100 - ldh [rOBP0], a - - ld de, MUSIC_NONE - call PlayMusic - - callfar ClearSpriteAnims - - ld de, .GFX - ld hl, vTiles0 - lb bc, BANK(.GFX), 8 - call Request2bpp - xor a - ld [wLowHealthAlarm], a - - ld a, 1 - ldh [hBGMapMode], a - - call WaitBGMap - xor a - ldh [hBGMapMode], a - - ld a, [wEvolutionOldSpecies] - ld [wPlayerHPPal], a - ld c, 0 - call .GetSGBLayout - - ld a, [wEvolutionNewSpecies] - ld [wCurPartySpecies], a - ld [wCurSpecies], a - call .PlaceFrontpic - - ld de, vTiles2 - ld hl, vTiles2 tile $31 - ld bc, 7 * 7 - call Request2bpp - - ld a, [wEvolutionOldSpecies] - ld [wCurPartySpecies], a - ld [wCurSpecies], a - call .PlaceFrontpic - - ld a, 1 - ldh [hBGMapMode], a - - ld a, [wEvolutionOldSpecies] - call PlayMonCry - - ld de, MUSIC_EVOLUTION - call PlayMusic - - ld c, 80 - call DelayFrames - - ld c, 1 - call .GetSGBLayout - -.AnimationSequence: - call ClearJoypad - lb bc, 1, 16 ; flash b times, wait c frames in between -.loop - push bc - call .WaitFrames_CheckPressedB - jr c, .cancel - call .Flash - pop bc - inc b - dec c - dec c - jr nz, .loop - - xor a - ld [wEvolutionCanceled], a - - ld a, 49 - ld [wEvolutionPicOffset], a - call .ReplaceFrontpic - - ld a, [wEvolutionNewSpecies] -.return: - ld [wPlayerHPPal], a - - ld c, 0 - call .GetSGBLayout - call .PlayEvolvedSFX - - callfar ClearSpriteAnims - - ld a, [wPlayerHPPal] - call PlayMonCry - - pop af - ldh [rOBP0], a - pop af - ld [wCurSpecies], a - pop bc - pop de - pop hl - - ld a, [wEvolutionCanceled] - and a - ret z - - scf - ret - -.cancel: - pop bc - ld a, 1 - ld [wEvolutionCanceled], a - - ld a, [wEvolutionOldSpecies] - jr .return - -.GetSGBLayout: - ld b, SCGB_EVOLUTION - jp GetSGBLayout - -.PlaceFrontpic: - call GetBaseData - hlcoord 7, 2 - jp PrepMonFrontpic - -.Flash: - ld a, 7 * 7 ; previous stage - ld [wEvolutionPicOffset], a - call .ReplaceFrontpic - ld a, -7 * 7 ; new stage - ld [wEvolutionPicOffset], a - call .ReplaceFrontpic - dec b - jr nz, .Flash - ret - -.ReplaceFrontpic: - push bc - xor a - ldh [hBGMapMode], a - hlcoord 7, 2 - lb bc, 7, 7 - ld de, SCREEN_WIDTH - 7 -.loop1 - push bc -.loop2 - ld a, [wEvolutionPicOffset] - add [hl] - ld [hli], a - dec c - jr nz, .loop2 - pop bc - add hl, de - dec b - jr nz, .loop1 - ld a, $1 - ldh [hBGMapMode], a - call WaitBGMap - pop bc - ret - -.WaitFrames_CheckPressedB: - call DelayFrame - push bc - call JoyTextDelay - ldh a, [hJoyDown] - pop bc - and B_BUTTON - jr nz, .pressed_b -.loop3 - dec c - jr nz, .WaitFrames_CheckPressedB - and a - ret - -.pressed_b - ld a, [wForceEvolution] - and a - jr nz, .loop3 - scf - ret - -.PlayEvolvedSFX: - ld a, [wEvolutionCanceled] - and a - ret nz - ld de, SFX_EVOLVED - call PlaySFX - ld hl, wJumptableIndex - ld a, [hl] - push af - ld [hl], $0 -.loop4 - call .balls_of_light - jr nc, .done - call .AnimateBallsOfLight - jr .loop4 - -.done - ld c, 32 -.loop5 - call .AnimateBallsOfLight - dec c - jr nz, .loop5 - pop af - ld [wJumptableIndex], a - ret - -.balls_of_light - ld hl, wJumptableIndex - ld a, [hl] - cp 32 - ret nc - ld d, a - inc [hl] - and $1 - jr nz, .done_balls - ld e, $0 - call .GenerateBallOfLight - ld e, $10 - call .GenerateBallOfLight - -.done_balls - scf - ret - -.GenerateBallOfLight: - push de - depixel 9, 11 - ld a, SPRITE_ANIM_INDEX_EVOLUTION_BALL_OF_LIGHT - call InitSpriteAnimStruct - ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX - add hl, bc - ld a, [wJumptableIndex] - and %1110 - sla a - pop de - add e - ld [hl], a - ld hl, SPRITEANIMSTRUCT_TILE_ID - add hl, bc - ld [hl], $0 - ld hl, SPRITEANIMSTRUCT_0C - add hl, bc - ld [hl], $10 - ret - -.AnimateBallsOfLight: - push bc - callfar PlaySpriteAnimations - ; a = (([hVBlankCounter] + 4) / 2) % NUM_PALETTES - ldh a, [hVBlankCounter] - and %1110 - srl a - inc a - inc a - and $7 - ld b, a - ld hl, wVirtualOAMSprite00Attributes - ld c, NUM_SPRITE_OAM_STRUCTS -.loop6 - ld a, [hl] - or b - ld [hli], a ; attributes -rept SPRITEOAMSTRUCT_LENGTH - 1 - inc hl -endr - dec c - jr nz, .loop6 - pop bc - call DelayFrame - ret - -.GFX: -INCBIN "gfx/evo/bubble_large.2bpp" -INCBIN "gfx/evo/bubble.2bpp" +INCLUDE "engine/movie/evolution_animation.asm" GetPreEvolution: ; Find the first mon to evolve into wCurPartySpecies. |