pokered/scripts/PewterCity.asm

329 lines
8.4 KiB
NASM
Raw Permalink Normal View History

PewterCity_Script:
2014-05-18 18:19:10 +00:00
call EnableAutoTextBoxDrawing
ld hl, PewterCity_ScriptPointers
2015-08-31 02:38:41 +00:00
ld a, [wPewterCityCurScript]
2014-05-18 18:19:10 +00:00
jp CallFunctionInTable
PewterCity_ScriptPointers:
def_script_pointers
dw_const PewterCityDefaultScript, SCRIPT_PEWTERCITY_DEFAULT
dw_const PewterCitySuperNerd1ShowsPlayerMuseumScript, SCRIPT_PEWTERCITY_SUPER_NERD1_SHOWS_PLAYER_MUSEUM
dw_const PewterCityHideSuperNerd1Script, SCRIPT_PEWTERCITY_HIDE_SUPER_NERD1
dw_const PewterCityResetSuperNerd1Script, SCRIPT_PEWTERCITY_RESET_SUPER_NERD1
dw_const PewterCityYoungsterShowsPlayerGymScript, SCRIPT_PEWTERCITY_YOUNGSTER_SHOWS_PLAYER_GYM
dw_const PewterCityHideYoungsterScript, SCRIPT_PEWTERCITY_HIDE_YOUNGSTER
dw_const PewterCityResetYoungsterScript, SCRIPT_PEWTERCITY_RESET_YOUNGSTER
PewterCityDefaultScript:
2014-05-18 18:19:10 +00:00
xor a
ld [wMuseum1FCurScript], a
2015-07-21 17:36:03 +00:00
ResetEvent EVENT_BOUGHT_MUSEUM_TICKET
call PewterCityCheckPlayerLeavingEastScript
2014-05-18 18:19:10 +00:00
ret
PewterCityCheckPlayerLeavingEastScript:
2015-07-21 02:41:23 +00:00
CheckEvent EVENT_BEAT_BROCK
2014-05-18 18:19:10 +00:00
ret nz
2020-07-15 17:35:39 +00:00
IF DEF(_DEBUG)
call DebugPressedOrHeldB
ret nz
ENDC
ld hl, PewterCityPlayerLeavingEastCoords
2014-05-18 18:19:10 +00:00
call ArePlayerCoordsInArray
ret nc
ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
ld a, TEXT_PEWTERCITY_YOUNGSTER
ldh [hTextID], a
2014-05-18 18:19:10 +00:00
jp DisplayTextID
PewterCityPlayerLeavingEastCoords:
dbmapcoord 35, 17
dbmapcoord 36, 17
dbmapcoord 37, 18
dbmapcoord 37, 19
db -1 ; end
2014-05-18 18:19:10 +00:00
PewterCitySuperNerd1ShowsPlayerMuseumScript:
ld a, [wNPCMovementScriptPointerTableNum]
2014-05-18 18:19:10 +00:00
and a
ret nz
ld a, PEWTERCITY_SUPER_NERD1
ldh [hSpriteIndex], a
ld a, SPRITE_FACING_UP
ldh [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, ($3 << 4) | SPRITE_FACING_UP
ldh [hSpriteImageIndex], a
call SetSpriteImageIndexAfterSettingFacingDirection
call PlayDefaultMusic
ld hl, wMiscFlags
set BIT_NO_SPRITE_UPDATES, [hl]
ld a, TEXT_PEWTERCITY_SUPER_NERD1_ITS_RIGHT_HERE
ldh [hTextID], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
ld a, $3c
ldh [hSpriteScreenYCoord], a
2014-05-18 18:19:10 +00:00
ld a, $30
ldh [hSpriteScreenXCoord], a
ld a, 12
ldh [hSpriteMapYCoord], a
ld a, 17
ldh [hSpriteMapXCoord], a
ld a, PEWTERCITY_SUPER_NERD1
2014-09-13 07:50:56 +00:00
ld [wSpriteIndex], a
call SetSpritePosition1
ld a, PEWTERCITY_SUPER_NERD1
ldh [hSpriteIndex], a
ld de, MovementData_PewterMuseumGuyExit
2014-05-18 18:19:10 +00:00
call MoveSprite
ld a, SCRIPT_PEWTERCITY_HIDE_SUPER_NERD1
2015-08-31 02:38:41 +00:00
ld [wPewterCityCurScript], a
2014-05-18 18:19:10 +00:00
ret
2016-06-12 00:24:04 +00:00
MovementData_PewterMuseumGuyExit:
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db -1 ; end
2014-05-18 18:19:10 +00:00
PewterCityHideSuperNerd1Script:
ld a, [wStatusFlags5]
bit BIT_SCRIPTED_NPC_MOVEMENT, a
2014-05-18 18:19:10 +00:00
ret nz
ld a, HS_MUSEUM_GUY
2015-07-25 03:27:59 +00:00
ld [wMissableObjectIndex], a
predef HideObject
ld a, SCRIPT_PEWTERCITY_RESET_SUPER_NERD1
2015-08-31 02:38:41 +00:00
ld [wPewterCityCurScript], a
2014-05-18 18:19:10 +00:00
ret
PewterCityResetSuperNerd1Script:
ld a, PEWTERCITY_SUPER_NERD1
2014-09-13 07:50:56 +00:00
ld [wSpriteIndex], a
call SetSpritePosition2
ld a, HS_MUSEUM_GUY
2015-07-25 03:27:59 +00:00
ld [wMissableObjectIndex], a
predef ShowObject
2014-05-18 18:19:10 +00:00
xor a
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
ld a, SCRIPT_PEWTERCITY_DEFAULT
2015-08-31 02:38:41 +00:00
ld [wPewterCityCurScript], a
2014-05-18 18:19:10 +00:00
ret
PewterCityYoungsterShowsPlayerGymScript:
ld a, [wNPCMovementScriptPointerTableNum]
2014-05-18 18:19:10 +00:00
and a
ret nz
ld a, PEWTERCITY_YOUNGSTER
ldh [hSpriteIndex], a
ld a, SPRITE_FACING_LEFT
ldh [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, ($1 << 4) | SPRITE_FACING_LEFT
ldh [hSpriteImageIndex], a
call SetSpriteImageIndexAfterSettingFacingDirection
call PlayDefaultMusic
ld hl, wMiscFlags
set BIT_NO_SPRITE_UPDATES, [hl]
ld a, TEXT_PEWTERCITY_YOUNGSTER_GO_TAKE_ON_BROCK
ldh [hTextID], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
ld a, $3c
ldh [hSpriteScreenYCoord], a
2014-05-18 18:19:10 +00:00
ld a, $40
ldh [hSpriteScreenXCoord], a
ld a, 22
ldh [hSpriteMapYCoord], a
ld a, 16
ldh [hSpriteMapXCoord], a
ld a, PEWTERCITY_YOUNGSTER
2014-09-13 07:50:56 +00:00
ld [wSpriteIndex], a
call SetSpritePosition1
ld a, PEWTERCITY_YOUNGSTER
ldh [hSpriteIndex], a
2014-05-18 18:19:10 +00:00
ld de, MovementData_PewterGymGuyExit
call MoveSprite
ld a, SCRIPT_PEWTERCITY_HIDE_YOUNGSTER
2015-08-31 02:38:41 +00:00
ld [wPewterCityCurScript], a
2014-05-18 18:19:10 +00:00
ret
2016-06-12 00:24:04 +00:00
MovementData_PewterGymGuyExit:
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_RIGHT
db -1 ; end
2014-05-18 18:19:10 +00:00
PewterCityHideYoungsterScript:
ld a, [wStatusFlags5]
bit BIT_SCRIPTED_NPC_MOVEMENT, a
2014-05-18 18:19:10 +00:00
ret nz
ld a, HS_GYM_GUY
2015-07-25 03:27:59 +00:00
ld [wMissableObjectIndex], a
predef HideObject
ld a, SCRIPT_PEWTERCITY_RESET_YOUNGSTER
2015-08-31 02:38:41 +00:00
ld [wPewterCityCurScript], a
2014-05-18 18:19:10 +00:00
ret
PewterCityResetYoungsterScript:
ld a, PEWTERCITY_YOUNGSTER
2014-09-13 07:50:56 +00:00
ld [wSpriteIndex], a
call SetSpritePosition2
ld a, HS_GYM_GUY
2015-07-25 03:27:59 +00:00
ld [wMissableObjectIndex], a
predef ShowObject
2014-05-18 18:19:10 +00:00
xor a
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
ld a, SCRIPT_PEWTERCITY_DEFAULT
2015-08-31 02:38:41 +00:00
ld [wPewterCityCurScript], a
2014-05-18 18:19:10 +00:00
ret
PewterCity_TextPointers:
def_text_pointers
dw_const PewterCityCooltrainerFText, TEXT_PEWTERCITY_COOLTRAINER_F
dw_const PewterCityCooltrainerMText, TEXT_PEWTERCITY_COOLTRAINER_M
dw_const PewterCitySuperNerd1Text, TEXT_PEWTERCITY_SUPER_NERD1
dw_const PewterCitySuperNerd2Text, TEXT_PEWTERCITY_SUPER_NERD2
dw_const PewterCityYoungsterText, TEXT_PEWTERCITY_YOUNGSTER
dw_const PewterCityTrainerTipsText, TEXT_PEWTERCITY_TRAINER_TIPS
dw_const PewterCityPoliceNoticeSignText, TEXT_PEWTERCITY_POLICE_NOTICE_SIGN
dw_const MartSignText, TEXT_PEWTERCITY_MART_SIGN
dw_const PokeCenterSignText, TEXT_PEWTERCITY_POKECENTER_SIGN
dw_const PewterCityMuseumSignText, TEXT_PEWTERCITY_MUSEUM_SIGN
dw_const PewterCityGymSignText, TEXT_PEWTERCITY_GYM_SIGN
dw_const PewterCitySignText, TEXT_PEWTERCITY_SIGN
dw_const PewterCitySuperNerd1ItsRightHereText, TEXT_PEWTERCITY_SUPER_NERD1_ITS_RIGHT_HERE
dw_const PewterCityYoungsterGoTakeOnBrockText, TEXT_PEWTERCITY_YOUNGSTER_GO_TAKE_ON_BROCK
PewterCityCooltrainerFText:
text_far _PewterCityCooltrainerFText
text_end
2014-05-18 18:19:10 +00:00
PewterCityCooltrainerMText:
text_far _PewterCityCooltrainerMText
text_end
2014-05-18 18:19:10 +00:00
PewterCitySuperNerd1Text:
text_asm
ld hl, .DidYouCheckOutMuseumText
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:53:27 +00:00
jr nz, .playerDidNotGoIntoMuseum
ld hl, .WerentThoseFossilsAmazingText
2014-05-18 18:19:10 +00:00
call PrintText
2019-10-07 13:53:27 +00:00
jr .done
.playerDidNotGoIntoMuseum
ld hl, .YouHaveToGoText
2014-05-18 18:19:10 +00:00
call PrintText
xor a
ldh [hJoyPressed], a
ldh [hJoyHeld], a
ld [wNPCMovementScriptFunctionNum], a
2014-05-18 18:19:10 +00:00
ld a, $2
ld [wNPCMovementScriptPointerTableNum], a
ldh a, [hLoadedROMBank]
ld [wNPCMovementScriptBank], a
ld a, PEWTERCITY_SUPER_NERD1
2014-09-13 07:50:56 +00:00
ld [wSpriteIndex], a
call GetSpritePosition2
ld a, SCRIPT_PEWTERCITY_SUPER_NERD1_SHOWS_PLAYER_MUSEUM
2015-08-31 02:38:41 +00:00
ld [wPewterCityCurScript], a
2019-10-07 13:53:27 +00:00
.done
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
.DidYouCheckOutMuseumText:
text_far _PewterCitySuperNerd1DidYouCheckOutMuseumText
text_end
2014-05-18 18:19:10 +00:00
.WerentThoseFossilsAmazingText:
text_far _PewterCitySuperNerd1WerentThoseFossilsAmazingText
text_end
2014-05-18 18:19:10 +00:00
.YouHaveToGoText:
text_far _PewterCitySuperNerd1YouHaveToGoText
text_end
2014-05-18 18:19:10 +00:00
PewterCitySuperNerd1ItsRightHereText:
text_far _PewterCitySuperNerd1ItsRightHereText
text_end
2014-05-18 18:19:10 +00:00
PewterCitySuperNerd2Text:
text_asm
ld hl, .DoYouKnowWhatImDoingText
2014-05-18 18:19:10 +00:00
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
2014-05-18 18:19:10 +00:00
cp $0
2019-10-07 13:53:27 +00:00
jr nz, .playerDoesNotKnow
ld hl, .ThatsRightText
2014-05-18 18:19:10 +00:00
call PrintText
2019-10-07 13:53:27 +00:00
jr .done
.playerDoesNotKnow
ld hl, .ImSprayingRepelText
2014-05-18 18:19:10 +00:00
call PrintText
2019-10-07 13:53:27 +00:00
.done
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
.DoYouKnowWhatImDoingText:
text_far _PewterCitySuperNerd2DoYouKnowWhatImDoingText
text_end
2014-05-18 18:19:10 +00:00
.ThatsRightText:
text_far _PewterCitySuperNerd2ThatsRightText
text_end
2014-05-18 18:19:10 +00:00
.ImSprayingRepelText:
text_far _PewterCitySuperNerd2ImSprayingRepelText
text_end
2014-05-18 18:19:10 +00:00
PewterCityYoungsterText:
text_asm
ld hl, .YoureATrainerFollowMeText
2014-05-18 18:19:10 +00:00
call PrintText
xor a
ldh [hJoyHeld], a
ld [wNPCMovementScriptFunctionNum], a
2014-05-18 18:19:10 +00:00
ld a, $3
ld [wNPCMovementScriptPointerTableNum], a
ldh a, [hLoadedROMBank]
ld [wNPCMovementScriptBank], a
ld a, PEWTERCITY_YOUNGSTER
2014-09-13 07:50:56 +00:00
ld [wSpriteIndex], a
call GetSpritePosition2
ld a, SCRIPT_PEWTERCITY_YOUNGSTER_SHOWS_PLAYER_GYM
2015-08-31 02:38:41 +00:00
ld [wPewterCityCurScript], a
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
.YoureATrainerFollowMeText:
text_far _PewterCityYoungsterYoureATrainerFollowMeText
text_end
2014-05-18 18:19:10 +00:00
PewterCityYoungsterGoTakeOnBrockText:
text_far _PewterCityYoungsterGoTakeOnBrockText
text_end
2014-05-18 18:19:10 +00:00
PewterCityTrainerTipsText:
text_far _PewterCityTrainerTipsText
text_end
2014-05-18 18:19:10 +00:00
PewterCityPoliceNoticeSignText:
text_far _PewterCityPoliceNoticeSignText
text_end
2014-05-18 18:19:10 +00:00
PewterCityMuseumSignText:
text_far _PewterCityMuseumSignText
text_end
2014-05-18 18:19:10 +00:00
PewterCityGymSignText:
text_far _PewterCityGymSignText
text_end
2014-05-18 18:19:10 +00:00
PewterCitySignText:
text_far _PewterCitySignText
text_end