diff options
| author | Daniel Harding <33dannye@gmail.com> | 2021-10-10 17:08:01 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-10-10 17:08:01 -0500 |
| commit | 7d5761dcd9c0ecca427bd568e91ae137b04ed54e (patch) | |
| tree | 2130f26a5bc8005f3df30976f17f0683e6f18113 /src/engine/sequences | |
| parent | 40d32ea4e266fa2e87f344d50ba854d53b02fba3 (diff) | |
| parent | be47e02cd7c844944665108b5c921b1eae27ad7b (diff) | |
Merge pull request #112 from ElectroDeoxys/master
Split bank 6 and some bank 7
Diffstat (limited to 'src/engine/sequences')
| -rw-r--r-- | src/engine/sequences/credits_sequence_commands.asm | 4 | ||||
| -rw-r--r-- | src/engine/sequences/intro_sequence_commands.asm (renamed from src/engine/sequences/opening_sequence_commands.asm) | 159 |
2 files changed, 115 insertions, 48 deletions
diff --git a/src/engine/sequences/credits_sequence_commands.asm b/src/engine/sequences/credits_sequence_commands.asm index 0fde871..d80df8b 100644 --- a/src/engine/sequences/credits_sequence_commands.asm +++ b/src/engine/sequences/credits_sequence_commands.asm @@ -300,7 +300,7 @@ CreditsSequenceCmd_DisableLCD: ; 1d9db (7:59db) CreditsSequenceCmd_FadeIn: ; 1d9e1 (7:59e1) call DisableLCD - call Set_WD_on + call SetWindowOn farcall Func_10af9 jp AdvanceCreditsSequenceCmdPtrBy2 @@ -310,7 +310,7 @@ CreditsSequenceCmd_FadeOut: ; 1d9ee (7:59ee) call EnableLCD call DoFrameIfLCDEnabled call DisableLCD - call Set_WD_off + call SetWindowOff jp AdvanceCreditsSequenceCmdPtrBy2 CreditsSequenceCmd_DrawRectangle: ; 1da04 (7:5a04) diff --git a/src/engine/sequences/opening_sequence_commands.asm b/src/engine/sequences/intro_sequence_commands.asm index 446daa2..028027b 100644 --- a/src/engine/sequences/opening_sequence_commands.asm +++ b/src/engine/sequences/intro_sequence_commands.asm @@ -1,4 +1,4 @@ -ExecuteOpeningSequenceCmd: ; 1d408 (7:5408) +ExecuteIntroSequenceCmd: ; 1d408 (7:5408) ld a, [wSequenceDelay] or a jr z, .call_function @@ -25,22 +25,22 @@ ExecuteOpeningSequenceCmd: ; 1d408 (7:5408) ld l, e ld h, d call CallHL2 - jr c, ExecuteOpeningSequenceCmd + jr c, ExecuteIntroSequenceCmd ret -AdvanceOpeningSequenceCmdPtrBy2: ; 1d42e (7:542e) +AdvanceIntroSequenceCmdPtrBy2: ; 1d42e (7:542e) ld a, 2 - jr AdvanceOpeningSequenceCmdPtr + jr AdvanceIntroSequenceCmdPtr -AdvanceOpeningSequenceCmdPtrBy3: ; 1d432 (7:5432) +AdvanceIntroSequenceCmdPtrBy3: ; 1d432 (7:5432) ld a, 3 - jr AdvanceOpeningSequenceCmdPtr + jr AdvanceIntroSequenceCmdPtr -AdvanceOpeningSequenceCmdPtrBy4: ; 1d436 (7:5436) +AdvanceIntroSequenceCmdPtrBy4: ; 1d436 (7:5436) ld a, 4 ; fallthrough -AdvanceOpeningSequenceCmdPtr: ; 1d438 (7:5438) +AdvanceIntroSequenceCmdPtr: ; 1d438 (7:5438) push hl ld hl, wSequenceCmdPtr add [hl] @@ -51,7 +51,7 @@ AdvanceOpeningSequenceCmdPtr: ; 1d438 (7:5438) pop hl ret -OpeningSequenceCmd_WaitOrbsAnimation: ; 1d444 (7:5444) +IntroSequenceCmd_WaitOrbsAnimation: ; 1d444 (7:5444) ld c, $7 ld de, wTitleScreenSprites .loop @@ -63,7 +63,7 @@ OpeningSequenceCmd_WaitOrbsAnimation: ; 1d444 (7:5444) inc de dec c jr nz, .loop - call AdvanceOpeningSequenceCmdPtrBy2 + call AdvanceIntroSequenceCmdPtrBy2 scf ret @@ -71,14 +71,14 @@ OpeningSequenceCmd_WaitOrbsAnimation: ; 1d444 (7:5444) or a ret -OpeningSequenceCmd_Wait: ; 1d460 (7:5460) +IntroSequenceCmd_Wait: ; 1d460 (7:5460) ld a, c ld [wSequenceDelay], a - call AdvanceOpeningSequenceCmdPtrBy3 + call AdvanceIntroSequenceCmdPtrBy3 scf ret -OpeningSequenceCmd_SetOrbsAnimations: ; 1d469 (7:5469) +IntroSequenceCmd_SetOrbsAnimations: ; 1d469 (7:5469) ld l, c ld h, b @@ -97,11 +97,11 @@ OpeningSequenceCmd_SetOrbsAnimations: ; 1d469 (7:5469) dec c jr nz, .loop - call AdvanceOpeningSequenceCmdPtrBy4 + call AdvanceIntroSequenceCmdPtrBy4 scf ret -OpeningSequenceCmd_SetOrbsCoordinates: ; 1d486 (7:5486) +IntroSequenceCmd_SetOrbsCoordinates: ; 1d486 (7:5486) ld l, c ld h, b @@ -131,11 +131,11 @@ OpeningSequenceCmd_SetOrbsCoordinates: ; 1d486 (7:5486) dec c jr nz, .loop - call AdvanceOpeningSequenceCmdPtrBy4 + call AdvanceIntroSequenceCmdPtrBy4 scf ret -OpeningOrbAnimations_CharizardScene: ; 1d4b0 (7:54b0) +IntroOrbAnimations_CharizardScene: ; 1d4b0 (7:54b0) db SPRITE_ANIM_192 ; GRASS db SPRITE_ANIM_193 ; FIRE db SPRITE_ANIM_193 ; WATER @@ -144,7 +144,7 @@ OpeningOrbAnimations_CharizardScene: ; 1d4b0 (7:54b0) db SPRITE_ANIM_192 ; PSYCHIC db SPRITE_ANIM_193 ; FIGHTING -OpeningOrbCoordinates_CharizardScene: ; 1d4b7 (7:54b7) +IntroOrbCoordinates_CharizardScene: ; 1d4b7 (7:54b7) ; x coord, y coord db 240, 28 ; GRASS db 160, 120 ; FIRE @@ -154,7 +154,7 @@ OpeningOrbCoordinates_CharizardScene: ; 1d4b7 (7:54b7) db 240, 100 ; PSYCHIC db 160, 44 ; FIGHTING -OpeningOrbAnimations_ScytherScene: ; 1d4c5 (7:54c5) +IntroOrbAnimations_ScytherScene: ; 1d4c5 (7:54c5) db SPRITE_ANIM_193 ; GRASS db SPRITE_ANIM_192 ; FIRE db SPRITE_ANIM_192 ; WATER @@ -163,7 +163,7 @@ OpeningOrbAnimations_ScytherScene: ; 1d4c5 (7:54c5) db SPRITE_ANIM_193 ; PSYCHIC db SPRITE_ANIM_192 ; FIGHTING -OpeningOrbCoordinates_ScytherScene: ; 1d4cc (7:54cc) +IntroOrbCoordinates_ScytherScene: ; 1d4cc (7:54cc) ; x coord, y coord db 160, 28 ; GRASS db 240, 120 ; FIRE @@ -173,7 +173,7 @@ OpeningOrbCoordinates_ScytherScene: ; 1d4cc (7:54cc) db 160, 100 ; PSYCHIC db 240, 44 ; FIGHTING -OpeningOrbAnimations_AerodactylScene: ; 1d4da (7:54da) +IntroOrbAnimations_AerodactylScene: ; 1d4da (7:54da) db SPRITE_ANIM_194 ; GRASS db SPRITE_ANIM_197 ; FIRE db SPRITE_ANIM_200 ; WATER @@ -182,7 +182,7 @@ OpeningOrbAnimations_AerodactylScene: ; 1d4da (7:54da) db SPRITE_ANIM_209 ; PSYCHIC db SPRITE_ANIM_212 ; FIGHTING -OpeningOrbCoordinates_AerodactylScene: ; 1d4e1 (7:54e1) +IntroOrbCoordinates_AerodactylScene: ; 1d4e1 (7:54e1) ; x coord, y coord db 240, 32 ; GRASS db 160, 112 ; FIRE @@ -192,7 +192,7 @@ OpeningOrbCoordinates_AerodactylScene: ; 1d4e1 (7:54e1) db 240, 96 ; PSYCHIC db 160, 48 ; FIGHTING -OpeningOrbAnimations_InitialTitleScreen: ; 1d4ef (7:54ef) +IntroOrbAnimations_InitialTitleScreen: ; 1d4ef (7:54ef) db SPRITE_ANIM_195 ; GRASS db SPRITE_ANIM_198 ; FIRE db SPRITE_ANIM_201 ; WATER @@ -201,7 +201,7 @@ OpeningOrbAnimations_InitialTitleScreen: ; 1d4ef (7:54ef) db SPRITE_ANIM_210 ; PSYCHIC db SPRITE_ANIM_213 ; FIGHTING -OpeningOrbCoordinates_InitialTitleScreen: ; 1d4f6 (7:54f6) +IntroOrbCoordinates_InitialTitleScreen: ; 1d4f6 (7:54f6) ; x coord, y coord db 112, 144 ; GRASS db 12, 144 ; FIRE @@ -211,7 +211,7 @@ OpeningOrbCoordinates_InitialTitleScreen: ; 1d4f6 (7:54f6) db 132, 144 ; PSYCHIC db 72, 144 ; FIGHTING -OpeningOrbAnimations_InTitleScreen: ; 1d504 (7:5504) +IntroOrbAnimations_InTitleScreen: ; 1d504 (7:5504) db SPRITE_ANIM_196 ; GRASS db SPRITE_ANIM_199 ; FIRE db SPRITE_ANIM_202 ; WATER @@ -220,7 +220,7 @@ OpeningOrbAnimations_InTitleScreen: ; 1d504 (7:5504) db SPRITE_ANIM_211 ; PSYCHIC db SPRITE_ANIM_214 ; FIGHTING -OpeningOrbCoordinates_InTitleScreen: ; 1d50b (7:550b) +IntroOrbCoordinates_InTitleScreen: ; 1d50b (7:550b) ; x coord, y coord db 112, 76 ; GRASS db 0, 28 ; FIRE @@ -230,18 +230,18 @@ OpeningOrbCoordinates_InTitleScreen: ; 1d50b (7:550b) db 144, 28 ; PSYCHIC db 72, 76 ; FIGHTING -OpeningSequenceCmd_PlayTitleScreenMusic: ; 1d519 (7:5519) +IntroSequenceCmd_PlayTitleScreenMusic: ; 1d519 (7:5519) ld a, MUSIC_TITLESCREEN call PlaySong - call AdvanceOpeningSequenceCmdPtrBy2 + call AdvanceIntroSequenceCmdPtrBy2 scf ret -OpeningSequenceCmd_WaitSFX: ; 1d523 (7:5523) +IntroSequenceCmd_WaitSFX: ; 1d523 (7:5523) call AssertSFXFinished or a jr nz, .no_carry - call AdvanceOpeningSequenceCmdPtrBy2 + call AdvanceIntroSequenceCmdPtrBy2 scf ret @@ -249,39 +249,39 @@ OpeningSequenceCmd_WaitSFX: ; 1d523 (7:5523) or a ret -OpeningSequenceCmd_PlaySFX: ; 1d530 (7:5530) +IntroSequenceCmd_PlaySFX: ; 1d530 (7:5530) ld a, c call PlaySFX - call AdvanceOpeningSequenceCmdPtrBy3 + call AdvanceIntroSequenceCmdPtrBy3 scf ret -OpeningSequenceCmd_FadeIn: ; 1d539 (7:5539) +IntroSequenceCmd_FadeIn: ; 1d539 (7:5539) ld a, TRUE - ld [wOpeningSequencePalsNeedUpdate], a - call AdvanceOpeningSequenceCmdPtrBy2 + ld [wIntroSequencePalsNeedUpdate], a + call AdvanceIntroSequenceCmdPtrBy2 scf ret -OpeningSequenceCmd_FadeOut: ; 1d543 (7:5543) +IntroSequenceCmd_FadeOut: ; 1d543 (7:5543) farcall Func_10d50 ld a, TRUE - ld [wOpeningSequencePalsNeedUpdate], a - call AdvanceOpeningSequenceCmdPtrBy2 + ld [wIntroSequencePalsNeedUpdate], a + call AdvanceIntroSequenceCmdPtrBy2 scf ret -OpeningSequenceCmd_LoadCharizardScene: ; 1d551 (7:5551) +IntroSequenceCmd_LoadCharizardScene: ; 1d551 (7:5551) lb bc, 6, 3 ld a, SCENE_CHARIZARD_INTRO jr LoadOpeningSceneAndUpdateSGBBorder -OpeningSequenceCmd_LoadScytherScene: ; 1d558 (7:5558) +IntroSequenceCmd_LoadScytherScene: ; 1d558 (7:5558) lb bc, 6, 3 ld a, SCENE_SCYTHER_INTRO jr LoadOpeningSceneAndUpdateSGBBorder -OpeningSequenceCmd_LoadAerodactylScene: ; 1d55f (7:555f) +IntroSequenceCmd_LoadAerodactylScene: ; 1d55f (7:555f) lb bc, 6, 3 ld a, SCENE_AERODACTYL_INTRO ; fallthrough @@ -295,11 +295,11 @@ LoadOpeningSceneAndUpdateSGBBorder: ; 1d564 (7:5564) scf ret -OpeningSequenceCmd_LoadTitleScreenScene: ; 1d575 (7:5575) +IntroSequenceCmd_LoadTitleScreenScene: ; 1d575 (7:5575) lb bc, 0, 0 ld a, SCENE_TITLE_SCREEN call LoadOpeningScene - call OpeningSequenceEmptyFunc + call IntroSequenceEmptyFunc scf ret @@ -316,10 +316,77 @@ LoadOpeningScene: ; 1d582 (7:5582) farcall Func_10d17 xor a - ld [wOpeningSequencePalsNeedUpdate], a - call AdvanceOpeningSequenceCmdPtrBy2 + ld [wIntroSequencePalsNeedUpdate], a + call AdvanceIntroSequenceCmdPtrBy2 call EnableLCD ret -OpeningSequenceEmptyFunc: ; 1d59c (7:559c) +IntroSequenceEmptyFunc: ; 1d59c (7:559c) + ret + +INCLUDE "data/sequences/intro.asm" + +; once every 63 frames randomly choose an orb sprite +; to animate, i.e. circle around the screen +AnimateRandomTitleScreenOrb: + ld a, [wConsole] + cp CONSOLE_CGB + call z, .UpdateSpriteAttributes + ld a, [wd635] + and 63 + ret nz ; don't pick an orb now + +.pick_orb + ld a, $7 + call Random + ld c, a + ld b, $00 + ld hl, wTitleScreenSprites + add hl, bc + ld a, [hl] + ld [wWhichSprite], a + farcall GetSpriteAnimCounter + cp $ff + jr nz, .pick_orb + + ld c, SPRITE_ANIM_ATTRIBUTES + call GetSpriteAnimBufferProperty + ld a, [wConsole] + cp CONSOLE_CGB + jr nz, .set_coords + set SPRITE_ANIM_FLAG_UNSKIPPABLE, [hl] + +.set_coords + inc hl + ld a, 248 + ld [hli], a ; SPRITE_ANIM_COORD_X + ld a, 14 + ld [hl], a ; SPRITE_ANIM_COORD_Y + ld a, [wConsole] + cp CONSOLE_CGB + ld a, SPRITE_ANIM_215 + jr nz, .start_anim + ld a, SPRITE_ANIM_216 +.start_anim + farcall StartSpriteAnimation + ret + +.UpdateSpriteAttributes + ld c, $7 + ld de, wTitleScreenSprites +.loop_orbs + push bc + ld a, [de] + ld [wWhichSprite], a + ld c, SPRITE_ANIM_COORD_X + call GetSpriteAnimBufferProperty + ld a, [hld] + cp 152 + jr nz, .skip + res SPRITE_ANIM_FLAG_UNSKIPPABLE, [hl] +.skip + pop bc + inc de + dec c + jr nz, .loop_orbs ret |
