pokered/scripts/VermilionCity.asm

258 lines
4.6 KiB
NASM
Raw Normal View History

VermilionCity_Script:
2014-05-18 18:19:10 +00:00
call EnableAutoTextBoxDrawing
2016-01-03 19:17:10 +00:00
ld hl, wCurrentMapScriptFlags
2014-05-18 18:19:10 +00:00
bit 6, [hl]
res 6, [hl]
push hl
2020-05-03 18:25:01 +00:00
call nz, .initCityScript
2014-05-18 18:19:10 +00:00
pop hl
bit 5, [hl]
res 5, [hl]
call nz, .setFirstLockTrashCanIndex
ld hl, VermilionCity_ScriptPointers
2015-08-31 02:38:41 +00:00
ld a, [wVermilionCityCurScript]
2014-05-18 18:19:10 +00:00
jp CallFunctionInTable
.setFirstLockTrashCanIndex
call Random
ld a, [hRandomSub]
2014-05-18 18:19:10 +00:00
and $e
2015-07-25 03:27:59 +00:00
ld [wFirstLockTrashCanIndex], a
2014-05-18 18:19:10 +00:00
ret
2020-05-03 18:25:01 +00:00
.initCityScript
2015-07-21 01:32:02 +00:00
CheckEventHL EVENT_SS_ANNE_LEFT
2014-05-18 18:19:10 +00:00
ret z
2015-07-21 17:36:03 +00:00
CheckEventReuseHL EVENT_WALKED_PAST_GUARD_AFTER_SS_ANNE_LEFT
SetEventReuseHL EVENT_WALKED_PAST_GUARD_AFTER_SS_ANNE_LEFT
2014-05-18 18:19:10 +00:00
ret nz
ld a, $2
2015-08-31 02:38:41 +00:00
ld [wVermilionCityCurScript], a
2014-05-18 18:19:10 +00:00
ret
VermilionCity_ScriptPointers:
2014-05-18 18:19:10 +00:00
dw VermilionCityScript0
dw VermilionCityScript1
dw VermilionCityScript2
dw VermilionCityScript3
dw VermilionCityScript4
2016-06-12 00:24:04 +00:00
VermilionCityScript0:
ld a, [wSpriteStateData1 + 9]
and a ; cp SPRITE_FACING_DOWN
2014-05-18 18:19:10 +00:00
ret nz
2020-05-03 18:25:01 +00:00
ld hl, SSAnneTicketCheckCoords
2014-05-18 18:19:10 +00:00
call ArePlayerCoordsInArray
ret nc
xor a
2014-05-25 17:51:53 +00:00
ld [hJoyHeld], a
ld [wcf0d], a
2014-05-18 18:19:10 +00:00
ld a, $3
2015-07-18 15:17:29 +00:00
ld [hSpriteIndexOrTextID], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
2015-07-21 01:32:02 +00:00
CheckEvent EVENT_SS_ANNE_LEFT
2020-05-03 18:25:01 +00:00
jr nz, .shipHasDeparted
2015-12-15 04:09:30 +00:00
ld b, S_S_TICKET
2015-08-13 05:14:31 +00:00
predef GetQuantityOfItemInBag
2014-05-18 18:19:10 +00:00
ld a, b
and a
ret nz
2020-05-03 18:25:01 +00:00
.shipHasDeparted
ld a, D_UP
ld [wSimulatedJoypadStatesEnd], a
2014-05-18 18:19:10 +00:00
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
call StartSimulatingJoypadStates
2014-05-18 18:19:10 +00:00
ld a, $1
2015-08-31 02:38:41 +00:00
ld [wVermilionCityCurScript], a
2014-05-18 18:19:10 +00:00
ret
2020-05-03 18:25:01 +00:00
SSAnneTicketCheckCoords:
db $1e,$12 ; y, x
2014-05-18 18:19:10 +00:00
db $ff
2016-06-12 00:24:04 +00:00
VermilionCityScript4:
2020-05-03 18:25:01 +00:00
ld hl, SSAnneTicketCheckCoords
2014-05-18 18:19:10 +00:00
call ArePlayerCoordsInArray
ret c
ld a, $0
2015-08-31 02:38:41 +00:00
ld [wVermilionCityCurScript], a
2014-05-18 18:19:10 +00:00
ret
2016-06-12 00:24:04 +00:00
VermilionCityScript2:
2014-05-18 18:19:10 +00:00
ld a, $ff
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
ld a, D_UP
ld [wSimulatedJoypadStatesEnd], a
2015-07-26 02:26:54 +00:00
ld [wSimulatedJoypadStatesEnd + 1], a
ld a, 2
ld [wSimulatedJoypadStatesIndex], a
call StartSimulatingJoypadStates
2014-05-18 18:19:10 +00:00
ld a, $3
2015-08-31 02:38:41 +00:00
ld [wVermilionCityCurScript], a
2014-05-18 18:19:10 +00:00
ret
2016-06-12 00:24:04 +00:00
VermilionCityScript3:
ld a, [wSimulatedJoypadStatesIndex]
2014-05-18 18:19:10 +00:00
and a
ret nz
xor a
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
ld [hJoyHeld], a
2014-05-18 18:19:10 +00:00
ld a, $0
2015-08-31 02:38:41 +00:00
ld [wVermilionCityCurScript], a
2014-05-18 18:19:10 +00:00
ret
2016-06-12 00:24:04 +00:00
VermilionCityScript1:
ld a, [wSimulatedJoypadStatesIndex]
2014-05-18 18:19:10 +00:00
and a
ret nz
ld c, 10
2014-05-18 18:19:10 +00:00
call DelayFrames
ld a, $0
2015-08-31 02:38:41 +00:00
ld [wVermilionCityCurScript], a
2014-05-18 18:19:10 +00:00
ret
VermilionCity_TextPointers:
2014-05-18 18:19:10 +00:00
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
2016-06-12 00:24:04 +00:00
VermilionCityText1:
2014-05-18 18:19:10 +00:00
TX_FAR _VermilionCityText1
db "@"
2016-06-12 00:24:04 +00:00
VermilionCityText2:
2015-07-03 19:58:50 +00:00
TX_ASM
2015-07-21 01:32:02 +00:00
CheckEvent EVENT_SS_ANNE_LEFT
2020-05-03 18:25:01 +00:00
jr nz, .shipHasDeparted
2020-05-03 18:41:11 +00:00
ld hl, VermilionCityTextDidYouSee
2014-05-18 18:19:10 +00:00
call PrintText
2020-05-03 18:25:01 +00:00
jr .end
.shipHasDeparted
2020-05-03 18:41:11 +00:00
ld hl, VermilionCityTextSSAnneDeparted
2014-05-18 18:19:10 +00:00
call PrintText
2020-05-03 18:25:01 +00:00
.end
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
2020-05-03 18:41:11 +00:00
VermilionCityTextDidYouSee:
TX_FAR _VermilionCityTextDidYouSee
2014-05-18 18:19:10 +00:00
db "@"
2020-05-03 18:41:11 +00:00
VermilionCityTextSSAnneDeparted:
TX_FAR _VermilionCityTextSSAnneDeparted
2014-05-18 18:19:10 +00:00
db "@"
2016-06-12 00:24:04 +00:00
VermilionCityText3:
2015-07-03 19:58:50 +00:00
TX_ASM
2015-07-21 01:32:02 +00:00
CheckEvent EVENT_SS_ANNE_LEFT
2020-05-03 18:25:01 +00:00
jr nz, .shipHasDeparted
ld a, [wSpriteStateData1 + 9]
cp SPRITE_FACING_RIGHT
2020-05-03 18:25:01 +00:00
jr z, .greetPlayer
ld hl, .inFrontOfOrBehindGuardCoords
2014-05-18 18:19:10 +00:00
call ArePlayerCoordsInArray
2020-05-03 18:25:01 +00:00
jr nc, .greetPlayerAndCheckTicket
.greetPlayer
2014-05-18 18:19:10 +00:00
ld hl, SSAnneWelcomeText4
call PrintText
2020-05-03 18:25:01 +00:00
jr .end
.greetPlayerAndCheckTicket
2014-05-18 18:19:10 +00:00
ld hl, SSAnneWelcomeText9
call PrintText
2015-12-15 04:09:30 +00:00
ld b, S_S_TICKET
2015-08-13 05:14:31 +00:00
predef GetQuantityOfItemInBag
2014-05-18 18:19:10 +00:00
ld a, b
and a
2020-05-03 18:25:01 +00:00
jr nz, .playerHasTicket
2014-05-18 18:19:10 +00:00
ld hl, SSAnneNoTicketText
call PrintText
2020-05-03 18:25:01 +00:00
jr .end
.playerHasTicket
2014-05-18 18:19:10 +00:00
ld hl, SSAnneFlashedTicketText
call PrintText
ld a, $4
2015-08-31 02:38:41 +00:00
ld [wVermilionCityCurScript], a
2020-05-03 18:25:01 +00:00
jr .end
.shipHasDeparted
2014-05-18 18:19:10 +00:00
ld hl, SSAnneNotHereText
call PrintText
2020-05-03 18:25:01 +00:00
.end
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
2020-05-03 18:25:01 +00:00
.inFrontOfOrBehindGuardCoords
db $1d,$13 ; y, x of tile in front of guard
db $1f,$13 ; y, x of tile behind guard
2014-05-18 18:19:10 +00:00
db $ff
2016-06-12 00:24:04 +00:00
SSAnneWelcomeText4:
2014-05-18 18:19:10 +00:00
TX_FAR _SSAnneWelcomeText4
db "@"
2016-06-12 00:24:04 +00:00
SSAnneWelcomeText9:
2014-05-18 18:19:10 +00:00
TX_FAR _SSAnneWelcomeText9
db "@"
2016-06-12 00:24:04 +00:00
SSAnneFlashedTicketText:
2014-05-18 18:19:10 +00:00
TX_FAR _SSAnneFlashedTicketText
db "@"
2016-06-12 00:24:04 +00:00
SSAnneNoTicketText:
2014-05-18 18:19:10 +00:00
TX_FAR _SSAnneNoTicketText
db "@"
2016-06-12 00:24:04 +00:00
SSAnneNotHereText:
2014-05-18 18:19:10 +00:00
TX_FAR _SSAnneNotHereText
db "@"
2016-06-12 00:24:04 +00:00
VermilionCityText4:
2014-05-18 18:19:10 +00:00
TX_FAR _VermilionCityText4
db "@"
2016-06-12 00:24:04 +00:00
VermilionCityText5:
2014-05-18 18:19:10 +00:00
TX_FAR _VermilionCityText5
2015-07-03 19:58:50 +00:00
TX_ASM
2014-05-18 18:19:10 +00:00
ld a, MACHOP
call PlayCry
call WaitForSoundToFinish
ld hl, VermilionCityText14
2014-05-18 18:19:10 +00:00
ret
2016-06-12 00:24:04 +00:00
VermilionCityText14:
2014-05-18 18:19:10 +00:00
TX_FAR _VermilionCityText14
db "@"
2016-06-12 00:24:04 +00:00
VermilionCityText6:
2014-05-18 18:19:10 +00:00
TX_FAR _VermilionCityText6
db "@"
2016-06-12 00:24:04 +00:00
VermilionCityText7:
2014-05-18 18:19:10 +00:00
TX_FAR _VermilionCityText7
db "@"
2016-06-12 00:24:04 +00:00
VermilionCityText8:
2014-05-18 18:19:10 +00:00
TX_FAR _VermilionCityText8
db "@"
2016-06-12 00:24:04 +00:00
VermilionCityText11:
2014-05-18 18:19:10 +00:00
TX_FAR _VermilionCityText11
db "@"
2016-06-12 00:24:04 +00:00
VermilionCityText12:
2014-05-18 18:19:10 +00:00
TX_FAR _VermilionCityText12
db "@"
2016-06-12 00:24:04 +00:00
VermilionCityText13:
2014-05-18 18:19:10 +00:00
TX_FAR _VermilionCityText13
db "@"