pokered/scripts/VermilionCity.asm

260 lines
6.5 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
bit BIT_CUR_MAP_LOADED_2, [hl]
res BIT_CUR_MAP_LOADED_2, [hl]
2014-05-18 18:19:10 +00:00
push hl
call nz, VermilionCityLeftSSAnneCallbackScript
2014-05-18 18:19:10 +00:00
pop hl
bit BIT_CUR_MAP_LOADED_1, [hl]
res BIT_CUR_MAP_LOADED_1, [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
ldh 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
VermilionCityLeftSSAnneCallbackScript:
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, SCRIPT_VERMILIONCITY_PLAYER_EXIT_SHIP
2015-08-31 02:38:41 +00:00
ld [wVermilionCityCurScript], a
2014-05-18 18:19:10 +00:00
ret
VermilionCity_ScriptPointers:
def_script_pointers
dw_const VermilionCityDefaultScript, SCRIPT_VERMILIONCITY_DEFAULT
dw_const VermilionCityPlayerMovingUp1Script, SCRIPT_VERMILIONCITY_PLAYER_MOVING_UP1
dw_const VermilionCityPlayerExitShipScript, SCRIPT_VERMILIONCITY_PLAYER_EXIT_SHIP
dw_const VermilionCityPlayerMovingUp2Script, SCRIPT_VERMILIONCITY_PLAYER_MOVING_UP2
dw_const VermilionCityPlayerAllowedToPassScript, SCRIPT_VERMILIONCITY_PLAYER_ALLOWED_TO_PASS
2014-05-18 18:19:10 +00:00
VermilionCityDefaultScript:
ld a, [wSpritePlayerStateData1FacingDirection]
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
ldh [hJoyHeld], a
ld [wSavedCoordIndex], a ; unnecessary
ld a, TEXT_VERMILIONCITY_SAILOR1
ldh [hTextID], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
2015-07-21 01:32:02 +00:00
CheckEvent EVENT_SS_ANNE_LEFT
jr nz, .ship_departed
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
.ship_departed
ld a, D_UP
ld [wSimulatedJoypadStatesEnd], a
2014-05-18 18:19:10 +00:00
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
call StartSimulatingJoypadStates
ld a, SCRIPT_VERMILIONCITY_PLAYER_MOVING_UP1
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:
dbmapcoord 18, 30
db -1 ; end
2014-05-18 18:19:10 +00:00
VermilionCityPlayerAllowedToPassScript:
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, SCRIPT_VERMILIONCITY_DEFAULT
2015-08-31 02:38:41 +00:00
ld [wVermilionCityCurScript], a
2014-05-18 18:19:10 +00:00
ret
VermilionCityPlayerExitShipScript:
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
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
ld a, SCRIPT_VERMILIONCITY_PLAYER_MOVING_UP2
2015-08-31 02:38:41 +00:00
ld [wVermilionCityCurScript], a
2014-05-18 18:19:10 +00:00
ret
VermilionCityPlayerMovingUp2Script:
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
ldh [hJoyHeld], a
ld a, SCRIPT_VERMILIONCITY_DEFAULT
2015-08-31 02:38:41 +00:00
ld [wVermilionCityCurScript], a
2014-05-18 18:19:10 +00:00
ret
VermilionCityPlayerMovingUp1Script:
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, SCRIPT_VERMILIONCITY_DEFAULT
2015-08-31 02:38:41 +00:00
ld [wVermilionCityCurScript], a
2014-05-18 18:19:10 +00:00
ret
VermilionCity_TextPointers:
def_text_pointers
dw_const VermilionCityBeautyText, TEXT_VERMILIONCITY_BEAUTY
dw_const VermilionCityGambler1Text, TEXT_VERMILIONCITY_GAMBLER1
dw_const VermilionCitySailor1Text, TEXT_VERMILIONCITY_SAILOR1
dw_const VermilionCityGambler2Text, TEXT_VERMILIONCITY_GAMBLER2
dw_const VermilionCityMachopText, TEXT_VERMILIONCITY_MACHOP
dw_const VermilionCitySailor2Text, TEXT_VERMILIONCITY_SAILOR2
dw_const VermilionCitySignText, TEXT_VERMILIONCITY_SIGN
dw_const VermilionCityNoticeSignText, TEXT_VERMILIONCITY_NOTICE_SIGN
dw_const MartSignText, TEXT_VERMILIONCITY_MART_SIGN
dw_const PokeCenterSignText, TEXT_VERMILIONCITY_POKECENTER_SIGN
dw_const VermilionCityPokemonFanClubSignText, TEXT_VERMILIONCITY_POKEMON_FAN_CLUB_SIGN
dw_const VermilionCityGymSignText, TEXT_VERMILIONCITY_GYM_SIGN
dw_const VermilionCityHarborSignText, TEXT_VERMILIONCITY_HARBOR_SIGN
2014-05-18 18:19:10 +00:00
VermilionCityBeautyText:
text_far _VermilionCityBeautyText
text_end
2014-05-18 18:19:10 +00:00
VermilionCityGambler1Text:
text_asm
2015-07-21 01:32:02 +00:00
CheckEvent EVENT_SS_ANNE_LEFT
jr nz, .ship_departed
ld hl, .DidYouSeeText
2014-05-18 18:19:10 +00:00
call PrintText
jr .text_script_end
.ship_departed
ld hl, .SSAnneDepartedText
2014-05-18 18:19:10 +00:00
call PrintText
.text_script_end
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
.DidYouSeeText:
text_far _VermilionCityGambler1DidYouSeeText
text_end
2014-05-18 18:19:10 +00:00
.SSAnneDepartedText:
text_far _VermilionCityGambler1SSAnneDepartedText
text_end
2014-05-18 18:19:10 +00:00
VermilionCitySailor1Text:
text_asm
2015-07-21 01:32:02 +00:00
CheckEvent EVENT_SS_ANNE_LEFT
jr nz, .ship_departed
ld a, [wSpritePlayerStateData1FacingDirection]
cp SPRITE_FACING_RIGHT
jr z, .greet_player
2020-05-03 18:25:01 +00:00
ld hl, .inFrontOfOrBehindGuardCoords
2014-05-18 18:19:10 +00:00
call ArePlayerCoordsInArray
jr nc, .greet_player_and_check_ticket
.greet_player
ld hl, .WelcomeToSSAnneText
2014-05-18 18:19:10 +00:00
call PrintText
2020-05-03 18:25:01 +00:00
jr .end
.greet_player_and_check_ticket
ld hl, .DoYouHaveATicketText
2014-05-18 18:19:10 +00:00
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
jr nz, .player_has_ticket
ld hl, .YouNeedATicketText
2014-05-18 18:19:10 +00:00
call PrintText
2020-05-03 18:25:01 +00:00
jr .end
.player_has_ticket
ld hl, .FlashedTicketText
2014-05-18 18:19:10 +00:00
call PrintText
ld a, SCRIPT_VERMILIONCITY_PLAYER_ALLOWED_TO_PASS
2015-08-31 02:38:41 +00:00
ld [wVermilionCityCurScript], a
2020-05-03 18:25:01 +00:00
jr .end
.ship_departed
ld hl, .ShipSetSailText
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:25:01 +00:00
.inFrontOfOrBehindGuardCoords
dbmapcoord 19, 29 ; in front of guard
dbmapcoord 19, 31 ; behind guard
db -1 ; end
2014-05-18 18:19:10 +00:00
.WelcomeToSSAnneText:
text_far _VermilionCitySailor1WelcomeToSSAnneText
text_end
2014-05-18 18:19:10 +00:00
.DoYouHaveATicketText:
text_far _VermilionCitySailor1DoYouHaveATicketText
text_end
2014-05-18 18:19:10 +00:00
.FlashedTicketText:
text_far _VermilionCitySailor1FlashedTicketText
text_end
2014-05-18 18:19:10 +00:00
.YouNeedATicketText:
text_far _VermilionCitySailor1YouNeedATicketText
text_end
2014-05-18 18:19:10 +00:00
.ShipSetSailText:
text_far _VermilionCitySailor1ShipSetSailText
text_end
2014-05-18 18:19:10 +00:00
VermilionCityGambler2Text:
text_far _VermilionCityGambler2Text
text_end
2014-05-18 18:19:10 +00:00
VermilionCityMachopText:
text_far _VermilionCityMachopText
text_asm
2014-05-18 18:19:10 +00:00
ld a, MACHOP
call PlayCry
call WaitForSoundToFinish
ld hl, .StompingTheLandFlatText
2014-05-18 18:19:10 +00:00
ret
.StompingTheLandFlatText:
text_far _VermilionCityMachopStompingTheLandFlatText
text_end
2014-05-18 18:19:10 +00:00
VermilionCitySailor2Text:
text_far _VermilionCitySailor2Text
text_end
2014-05-18 18:19:10 +00:00
VermilionCitySignText:
text_far _VermilionCitySignText
text_end
2014-05-18 18:19:10 +00:00
VermilionCityNoticeSignText:
text_far _VermilionCityNoticeSignText
text_end
2014-05-18 18:19:10 +00:00
VermilionCityPokemonFanClubSignText:
text_far _VermilionCityPokemonFanClubSignText
text_end
2014-05-18 18:19:10 +00:00
VermilionCityGymSignText:
text_far _VermilionCityGymSignText
text_end
2014-05-18 18:19:10 +00:00
VermilionCityHarborSignText:
text_far _VermilionCityHarborSignText
text_end