summaryrefslogtreecommitdiff
path: root/scripts/VermilionCity.asm
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/VermilionCity.asm')
-rwxr-xr-xscripts/VermilionCity.asm257
1 files changed, 257 insertions, 0 deletions
diff --git a/scripts/VermilionCity.asm b/scripts/VermilionCity.asm
new file mode 100755
index 00000000..1ac81521
--- /dev/null
+++ b/scripts/VermilionCity.asm
@@ -0,0 +1,257 @@
+VermilionCity_Script:
+ call EnableAutoTextBoxDrawing
+ ld hl, wCurrentMapScriptFlags
+ bit 6, [hl]
+ res 6, [hl]
+ push hl
+ call nz, VermilionCityScript_197cb
+ pop hl
+ bit 5, [hl]
+ res 5, [hl]
+ call nz, VermilionCityScript_197c0
+ ld hl, VermilionCity_ScriptPointers
+ ld a, [wVermilionCityCurScript]
+ jp CallFunctionInTable
+
+VermilionCityScript_197c0:
+ call Random
+ ld a, [$ffd4]
+ and $e
+ ld [wFirstLockTrashCanIndex], a
+ ret
+
+VermilionCityScript_197cb:
+ CheckEventHL EVENT_SS_ANNE_LEFT
+ ret z
+ CheckEventReuseHL EVENT_WALKED_PAST_GUARD_AFTER_SS_ANNE_LEFT
+ SetEventReuseHL EVENT_WALKED_PAST_GUARD_AFTER_SS_ANNE_LEFT
+ ret nz
+ ld a, $2
+ ld [wVermilionCityCurScript], a
+ ret
+
+VermilionCity_ScriptPointers:
+ dw VermilionCityScript0
+ dw VermilionCityScript1
+ dw VermilionCityScript2
+ dw VermilionCityScript3
+ dw VermilionCityScript4
+
+VermilionCityScript0:
+ ld a, [wSpriteStateData1 + 9]
+ and a ; cp SPRITE_FACING_DOWN
+ ret nz
+ ld hl, CoordsData_19823
+ call ArePlayerCoordsInArray
+ ret nc
+ xor a
+ ld [hJoyHeld], a
+ ld [wcf0d], a
+ ld a, $3
+ ld [hSpriteIndexOrTextID], a
+ call DisplayTextID
+ CheckEvent EVENT_SS_ANNE_LEFT
+ jr nz, .asm_19810
+ ld b, S_S_TICKET
+ predef GetQuantityOfItemInBag
+ ld a, b
+ and a
+ ret nz
+.asm_19810
+ ld a, D_UP
+ ld [wSimulatedJoypadStatesEnd], a
+ ld a, $1
+ ld [wSimulatedJoypadStatesIndex], a
+ call StartSimulatingJoypadStates
+ ld a, $1
+ ld [wVermilionCityCurScript], a
+ ret
+
+CoordsData_19823:
+ db $1e,$12
+ db $ff
+
+VermilionCityScript4:
+ ld hl, CoordsData_19823
+ call ArePlayerCoordsInArray
+ ret c
+ ld a, $0
+ ld [wVermilionCityCurScript], a
+ ret
+
+VermilionCityScript2:
+ ld a, $ff
+ ld [wJoyIgnore], a
+ ld a, D_UP
+ ld [wSimulatedJoypadStatesEnd], a
+ ld [wSimulatedJoypadStatesEnd + 1], a
+ ld a, 2
+ ld [wSimulatedJoypadStatesIndex], a
+ call StartSimulatingJoypadStates
+ ld a, $3
+ ld [wVermilionCityCurScript], a
+ ret
+
+VermilionCityScript3:
+ ld a, [wSimulatedJoypadStatesIndex]
+ and a
+ ret nz
+ xor a
+ ld [wJoyIgnore], a
+ ld [hJoyHeld], a
+ ld a, $0
+ ld [wVermilionCityCurScript], a
+ ret
+
+VermilionCityScript1:
+ ld a, [wSimulatedJoypadStatesIndex]
+ and a
+ ret nz
+ ld c, 10
+ call DelayFrames
+ ld a, $0
+ ld [wVermilionCityCurScript], a
+ ret
+
+VermilionCity_TextPointers:
+ dw VermilionCityText1
+ dw VermilionCityText2
+ dw VermilionCityText3
+ dw VermilionCityText4
+ dw VermilionCityText5
+ dw VermilionCityText6
+ dw VermilionCityText7
+ dw VermilionCityText8
+ dw MartSignText
+ dw PokeCenterSignText
+ dw VermilionCityText11
+ dw VermilionCityText12
+ dw VermilionCityText13
+
+VermilionCityText1:
+ TX_FAR _VermilionCityText1
+ db "@"
+
+VermilionCityText2:
+ TX_ASM
+ CheckEvent EVENT_SS_ANNE_LEFT
+ jr nz, .asm_1989e
+ ld hl, VermilionCityText_198a7
+ call PrintText
+ jr .asm_198a4
+.asm_1989e
+ ld hl, VermilionCityText_198ac
+ call PrintText
+.asm_198a4
+ jp TextScriptEnd
+
+VermilionCityText_198a7:
+ TX_FAR _VermilionCityText_198a7
+ db "@"
+
+VermilionCityText_198ac:
+ TX_FAR _VermilionCityText_198ac
+ db "@"
+
+VermilionCityText3:
+ TX_ASM
+ CheckEvent EVENT_SS_ANNE_LEFT
+ jr nz, .asm_198f6
+ ld a, [wSpriteStateData1 + 9]
+ cp SPRITE_FACING_RIGHT
+ jr z, .asm_198c8
+ ld hl, VermilionCityCoords1
+ call ArePlayerCoordsInArray
+ jr nc, .asm_198d0
+.asm_198c8
+ ld hl, SSAnneWelcomeText4
+ call PrintText
+ jr .asm_198fc
+.asm_198d0
+ ld hl, SSAnneWelcomeText9
+ call PrintText
+ ld b, S_S_TICKET
+ predef GetQuantityOfItemInBag
+ ld a, b
+ and a
+ jr nz, .asm_198e9
+ ld hl, SSAnneNoTicketText
+ call PrintText
+ jr .asm_198fc
+.asm_198e9
+ ld hl, SSAnneFlashedTicketText
+ call PrintText
+ ld a, $4
+ ld [wVermilionCityCurScript], a
+ jr .asm_198fc
+.asm_198f6
+ ld hl, SSAnneNotHereText
+ call PrintText
+.asm_198fc
+ jp TextScriptEnd
+
+VermilionCityCoords1:
+ db $1d,$13
+ db $1f,$13
+ db $ff
+
+SSAnneWelcomeText4:
+ TX_FAR _SSAnneWelcomeText4
+ db "@"
+
+SSAnneWelcomeText9:
+ TX_FAR _SSAnneWelcomeText9
+ db "@"
+
+SSAnneFlashedTicketText:
+ TX_FAR _SSAnneFlashedTicketText
+ db "@"
+
+SSAnneNoTicketText:
+ TX_FAR _SSAnneNoTicketText
+ db "@"
+
+SSAnneNotHereText:
+ TX_FAR _SSAnneNotHereText
+ db "@"
+
+VermilionCityText4:
+ TX_FAR _VermilionCityText4
+ db "@"
+
+VermilionCityText5:
+ TX_FAR _VermilionCityText5
+ TX_ASM
+ ld a, MACHOP
+ call PlayCry
+ call WaitForSoundToFinish
+ ld hl, VermilionCityText14
+ ret
+
+VermilionCityText14:
+ TX_FAR _VermilionCityText14
+ db "@"
+
+VermilionCityText6:
+ TX_FAR _VermilionCityText6
+ db "@"
+
+VermilionCityText7:
+ TX_FAR _VermilionCityText7
+ db "@"
+
+VermilionCityText8:
+ TX_FAR _VermilionCityText8
+ db "@"
+
+VermilionCityText11:
+ TX_FAR _VermilionCityText11
+ db "@"
+
+VermilionCityText12:
+ TX_FAR _VermilionCityText12
+ db "@"
+
+VermilionCityText13:
+ TX_FAR _VermilionCityText13
+ db "@"