summaryrefslogtreecommitdiff
path: root/src/engine/sequences
diff options
context:
space:
mode:
authorDaniel Harding <33dannye@gmail.com>2021-10-10 17:08:01 -0500
committerGitHub <noreply@github.com>2021-10-10 17:08:01 -0500
commit7d5761dcd9c0ecca427bd568e91ae137b04ed54e (patch)
tree2130f26a5bc8005f3df30976f17f0683e6f18113 /src/engine/sequences
parent40d32ea4e266fa2e87f344d50ba854d53b02fba3 (diff)
parentbe47e02cd7c844944665108b5c921b1eae27ad7b (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.asm4
-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