summaryrefslogtreecommitdiff
path: root/scripts/viridiancity.asm
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/viridiancity.asm')
-rwxr-xr-xscripts/viridiancity.asm470
1 files changed, 254 insertions, 216 deletions
diff --git a/scripts/viridiancity.asm b/scripts/viridiancity.asm
index ece2c4a1..c20285bc 100755
--- a/scripts/viridiancity.asm
+++ b/scripts/viridiancity.asm
@@ -1,119 +1,160 @@
-ViridianCityScript: ; 18ff1 (6:4ff1)
+ViridianCityScript: ; 1902a (6:502a)
call EnableAutoTextBoxDrawing
ld hl, ViridianCityScriptPointers
ld a, [W_VIRIDIANCITYCURSCRIPT]
- jp CallFunctionInTable
+ call JumpTable
+ ret
-ViridianCityScriptPointers: ; 18ffd (6:4ffd)
- dw ViridianCityScript0
- dw ViridianCityScript1
- dw ViridianCityScript2
- dw ViridianCityScript3
+ViridianCityScriptPointers: ; 19037 (6:5037)
+ dw ViridianCityScript0 ; 1904d
+ dw ViridianCityScript1 ; 19054
+ dw ViridianCityScript2 ; 19057
+ dw ViridianCityScript3 ; 190ca
+ dw ViridianCityScript4 ; 19104
+ dw ViridianCityScript5 ; 1913f
+ dw ViridianCityScript6 ; 1909d
+ dw ViridianCityScript7 ; 19191
+ dw ViridianCityScript8 ; 191a7
+ dw ViridianCityScript9 ; 191cf
+ dw ViridianCityScript10 ; 191f9
+
+ViridianCityScript0:
+ call ViridianCityScript_1905b
+ call ViridianCityScript_190ab
+ ret
-ViridianCityScript0: ; 19005 (6:5005)
- call ViridianCityScript_1900b
- jp ViridianCityScript_1903d
+ViridianCityScript1: ; 19054
+ call ViridianCityScript_19162
+ViridianCityScript2: ; 19057
+ call ViridianCityScript_1905b
+ ret
-ViridianCityScript_1900b: ; 1900b (6:500b)
+ViridianCityScript_1905b:
CheckEvent EVENT_VIRIDIAN_GYM_OPEN
ret nz
ld a, [wObtainedBadges]
- cp %01111111
- jr nz, .asm_1901e
+ cp $7f ; all but Earthbadge
+ jr nz, .asm_1906e
SetEvent EVENT_VIRIDIAN_GYM_OPEN
ret
-.asm_1901e
+
+.asm_1906e
ld a, [wYCoord]
- cp $8
+ cp 8
ret nz
ld a, [wXCoord]
- cp $20
+ cp 32
ret nz
- ld a, $e
+ 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 [wSpriteStateData1 + 9], a
+ ld [wJoyIgnore], a
ld [hJoyHeld], a
- call ViridianCityScript_190cf
- ld a, $3
+ ld a, $6
ld [W_VIRIDIANCITYCURSCRIPT], a
ret
-ViridianCityScript_1903d: ; 1903d (6:503d)
- CheckEvent EVENT_GOT_POKEDEX
+ViridianCityScript6: ; 1909d
+ ld a, [wSimulatedJoypadStatesIndex]
+ and a
ret nz
+ call Delay3
+ ld a, $2
+ ld [W_VIRIDIANCITYCURSCRIPT], a
+ ret
+
+ViridianCityScript_190ab:
ld a, [wYCoord]
- cp $9
+ cp 9
ret nz
ld a, [wXCoord]
- cp $13
+ cp 19
ret nz
ld a, $5
ld [hSpriteIndexOrTextID], a
call DisplayTextID
xor a
ld [hJoyHeld], a
- call ViridianCityScript_190cf
- ld a, $3
+ call ViridianCityScript_1914d
+ ld a, $5
ld [W_VIRIDIANCITYCURSCRIPT], a
ret
-ViridianCityScript1: ; 19062 (6:5062)
- ld a, [wSpriteStateData1 + $34]
- ld [$ffeb], a
- ld a, [wSpriteStateData1 + $36]
- ld [$ffec], a
- ld a, [wSpriteStateData2 + $34]
- ld [$ffed], a
- ld a, [wSpriteStateData2 + $35]
- ld [$ffee], a
+ViridianCityScript3: ; 190ca
+ call ViridianCityScript_190ef
+ call ViridianCityScript_190db
+ ResetEvent EVENT_02F
+ ld a, $4
+ ld [W_VIRIDIANCITYCURSCRIPT], a
+ ret
+
+ViridianCityScript_190db:
xor a
ld [wListScrollOffset], a
-
- ; set up battle for Old Man
- ld a, $1
+ ld a, OLD_MAN_BATTLE
ld [wBattleType], a
ld a, 5
ld [wCurEnemyLVL], a
- ld a, WEEDLE
+ ld a, RATTATA
ld [wCurOpponent], a
- ld a, $2
- ld [W_VIRIDIANCITYCURSCRIPT], a
ret
-ViridianCityScript2: ; 1908f (6:508f)
- ld a, [$ffeb]
- ld [wSpriteStateData1 + $34], a
- ld a, [$ffec]
- ld [wSpriteStateData1 + $36], a
- ld a, [$ffed]
- ld [wSpriteStateData2 + $34], a
- ld a, [$ffee]
- ld [wSpriteStateData2 + $35], a
+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: ; 19104
+ call ViridianCityScript_1912a
call UpdateSprites
call Delay3
+ SetEvent EVENT_02E
xor a
ld [wJoyIgnore], a
- ld a, $f
+ ld a, $10
ld [hSpriteIndexOrTextID], a
call DisplayTextID
xor a
ld [wBattleType], a
ld [wJoyIgnore], a
- ld a, $0
+ ld a, $2
ld [W_VIRIDIANCITYCURSCRIPT], a
ret
-ViridianCityScript3: ; 190c1 (6:50c1)
+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: ; 1913f
ld a, [wSimulatedJoypadStatesIndex]
and a
ret nz
call Delay3
- ld a, 0
+ ld a, $0
ld [W_VIRIDIANCITYCURSCRIPT], a
ret
-ViridianCityScript_190cf: ; 190cf (6:50cf)
+ViridianCityScript_1914d:
call StartSimulatingJoypadStates
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
@@ -124,203 +165,200 @@ ViridianCityScript_190cf: ; 190cf (6:50cf)
ld [wJoyIgnore], a
ret
-ViridianCityTextPointers: ; 190e4 (6:50e4)
- 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: ; 19102 (6:5102)
- TX_FAR _ViridianCityText1
- db "@"
+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 [wSpriteStateData1 + 9], 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
-ViridianCityText2: ; 19107 (6:5107)
- TX_ASM
- ld a, [wObtainedBadges]
- cp %01111111
- ld hl, ViridianCityText_19127
- jr z, .asm_ae9fe
- CheckEvent EVENT_BEAT_VIRIDIAN_GYM_GIOVANNI
- jr nz, .asm_ae9fe
- ld hl, ViridianCityText_19122
-.asm_ae9fe
- call PrintText
- jp TextScriptEnd
+ViridianCityScript7: ; 19191
+ 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 [W_VIRIDIANCITYCURSCRIPT], a
+ ret
-ViridianCityText_19122: ; 19122 (6:5122)
- TX_FAR _ViridianCityText_19122
- db "@"
+ViridianCityScript8: ; 191a7
+ 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 [W_VIRIDIANCITYCURSCRIPT], a
+ ret
-ViridianCityText_19127: ; 19127 (6:5127)
- TX_FAR _ViridianCityText_19127
- db "@"
+ViridianCityScript9: ; 191cf
+ 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 [W_VIRIDIANCITYCURSCRIPT], 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: ; 191f9
+ 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 [W_VIRIDIANCITYCURSCRIPT], a
+ ret
-ViridianCityText3: ; 1912c (6:512c)
+ViridianCityTextPointers:
+ dw ViridianCityText_0 ; 19233
+ dw ViridianCityText_1 ; 1923f
+ dw ViridianCityText_2 ; 1924b
+ dw ViridianCityText_3 ; 19257
+ dw ViridianCityText_4 ; 19263
+ dw ViridianCityText_5 ; 1926f
+ dw ViridianCityText_6 ; 1927b
+ dw ViridianCityText_7 ; 1928c
+ dw ViridianCityText_8 ; 192b9
+ dw ViridianCityText_9 ; 192c5
+ dw ViridianCityText_10 ; 192d1
+ dw MartSignText ; 23e5
+ dw PokeCenterSignText ; 23ea
+ dw ViridianCityText_11 ; 192dd
+ dw ViridianCityText_12 ; 192e9
+ dw ViridianCityText_13 ; 19287
+
+ViridianCityText_0:
TX_ASM
- ld hl, ViridianCityText_1914d
- call PrintText
- call YesNoChoice
- ld a, [wCurrentMenuItem]
- and a
- jr nz, .asm_6dfea
- ld hl, ViridianCityText_19157
- call PrintText
- jr .asm_d611f
-.asm_6dfea
- ld hl, ViridianCityText_19152
- call PrintText
-.asm_d611f
+ callba Func_f18bb
jp TextScriptEnd
-ViridianCityText_1914d: ; 1914d (6:514d)
- TX_FAR _ViridianCityText_1914d
- db "@"
-
-ViridianCityText_19152: ; 19152 (6:5152)
- TX_FAR _ViridianCityText_19152
- db "@"
-
-ViridianCityText_19157: ; 19157 (6:5157)
- TX_FAR _ViridianCityText_19157
- db "@"
-
-ViridianCityText4: ; 1915c (6:515c)
+ViridianCityText_1:
TX_ASM
- CheckEvent EVENT_GOT_POKEDEX
- jr nz, .asm_83894
- ld hl, ViridianCityText_19175
- call PrintText
- jr .asm_700a6
-.asm_83894
- ld hl, ViridianCityText_1917a
- call PrintText
-.asm_700a6
+ callba Func_f18c7
jp TextScriptEnd
-ViridianCityText_19175: ; 19175 (6:5175)
- TX_FAR _ViridianCityText_19175
- db "@"
-
-ViridianCityText_1917a: ; 1917a (6:517a)
- TX_FAR _ViridianCityText_1917a
- db "@"
-
-ViridianCityText5: ; 1917f (6:517f)
+ViridianCityText_2:
TX_ASM
- ld hl, ViridianCityText_19191
- call PrintText
- call ViridianCityScript_190cf
- ld a, $3
- ld [W_VIRIDIANCITYCURSCRIPT], a
+ callba Func_f18e9
jp TextScriptEnd
-ViridianCityText_19191: ; 19191 (6:5191)
- TX_FAR _ViridianCityText_19191
- db "@"
-
-ViridianCityText6: ; 19196 (6:5196)
+ViridianCityText_3:
TX_ASM
- CheckEvent EVENT_GOT_TM42
- jr nz, .asm_4e5a0
- 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 .asm_3c73c
-.BagFull
- ld hl, TM42NoRoomText
- call PrintText
- jr .asm_3c73c
-.asm_4e5a0
- ld hl, TM42Explanation
- call PrintText
-.asm_3c73c
+ callba Func_f1911
jp TextScriptEnd
-ViridianCityText_191ca: ; 191ca (6:51ca)
- TX_FAR _ViridianCityText_191ca
- db "@"
+ViridianCityText_4:
+ TX_ASM
+ callba Func_f192c
+ jp TextScriptEnd
-ReceivedTM42Text: ; 191cf (6:51cf)
- TX_FAR _ReceivedTM42Text
- db $10, "@"
+ViridianCityText_5:
+ TX_ASM
+ callba Func_f194a
+ jp TextScriptEnd
-TM42Explanation: ; 191d5 (6:51d5)
- TX_FAR _TM42Explanation
- db "@"
+ViridianCityText_6:
+ TX_ASM
+ callba Func_f198e
+ jp TextScriptEnd
-TM42NoRoomText: ; 191da (6:51da)
- TX_FAR _TM42NoRoomText
+ViridianCityText_13:
+ TX_FAR _ViridianCityText_19219
db "@"
-ViridianCityText7: ; 191df (6:51df)
+ViridianCityText_7:
TX_ASM
- ld hl, ViridianCityText_1920a
+ CheckEvent EVENT_02D
+ jr nz, .asm_192a6
+ ld hl, ViridianCityText_192af
call PrintText
ld c, 2
call DelayFrames
- call YesNoChoice
- ld a, [wCurrentMenuItem]
- and a
- jr z, .asm_42f68
- ld hl, ViridianCityText_1920f
- call PrintText
- ld a, $1
+ ld a, $7
ld [W_VIRIDIANCITYCURSCRIPT], a
- jr .asm_2413a
-.asm_42f68
- ld hl, ViridianCityText_19214
+ jr .asm_192ac
+
+.asm_192a6
+ ld hl, ViridianCityText_192b4
call PrintText
-.asm_2413a
+.asm_192ac
jp TextScriptEnd
-ViridianCityText_1920a: ; 1920a (6:520a)
+ViridianCityText_192af:
TX_FAR _ViridianCityText_1920a
db "@"
-ViridianCityText_1920f: ; 1920f (6:520f)
- TX_FAR _ViridianCityText_1920f
- db "@"
-
-ViridianCityText_19214: ; 19214 (6:5214)
- TX_FAR _ViridianCityText_19214
+ViridianCityText_192b4:
+ TX_FAR _OldManTextAfterBattle
db "@"
-ViridianCityText15: ; 19219 (6:5219)
- TX_FAR _ViridianCityText_19219
- db "@"
-
-ViridianCityText8: ; 1921e (6:521e)
- TX_FAR _ViridianCityText8
- db "@"
+ViridianCityText_8:
+ TX_ASM
+ callba Func_f19c5
+ jp TextScriptEnd
-ViridianCityText9: ; 19223 (6:5223)
- TX_FAR _ViridianCityText9
- db "@"
+ViridianCityText_9:
+ TX_ASM
+ callba Func_f19d1
+ jp TextScriptEnd
-ViridianCityText10: ; 19228 (6:5228)
- TX_FAR _ViridianCityText10
- db "@"
+ViridianCityText_10:
+ TX_ASM
+ callba Func_f19dd
+ jp TextScriptEnd
-ViridianCityText13: ; 1922d (6:522d)
- TX_FAR _ViridianCityText13
- db "@"
+ViridianCityText_11:
+ TX_ASM
+ callba Func_f19e9
+ jp TextScriptEnd
-ViridianCityText14: ; 19232 (6:5232)
- TX_FAR _ViridianCityText14
- db "@"
+ViridianCityText_12:
+ TX_ASM
+ callba Func_f19f5
+ jp TextScriptEnd