summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engine/bank3c.asm11
-rw-r--r--engine/bank3f.asm17
-rw-r--r--macros.asm2
-rwxr-xr-xscripts/viridiancity.asm111
-rwxr-xr-xscripts/viridiancity2.asm218
-rw-r--r--text/maps/viridian_city.asm2
6 files changed, 345 insertions, 16 deletions
diff --git a/engine/bank3c.asm b/engine/bank3c.asm
index 6345424f..e8121bb1 100644
--- a/engine/bank3c.asm
+++ b/engine/bank3c.asm
@@ -302,7 +302,7 @@ Func_f0a82: ; f0a82
ret nz
push hl
push bc
- callab Func_fcb4d
+ callab Func_fcb4d ; get Pikachu's position with respect to you?
pop bc
pop hl
ld a, b
@@ -317,7 +317,7 @@ Func_f0a82: ; f0a82
pop af
ld [wUpdateSpritesEnabled], a
pop hl
- call Func_159b
+ call Func_159b ; homecall Func_fd2a1 - pikachu movement script?
callab Func_fcba1
ret
@@ -342,9 +342,10 @@ NurseChanseyText:
TX_FAR _NurseChanseyText
db "@"
- dr $f0f26, $f1a01
-Func_f1a01:
- dr $f1a01, $f220e
+ dr $f0f26, $f18bb
+
+INCLUDE "scripts/viridiancity2.asm"
+ dr $f1a0f, $f220e
INCLUDE "data/mapHeaders/beach_house.asm"
INCLUDE "scripts/beach_house.asm"
diff --git a/engine/bank3f.asm b/engine/bank3f.asm
index a077a24b..8f01097e 100644
--- a/engine/bank3f.asm
+++ b/engine/bank3f.asm
@@ -1051,32 +1051,35 @@ Func_fcb52: ; fcb52 (3f:4b52)
ld a, [wYCoord]
add $4
ld e, a
- ld hl, $104
+ ld hl, wSpriteStateData2 - wSpriteStateData1 + 4
add hl, bc
ld a, [hl]
cp e
jr z, Func_fcb71
jr nc, .asm_fcb6e
- ld a, $4
+ ld a, SPRITE_FACING_UP
ret
+
.asm_fcb6e
- ld a, $0
+ ld a, SPRITE_FACING_DOWN
ret
Func_fcb71: ; fcb71 (3f:4b71)
- ld hl, $105
+ ld hl, wSpriteStateData2 - wSpriteStateData1 + 5
add hl, bc
ld a, [hl]
cp d
jr z, .asm_fcb81
jr nc, .asm_fcb7e
- ld a, $8
+ ld a, SPRITE_FACING_LEFT
ret
+
.asm_fcb7e
- ld a, $c
+ ld a, SPRITE_FACING_RIGHT
ret
+
.asm_fcb81
- ld a, $ff
+ ld a, $ff ; standing
ret
Func_fcb84: ; fcb84 (3f:4b84)
diff --git a/macros.asm b/macros.asm
index 7c2dd65e..ed59b848 100644
--- a/macros.asm
+++ b/macros.asm
@@ -312,6 +312,8 @@ TX_ASM: MACRO
ENDM
TX_SFX_ITEM EQUS "db $0b"
+TX_SFX_CONGRATS EQUS "db $10"
+TX_SFX_KEY_ITEM EQUS "db $11"
; Predef macro.
add_predef: MACRO
diff --git a/scripts/viridiancity.asm b/scripts/viridiancity.asm
index dd4931e9..c20285bc 100755
--- a/scripts/viridiancity.asm
+++ b/scripts/viridiancity.asm
@@ -51,7 +51,7 @@ ViridianCityScript_1905b:
call StartSimulatingJoypadStates
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
- ld a, $80
+ ld a, D_DOWN
ld [wSimulatedJoypadStatesEnd], a
xor a
ld [wSpriteStateData1 + 9], a
@@ -158,7 +158,7 @@ ViridianCityScript_1914d:
call StartSimulatingJoypadStates
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
- ld a, $80
+ ld a, D_DOWN
ld [wSimulatedJoypadStatesEnd], a
xor a
ld [wSpriteStateData1 + 9], a
@@ -256,4 +256,109 @@ ViridianCityScript10: ; 191f9
ret
ViridianCityTextPointers:
- dr $19213,$192f5
+ 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
+ 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 [W_VIRIDIANCITYCURSCRIPT], 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
diff --git a/scripts/viridiancity2.asm b/scripts/viridiancity2.asm
new file mode 100755
index 00000000..80ae3924
--- /dev/null
+++ b/scripts/viridiancity2.asm
@@ -0,0 +1,218 @@
+Func_f18bb:
+ ld hl, ViridianCityText_f18c2
+ call PrintText
+ ret
+
+ViridianCityText_f18c2:
+ TX_FAR _ViridianCityText1
+ db "@"
+
+Func_f18c7:
+ ld hl, ViridianCityText_f18e4
+ ld a, [wObtainedBadges]
+ cp $7f ; all but EARTHBADGE
+ jr z, .asm_f18db
+ CheckEvent EVENT_BEAT_VIRIDIAN_GYM_GIOVANNI
+ jr nz, .asm_f18db
+ ld hl, ViridianCityText_f18df
+.asm_f18db
+ call PrintText
+ ret
+
+ViridianCityText_f18df:
+ TX_FAR _ViridianCityText_19122
+ db "@"
+
+ViridianCityText_f18e4:
+ TX_FAR _ViridianCityText_19127
+ db "@"
+
+Func_f18e9:
+ ld hl, ViridianCityText_f1902
+ call PrintText
+ call YesNoChoice
+ ld a, [wCurrentMenuItem]
+ and a
+ ld hl, ViridianCityText_f1907
+ jr nz, .asm_f18fe
+ ld hl, ViridianCityText_f190c
+.asm_f18fe
+ call PrintText
+ ret
+
+ViridianCityText_f1902:
+ TX_FAR _ViridianCityText_1914d
+ db "@"
+
+ViridianCityText_f1907:
+ TX_FAR _ViridianCityText_19152
+ db "@"
+
+ViridianCityText_f190c:
+ TX_FAR _ViridianCityText_19157
+ db "@"
+
+Func_f1911:
+ ld hl, ViridianCityText_f1927
+ CheckEvent EVENT_GOT_POKEDEX
+ jr nz, .asm_f191e
+ ld hl, ViridianCityText_f1922
+.asm_f191e
+ call PrintText
+ ret
+
+ViridianCityText_f1922:
+ TX_FAR _ViridianCityText_19175
+ db "@"
+
+ViridianCityText_f1927:
+ TX_FAR _ViridianCityText_1917a
+ db "@"
+
+Func_f192c:
+ ld hl, ViridianCityText_f1945
+ call PrintText
+ call StartSimulatingJoypadStates
+ ld a, $1
+ ld [wSimulatedJoypadStatesIndex], a
+ ld a, D_DOWN
+ ld [wSimulatedJoypadStatesEnd], a
+ ld a, $5
+ ld [W_VIRIDIANCITYCURSCRIPT], a
+ ret
+
+ViridianCityText_f1945:
+ TX_FAR _ViridianCityText_19191
+ db "@"
+
+Func_f194a:
+ CheckEvent EVENT_GOT_TM42
+ jr nz, .asm_f1972
+ ld hl, ViridianCityText_f1979
+ call PrintText
+ lb bc, TM_42, 1
+ call GiveItem
+ jr nc, .asm_f196b
+ ld hl, ViridianCityText_f197e
+ call PrintText
+ SetEvent EVENT_GOT_TM42
+ ret
+
+.asm_f196b
+ ld hl, ViridianCityText_f1989
+ call PrintText
+ ret
+
+.asm_f1972
+ ld hl, ViridianCityText_f1984
+ call PrintText
+ ret
+
+ViridianCityText_f1979:
+ TX_FAR _ViridianCityText_191ca
+ db "@"
+
+ViridianCityText_f197e:
+ TX_FAR _ReceivedTM42Text
+ TX_SFX_CONGRATS
+ db "@"
+
+ViridianCityText_f1984:
+ TX_FAR _TM42Explanation
+ db "@"
+
+ViridianCityText_f1989:
+ TX_FAR _TM42NoRoomText
+ db "@"
+
+Func_f198e:
+ ld hl, ViridianCityText_f19b6
+ call PrintText
+ ld c, 2
+ call DelayFrames
+ call YesNoChoice
+ ld a, [wCurrentMenuItem]
+ and a
+ jr nz, .asm_f19af
+ ld hl, ViridianCityText_f19bb
+ call PrintText
+ ld a, $3
+ ld [W_VIRIDIANCITYCURSCRIPT], a
+ jr .asm_f19b5
+
+.asm_f19af
+ ld hl, ViridianCityText_f19c0
+ call PrintText
+.asm_f19b5
+ ret
+
+ViridianCityText_f19b6:
+ TX_FAR _OldManAgainText1
+ db "@"
+
+ViridianCityText_f19bb:
+ TX_FAR _OldManAgainText2
+ db "@"
+
+ViridianCityText_f19c0:
+ TX_FAR _OldManAgainText3
+ db "@"
+
+Func_f19c5:
+ ld hl, ViridianCityText_f19cc
+ call PrintText
+ ret
+
+ViridianCityText_f19cc:
+ TX_FAR _ViridianCityText8
+ db "@"
+
+Func_f19d1:
+ ld hl, ViridianCityText_f19d8
+ call PrintText
+ ret
+
+ViridianCityText_f19d8:
+ TX_FAR _ViridianCityText9
+ db "@"
+
+Func_f19dd:
+ ld hl, ViridianCityText_f19e4
+ call PrintText
+ ret
+
+ViridianCityText_f19e4:
+ TX_FAR _ViridianCityText10
+ db "@"
+
+Func_f19e9:
+ ld hl, ViridianCityText_f19f0
+ call PrintText
+ ret
+
+ViridianCityText_f19f0:
+ TX_FAR _ViridianCityText13
+ db "@"
+
+Func_f19f5:
+ ld hl, ViridianCityText_f19fc
+ call PrintText
+ ret
+
+ViridianCityText_f19fc:
+ TX_FAR _ViridianCityText14
+ db "@"
+
+
+Func_f1a01:
+ ld hl, Data_f1a0a
+ ld b, SPRITE_FACING_RIGHT
+ call Func_f0a82
+ ret
+
+Data_f1a0a:
+ db $00
+ db $1d
+ db $1f
+ db $38
+ db $3f
diff --git a/text/maps/viridian_city.asm b/text/maps/viridian_city.asm
index 4459acb8..a9a2184e 100644
--- a/text/maps/viridian_city.asm
+++ b/text/maps/viridian_city.asm
@@ -1,4 +1,4 @@
-_ViridianCityText_19219::
+_ViridianCityText_19219:: ; 2d:4478
text "First, you need"
line "to weaken the"
cont "target #MON."