mirror of
https://github.com/pret/pokeyellow.git
synced 2026-05-11 05:05:21 -05:00
597 lines
10 KiB
NASM
Executable File
597 lines
10 KiB
NASM
Executable File
SilphCo11Script:
|
|
call SilphCo11Script_62127
|
|
call EnableAutoTextBoxDrawing
|
|
ld hl, SilphCo11TrainerHeaders
|
|
ld de, SilphCo11ScriptPointers
|
|
ld a, [wSilphCo11CurScript]
|
|
call ExecuteCurMapScriptInTable
|
|
ld [wSilphCo11CurScript], a
|
|
ret
|
|
|
|
SilphCo11Script_62127:
|
|
ld hl, wCurrentMapScriptFlags
|
|
bit 5, [hl]
|
|
res 5, [hl]
|
|
ret z
|
|
ld hl, SilphCo11GateCoords
|
|
call SilphCo11Script_6214f
|
|
call SilphCo11Script_6217b
|
|
CheckEvent EVENT_SILPH_CO_11_UNLOCKED_DOOR
|
|
ret nz
|
|
ld a, $20
|
|
ld [wNewTileBlockID], a
|
|
lb bc, 6, 3
|
|
predef ReplaceTileBlock
|
|
ret
|
|
|
|
SilphCo11GateCoords:
|
|
db $06,$03
|
|
db $FF
|
|
|
|
SilphCo11Script_6214f:
|
|
push hl
|
|
ld hl, wCardKeyDoorY
|
|
ld a, [hli]
|
|
ld b, a
|
|
ld a, [hl]
|
|
ld c, a
|
|
xor a
|
|
ld [$ffe0], a
|
|
pop hl
|
|
.asm_62143
|
|
ld a, [hli]
|
|
cp $ff
|
|
jr z, .asm_6215f
|
|
push hl
|
|
ld hl, $ffe0
|
|
inc [hl]
|
|
pop hl
|
|
cp b
|
|
jr z, .asm_62154
|
|
inc hl
|
|
jr .asm_62143
|
|
.asm_62154
|
|
ld a, [hli]
|
|
cp c
|
|
jr nz, .asm_62143
|
|
ld hl, wCardKeyDoorY
|
|
xor a
|
|
ld [hli], a
|
|
ld [hl], a
|
|
ret
|
|
.asm_6215f
|
|
xor a
|
|
ld [$ffe0], a
|
|
ret
|
|
|
|
SilphCo11Script_6217b:
|
|
ld a, [$ffe0]
|
|
and a
|
|
ret z
|
|
SetEvent EVENT_SILPH_CO_11_UNLOCKED_DOOR
|
|
ret
|
|
|
|
SilphCo11Script_62185:
|
|
xor a
|
|
ld [wJoyIgnore], a
|
|
SilphCo11Script_62189:
|
|
ld [wSilphCo11CurScript], a
|
|
ld [wCurMapScript], a
|
|
ret
|
|
|
|
SilphCo11ScriptPointers:
|
|
dw SilphCo11Script0
|
|
dw DisplayEnemyTrainerTextAndStartBattle
|
|
dw EndTrainerBattle
|
|
dw SilphCo11Script3
|
|
dw SilphCo11Script4
|
|
dw SilphCo11Script5
|
|
dw SilphCo11Script6
|
|
dw SilphCo11Script7
|
|
dw SilphCo11Script8
|
|
dw SilphCo11Script9
|
|
dw SilphCo11Script10
|
|
dw SilphCo11Script11
|
|
dw SilphCo11Script12
|
|
dw SilphCo11Script13
|
|
dw SilphCo11Script14
|
|
|
|
SilphCo11Script0:
|
|
CheckEvent EVENT_BEAT_SILPH_CO_11F_TRAINER_0
|
|
call z, SilphCo11Script_6229c
|
|
CheckEvent EVENT_782
|
|
ret nz
|
|
CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI
|
|
call z, SilphCo11Script_621c5
|
|
ret
|
|
|
|
SilphCo11Script_621c5:
|
|
ld hl, CoordsData_62211
|
|
call ArePlayerCoordsInArray
|
|
jp nc, CheckFightingMapTrainers
|
|
ld a, [wCoordIndex]
|
|
ld [wcf0d], a
|
|
xor a
|
|
ld [hJoyHeld], a
|
|
ld a, $f0
|
|
ld [wJoyIgnore], a
|
|
ld a, $3
|
|
ld [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
ld a, $3
|
|
ld [H_SPRITEINDEX], a
|
|
call SetSpriteMovementBytesToFF
|
|
ld de, MovementData_62216
|
|
call MoveSprite
|
|
ld a, $4
|
|
call SilphCo11Script_62189
|
|
ret
|
|
|
|
CoordsData_62211:
|
|
db $0D,$06
|
|
db $0C,$07
|
|
db $FF
|
|
|
|
MovementData_62216:
|
|
db NPC_MOVEMENT_DOWN
|
|
db NPC_MOVEMENT_DOWN
|
|
db NPC_MOVEMENT_DOWN
|
|
db $FF
|
|
|
|
SilphCo11Script_621ff:
|
|
ld [wPlayerMovingDirection], a
|
|
ld a, b
|
|
ld [wSpriteStateData1 + 3 * $10 + 9], a
|
|
ld a, $2
|
|
ld [wSpriteStateData1 + 3 * $10 + 1], a
|
|
ret
|
|
|
|
SilphCo11Script3:
|
|
ld a, [wIsInBattle]
|
|
cp $ff
|
|
jp z, SilphCo11Script_62185
|
|
ld a, [wcf0d]
|
|
cp $1
|
|
jr z, .asm_6223c
|
|
ld a, PLAYER_DIR_LEFT
|
|
ld b, SPRITE_FACING_RIGHT
|
|
jr .asm_62240
|
|
.asm_6223c
|
|
ld a, PLAYER_DIR_UP
|
|
ld b, SPRITE_FACING_DOWN
|
|
.asm_62240
|
|
call SilphCo11Script_621ff
|
|
ld a, $f0
|
|
ld [wJoyIgnore], a
|
|
ld a, $7
|
|
ld [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
call GBFadeOutToBlack
|
|
callba Func_f25a0
|
|
call UpdateSprites
|
|
call Delay3
|
|
call GBFadeInFromBlack
|
|
SetEvent EVENT_BEAT_SILPH_CO_GIOVANNI
|
|
xor a
|
|
ld [wJoyIgnore], a
|
|
jp SilphCo11Script_62189
|
|
|
|
SilphCo11Script4:
|
|
ld a, [wd730]
|
|
bit 0, a
|
|
ret nz
|
|
ld a, $3
|
|
ld [H_SPRITEINDEX], a
|
|
call SetSpriteMovementBytesToFF
|
|
ld a, [wcf0d]
|
|
cp $1
|
|
jr z, .asm_62284
|
|
ld a, PLAYER_DIR_LEFT
|
|
ld b, SPRITE_FACING_RIGHT
|
|
jr .asm_62288
|
|
.asm_62284
|
|
ld a, PLAYER_DIR_UP
|
|
ld b, SPRITE_FACING_DOWN
|
|
.asm_62288
|
|
call SilphCo11Script_621ff
|
|
call Delay3
|
|
xor a
|
|
ld [wJoyIgnore], a
|
|
ld hl, wd72d
|
|
set 6, [hl]
|
|
set 7, [hl]
|
|
ld hl, SilphCo10Text_62528
|
|
ld de, SilphCo10Text_62528
|
|
call SaveEndBattleTextPointers
|
|
ld a, [H_SPRITEINDEX]
|
|
ld [wSpriteIndex], a
|
|
call EngageMapTrainer
|
|
call InitBattleEnemyParameters
|
|
ld a, $3
|
|
jp SilphCo11Script_62189
|
|
|
|
SilphCo11Script_6229c:
|
|
ld a, [wYCoord]
|
|
cp $3
|
|
ret nz
|
|
ld a, [wXCoord]
|
|
cp $4
|
|
ret nc
|
|
ResetEvents EVENT_780, EVENT_781
|
|
ld a, [wXCoord]
|
|
cp $3
|
|
jr z, .asm_622c3
|
|
SetEventReuseHL EVENT_780
|
|
ld a, [wXCoord]
|
|
cp $2
|
|
jr z, .asm_622c3
|
|
ResetEventReuseHL EVENT_780
|
|
SetEventReuseHL EVENT_781
|
|
.asm_622c3
|
|
call StopAllMusic
|
|
ld c, BANK(Music_MeetJessieJames)
|
|
ld a, MUSIC_MEET_JESSIE_JAMES
|
|
call PlayMusic
|
|
xor a
|
|
ld [hJoyHeld], a
|
|
ld a, $fc
|
|
ld [wJoyIgnore], a
|
|
ld a, $1
|
|
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
|
|
ld a, $8
|
|
ld [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
xor a
|
|
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
|
|
ld a, $ff
|
|
ld [wJoyIgnore], a
|
|
SetEvent EVENT_782
|
|
ld a, $5
|
|
call SilphCo11Script_62189
|
|
ret
|
|
|
|
SilphCo11MovementData_622f5:
|
|
db $5
|
|
db $5
|
|
db $5
|
|
db $5
|
|
db $5
|
|
db $ff
|
|
|
|
SilphCo11MovementData_622fb:
|
|
db $5
|
|
db $5
|
|
db $5
|
|
db $5
|
|
db $ff
|
|
|
|
SilphCo11MovementData_62300:
|
|
db $5
|
|
db $5
|
|
db $5
|
|
db $5
|
|
db $ff
|
|
|
|
SilphCo11MovementData_62305:
|
|
db $5
|
|
db $5
|
|
db $5
|
|
db $5
|
|
db $5
|
|
db $ff
|
|
|
|
SilphCo11MovementData_6230b:
|
|
db $5
|
|
db $5
|
|
db $6
|
|
db $5
|
|
db $5
|
|
db $ff
|
|
|
|
SilphCo11MovementData_62311:
|
|
db $5
|
|
db $5
|
|
db $5
|
|
db $6
|
|
db $5
|
|
db $5
|
|
db $ff
|
|
|
|
SilphCo11Script5:
|
|
ld de, SilphCo11MovementData_622f5
|
|
CheckEitherEventSet EVENT_780, EVENT_781
|
|
and a
|
|
jr z, .asm_6232d
|
|
ld de, SilphCo11MovementData_62300
|
|
cp $1
|
|
jr z, .asm_6232d
|
|
ld de, SilphCo11MovementData_6230b
|
|
.asm_6232d
|
|
ld a, $4
|
|
ld [hSpriteIndexOrTextID], a
|
|
call MoveSprite
|
|
ld a, $ff
|
|
ld [wJoyIgnore], a
|
|
ld a, $6
|
|
call SilphCo11Script_62189
|
|
ret
|
|
|
|
SilphCo11Script6:
|
|
ld a, $ff
|
|
ld [wJoyIgnore], a
|
|
ld a, [wd730]
|
|
bit 0, a
|
|
ret nz
|
|
SilphCo11Script7:
|
|
ld a, $2
|
|
ld [wSpriteStateData1 + 4 * $10 + 1], a
|
|
ld hl, wSpriteStateData1 + 4 * $10 + 9
|
|
ld [hl], SPRITE_FACING_RIGHT
|
|
CheckEitherEventSet EVENT_780, EVENT_781
|
|
and a
|
|
jr z, .asm_6235e
|
|
ld [hl], SPRITE_FACING_UP
|
|
.asm_6235e
|
|
call Delay3
|
|
ld a, $fc
|
|
ld [wJoyIgnore], a
|
|
SilphCo11Script8:
|
|
ld de, SilphCo11MovementData_622fb
|
|
CheckEitherEventSet EVENT_780, EVENT_781
|
|
and a
|
|
jr z, .asm_6237b
|
|
ld de, SilphCo11MovementData_62305
|
|
cp $1
|
|
jr z, .asm_6237b
|
|
ld de, SilphCo11MovementData_62311
|
|
.asm_6237b
|
|
ld a, $6
|
|
ld [hSpriteIndexOrTextID], a
|
|
call MoveSprite
|
|
ld a, $ff
|
|
ld [wJoyIgnore], a
|
|
ld a, $9
|
|
call SilphCo11Script_62189
|
|
ret
|
|
|
|
SilphCo11Script9:
|
|
ld a, $ff
|
|
ld [wJoyIgnore], a
|
|
ld a, [wd730]
|
|
bit 0, a
|
|
ret nz
|
|
ld a, $fc
|
|
ld [wJoyIgnore], a
|
|
SilphCo11Script10:
|
|
ld a, $2
|
|
ld [wSpriteStateData1 + 6 * $10 + 1], a
|
|
ld hl, wSpriteStateData1 + 6 * $10 + 9
|
|
ld [hl], SPRITE_FACING_UP
|
|
CheckEitherEventSet EVENT_780, EVENT_781
|
|
and a
|
|
jr z, .asm_623b1
|
|
ld [hl], SPRITE_FACING_LEFT
|
|
.asm_623b1
|
|
call Delay3
|
|
ld a, $9
|
|
ld [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
SilphCo11Script11:
|
|
ld hl, wd72d
|
|
set 6, [hl]
|
|
set 7, [hl]
|
|
ld hl, SilphCo11Text_624c2
|
|
ld de, SilphCo11Text_624c2
|
|
call SaveEndBattleTextPointers
|
|
ld a, OPP_ROCKET
|
|
ld [wCurOpponent], a
|
|
ld a, $2d
|
|
ld [wTrainerNo], a
|
|
xor a
|
|
ld [hJoyHeld], a
|
|
ld [wJoyIgnore], a
|
|
ld a, $c
|
|
call SilphCo11Script_62189
|
|
ret
|
|
|
|
SilphCo11Script12:
|
|
ld a, $ff
|
|
ld [wJoyIgnore], a
|
|
ld a, [wIsInBattle]
|
|
cp $ff
|
|
jp z, SilphCo11Script_62185
|
|
ld a, $2
|
|
ld [wSpriteStateData1 + 4 * $10 + 1], a
|
|
ld [wSpriteStateData1 + 6 * $10 + 1], a
|
|
xor a
|
|
ld [wSpriteStateData1 + 4 * $10 + 9], a
|
|
ld [wSpriteStateData1 + 6 * $10 + 9], a
|
|
ld a, $fc
|
|
ld [wJoyIgnore], a
|
|
ld a, $1
|
|
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
|
|
ld a, $a
|
|
ld [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
xor a
|
|
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
|
|
call StopAllMusic
|
|
ld c, BANK(Music_MeetJessieJames)
|
|
ld a, MUSIC_MEET_JESSIE_JAMES
|
|
call PlayMusic
|
|
ld a, $ff
|
|
ld [wJoyIgnore], a
|
|
ld a, $d
|
|
call SilphCo11Script_62189
|
|
ret
|
|
|
|
SilphCo11Script13:
|
|
ld a, $ff
|
|
ld [wJoyIgnore], a
|
|
call GBFadeOutToBlack
|
|
ld a, HS_SILPH_CO_11F_JAMES
|
|
call SilphCo11Script_6246d
|
|
ld a, HS_SILPH_CO_11F_JESSIE
|
|
call SilphCo11Script_6246d
|
|
call UpdateSprites
|
|
call Delay3
|
|
call GBFadeInFromBlack
|
|
ld a, $e
|
|
call SilphCo11Script_62189
|
|
ret
|
|
|
|
SilphCo11Script14:
|
|
call PlayDefaultMusic
|
|
xor a
|
|
ld [hJoyHeld], a
|
|
ld [wJoyIgnore], a
|
|
ResetEvent EVENT_782
|
|
SetEventReuseHL EVENT_BEAT_SILPH_CO_11F_TRAINER_0
|
|
ld a, $0
|
|
call SilphCo11Script_62189
|
|
ret
|
|
|
|
SilphCo11Script_6245e:
|
|
ld [wMissableObjectIndex], a
|
|
predef ShowObject
|
|
call UpdateSprites
|
|
call Delay3
|
|
ret
|
|
|
|
SilphCo11Script_6246d:
|
|
ld [wMissableObjectIndex], a
|
|
predef HideObject
|
|
ret
|
|
|
|
SilphCo11TextPointers:
|
|
dw SilphCo11Text1
|
|
dw SilphCo11Text2
|
|
dw SilphCo11Text3
|
|
dw SilphCo11Text4
|
|
dw SilphCo11Text5
|
|
dw SilphCo11Text6
|
|
dw SilphCo11Text7
|
|
dw SilphCo11Text8
|
|
dw SilphCo11Text9
|
|
dw SilphCo11Text10
|
|
|
|
SilphCo11TrainerHeaders:
|
|
SilphCo11TrainerHeader0:
|
|
dbEventFlagBit EVENT_BEAT_SILPH_CO_11F_TRAINER_1
|
|
db ($3 << 4)
|
|
dwEventFlagAddress EVENT_BEAT_SILPH_CO_11F_TRAINER_1
|
|
dw SilphCo11Trainer1BattleText
|
|
dw SilphCo11Trainer1AfterBattleText
|
|
dw SilphCo11Trainer1EndBattleText
|
|
dw SilphCo11Trainer1EndBattleText
|
|
|
|
db $ff ; no more trainers
|
|
|
|
SilphCo11Text4:
|
|
SilphCo11Text6:
|
|
SilphCo11Text8:
|
|
TX_FAR _SilphCoJessieJamesText1
|
|
TX_ASM
|
|
ld c, 10
|
|
call DelayFrames
|
|
ld a, $4
|
|
ld [wPlayerMovingDirection], a
|
|
ld a, $0
|
|
ld [wEmotionBubbleSpriteIndex], a
|
|
ld a, EXCLAMATION_BUBBLE
|
|
ld [wWhichEmotionBubble], a
|
|
predef EmotionBubble
|
|
ld c, 20
|
|
call DelayFrames
|
|
jp TextScriptEnd
|
|
|
|
SilphCo11Text9:
|
|
TX_FAR _SilphCoJessieJamesText2
|
|
db "@"
|
|
|
|
SilphCo11Text_624c2:
|
|
TX_FAR _SilphCoJessieJamesText3
|
|
db "@"
|
|
|
|
SilphCo11Text10:
|
|
TX_FAR _SilphCoJessieJamesText4
|
|
TX_ASM
|
|
ld c, 64
|
|
call DelayFrames
|
|
jp TextScriptEnd
|
|
|
|
SilphCo11Text1:
|
|
TX_ASM
|
|
CheckEvent EVENT_GOT_MASTER_BALL
|
|
jp nz, .asm_62500
|
|
ld hl, SilphCo11Text_62509
|
|
call PrintText
|
|
lb bc, MASTER_BALL, 1
|
|
call GiveItem
|
|
jr nc, .asm_624f8
|
|
ld hl, SilphCo11Text_6250e
|
|
call PrintText
|
|
SetEvent EVENT_GOT_MASTER_BALL
|
|
jr .asm_62506
|
|
.asm_624f8
|
|
ld hl, SilphCo11Text_62519
|
|
call PrintText
|
|
jr .asm_62506
|
|
|
|
.asm_62500
|
|
ld hl, SilphCo11Text_62514
|
|
call PrintText
|
|
.asm_62506
|
|
jp TextScriptEnd
|
|
|
|
SilphCo11Text_62509:
|
|
TX_FAR _SilphCoPresidentText
|
|
db "@"
|
|
|
|
SilphCo11Text_6250e:
|
|
TX_FAR _ReceivedSilphCoMasterBallText
|
|
TX_SFX_KEY_ITEM
|
|
db "@"
|
|
|
|
SilphCo11Text_62514:
|
|
TX_FAR _SilphCo10Text_6231c
|
|
db "@"
|
|
|
|
SilphCo11Text_62519:
|
|
TX_FAR _SilphCoMasterBallNoRoomText
|
|
db "@"
|
|
|
|
SilphCo11Text2:
|
|
TX_FAR _SilphCo11Text2
|
|
db "@"
|
|
|
|
SilphCo11Text3:
|
|
TX_FAR _SilphCo11Text3
|
|
db "@"
|
|
|
|
SilphCo10Text_62528:
|
|
TX_FAR _SilphCo10Text_62330
|
|
db "@"
|
|
|
|
SilphCo11Text7:
|
|
TX_FAR _SilphCo10Text_62335
|
|
db "@"
|
|
|
|
SilphCo11Text5:
|
|
TX_ASM
|
|
ld hl, SilphCo11TrainerHeader0
|
|
call TalkToTrainer
|
|
jp TextScriptEnd
|
|
|
|
SilphCo11Trainer1BattleText:
|
|
TX_FAR _SilphCo11BattleText2
|
|
db "@"
|
|
|
|
SilphCo11Trainer1EndBattleText:
|
|
TX_FAR _SilphCo11EndBattleText2
|
|
db "@"
|
|
|
|
SilphCo11Trainer1AfterBattleText:
|
|
TX_FAR _SilphCo11AfterBattleText2
|
|
db "@"
|