mirror of
https://github.com/pret/pokeyellow.git
synced 2026-05-22 19:07:35 -05:00
365 lines
6.3 KiB
NASM
Executable File
365 lines
6.3 KiB
NASM
Executable File
ViridianCityScript:
|
|
call EnableAutoTextBoxDrawing
|
|
ld hl, ViridianCityScriptPointers
|
|
ld a, [wViridianCityCurScript]
|
|
call JumpTable
|
|
ret
|
|
|
|
ViridianCityScriptPointers:
|
|
dw ViridianCityScript0
|
|
dw ViridianCityScript1
|
|
dw ViridianCityScript2
|
|
dw ViridianCityScript3
|
|
dw ViridianCityScript4
|
|
dw ViridianCityScript5
|
|
dw ViridianCityScript6
|
|
dw ViridianCityScript7
|
|
dw ViridianCityScript8
|
|
dw ViridianCityScript9
|
|
dw ViridianCityScript10
|
|
|
|
ViridianCityScript0:
|
|
call ViridianCityScript_1905b
|
|
call ViridianCityScript_190ab
|
|
ret
|
|
|
|
ViridianCityScript1:
|
|
call ViridianCityScript_19162
|
|
ViridianCityScript2:
|
|
call ViridianCityScript_1905b
|
|
ret
|
|
|
|
ViridianCityScript_1905b:
|
|
CheckEvent EVENT_VIRIDIAN_GYM_OPEN
|
|
ret nz
|
|
ld a, [wObtainedBadges]
|
|
cp $7f ; all but Earthbadge
|
|
jr nz, .asm_1906e
|
|
SetEvent EVENT_VIRIDIAN_GYM_OPEN
|
|
ret
|
|
|
|
.asm_1906e
|
|
ld a, [wYCoord]
|
|
cp 8
|
|
ret nz
|
|
ld a, [wXCoord]
|
|
cp 32
|
|
ret nz
|
|
ld a, $f
|
|
ld [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
call StartSimulatingJoypadStates
|
|
ld a, $1
|
|
ld [wSimulatedJoypadStatesIndex], a
|
|
ld a, D_DOWN
|
|
ld [wSimulatedJoypadStatesEnd], a
|
|
xor a
|
|
ld [wPlayerFacingDirection], a
|
|
ld [wJoyIgnore], a
|
|
ld [hJoyHeld], a
|
|
ld a, $6
|
|
ld [wViridianCityCurScript], a
|
|
ret
|
|
|
|
ViridianCityScript6:
|
|
ld a, [wSimulatedJoypadStatesIndex]
|
|
and a
|
|
ret nz
|
|
call Delay3
|
|
ld a, $2
|
|
ld [wViridianCityCurScript], a
|
|
ret
|
|
|
|
ViridianCityScript_190ab:
|
|
ld a, [wYCoord]
|
|
cp 9
|
|
ret nz
|
|
ld a, [wXCoord]
|
|
cp 19
|
|
ret nz
|
|
ld a, $5
|
|
ld [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
xor a
|
|
ld [hJoyHeld], a
|
|
call ViridianCityScript_1914d
|
|
ld a, $5
|
|
ld [wViridianCityCurScript], a
|
|
ret
|
|
|
|
ViridianCityScript3:
|
|
call ViridianCityScript_190ef
|
|
call ViridianCityScript_190db
|
|
ResetEvent EVENT_02F
|
|
ld a, $4
|
|
ld [wViridianCityCurScript], a
|
|
ret
|
|
|
|
ViridianCityScript_190db:
|
|
xor a
|
|
ld [wListScrollOffset], a
|
|
ld a, BATTLE_TYPE_OLD_MAN
|
|
ld [wBattleType], a
|
|
ld a, 5
|
|
ld [wCurEnemyLVL], a
|
|
ld a, RATTATA
|
|
ld [wCurOpponent], a
|
|
ret
|
|
|
|
ViridianCityScript_190ef:
|
|
ld a, [wSpriteStateData1 + 3 * $10 + 4]
|
|
ld [$ffeb], a
|
|
ld a, [wSpriteStateData1 + 3 * $10 + 6]
|
|
ld [$ffec], a
|
|
ld a, [wSpriteStateData2 + 3 * $10 + 4]
|
|
ld [$ffed], a
|
|
ld a, [wSpriteStateData2 + 3 * $10 + 5]
|
|
ld [$ffee], a
|
|
ret
|
|
|
|
ViridianCityScript4:
|
|
call ViridianCityScript_1912a
|
|
call UpdateSprites
|
|
call Delay3
|
|
SetEvent EVENT_02E
|
|
xor a
|
|
ld [wJoyIgnore], a
|
|
ld a, $10
|
|
ld [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
xor a
|
|
ld [wBattleType], a
|
|
ld [wJoyIgnore], a
|
|
ld a, $2
|
|
ld [wViridianCityCurScript], a
|
|
ret
|
|
|
|
ViridianCityScript_1912a:
|
|
ld a, [$ffeb]
|
|
ld [wSpriteStateData1 + 3 * $10 + 4], a
|
|
ld a, [$ffec]
|
|
ld [wSpriteStateData1 + 3 * $10 + 6], a
|
|
ld a, [$ffed]
|
|
ld [wSpriteStateData2 + 3 * $10 + 4], a
|
|
ld a, [$ffee]
|
|
ld [wSpriteStateData2 + 3 * $10 + 5], a
|
|
ret
|
|
|
|
ViridianCityScript5:
|
|
ld a, [wSimulatedJoypadStatesIndex]
|
|
and a
|
|
ret nz
|
|
call Delay3
|
|
ld a, $0
|
|
ld [wViridianCityCurScript], a
|
|
ret
|
|
|
|
ViridianCityScript_1914d:
|
|
call StartSimulatingJoypadStates
|
|
ld a, $1
|
|
ld [wSimulatedJoypadStatesIndex], a
|
|
ld a, D_DOWN
|
|
ld [wSimulatedJoypadStatesEnd], a
|
|
xor a
|
|
ld [wPlayerFacingDirection], a
|
|
ld [wJoyIgnore], a
|
|
ret
|
|
|
|
ViridianCityScript_19162:
|
|
CheckEvent EVENT_02D
|
|
ret nz
|
|
ld a, [wYCoord]
|
|
cp 9
|
|
ret nz
|
|
ld a, [wXCoord]
|
|
cp 19
|
|
ret nz
|
|
ld a, $8
|
|
ld [hSpriteIndexOrTextID], a
|
|
ld a, SPRITE_FACING_RIGHT
|
|
ld [hSpriteFacingDirection], a
|
|
call SetSpriteFacingDirectionAndDelay
|
|
ld a, $8
|
|
ld [wPlayerFacingDirection], a
|
|
ld a, $8
|
|
ld [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
ld a, D_UP | D_DOWN | D_LEFT | D_RIGHT | START | SELECT
|
|
ld [wJoyIgnore], a
|
|
ret
|
|
|
|
ViridianCityScript7:
|
|
call ViridianCityScript_190ef
|
|
call ViridianCityScript_190db
|
|
SetEvent EVENT_02F
|
|
ld a, D_UP | D_DOWN | D_LEFT | D_RIGHT | START | SELECT
|
|
ld [wJoyIgnore], a
|
|
ld a, $8
|
|
ld [wViridianCityCurScript], a
|
|
ret
|
|
|
|
ViridianCityScript8:
|
|
call ViridianCityScript_1912a
|
|
call UpdateSprites
|
|
call Delay3
|
|
SetEvent EVENT_02D
|
|
ld a, D_UP | D_DOWN | D_LEFT | D_RIGHT | START | SELECT
|
|
ld [wJoyIgnore], a
|
|
ld a, $8
|
|
ld [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
xor a
|
|
ld [wBattleType], a
|
|
dec a
|
|
ld [wJoyIgnore], a
|
|
ld a, $9
|
|
ld [wViridianCityCurScript], a
|
|
ret
|
|
|
|
ViridianCityScript9:
|
|
ld de, ViridianCityOldManMovementData2
|
|
ld a, [wXCoord]
|
|
cp 19
|
|
jr z, .asm_191e4
|
|
callab Func_f1a01
|
|
ld de, ViridianCityOldManMovementData1
|
|
.asm_191e4
|
|
ld a, $8
|
|
ld [hSpriteIndexOrTextID], a
|
|
call MoveSprite
|
|
ld a, $a
|
|
ld [wViridianCityCurScript], a
|
|
ret
|
|
|
|
ViridianCityOldManMovementData1:
|
|
db NPC_MOVEMENT_RIGHT
|
|
ViridianCityOldManMovementData2:
|
|
db NPC_MOVEMENT_DOWN
|
|
db NPC_MOVEMENT_DOWN
|
|
db NPC_MOVEMENT_DOWN
|
|
db NPC_MOVEMENT_DOWN
|
|
db NPC_MOVEMENT_DOWN
|
|
db NPC_MOVEMENT_DOWN
|
|
db $ff
|
|
|
|
ViridianCityScript10:
|
|
ld a, [wd730]
|
|
bit 0, a
|
|
ret nz
|
|
ld a, $3
|
|
ld [wMissableObjectIndex], a
|
|
predef HideObject
|
|
xor a
|
|
ld [wJoyIgnore], a
|
|
ld a, $2
|
|
ld [wViridianCityCurScript], a
|
|
ret
|
|
|
|
ViridianCityTextPointers:
|
|
dw ViridianCityText_0
|
|
dw ViridianCityText_1
|
|
dw ViridianCityText_2
|
|
dw ViridianCityText_3
|
|
dw ViridianCityText_4
|
|
dw ViridianCityText_5
|
|
dw ViridianCityText_6
|
|
dw ViridianCityText_7
|
|
dw ViridianCityText_8
|
|
dw ViridianCityText_9
|
|
dw ViridianCityText_10
|
|
dw MartSignText
|
|
dw PokeCenterSignText
|
|
dw ViridianCityText_11
|
|
dw ViridianCityText_12
|
|
dw ViridianCityText_13
|
|
|
|
ViridianCityText_0:
|
|
TX_ASM
|
|
callba Func_f18bb
|
|
jp TextScriptEnd
|
|
|
|
ViridianCityText_1:
|
|
TX_ASM
|
|
callba Func_f18c7
|
|
jp TextScriptEnd
|
|
|
|
ViridianCityText_2:
|
|
TX_ASM
|
|
callba Func_f18e9
|
|
jp TextScriptEnd
|
|
|
|
ViridianCityText_3:
|
|
TX_ASM
|
|
callba Func_f1911
|
|
jp TextScriptEnd
|
|
|
|
ViridianCityText_4:
|
|
TX_ASM
|
|
callba Func_f192c
|
|
jp TextScriptEnd
|
|
|
|
ViridianCityText_5:
|
|
TX_ASM
|
|
callba Func_f194a
|
|
jp TextScriptEnd
|
|
|
|
ViridianCityText_6:
|
|
TX_ASM
|
|
callba Func_f198e
|
|
jp TextScriptEnd
|
|
|
|
ViridianCityText_13:
|
|
TX_FAR _ViridianCityText_19219
|
|
db "@"
|
|
|
|
ViridianCityText_7:
|
|
TX_ASM
|
|
CheckEvent EVENT_02D
|
|
jr nz, .asm_192a6
|
|
ld hl, ViridianCityText_192af
|
|
call PrintText
|
|
ld c, 2
|
|
call DelayFrames
|
|
ld a, $7
|
|
ld [wViridianCityCurScript], a
|
|
jr .asm_192ac
|
|
|
|
.asm_192a6
|
|
ld hl, ViridianCityText_192b4
|
|
call PrintText
|
|
.asm_192ac
|
|
jp TextScriptEnd
|
|
|
|
ViridianCityText_192af:
|
|
TX_FAR _ViridianCityText_1920a
|
|
db "@"
|
|
|
|
ViridianCityText_192b4:
|
|
TX_FAR _OldManTextAfterBattle
|
|
db "@"
|
|
|
|
ViridianCityText_8:
|
|
TX_ASM
|
|
callba Func_f19c5
|
|
jp TextScriptEnd
|
|
|
|
ViridianCityText_9:
|
|
TX_ASM
|
|
callba Func_f19d1
|
|
jp TextScriptEnd
|
|
|
|
ViridianCityText_10:
|
|
TX_ASM
|
|
callba Func_f19dd
|
|
jp TextScriptEnd
|
|
|
|
ViridianCityText_11:
|
|
TX_ASM
|
|
callba Func_f19e9
|
|
jp TextScriptEnd
|
|
|
|
ViridianCityText_12:
|
|
TX_ASM
|
|
callba Func_f19f5
|
|
jp TextScriptEnd
|