2019-01-01 20:06:23 +00:00
|
|
|
PalletTown_Script:
|
2015-07-21 01:32:02 +00:00
|
|
|
CheckEvent EVENT_GOT_POKEBALLS_FROM_OAK
|
2017-12-30 00:54:27 +00:00
|
|
|
jr z, .next
|
2015-07-21 17:36:03 +00:00
|
|
|
SetEvent EVENT_PALLET_AFTER_GETTING_POKEBALLS
|
2014-05-18 18:19:10 +00:00
|
|
|
.next
|
|
|
|
call EnableAutoTextBoxDrawing
|
2019-01-01 20:06:23 +00:00
|
|
|
ld hl, PalletTown_ScriptPointers
|
2017-12-30 00:54:27 +00:00
|
|
|
ld a, [wPalletTownCurScript]
|
2014-05-18 18:19:10 +00:00
|
|
|
jp CallFunctionInTable
|
|
|
|
|
2019-01-01 20:06:23 +00:00
|
|
|
PalletTown_ScriptPointers:
|
2023-07-14 01:27:56 +00:00
|
|
|
def_script_pointers
|
|
|
|
dw_const PalletTownDefaultScript, SCRIPT_PALLETTOWN_DEFAULT
|
|
|
|
dw_const PalletTownOakHeyWaitScript, SCRIPT_PALLETTOWN_OAK_HEY_WAIT
|
|
|
|
dw_const PalletTownOakWalksToPlayerScript, SCRIPT_PALLETTOWN_OAK_WALKS_TO_PLAYER
|
|
|
|
dw_const PalletTownOakNotSafeComeWithMeScript, SCRIPT_PALLETTOWN_OAK_NOT_SAFE_COME_WITH_ME
|
|
|
|
dw_const PalletTownPlayerFollowsOakScript, SCRIPT_PALLETTOWN_PLAYER_FOLLOWS_OAK
|
|
|
|
dw_const PalletTownDaisyScript, SCRIPT_PALLETTOWN_DAISY
|
|
|
|
dw_const PalletTownNoopScript, SCRIPT_PALLETTOWN_NOOP
|
|
|
|
|
|
|
|
PalletTownDefaultScript:
|
2015-07-21 17:36:03 +00:00
|
|
|
CheckEvent EVENT_FOLLOWED_OAK_INTO_LAB
|
2014-05-18 18:19:10 +00:00
|
|
|
ret nz
|
2017-12-30 00:54:27 +00:00
|
|
|
ld a, [wYCoord]
|
2014-05-18 18:19:10 +00:00
|
|
|
cp 1 ; is player near north exit?
|
|
|
|
ret nz
|
|
|
|
xor a
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh [hJoyHeld], a
|
2017-12-30 00:54:27 +00:00
|
|
|
ld a, PLAYER_DIR_DOWN
|
|
|
|
ld [wPlayerMovingDirection], a
|
2020-07-03 20:37:47 +00:00
|
|
|
ld a, SFX_STOP_ALL_MUSIC
|
|
|
|
call PlaySound
|
2014-05-18 18:19:10 +00:00
|
|
|
ld a, BANK(Music_MeetProfOak)
|
2017-12-30 00:54:27 +00:00
|
|
|
ld c, a
|
2020-07-07 01:15:12 +00:00
|
|
|
ld a, MUSIC_MEET_PROF_OAK ; "oak appears" music
|
2015-07-03 19:38:12 +00:00
|
|
|
call PlayMusic
|
2023-07-14 01:27:56 +00:00
|
|
|
ld a, SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
|
2017-12-30 00:54:27 +00:00
|
|
|
ld [wJoyIgnore], a
|
2015-07-21 17:36:03 +00:00
|
|
|
SetEvent EVENT_OAK_APPEARED_IN_PALLET
|
2014-05-18 18:19:10 +00:00
|
|
|
|
|
|
|
; trigger the next script
|
2023-07-14 01:27:56 +00:00
|
|
|
ld a, SCRIPT_PALLETTOWN_OAK_HEY_WAIT
|
2017-12-30 00:54:27 +00:00
|
|
|
ld [wPalletTownCurScript], a
|
2014-05-18 18:19:10 +00:00
|
|
|
ret
|
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
PalletTownOakHeyWaitScript:
|
2014-05-18 18:19:10 +00:00
|
|
|
xor a
|
2017-12-30 00:54:27 +00:00
|
|
|
ld [wcf0d], a
|
2023-07-14 01:27:56 +00:00
|
|
|
ld a, TEXT_PALLETTOWN_OAK
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh [hSpriteIndexOrTextID], a
|
2014-05-18 18:19:10 +00:00
|
|
|
call DisplayTextID
|
2023-07-14 01:27:56 +00:00
|
|
|
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
|
2017-12-30 00:54:27 +00:00
|
|
|
ld [wJoyIgnore], a
|
|
|
|
ld a, HS_PALLET_TOWN_OAK
|
|
|
|
ld [wMissableObjectIndex], a
|
2014-06-16 20:57:26 +00:00
|
|
|
predef ShowObject
|
2014-05-18 18:19:10 +00:00
|
|
|
|
|
|
|
; trigger the next script
|
2023-07-14 01:27:56 +00:00
|
|
|
ld a, SCRIPT_PALLETTOWN_OAK_WALKS_TO_PLAYER
|
2017-12-30 00:54:27 +00:00
|
|
|
ld [wPalletTownCurScript], a
|
2014-05-18 18:19:10 +00:00
|
|
|
ret
|
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
PalletTownOakWalksToPlayerScript:
|
|
|
|
ld a, PALLETTOWN_OAK
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh [hSpriteIndex], a
|
2017-12-30 00:54:27 +00:00
|
|
|
ld a, SPRITE_FACING_UP
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh [hSpriteFacingDirection], a
|
2014-09-10 03:55:19 +00:00
|
|
|
call SetSpriteFacingDirectionAndDelay
|
2014-05-18 18:19:10 +00:00
|
|
|
call Delay3
|
2017-12-30 00:54:27 +00:00
|
|
|
ld a, 1
|
|
|
|
ld [wYCoord], a
|
|
|
|
ld a, 1
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh [hNPCPlayerRelativePosPerspective], a
|
2017-12-30 00:54:27 +00:00
|
|
|
ld a, 1
|
2014-05-18 18:19:10 +00:00
|
|
|
swap a
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh [hNPCSpriteOffset], a
|
2014-09-10 03:55:19 +00:00
|
|
|
predef CalcPositionOfPlayerRelativeToNPC
|
2017-12-30 00:54:27 +00:00
|
|
|
ld hl, hNPCPlayerYDistance
|
2014-05-18 18:19:10 +00:00
|
|
|
dec [hl]
|
2020-07-07 01:15:12 +00:00
|
|
|
predef FindPathToPlayer ; load Oak's movement into wNPCMovementDirections2
|
2017-12-30 00:54:27 +00:00
|
|
|
ld de, wNPCMovementDirections2
|
2023-07-14 01:27:56 +00:00
|
|
|
ld a, PALLETTOWN_OAK
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh [hSpriteIndex], a
|
2014-05-18 18:19:10 +00:00
|
|
|
call MoveSprite
|
2023-07-14 01:27:56 +00:00
|
|
|
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
|
2017-12-30 00:54:27 +00:00
|
|
|
ld [wJoyIgnore], a
|
2014-05-18 18:19:10 +00:00
|
|
|
|
|
|
|
; trigger the next script
|
2023-07-14 01:27:56 +00:00
|
|
|
ld a, SCRIPT_PALLETTOWN_OAK_NOT_SAFE_COME_WITH_ME
|
2017-12-30 00:54:27 +00:00
|
|
|
ld [wPalletTownCurScript], a
|
2014-05-18 18:19:10 +00:00
|
|
|
ret
|
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
PalletTownOakNotSafeComeWithMeScript:
|
2017-12-30 00:54:27 +00:00
|
|
|
ld a, [wd730]
|
|
|
|
bit 0, a
|
2014-05-18 18:19:10 +00:00
|
|
|
ret nz
|
2015-07-04 05:44:12 +00:00
|
|
|
xor a ; ld a, SPRITE_FACING_DOWN
|
2020-07-05 21:29:11 +00:00
|
|
|
ld [wSpritePlayerStateData1FacingDirection], a
|
2017-12-30 00:54:27 +00:00
|
|
|
ld a, 1
|
|
|
|
ld [wcf0d], a
|
2023-07-14 01:27:56 +00:00
|
|
|
ld a, SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
|
2017-12-30 00:54:27 +00:00
|
|
|
ld [wJoyIgnore], a
|
2023-07-14 01:27:56 +00:00
|
|
|
ld a, TEXT_PALLETTOWN_OAK
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh [hSpriteIndexOrTextID], a
|
2014-05-18 18:19:10 +00:00
|
|
|
call DisplayTextID
|
2015-07-15 20:58:21 +00:00
|
|
|
; set up movement script that causes the player to follow Oak to his lab
|
2023-07-14 01:27:56 +00:00
|
|
|
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
|
2017-12-30 00:54:27 +00:00
|
|
|
ld [wJoyIgnore], a
|
2023-07-14 01:27:56 +00:00
|
|
|
ld a, PALLETTOWN_OAK
|
2017-12-30 00:54:27 +00:00
|
|
|
ld [wSpriteIndex], a
|
2014-05-18 18:19:10 +00:00
|
|
|
xor a
|
2017-12-30 00:54:27 +00:00
|
|
|
ld [wNPCMovementScriptFunctionNum], a
|
|
|
|
ld a, 1
|
|
|
|
ld [wNPCMovementScriptPointerTableNum], a
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh a, [hLoadedROMBank]
|
2017-12-30 00:54:27 +00:00
|
|
|
ld [wNPCMovementScriptBank], a
|
2014-05-18 18:19:10 +00:00
|
|
|
|
|
|
|
; trigger the next script
|
2023-07-14 01:27:56 +00:00
|
|
|
ld a, SCRIPT_PALLETTOWN_PLAYER_FOLLOWS_OAK
|
2017-12-30 00:54:27 +00:00
|
|
|
ld [wPalletTownCurScript], a
|
2014-05-18 18:19:10 +00:00
|
|
|
ret
|
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
PalletTownPlayerFollowsOakScript:
|
2017-12-30 00:54:27 +00:00
|
|
|
ld a, [wNPCMovementScriptPointerTableNum]
|
2015-07-15 20:58:21 +00:00
|
|
|
and a ; is the movement script over?
|
2014-05-18 18:19:10 +00:00
|
|
|
ret nz
|
|
|
|
|
|
|
|
; trigger the next script
|
2023-07-14 01:27:56 +00:00
|
|
|
ld a, SCRIPT_PALLETTOWN_DAISY
|
2017-12-30 00:54:27 +00:00
|
|
|
ld [wPalletTownCurScript], a
|
2014-05-18 18:19:10 +00:00
|
|
|
ret
|
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
PalletTownDaisyScript:
|
2015-07-21 17:36:03 +00:00
|
|
|
CheckEvent EVENT_DAISY_WALKING
|
2017-12-30 00:54:27 +00:00
|
|
|
jr nz, .next
|
2015-07-21 17:36:03 +00:00
|
|
|
CheckBothEventsSet EVENT_GOT_TOWN_MAP, EVENT_ENTERED_BLUES_HOUSE, 1
|
2017-12-30 00:54:27 +00:00
|
|
|
jr nz, .next
|
2015-07-21 17:36:03 +00:00
|
|
|
SetEvent EVENT_DAISY_WALKING
|
2017-12-30 00:54:27 +00:00
|
|
|
ld a, HS_DAISY_SITTING
|
|
|
|
ld [wMissableObjectIndex], a
|
2014-06-16 20:57:26 +00:00
|
|
|
predef HideObject
|
2017-12-30 00:54:27 +00:00
|
|
|
ld a, HS_DAISY_WALKING
|
|
|
|
ld [wMissableObjectIndex], a
|
2014-06-16 20:57:26 +00:00
|
|
|
predef_jump ShowObject
|
2014-05-18 18:19:10 +00:00
|
|
|
.next
|
2015-07-21 01:32:02 +00:00
|
|
|
CheckEvent EVENT_GOT_POKEBALLS_FROM_OAK
|
2014-05-18 18:19:10 +00:00
|
|
|
ret z
|
2015-07-21 17:36:03 +00:00
|
|
|
SetEvent EVENT_PALLET_AFTER_GETTING_POKEBALLS_2
|
2023-07-14 01:27:56 +00:00
|
|
|
PalletTownNoopScript:
|
2014-05-18 18:19:10 +00:00
|
|
|
ret
|
|
|
|
|
2019-01-01 20:06:23 +00:00
|
|
|
PalletTown_TextPointers:
|
2023-07-14 01:27:56 +00:00
|
|
|
def_text_pointers
|
|
|
|
dw_const PalletTownOakText, TEXT_PALLETTOWN_OAK
|
|
|
|
dw_const PalletTownGirlText, TEXT_PALLETTOWN_GIRL
|
|
|
|
dw_const PalletTownFisherText, TEXT_PALLETTOWN_FISHER
|
|
|
|
dw_const PalletTownOaksLabSignText, TEXT_PALLETTOWN_OAKSLAB_SIGN
|
|
|
|
dw_const PalletTownSignText, TEXT_PALLETTOWN_SIGN
|
|
|
|
dw_const PalletTownPlayersHouseSignText, TEXT_PALLETTOWN_PLAYERSHOUSE_SIGN
|
|
|
|
dw_const PalletTownRivalsHouseSignText, TEXT_PALLETTOWN_RIVALSHOUSE_SIGN
|
|
|
|
|
|
|
|
PalletTownOakText:
|
2020-07-04 21:09:35 +00:00
|
|
|
text_asm
|
2017-12-30 00:54:27 +00:00
|
|
|
ld a, [wcf0d]
|
2014-05-18 18:19:10 +00:00
|
|
|
and a
|
2017-12-30 00:54:27 +00:00
|
|
|
jr nz, .next
|
|
|
|
ld a, 1
|
|
|
|
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
|
2023-07-14 01:27:56 +00:00
|
|
|
ld hl, .HeyWaitDontGoOutText
|
2014-05-18 18:19:10 +00:00
|
|
|
jr .done
|
|
|
|
.next
|
2023-07-14 01:27:56 +00:00
|
|
|
ld hl, .ItsUnsafeText
|
2014-05-18 18:19:10 +00:00
|
|
|
.done
|
|
|
|
call PrintText
|
|
|
|
jp TextScriptEnd
|
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
.HeyWaitDontGoOutText:
|
|
|
|
text_far _PalletTownOakHeyWaitDontGoOutText
|
2020-07-04 21:09:35 +00:00
|
|
|
text_asm
|
2017-12-30 00:54:27 +00:00
|
|
|
ld c, 10
|
2014-05-18 18:19:10 +00:00
|
|
|
call DelayFrames
|
|
|
|
xor a
|
2017-12-30 00:54:27 +00:00
|
|
|
ld [wEmotionBubbleSpriteIndex], a ; player's sprite
|
|
|
|
ld [wWhichEmotionBubble], a ; EXCLAMATION_BUBBLE
|
2015-07-14 21:32:49 +00:00
|
|
|
predef EmotionBubble
|
2017-12-30 00:54:27 +00:00
|
|
|
ld a, PLAYER_DIR_DOWN
|
|
|
|
ld [wPlayerMovingDirection], a
|
2014-05-18 18:19:10 +00:00
|
|
|
jp TextScriptEnd
|
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
.ItsUnsafeText:
|
|
|
|
text_far _PalletTownOakItsUnsafeText
|
2020-07-04 21:09:35 +00:00
|
|
|
text_end
|
2014-05-18 18:19:10 +00:00
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
PalletTownGirlText:
|
|
|
|
text_far _PalletTownGirlText
|
2020-07-04 21:09:35 +00:00
|
|
|
text_end
|
2014-05-18 18:19:10 +00:00
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
PalletTownFisherText:
|
|
|
|
text_far _PalletTownFisherText
|
2020-07-04 21:09:35 +00:00
|
|
|
text_end
|
2014-05-18 18:19:10 +00:00
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
PalletTownOaksLabSignText:
|
|
|
|
text_far _PalletTownOaksLabSignText
|
2020-07-04 21:09:35 +00:00
|
|
|
text_end
|
2014-05-18 18:19:10 +00:00
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
PalletTownSignText:
|
|
|
|
text_far _PalletTownSignText
|
2020-07-04 21:09:35 +00:00
|
|
|
text_end
|
2014-05-18 18:19:10 +00:00
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
PalletTownPlayersHouseSignText:
|
|
|
|
text_far _PalletTownPlayersHouseSignText
|
2020-07-04 21:09:35 +00:00
|
|
|
text_end
|
2014-05-18 18:19:10 +00:00
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
PalletTownRivalsHouseSignText:
|
|
|
|
text_far _PalletTownRivalsHouseSignText
|
2020-07-04 21:09:35 +00:00
|
|
|
text_end
|