mirror of
https://github.com/pret/pokered.git
synced 2024-10-23 06:58:24 +00:00
6ef36800b0
To do: turn constants into labels and use ldh
327 lines
5.6 KiB
NASM
Executable file
327 lines
5.6 KiB
NASM
Executable file
ViridianCity_Script:
|
|
call EnableAutoTextBoxDrawing
|
|
ld hl, ViridianCity_ScriptPointers
|
|
ld a, [wViridianCityCurScript]
|
|
jp CallFunctionInTable
|
|
|
|
ViridianCity_ScriptPointers:
|
|
dw ViridianCityScript0
|
|
dw ViridianCityScript1
|
|
dw ViridianCityScript2
|
|
dw ViridianCityScript3
|
|
|
|
ViridianCityScript0:
|
|
call ViridianCityScript_1900b
|
|
jp ViridianCityScript_1903d
|
|
|
|
ViridianCityScript_1900b:
|
|
CheckEvent EVENT_VIRIDIAN_GYM_OPEN
|
|
ret nz
|
|
ld a, [wObtainedBadges]
|
|
cp %01111111
|
|
jr nz, .gymClosed
|
|
SetEvent EVENT_VIRIDIAN_GYM_OPEN
|
|
ret
|
|
.gymClosed
|
|
ld a, [wYCoord]
|
|
cp $8
|
|
ret nz
|
|
ld a, [wXCoord]
|
|
cp $20
|
|
ret nz
|
|
ld a, $e
|
|
ld [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
xor a
|
|
ld [hJoyHeld], a
|
|
call ViridianCityScript_190cf
|
|
ld a, $3
|
|
ld [wViridianCityCurScript], a
|
|
ret
|
|
|
|
ViridianCityScript_1903d:
|
|
CheckEvent EVENT_GOT_POKEDEX
|
|
ret nz
|
|
ld a, [wYCoord]
|
|
cp $9
|
|
ret nz
|
|
ld a, [wXCoord]
|
|
cp $13
|
|
ret nz
|
|
ld a, $5
|
|
ld [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
xor a
|
|
ld [hJoyHeld], a
|
|
call ViridianCityScript_190cf
|
|
ld a, $3
|
|
ld [wViridianCityCurScript], a
|
|
ret
|
|
|
|
ViridianCityScript1:
|
|
ld a, [wSprite03StateData1YPixels]
|
|
ld [hSpriteScreenYCoord], a
|
|
ld a, [wSprite03StateData1XPixels]
|
|
ld [hSpriteScreenXCoord], a
|
|
ld a, [wSprite03StateData2MapY]
|
|
ld [hSpriteMapYCoord], a
|
|
ld a, [wSprite03StateData2MapX]
|
|
ld [hSpriteMapXCoord], a
|
|
xor a
|
|
ld [wListScrollOffset], a
|
|
|
|
; set up battle for Old Man
|
|
ld a, BATTLE_TYPE_OLD_MAN
|
|
ld [wBattleType], a
|
|
ld a, 5
|
|
ld [wCurEnemyLVL], a
|
|
ld a, WEEDLE
|
|
ld [wCurOpponent], a
|
|
ld a, $2
|
|
ld [wViridianCityCurScript], a
|
|
ret
|
|
|
|
ViridianCityScript2:
|
|
ld a, [hSpriteScreenYCoord]
|
|
ld [wSprite03StateData1YPixels], a
|
|
ld a, [hSpriteScreenXCoord]
|
|
ld [wSprite03StateData1XPixels], a
|
|
ld a, [hSpriteMapYCoord]
|
|
ld [wSprite03StateData2MapY], a
|
|
ld a, [hSpriteMapXCoord]
|
|
ld [wSprite03StateData2MapX], a
|
|
call UpdateSprites
|
|
call Delay3
|
|
xor a
|
|
ld [wJoyIgnore], a
|
|
ld a, $f
|
|
ld [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
xor a
|
|
ld [wBattleType], a
|
|
ld [wJoyIgnore], a
|
|
ld a, $0
|
|
ld [wViridianCityCurScript], a
|
|
ret
|
|
|
|
ViridianCityScript3:
|
|
ld a, [wSimulatedJoypadStatesIndex]
|
|
and a
|
|
ret nz
|
|
call Delay3
|
|
ld a, 0
|
|
ld [wViridianCityCurScript], a
|
|
ret
|
|
|
|
ViridianCityScript_190cf:
|
|
call StartSimulatingJoypadStates
|
|
ld a, $1
|
|
ld [wSimulatedJoypadStatesIndex], a
|
|
ld a, D_DOWN
|
|
ld [wSimulatedJoypadStatesEnd], a
|
|
xor a
|
|
ld [wSpriteStateData1 + 9], a
|
|
ld [wJoyIgnore], a
|
|
ret
|
|
|
|
ViridianCity_TextPointers:
|
|
dw ViridianCityText1
|
|
dw ViridianCityText2
|
|
dw ViridianCityText3
|
|
dw ViridianCityText4
|
|
dw ViridianCityText5
|
|
dw ViridianCityText6
|
|
dw ViridianCityText7
|
|
dw ViridianCityText8
|
|
dw ViridianCityText9
|
|
dw ViridianCityText10
|
|
dw MartSignText
|
|
dw PokeCenterSignText
|
|
dw ViridianCityText13
|
|
dw ViridianCityText14
|
|
dw ViridianCityText15
|
|
|
|
ViridianCityText1:
|
|
TX_FAR _ViridianCityText1
|
|
db "@"
|
|
|
|
ViridianCityText2:
|
|
TX_ASM
|
|
ld a, [wObtainedBadges]
|
|
cp %01111111
|
|
ld hl, ViridianCityText_19127
|
|
jr z, .printAndDone
|
|
CheckEvent EVENT_BEAT_VIRIDIAN_GYM_GIOVANNI
|
|
jr nz, .printAndDone
|
|
ld hl, ViridianCityText_19122
|
|
.printAndDone
|
|
call PrintText
|
|
jp TextScriptEnd
|
|
|
|
ViridianCityText_19122:
|
|
TX_FAR _ViridianCityText_19122
|
|
db "@"
|
|
|
|
ViridianCityText_19127:
|
|
TX_FAR _ViridianCityText_19127
|
|
db "@"
|
|
|
|
ViridianCityText3:
|
|
TX_ASM
|
|
ld hl, ViridianCityText_1914d
|
|
call PrintText
|
|
call YesNoChoice
|
|
ld a, [wCurrentMenuItem]
|
|
and a
|
|
jr nz, .no
|
|
ld hl, ViridianCityText_19157
|
|
call PrintText
|
|
jr .done
|
|
.no
|
|
ld hl, ViridianCityText_19152
|
|
call PrintText
|
|
.done
|
|
jp TextScriptEnd
|
|
|
|
ViridianCityText_1914d:
|
|
TX_FAR _ViridianCityText_1914d
|
|
db "@"
|
|
|
|
ViridianCityText_19152:
|
|
TX_FAR _ViridianCityText_19152
|
|
db "@"
|
|
|
|
ViridianCityText_19157:
|
|
TX_FAR _ViridianCityText_19157
|
|
db "@"
|
|
|
|
ViridianCityText4:
|
|
TX_ASM
|
|
CheckEvent EVENT_GOT_POKEDEX
|
|
jr nz, .gotPokedex
|
|
ld hl, ViridianCityText_19175
|
|
call PrintText
|
|
jr .done
|
|
.gotPokedex
|
|
ld hl, ViridianCityText_1917a
|
|
call PrintText
|
|
.done
|
|
jp TextScriptEnd
|
|
|
|
ViridianCityText_19175:
|
|
TX_FAR _ViridianCityText_19175
|
|
db "@"
|
|
|
|
ViridianCityText_1917a:
|
|
TX_FAR _ViridianCityText_1917a
|
|
db "@"
|
|
|
|
ViridianCityText5:
|
|
TX_ASM
|
|
ld hl, ViridianCityText_19191
|
|
call PrintText
|
|
call ViridianCityScript_190cf
|
|
ld a, $3
|
|
ld [wViridianCityCurScript], a
|
|
jp TextScriptEnd
|
|
|
|
ViridianCityText_19191:
|
|
TX_FAR _ViridianCityText_19191
|
|
db "@"
|
|
|
|
ViridianCityText6:
|
|
TX_ASM
|
|
CheckEvent EVENT_GOT_TM42
|
|
jr nz, .gotTm42
|
|
ld hl, ViridianCityText_191ca
|
|
call PrintText
|
|
lb bc, TM_42, 1
|
|
call GiveItem
|
|
jr nc, .BagFull
|
|
ld hl, ReceivedTM42Text
|
|
call PrintText
|
|
SetEvent EVENT_GOT_TM42
|
|
jr .done
|
|
.BagFull
|
|
ld hl, TM42NoRoomText
|
|
call PrintText
|
|
jr .done
|
|
.gotTm42
|
|
ld hl, TM42Explanation
|
|
call PrintText
|
|
.done
|
|
jp TextScriptEnd
|
|
|
|
ViridianCityText_191ca:
|
|
TX_FAR _ViridianCityText_191ca
|
|
db "@"
|
|
|
|
ReceivedTM42Text:
|
|
TX_FAR _ReceivedTM42Text
|
|
TX_SFX_ITEM_2
|
|
db "@"
|
|
|
|
TM42Explanation:
|
|
TX_FAR _TM42Explanation
|
|
db "@"
|
|
|
|
TM42NoRoomText:
|
|
TX_FAR _TM42NoRoomText
|
|
db "@"
|
|
|
|
ViridianCityText7:
|
|
TX_ASM
|
|
ld hl, ViridianCityText_1920a
|
|
call PrintText
|
|
ld c, 2
|
|
call DelayFrames
|
|
call YesNoChoice
|
|
ld a, [wCurrentMenuItem]
|
|
and a
|
|
jr z, .hurry
|
|
ld hl, ViridianCityText_1920f
|
|
call PrintText
|
|
ld a, $1
|
|
ld [wViridianCityCurScript], a
|
|
jr .done
|
|
.hurry
|
|
ld hl, ViridianCityText_19214
|
|
call PrintText
|
|
.done
|
|
jp TextScriptEnd
|
|
|
|
ViridianCityText_1920a:
|
|
TX_FAR _ViridianCityText_1920a
|
|
db "@"
|
|
|
|
ViridianCityText_1920f:
|
|
TX_FAR _ViridianCityText_1920f
|
|
db "@"
|
|
|
|
ViridianCityText_19214:
|
|
TX_FAR _ViridianCityText_19214
|
|
db "@"
|
|
|
|
ViridianCityText15:
|
|
TX_FAR _ViridianCityText_19219
|
|
db "@"
|
|
|
|
ViridianCityText8:
|
|
TX_FAR _ViridianCityText8
|
|
db "@"
|
|
|
|
ViridianCityText9:
|
|
TX_FAR _ViridianCityText9
|
|
db "@"
|
|
|
|
ViridianCityText10:
|
|
TX_FAR _ViridianCityText10
|
|
db "@"
|
|
|
|
ViridianCityText13:
|
|
TX_FAR _ViridianCityText13
|
|
db "@"
|
|
|
|
ViridianCityText14:
|
|
TX_FAR _ViridianCityText14
|
|
db "@"
|