mirror of
https://github.com/pret/pokered.git
synced 2024-10-23 06:58:24 +00:00
d001ced41b
This introduces `def_script_pointers`, `def_text_pointers`, and `object_const_def` macros, and applies them to all maps. Most other map labels have also been identified.
329 lines
8 KiB
NASM
329 lines
8 KiB
NASM
ViridianCity_Script:
|
|
call EnableAutoTextBoxDrawing
|
|
ld hl, ViridianCity_ScriptPointers
|
|
ld a, [wViridianCityCurScript]
|
|
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
|
|
|
|
ViridianCityDefaultScript:
|
|
call ViridianCityCheckGymOpenScript
|
|
jp ViridianCityCheckGotPokedexScript
|
|
|
|
ViridianCityCheckGymOpenScript:
|
|
CheckEvent EVENT_VIRIDIAN_GYM_OPEN
|
|
ret nz
|
|
ld a, [wObtainedBadges]
|
|
cp ~(1 << BIT_EARTHBADGE)
|
|
jr nz, .gym_closed
|
|
SetEvent EVENT_VIRIDIAN_GYM_OPEN
|
|
ret
|
|
.gym_closed
|
|
ld a, [wYCoord]
|
|
cp 8
|
|
ret nz
|
|
ld a, [wXCoord]
|
|
cp 32
|
|
ret nz
|
|
ld a, TEXT_VIRIDIANCITY_GYM_LOCKED
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
xor a
|
|
ldh [hJoyHeld], a
|
|
call ViridianCityMovePlayerDownScript
|
|
ld a, SCRIPT_VIRIDIANCITY_PLAYER_MOVING_DOWN
|
|
ld [wViridianCityCurScript], a
|
|
ret
|
|
|
|
ViridianCityCheckGotPokedexScript:
|
|
CheckEvent EVENT_GOT_POKEDEX
|
|
ret nz
|
|
ld a, [wYCoord]
|
|
cp 9
|
|
ret nz
|
|
ld a, [wXCoord]
|
|
cp 19
|
|
ret nz
|
|
ld a, TEXT_VIRIDIANCITY_OLD_MAN_SLEEPY
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
xor a
|
|
ldh [hJoyHeld], a
|
|
call ViridianCityMovePlayerDownScript
|
|
ld a, SCRIPT_VIRIDIANCITY_PLAYER_MOVING_DOWN
|
|
ld [wViridianCityCurScript], a
|
|
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
|
|
xor a
|
|
ld [wListScrollOffset], a
|
|
|
|
; set up battle for Old Man
|
|
ld a, BATTLE_TYPE_OLD_MAN
|
|
ld [wBattleType], a
|
|
ld a, 5
|
|
ld [wCurEnemyLVL], a
|
|
ld a, WEEDLE
|
|
ld [wCurOpponent], a
|
|
ld a, SCRIPT_VIRIDIANCITY_OLD_MAN_END_CATCH_TRAINING
|
|
ld [wViridianCityCurScript], a
|
|
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
|
|
call UpdateSprites
|
|
call Delay3
|
|
xor a
|
|
ld [wJoyIgnore], a
|
|
ld a, TEXT_VIRIDIANCITY_OLD_MAN_YOU_NEED_TO_WEAKEN_THE_TARGET
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
xor a
|
|
ld [wBattleType], a
|
|
ld [wJoyIgnore], a
|
|
ld a, SCRIPT_VIRIDIANCITY_DEFAULT
|
|
ld [wViridianCityCurScript], a
|
|
ret
|
|
|
|
ViridianCityPlayerMovingDownScript:
|
|
ld a, [wSimulatedJoypadStatesIndex]
|
|
and a
|
|
ret nz
|
|
call Delay3
|
|
ld a, SCRIPT_VIRIDIANCITY_DEFAULT
|
|
ld [wViridianCityCurScript], a
|
|
ret
|
|
|
|
ViridianCityMovePlayerDownScript:
|
|
call StartSimulatingJoypadStates
|
|
ld a, $1
|
|
ld [wSimulatedJoypadStatesIndex], a
|
|
ld a, D_DOWN
|
|
ld [wSimulatedJoypadStatesEnd], a
|
|
xor a
|
|
ld [wSpritePlayerStateData1FacingDirection], a
|
|
ld [wJoyIgnore], a
|
|
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
|
|
|
|
ViridianCityGambler1Text:
|
|
text_asm
|
|
ld a, [wObtainedBadges]
|
|
cp ~(1 << BIT_EARTHBADGE)
|
|
ld hl, .GymLeaderReturnedText
|
|
jr z, .print_text
|
|
CheckEvent EVENT_BEAT_VIRIDIAN_GYM_GIOVANNI
|
|
jr nz, .print_text
|
|
ld hl, .GymAlwaysClosedText
|
|
.print_text
|
|
call PrintText
|
|
jp TextScriptEnd
|
|
|
|
.GymAlwaysClosedText:
|
|
text_far _ViridianCityGambler1GymAlwaysClosedText
|
|
text_end
|
|
|
|
.GymLeaderReturnedText:
|
|
text_far _ViridianCityGambler1GymLeaderReturnedText
|
|
text_end
|
|
|
|
ViridianCityYoungster2Text:
|
|
text_asm
|
|
ld hl, .YouWantToKnowAboutText
|
|
call PrintText
|
|
call YesNoChoice
|
|
ld a, [wCurrentMenuItem]
|
|
and a
|
|
jr nz, .no
|
|
ld hl, .CaterpieAndWeedleDescriptionText
|
|
call PrintText
|
|
jr .text_script_end
|
|
.no
|
|
ld hl, .OkThenText
|
|
call PrintText
|
|
.text_script_end
|
|
jp TextScriptEnd
|
|
|
|
.YouWantToKnowAboutText:
|
|
text_far _ViridianCityYoungster2YouWantToKnowAboutText
|
|
text_end
|
|
|
|
.OkThenText:
|
|
text_far ViridianCityYoungster2OkThenText
|
|
text_end
|
|
|
|
.CaterpieAndWeedleDescriptionText:
|
|
text_far ViridianCityYoungster2CaterpieAndWeedleDescriptionText
|
|
text_end
|
|
|
|
ViridianCityGirlText:
|
|
text_asm
|
|
CheckEvent EVENT_GOT_POKEDEX
|
|
jr nz, .got_pokedex
|
|
ld hl, .HasntHadHisCoffeeYetText
|
|
call PrintText
|
|
jr .text_script_end
|
|
.got_pokedex
|
|
ld hl, .WhenIGoShopText
|
|
call PrintText
|
|
.text_script_end
|
|
jp TextScriptEnd
|
|
|
|
.HasntHadHisCoffeeYetText:
|
|
text_far _ViridianCityGirlHasntHadHisCoffeeYetText
|
|
text_end
|
|
|
|
.WhenIGoShopText:
|
|
text_far _ViridianCityGirlWhenIGoShopText
|
|
text_end
|
|
|
|
ViridianCityOldManSleepyText:
|
|
text_asm
|
|
ld hl, .PrivatePropertyText
|
|
call PrintText
|
|
call ViridianCityMovePlayerDownScript
|
|
ld a, SCRIPT_VIRIDIANCITY_PLAYER_MOVING_DOWN
|
|
ld [wViridianCityCurScript], a
|
|
jp TextScriptEnd
|
|
|
|
.PrivatePropertyText:
|
|
text_far _ViridianCityOldManSleepyPrivatePropertyText
|
|
text_end
|
|
|
|
ViridianCityFisherText:
|
|
text_asm
|
|
CheckEvent EVENT_GOT_TM42
|
|
jr nz, .got_item
|
|
ld hl, .YouCanHaveThisText
|
|
call PrintText
|
|
lb bc, TM_DREAM_EATER, 1
|
|
call GiveItem
|
|
jr nc, .bag_full
|
|
ld hl, .ReceivedTM42Text
|
|
call PrintText
|
|
SetEvent EVENT_GOT_TM42
|
|
jr .done
|
|
.bag_full
|
|
ld hl, .TM42NoRoomText
|
|
call PrintText
|
|
jr .done
|
|
.got_item
|
|
ld hl, .TM42ExplanationText
|
|
call PrintText
|
|
.done
|
|
jp TextScriptEnd
|
|
|
|
.YouCanHaveThisText:
|
|
text_far ViridianCityFisherYouCanHaveThisText
|
|
text_end
|
|
|
|
.ReceivedTM42Text:
|
|
text_far _ViridianCityFisherReceivedTM42Text
|
|
sound_get_item_2
|
|
text_end
|
|
|
|
.TM42ExplanationText:
|
|
text_far _ViridianCityFisherTM42ExplanationText
|
|
text_end
|
|
|
|
.TM42NoRoomText:
|
|
text_far _ViridianCityFisherTM42NoRoomText
|
|
text_end
|
|
|
|
ViridianCityOldManText:
|
|
text_asm
|
|
ld hl, .HadMyCoffeeNowText
|
|
call PrintText
|
|
ld c, 2
|
|
call DelayFrames
|
|
call YesNoChoice
|
|
ld a, [wCurrentMenuItem]
|
|
and a
|
|
jr z, .refused
|
|
ld hl, .KnowHowToCatchPokemonText
|
|
call PrintText
|
|
ld a, SCRIPT_VIRIDIANCITY_OLD_MAN_START_CATCH_TRAINING
|
|
ld [wViridianCityCurScript], a
|
|
jr .done
|
|
.refused
|
|
ld hl, .TimeIsMoneyText
|
|
call PrintText
|
|
.done
|
|
jp TextScriptEnd
|
|
|
|
.HadMyCoffeeNowText:
|
|
text_far _ViridianCityOldManHadMyCoffeeNowText
|
|
text_end
|
|
|
|
.KnowHowToCatchPokemonText:
|
|
text_far _ViridianCityOldManKnowHowToCatchPokemonText
|
|
text_end
|
|
|
|
.TimeIsMoneyText:
|
|
text_far _ViridianCityOldManTimeIsMoneyText
|
|
text_end
|
|
|
|
ViridianCityOldManYouNeedToWeakenTheTargetText:
|
|
text_far _ViridianCityOldManYouNeedToWeakenTheTargetText
|
|
text_end
|
|
|
|
ViridianCitySignText:
|
|
text_far _ViridianCitySignText
|
|
text_end
|
|
|
|
ViridianCityTrainerTips1Text:
|
|
text_far _ViridianCityTrainerTips1Text
|
|
text_end
|
|
|
|
ViridianCityTrainerTips2Text:
|
|
text_far _ViridianCityTrainerTips2Text
|
|
text_end
|
|
|
|
ViridianCityGymSignText:
|
|
text_far _ViridianCityGymSignText
|
|
text_end
|
|
|
|
ViridianCityGymLockedText:
|
|
text_far _ViridianCityGymLockedText
|
|
text_end
|