pokered/scripts/ViridianCity.asm

330 lines
7.9 KiB
NASM
Raw Permalink Normal View History

ViridianCity_Script:
2014-05-18 18:19:10 +00:00
call EnableAutoTextBoxDrawing
ld hl, ViridianCity_ScriptPointers
2015-08-31 02:38:41 +00:00
ld a, [wViridianCityCurScript]
2014-05-18 18:19:10 +00:00
jp CallFunctionInTable
ViridianCity_ScriptPointers:
def_script_pointers
dw_const ViridianCityDefaultScript, SCRIPT_VIRIDIANCITY_DEFAULT
dw_const ViridianCityOldManStartCatchTrainingScript, SCRIPT_VIRIDIANCITY_OLD_MAN_START_CATCH_TRAINING
dw_const ViridianCityOldManEndCatchTrainingScript, SCRIPT_VIRIDIANCITY_OLD_MAN_END_CATCH_TRAINING
dw_const ViridianCityPlayerMovingDownScript, SCRIPT_VIRIDIANCITY_PLAYER_MOVING_DOWN
2014-05-18 18:19:10 +00:00
ViridianCityDefaultScript:
call ViridianCityCheckGymOpenScript
jp ViridianCityCheckGotPokedexScript
2014-05-18 18:19:10 +00:00
ViridianCityCheckGymOpenScript:
2015-07-21 17:36:03 +00:00
CheckEvent EVENT_VIRIDIAN_GYM_OPEN
2014-05-18 18:19:10 +00:00
ret nz
2015-08-31 02:38:41 +00:00
ld a, [wObtainedBadges]
2021-11-24 02:00:07 +00:00
cp ~(1 << BIT_EARTHBADGE)
jr nz, .gym_closed
2015-07-21 17:36:03 +00:00
SetEvent EVENT_VIRIDIAN_GYM_OPEN
2014-05-18 18:19:10 +00:00
ret
.gym_closed
2015-08-31 02:38:41 +00:00
ld a, [wYCoord]
cp 8
2014-05-18 18:19:10 +00:00
ret nz
2015-08-31 02:38:41 +00:00
ld a, [wXCoord]
cp 32
2014-05-18 18:19:10 +00:00
ret nz
ld a, TEXT_VIRIDIANCITY_GYM_LOCKED
ldh [hTextID], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
xor a
ldh [hJoyHeld], a
call ViridianCityMovePlayerDownScript
ld a, SCRIPT_VIRIDIANCITY_PLAYER_MOVING_DOWN
2015-08-31 02:38:41 +00:00
ld [wViridianCityCurScript], a
2014-05-18 18:19:10 +00:00
ret
ViridianCityCheckGotPokedexScript:
2015-07-21 01:32:02 +00:00
CheckEvent EVENT_GOT_POKEDEX
2014-05-18 18:19:10 +00:00
ret nz
2015-08-31 02:38:41 +00:00
ld a, [wYCoord]
cp 9
2014-05-18 18:19:10 +00:00
ret nz
2015-08-31 02:38:41 +00:00
ld a, [wXCoord]
cp 19
2014-05-18 18:19:10 +00:00
ret nz
ld a, TEXT_VIRIDIANCITY_OLD_MAN_SLEEPY
ldh [hTextID], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
xor a
ldh [hJoyHeld], a
call ViridianCityMovePlayerDownScript
ld a, SCRIPT_VIRIDIANCITY_PLAYER_MOVING_DOWN
2015-08-31 02:38:41 +00:00
ld [wViridianCityCurScript], a
2014-05-18 18:19:10 +00:00
ret
ViridianCityOldManStartCatchTrainingScript:
ld a, [wSprite03StateData1YPixels]
ldh [hSpriteScreenYCoord], a
ld a, [wSprite03StateData1XPixels]
ldh [hSpriteScreenXCoord], a
ld a, [wSprite03StateData2MapY]
ldh [hSpriteMapYCoord], a
ld a, [wSprite03StateData2MapX]
ldh [hSpriteMapXCoord], a
2014-05-18 18:19:10 +00:00
xor a
ld [wListScrollOffset], a
; set up battle for Old Man
2015-08-30 06:35:58 +00:00
ld a, BATTLE_TYPE_OLD_MAN
2015-08-31 02:38:41 +00:00
ld [wBattleType], a
2014-05-18 18:19:10 +00:00
ld a, 5
ld [wCurEnemyLevel], a
2014-05-18 18:19:10 +00:00
ld a, WEEDLE
2015-08-31 02:38:41 +00:00
ld [wCurOpponent], a
ld a, SCRIPT_VIRIDIANCITY_OLD_MAN_END_CATCH_TRAINING
2015-08-31 02:38:41 +00:00
ld [wViridianCityCurScript], a
2014-05-18 18:19:10 +00:00
ret
ViridianCityOldManEndCatchTrainingScript:
ldh a, [hSpriteScreenYCoord]
ld [wSprite03StateData1YPixels], a
ldh a, [hSpriteScreenXCoord]
ld [wSprite03StateData1XPixels], a
ldh a, [hSpriteMapYCoord]
ld [wSprite03StateData2MapY], a
ldh a, [hSpriteMapXCoord]
ld [wSprite03StateData2MapX], a
2014-05-18 18:19:10 +00:00
call UpdateSprites
call Delay3
xor a
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
ld a, TEXT_VIRIDIANCITY_OLD_MAN_YOU_NEED_TO_WEAKEN_THE_TARGET
ldh [hTextID], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
xor a
2015-08-31 02:38:41 +00:00
ld [wBattleType], a
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
ld a, SCRIPT_VIRIDIANCITY_DEFAULT
2015-08-31 02:38:41 +00:00
ld [wViridianCityCurScript], a
2014-05-18 18:19:10 +00:00
ret
ViridianCityPlayerMovingDownScript:
ld a, [wSimulatedJoypadStatesIndex]
2014-05-18 18:19:10 +00:00
and a
ret nz
call Delay3
ld a, SCRIPT_VIRIDIANCITY_DEFAULT
2015-08-31 02:38:41 +00:00
ld [wViridianCityCurScript], a
2014-05-18 18:19:10 +00:00
ret
ViridianCityMovePlayerDownScript:
call StartSimulatingJoypadStates
2014-05-18 18:19:10 +00:00
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
ld a, D_DOWN
ld [wSimulatedJoypadStatesEnd], a
2014-05-18 18:19:10 +00:00
xor a
ld [wSpritePlayerStateData1FacingDirection], a
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2014-05-18 18:19:10 +00:00
ret
ViridianCity_TextPointers:
def_text_pointers
dw_const ViridianCityYoungster1Text, TEXT_VIRIDIANCITY_YOUNGSTER1
dw_const ViridianCityGambler1Text, TEXT_VIRIDIANCITY_GAMBLER1
dw_const ViridianCityYoungster2Text, TEXT_VIRIDIANCITY_YOUNGSTER2
dw_const ViridianCityGirlText, TEXT_VIRIDIANCITY_GIRL
dw_const ViridianCityOldManSleepyText, TEXT_VIRIDIANCITY_OLD_MAN_SLEEPY
dw_const ViridianCityFisherText, TEXT_VIRIDIANCITY_FISHER
dw_const ViridianCityOldManText, TEXT_VIRIDIANCITY_OLD_MAN
dw_const ViridianCitySignText, TEXT_VIRIDIANCITY_SIGN
dw_const ViridianCityTrainerTips1Text, TEXT_VIRIDIANCITY_TRAINER_TIPS1
dw_const ViridianCityTrainerTips2Text, TEXT_VIRIDIANCITY_TRAINER_TIPS2
dw_const MartSignText, TEXT_VIRIDIANCITY_MART_SIGN
dw_const PokeCenterSignText, TEXT_VIRIDIANCITY_POKECENTER_SIGN
dw_const ViridianCityGymSignText, TEXT_VIRIDIANCITY_GYM_SIGN
dw_const ViridianCityGymLockedText, TEXT_VIRIDIANCITY_GYM_LOCKED
dw_const ViridianCityOldManYouNeedToWeakenTheTargetText, TEXT_VIRIDIANCITY_OLD_MAN_YOU_NEED_TO_WEAKEN_THE_TARGET
ViridianCityYoungster1Text:
text_far _ViridianCityYoungster1Text
text_end
2014-05-18 18:19:10 +00:00
ViridianCityGambler1Text:
text_asm
2015-08-31 02:38:41 +00:00
ld a, [wObtainedBadges]
2021-11-24 02:00:07 +00:00
cp ~(1 << BIT_EARTHBADGE)
ld hl, .GymLeaderReturnedText
jr z, .print_text
2015-07-21 02:41:23 +00:00
CheckEvent EVENT_BEAT_VIRIDIAN_GYM_GIOVANNI
jr nz, .print_text
ld hl, .GymAlwaysClosedText
.print_text
2014-05-18 18:19:10 +00:00
call PrintText
jp TextScriptEnd
.GymAlwaysClosedText:
text_far _ViridianCityGambler1GymAlwaysClosedText
text_end
2014-05-18 18:19:10 +00:00
.GymLeaderReturnedText:
text_far _ViridianCityGambler1GymLeaderReturnedText
text_end
2014-05-18 18:19:10 +00:00
ViridianCityYoungster2Text:
text_asm
ld hl, .YouWantToKnowAboutText
2014-05-18 18:19:10 +00:00
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
2014-05-18 18:19:10 +00:00
and a
2019-10-07 13:45:45 +00:00
jr nz, .no
ld hl, .CaterpieAndWeedleDescriptionText
2014-05-18 18:19:10 +00:00
call PrintText
jr .text_script_end
2019-10-07 13:45:45 +00:00
.no
ld hl, .OkThenText
2014-05-18 18:19:10 +00:00
call PrintText
.text_script_end
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
.YouWantToKnowAboutText:
text_far _ViridianCityYoungster2YouWantToKnowAboutText
text_end
2014-05-18 18:19:10 +00:00
.OkThenText:
text_far ViridianCityYoungster2OkThenText
text_end
2014-05-18 18:19:10 +00:00
.CaterpieAndWeedleDescriptionText:
text_far ViridianCityYoungster2CaterpieAndWeedleDescriptionText
text_end
2014-05-18 18:19:10 +00:00
ViridianCityGirlText:
text_asm
2015-07-21 01:32:02 +00:00
CheckEvent EVENT_GOT_POKEDEX
jr nz, .got_pokedex
ld hl, .HasntHadHisCoffeeYetText
2014-05-18 18:19:10 +00:00
call PrintText
jr .text_script_end
.got_pokedex
ld hl, .WhenIGoShopText
2014-05-18 18:19:10 +00:00
call PrintText
.text_script_end
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
.HasntHadHisCoffeeYetText:
text_far _ViridianCityGirlHasntHadHisCoffeeYetText
text_end
2014-05-18 18:19:10 +00:00
.WhenIGoShopText:
text_far _ViridianCityGirlWhenIGoShopText
text_end
2014-05-18 18:19:10 +00:00
ViridianCityOldManSleepyText:
text_asm
ld hl, .PrivatePropertyText
2014-05-18 18:19:10 +00:00
call PrintText
call ViridianCityMovePlayerDownScript
ld a, SCRIPT_VIRIDIANCITY_PLAYER_MOVING_DOWN
2015-08-31 02:38:41 +00:00
ld [wViridianCityCurScript], a
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
.PrivatePropertyText:
text_far _ViridianCityOldManSleepyPrivatePropertyText
text_end
2014-05-18 18:19:10 +00:00
ViridianCityFisherText:
text_asm
2015-07-21 17:36:03 +00:00
CheckEvent EVENT_GOT_TM42
jr nz, .got_item
ld hl, .YouCanHaveThisText
2014-05-18 18:19:10 +00:00
call PrintText
2020-07-06 02:52:27 +00:00
lb bc, TM_DREAM_EATER, 1
2014-05-18 18:19:10 +00:00
call GiveItem
jr nc, .bag_full
ld hl, .ReceivedTM42Text
2014-05-18 18:19:10 +00:00
call PrintText
2015-07-21 17:36:03 +00:00
SetEvent EVENT_GOT_TM42
2019-10-07 13:45:45 +00:00
jr .done
.bag_full
ld hl, .TM42NoRoomText
2014-05-18 18:19:10 +00:00
call PrintText
2019-10-07 13:45:45 +00:00
jr .done
.got_item
ld hl, .TM42ExplanationText
2014-05-18 18:19:10 +00:00
call PrintText
2019-10-07 13:45:45 +00:00
.done
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
.YouCanHaveThisText:
text_far ViridianCityFisherYouCanHaveThisText
text_end
2014-05-18 18:19:10 +00:00
.ReceivedTM42Text:
text_far _ViridianCityFisherReceivedTM42Text
sound_get_item_2
text_end
2014-05-18 18:19:10 +00:00
.TM42ExplanationText:
text_far _ViridianCityFisherTM42ExplanationText
text_end
2014-05-18 18:19:10 +00:00
.TM42NoRoomText:
text_far _ViridianCityFisherTM42NoRoomText
text_end
2014-05-18 18:19:10 +00:00
ViridianCityOldManText:
text_asm
ld hl, .HadMyCoffeeNowText
2014-05-18 18:19:10 +00:00
call PrintText
ld c, 2
2014-05-18 18:19:10 +00:00
call DelayFrames
call YesNoChoice
ld a, [wCurrentMenuItem]
2014-05-18 18:19:10 +00:00
and a
jr z, .refused
ld hl, .KnowHowToCatchPokemonText
2014-05-18 18:19:10 +00:00
call PrintText
ld a, SCRIPT_VIRIDIANCITY_OLD_MAN_START_CATCH_TRAINING
2015-08-31 02:38:41 +00:00
ld [wViridianCityCurScript], a
2019-10-07 13:45:45 +00:00
jr .done
.refused
ld hl, .TimeIsMoneyText
2014-05-18 18:19:10 +00:00
call PrintText
2019-10-07 13:45:45 +00:00
.done
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
.HadMyCoffeeNowText:
text_far _ViridianCityOldManHadMyCoffeeNowText
text_end
2014-05-18 18:19:10 +00:00
.KnowHowToCatchPokemonText:
text_far _ViridianCityOldManKnowHowToCatchPokemonText
text_end
2014-05-18 18:19:10 +00:00
.TimeIsMoneyText:
text_far _ViridianCityOldManTimeIsMoneyText
text_end
2014-05-18 18:19:10 +00:00
ViridianCityOldManYouNeedToWeakenTheTargetText:
text_far _ViridianCityOldManYouNeedToWeakenTheTargetText
text_end
2014-05-18 18:19:10 +00:00
ViridianCitySignText:
text_far _ViridianCitySignText
text_end
2014-05-18 18:19:10 +00:00
ViridianCityTrainerTips1Text:
text_far _ViridianCityTrainerTips1Text
text_end
2014-05-18 18:19:10 +00:00
ViridianCityTrainerTips2Text:
text_far _ViridianCityTrainerTips2Text
text_end
2014-05-18 18:19:10 +00:00
ViridianCityGymSignText:
text_far _ViridianCityGymSignText
text_end
2014-05-18 18:19:10 +00:00
ViridianCityGymLockedText:
text_far _ViridianCityGymLockedText
text_end