mirror of
https://github.com/thornAvery/kep-hack.git
synced 2026-02-07 08:05:23 +13:00
Add engine/movie/oak_speech/ subdirectory
This commit is contained in:
parent
881e005970
commit
87ef75c173
5 changed files with 4 additions and 4 deletions
233
engine/movie/oak_speech/oak_speech.asm
Executable file
233
engine/movie/oak_speech/oak_speech.asm
Executable file
|
|
@ -0,0 +1,233 @@
|
|||
SetDefaultNames:
|
||||
ld a, [wLetterPrintingDelayFlags]
|
||||
push af
|
||||
ld a, [wOptions]
|
||||
push af
|
||||
ld a, [wd732]
|
||||
push af
|
||||
ld hl, wPlayerName
|
||||
ld bc, wBoxDataEnd - wPlayerName
|
||||
xor a
|
||||
call FillMemory
|
||||
ld hl, wSpriteStateData1
|
||||
ld bc, $200
|
||||
xor a
|
||||
call FillMemory
|
||||
pop af
|
||||
ld [wd732], a
|
||||
pop af
|
||||
ld [wOptions], a
|
||||
pop af
|
||||
ld [wLetterPrintingDelayFlags], a
|
||||
ld a, [wOptionsInitialized]
|
||||
and a
|
||||
call z, InitOptions
|
||||
ld hl, NintenText
|
||||
ld de, wPlayerName
|
||||
ld bc, NAME_LENGTH
|
||||
call CopyData
|
||||
ld hl, SonyText
|
||||
ld de, wRivalName
|
||||
ld bc, NAME_LENGTH
|
||||
jp CopyData
|
||||
|
||||
OakSpeech:
|
||||
ld a, $FF
|
||||
call PlaySound ; stop music
|
||||
ld a, BANK(Music_Routes2)
|
||||
ld c, a
|
||||
ld a, MUSIC_ROUTES2
|
||||
call PlayMusic
|
||||
call ClearScreen
|
||||
call LoadTextBoxTilePatterns
|
||||
call SetDefaultNames
|
||||
predef InitPlayerData2
|
||||
ld hl, wNumBoxItems
|
||||
ld a, POTION
|
||||
ld [wcf91], a
|
||||
ld a, 1
|
||||
ld [wItemQuantity], a
|
||||
call AddItemToInventory ; give one potion
|
||||
ld a, [wDefaultMap]
|
||||
ld [wDestinationMap], a
|
||||
call SpecialWarpIn
|
||||
xor a
|
||||
ld [hTilesetType], a
|
||||
ld a, [wd732]
|
||||
bit 1, a ; possibly a debug mode bit
|
||||
jp nz, .skipChoosingNames
|
||||
ld de, ProfOakPic
|
||||
lb bc, Bank(ProfOakPic), $00
|
||||
call IntroDisplayPicCenteredOrUpperRight
|
||||
call FadeInIntroPic
|
||||
ld hl, OakSpeechText1
|
||||
call PrintText
|
||||
call GBFadeOutToWhite
|
||||
call ClearScreen
|
||||
ld a, NIDORINO
|
||||
ld [wd0b5], a
|
||||
ld [wcf91], a
|
||||
call GetMonHeader
|
||||
coord hl, 6, 4
|
||||
call LoadFlippedFrontSpriteByMonIndex
|
||||
call MovePicLeft
|
||||
ld hl, OakSpeechText2
|
||||
call PrintText
|
||||
call GBFadeOutToWhite
|
||||
call ClearScreen
|
||||
ld de, RedPicFront
|
||||
lb bc, Bank(RedPicFront), $00
|
||||
call IntroDisplayPicCenteredOrUpperRight
|
||||
call MovePicLeft
|
||||
ld hl, IntroducePlayerText
|
||||
call PrintText
|
||||
call ChoosePlayerName
|
||||
call GBFadeOutToWhite
|
||||
call ClearScreen
|
||||
ld de, Rival1Pic
|
||||
lb bc, Bank(Rival1Pic), $00
|
||||
call IntroDisplayPicCenteredOrUpperRight
|
||||
call FadeInIntroPic
|
||||
ld hl, IntroduceRivalText
|
||||
call PrintText
|
||||
call ChooseRivalName
|
||||
.skipChoosingNames
|
||||
call GBFadeOutToWhite
|
||||
call ClearScreen
|
||||
ld de, RedPicFront
|
||||
lb bc, Bank(RedPicFront), $00
|
||||
call IntroDisplayPicCenteredOrUpperRight
|
||||
call GBFadeInFromWhite
|
||||
ld a, [wd72d]
|
||||
and a
|
||||
jr nz, .next
|
||||
ld hl, OakSpeechText3
|
||||
call PrintText
|
||||
.next
|
||||
ld a, [H_LOADEDROMBANK]
|
||||
push af
|
||||
ld a, SFX_SHRINK
|
||||
call PlaySound
|
||||
pop af
|
||||
ld [H_LOADEDROMBANK], a
|
||||
ld [MBC1RomBank], a
|
||||
ld c, 4
|
||||
call DelayFrames
|
||||
ld de, RedSprite
|
||||
ld hl, vSprites
|
||||
lb bc, BANK(RedSprite), $0C
|
||||
call CopyVideoData
|
||||
ld de, ShrinkPic1
|
||||
lb bc, BANK(ShrinkPic1), $00
|
||||
call IntroDisplayPicCenteredOrUpperRight
|
||||
ld c, 4
|
||||
call DelayFrames
|
||||
ld de, ShrinkPic2
|
||||
lb bc, BANK(ShrinkPic2), $00
|
||||
call IntroDisplayPicCenteredOrUpperRight
|
||||
call ResetPlayerSpriteData
|
||||
ld a, [H_LOADEDROMBANK]
|
||||
push af
|
||||
ld a, BANK(Music_PalletTown)
|
||||
ld [wAudioROMBank], a
|
||||
ld [wAudioSavedROMBank], a
|
||||
ld a, 10
|
||||
ld [wAudioFadeOutControl], a
|
||||
ld a, $FF
|
||||
ld [wNewSoundID], a
|
||||
call PlaySound ; stop music
|
||||
pop af
|
||||
ld [H_LOADEDROMBANK], a
|
||||
ld [MBC1RomBank], a
|
||||
ld c, 20
|
||||
call DelayFrames
|
||||
coord hl, 6, 5
|
||||
ld b, 7
|
||||
ld c, 7
|
||||
call ClearScreenArea
|
||||
call LoadTextBoxTilePatterns
|
||||
ld a, 1
|
||||
ld [wUpdateSpritesEnabled], a
|
||||
ld c, 50
|
||||
call DelayFrames
|
||||
call GBFadeOutToWhite
|
||||
jp ClearScreen
|
||||
OakSpeechText1:
|
||||
TX_FAR _OakSpeechText1
|
||||
db "@"
|
||||
OakSpeechText2:
|
||||
TX_FAR _OakSpeechText2A
|
||||
TX_CRY_NIDORINA
|
||||
TX_FAR _OakSpeechText2B
|
||||
db "@"
|
||||
IntroducePlayerText:
|
||||
TX_FAR _IntroducePlayerText
|
||||
db "@"
|
||||
IntroduceRivalText:
|
||||
TX_FAR _IntroduceRivalText
|
||||
db "@"
|
||||
OakSpeechText3:
|
||||
TX_FAR _OakSpeechText3
|
||||
db "@"
|
||||
|
||||
FadeInIntroPic:
|
||||
ld hl, IntroFadePalettes
|
||||
ld b, 6
|
||||
.next
|
||||
ld a, [hli]
|
||||
ld [rBGP], a
|
||||
ld c, 10
|
||||
call DelayFrames
|
||||
dec b
|
||||
jr nz, .next
|
||||
ret
|
||||
|
||||
IntroFadePalettes:
|
||||
db %01010100
|
||||
db %10101000
|
||||
db %11111100
|
||||
db %11111000
|
||||
db %11110100
|
||||
db %11100100
|
||||
|
||||
MovePicLeft:
|
||||
ld a, 119
|
||||
ld [rWX], a
|
||||
call DelayFrame
|
||||
|
||||
ld a, %11100100
|
||||
ld [rBGP], a
|
||||
.next
|
||||
call DelayFrame
|
||||
ld a, [rWX]
|
||||
sub 8
|
||||
cp $FF
|
||||
ret z
|
||||
ld [rWX], a
|
||||
jr .next
|
||||
|
||||
DisplayPicCenteredOrUpperRight:
|
||||
call GetPredefRegisters
|
||||
IntroDisplayPicCenteredOrUpperRight:
|
||||
; b = bank
|
||||
; de = address of compressed pic
|
||||
; c: 0 = centred, non-zero = upper-right
|
||||
push bc
|
||||
ld a, b
|
||||
call UncompressSpriteFromDE
|
||||
ld hl, sSpriteBuffer1
|
||||
ld de, sSpriteBuffer0
|
||||
ld bc, $310
|
||||
call CopyData
|
||||
ld de, vFrontPic
|
||||
call InterlaceMergeSpriteBuffers
|
||||
pop bc
|
||||
ld a, c
|
||||
and a
|
||||
coord hl, 15, 1
|
||||
jr nz, .next
|
||||
coord hl, 6, 4
|
||||
.next
|
||||
xor a
|
||||
ld [hStartTileID], a
|
||||
predef_jump CopyUncompressedPicToTilemap
|
||||
Loading…
Add table
Add a link
Reference in a new issue