pokefirered/data/maps/PalletTown/scripts.inc
2020-02-25 15:46:07 -05:00

466 lines
11 KiB
C++

.equ LOCALID_SIGN_LADY, 1
.equ LOCALID_PROF_OAK, 3
.equ SIGN_LADY_READY, VAR_TEMP_2
PalletTown_MapScripts:: @ 816545A
map_script MAP_SCRIPT_ON_TRANSITION, PalletTown_OnTransition
map_script MAP_SCRIPT_ON_FRAME_TABLE, PalletTown_OnFrame
.byte 0
PalletTown_OnTransition:: @ 8165465
setworldmapflag FLAG_WORLD_MAP_PALLET_TOWN
call_if_set FLAG_PALLET_LADY_NOT_BLOCKING_SIGN, PalletTown_EventScript_TryReadySignLady
compare VAR_MAP_SCENE_PALLET_TOWN_SIGN_LADY, 0
call_if_eq PalletTown_EventScript_SetSignLadyPos
compare VAR_MAP_SCENE_PALLET_TOWN_SIGN_LADY, 1
call_if_eq PalletTown_EventScript_SetSignLadyDone
end
PalletTown_EventScript_TryReadySignLady:: @ 8165488
goto_if_unset FLAG_PALLET_TOWN_LADY_MOVED_FROM_SIGN, EventScript_Return
compare VAR_MAP_SCENE_PALLET_TOWN_SIGN_LADY, 1
goto_if_ge EventScript_Return
setvar VAR_MAP_SCENE_PALLET_TOWN_SIGN_LADY, 1
return
PalletTown_EventScript_SetSignLadyDone:: @ 81654A2
setvar VAR_MAP_SCENE_PALLET_TOWN_SIGN_LADY, 2
return
PalletTown_EventScript_SetSignLadyPos:: @ 81654A8
goto_if_set FLAG_PALLET_LADY_NOT_BLOCKING_SIGN, PalletTown_EventScript_MoveSignLadyToRouteEntrance
setobjectxyperm LOCALID_SIGN_LADY, 5, 15
setobjectmovementtype LOCALID_SIGN_LADY, MOVEMENT_TYPE_FACE_UP
return
PalletTown_EventScript_MoveSignLadyToRouteEntrance:: @ 81654BD
setobjectxyperm LOCALID_SIGN_LADY, 12, 2
setobjectmovementtype LOCALID_SIGN_LADY, MOVEMENT_TYPE_FACE_DOWN
setvar SIGN_LADY_READY, TRUE
return
PalletTown_OnFrame:: @ 81654CE
map_script_2 VAR_MAP_SCENE_PALLET_TOWN_OAK, 2, PalletTown_EventScript_OakRatingScene
.2byte 0
@ Oak approaches player after exiting their house post Elite Four to check if they should receieve the National Dex
PalletTown_EventScript_OakRatingScene:: @ 81654D8
lockall
textcolor 0
setobjectxyperm LOCALID_PROF_OAK, 14, 14
setobjectmovementtype LOCALID_PROF_OAK, MOVEMENT_TYPE_FACE_LEFT
addobject LOCALID_PROF_OAK
applymovement LOCALID_PROF_OAK, PalletTown_Movement_OakWalkToPlayersDoor
waitmovement 0
goto_if_unset FLAG_WORLD_MAP_ONE_ISLAND, PalletTown_EventScript_NotBeenToOneIslandYet
msgbox PalletTown_Text_OakLetMeSeePokedex
setvar VAR_0x8004, 0
specialvar VAR_RESULT, Special_GetPokedexCount
copyvar VAR_0x8008, VAR_0x8005
copyvar VAR_0x8009, VAR_0x8006
getnumberstring 0, VAR_0x8008
getnumberstring 1, VAR_0x8009
compare VAR_0x8009, 60
goto_if_lt PalletTown_EventScript_NotEnoughMonsForNationalDex
msgbox PalletTown_Text_CaughtXImpressiveFollowMe
closemessage
playbgm MUS_ANNAI, 0
applymovement OBJ_EVENT_ID_PLAYER, PalletTown_Movement_PlayerWalkToLabFromHouse
applymovement LOCALID_PROF_OAK, PalletTown_Movement_OakWalkToLabFromHouse
waitmovement 0
opendoor 16, 13
waitdooranim
applymovement LOCALID_PROF_OAK, PalletTown_Movement_OakEnterLab
applymovement OBJ_EVENT_ID_PLAYER, PalletTown_Movement_PlayerEnterLab
waitmovement 0
closedoor 16, 13
waitdooranim
setvar VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 7
setvar VAR_MAP_SCENE_PALLET_TOWN_OAK, 3
setflag FLAG_HIDE_OAK_IN_PALLET_TOWN
warp MAP_PALLET_TOWN_PROFESSOR_OAKS_LAB, 255, 6, 12
waitstate
releaseall
end
PalletTown_EventScript_EndOakRatingScene:: @ 816557E
closemessage
applymovement LOCALID_PROF_OAK, PalletTown_Movement_OakExit
waitmovement 0
removeobject LOCALID_PROF_OAK
setvar VAR_MAP_SCENE_PALLET_TOWN_OAK, 3
releaseall
end
PalletTown_EventScript_NotEnoughMonsForNationalDex:: @ 8165593
msgbox PalletTown_Text_CaughtXPuttingInHonestEffort
goto PalletTown_EventScript_EndOakRatingScene
end
PalletTown_EventScript_NotBeenToOneIslandYet:: @ 81655A1
msgbox PalletTown_Text_OakYouEnjoyingTraveling
goto PalletTown_EventScript_EndOakRatingScene
end
PalletTown_Movement_OakWalkToPlayersDoor:: @ 81655AF
walk_left
walk_left
walk_left
walk_up
walk_up
walk_up
walk_up
walk_up
walk_left
walk_left
walk_left
walk_left
walk_left
walk_in_place_fastest_up
step_end
PalletTown_Movement_OakExit:: @ 81655BE
walk_right
walk_right
walk_right
walk_right
walk_right
walk_down
walk_down
walk_down
walk_down
walk_down
walk_right
walk_right
walk_right
step_end
PalletTown_Movement_OakWalkToLabFromHouse:: @ 81655CC
walk_right
walk_right
walk_right
walk_right
walk_right
walk_down
walk_down
walk_down
walk_down
walk_down
walk_right
walk_right
walk_right
walk_right
walk_right
walk_in_place_fastest_up
step_end
PalletTown_Movement_PlayerWalkToLabFromHouse:: @ 81655DD
walk_down
walk_right
walk_right
walk_right
walk_right
walk_right
walk_down
walk_down
walk_down
walk_down
walk_down
walk_right
walk_right
walk_right
walk_right
step_end
PalletTown_EventScript_OakTriggerLeft:: @ 81655ED
lockall
setvar VAR_TEMP_1, 0
goto PalletTown_EventScript_OakTrigger
end
PalletTown_EventScript_OakTriggerRight:: @ 81655F9
lockall
setvar VAR_TEMP_1, 1
goto PalletTown_EventScript_OakTrigger
end
PalletTown_EventScript_OakTrigger:: @ 8165605
famechecker FAMECHECKER_OAK, FCPICKSTATE_COLORED, UpdatePickStateFromSpecialVar8005
textcolor 0
delay 30
playbgm MUS_OHKIDO, 0
message PalletTown_Text_OakDontGoOut
waitmessage
delay 85
closemessage
applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestDown
waitmovement 0
playse SE_PIN
applymovement OBJ_EVENT_ID_PLAYER, Movement_ExclamationMark
waitmovement 0
delay 30
addobject LOCALID_PROF_OAK
compare VAR_TEMP_1, 0
call_if_eq PalletTown_EventScript_OakEnterLeft
compare VAR_TEMP_1, 1
call_if_eq PalletTown_EventScript_OakEnterRight
delay 30
msgbox PalletTown_Text_OakGrassUnsafeNeedMon
closemessage
delay 30
compare VAR_TEMP_1, 0
call_if_eq PalletTown_EventScript_OakLeadPlayerToLabLeft
compare VAR_TEMP_1, 1
call_if_eq PalletTown_EventScript_OakLeadPlayerToLabRight
opendoor 16, 13
waitdooranim
applymovement LOCALID_PROF_OAK, PalletTown_Movement_OakEnterLab
applymovement OBJ_EVENT_ID_PLAYER, PalletTown_Movement_PlayerEnterLab
waitmovement 0
closedoor 16, 13
waitdooranim
setvar VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 1
clearflag FLAG_HIDE_OAK_IN_HIS_LAB
setvar VAR_MAP_SCENE_PALLET_TOWN_OAK, 1
setflag FLAG_HIDE_OAK_IN_PALLET_TOWN
setflag FLAG_SPECIAL_FLAG_0x4001
warp MAP_PALLET_TOWN_PROFESSOR_OAKS_LAB, 255, 6, 12
waitstate
releaseall
end
PalletTown_EventScript_OakEnterLeft:: @ 81656B8
applymovement LOCALID_PROF_OAK, PalletTown_Movement_OakEnterLeft
waitmovement 0
return
PalletTown_EventScript_OakEnterRight:: @ 81656C3
applymovement LOCALID_PROF_OAK, PalletTown_Movement_OakEnterRight
waitmovement 0
return
PalletTown_EventScript_OakLeadPlayerToLabLeft:: @ 81656CE
applymovement LOCALID_PROF_OAK, PalletTown_Movement_OakWalkToLabLeft
applymovement OBJ_EVENT_ID_PLAYER, PalletTown_Movement_PlayerWalkToLabLeft
waitmovement 0
return
PalletTown_EventScript_OakLeadPlayerToLabRight:: @ 81656E0
applymovement LOCALID_PROF_OAK, PalletTown_Movement_OakWalkToLabRight
applymovement OBJ_EVENT_ID_PLAYER, PalletTown_Movement_PlayerWalkToLabRight
waitmovement 0
return
PalletTown_Movement_OakEnterLeft:: @ 81656F2
walk_up
walk_up
walk_right
walk_up
walk_up
walk_right
walk_up
walk_up
step_end
PalletTown_Movement_OakEnterRight:: @ 81656FB
walk_right
walk_up
walk_up
walk_right
walk_up
walk_up
walk_right
walk_up
walk_up
step_end
.macro walk_to_lab
walk_left
walk_down
walk_down
walk_down
walk_down
walk_down
walk_down
walk_down
walk_down
walk_down
walk_down
walk_down
walk_right
walk_right
walk_right
walk_right
.endm
PalletTown_Movement_OakWalkToLabLeft:: @ 8165705
walk_down
walk_to_lab
walk_right
walk_in_place_fastest_up
step_end
PalletTown_Movement_OakWalkToLabRight:: @ 8165719
walk_down
walk_left
walk_to_lab
walk_right
walk_in_place_fastest_up
step_end
PalletTown_Movement_OakEnterLab:: @ 816572E
walk_up
set_invisible
step_end
PalletTown_Movement_PlayerWalkToLabLeft:: @ 8165731
walk_down
walk_down
walk_to_lab
step_end
PalletTown_Movement_PlayerWalkToLabRight:: @ 8165744
walk_down
walk_down
walk_left
walk_to_lab
step_end
PalletTown_Movement_PlayerEnterLab:: @ 8165758
walk_right
walk_up
set_invisible
step_end
PalletTown_EventScript_SignLady:: @ 816575C
lock
compare VAR_MAP_SCENE_PALLET_TOWN_SIGN_LADY, 2
goto_if_eq PalletTown_EventScript_SignLadyDone
compare VAR_MAP_SCENE_PALLET_TOWN_SIGN_LADY, 1
goto_if_eq PalletTown_EventScript_SignLadyJustShowedSign
compare SIGN_LADY_READY, TRUE
goto_if_eq PalletTown_EventScript_SignLadyStartShowSign
goto_if_set FLAG_TEMP_2, PalletTown_EventScript_SignLadyGoReadSign
msgbox PalletTown_Text_HmmIsThatRight
applymovement LOCALID_SIGN_LADY, Movement_FacePlayer
waitmovement 0
playse SE_PIN
applymovement LOCALID_SIGN_LADY, Movement_ExclamationMark
waitmovement 0
applymovement LOCALID_SIGN_LADY, Movement_Delay48
waitmovement 0
msgbox PalletTown_Text_OhLookLook
closemessage
compare VAR_FACING, DIR_EAST
call_if_eq PalletTown_EventScript_SignLadyMoveOutOfWayRight
compare VAR_FACING, DIR_EAST
call_if_ne PalletTown_EventScript_SignLadyMoveOutOfWayLeft
moveobjectoffscreen 1
setflag FLAG_TEMP_2
release
end
PalletTown_EventScript_SignLadyMoveOutOfWayRight:: @ 81657D7
applymovement LOCALID_SIGN_LADY, PalletTown_Movement_SignLadyMoveOutOfWayRight
waitmovement 0
return
PalletTown_EventScript_SignLadyMoveOutOfWayLeft:: @ 81657E2
applymovement LOCALID_SIGN_LADY, PalletTown_Movement_SignLadyMoveOutOfWayLeft
waitmovement 0
return
PalletTown_EventScript_SignLadyDone:: @ 81657ED
applymovement LOCALID_SIGN_LADY, Movement_FacePlayer
waitmovement 0
msgbox PalletTown_Text_RaisingMonsToo
release
end
PalletTown_EventScript_SignLadyGoReadSign:: @ 8165801
applymovement LOCALID_SIGN_LADY, Movement_FacePlayer
waitmovement 0
msgbox PalletTown_Text_ReadItReadIt
release
end
PalletTown_EventScript_SignLadyJustShowedSign:: @ 8165815
applymovement LOCALID_SIGN_LADY, Movement_FacePlayer
waitmovement 0
msgbox PalletTown_Text_SignsAreUsefulArentThey
release
end
PalletTown_Movement_SignLadyMoveOutOfWayRight:: @ 8165829
walk_right
walk_in_place_fastest_left
step_end
PalletTown_Movement_SignLadyMoveOutOfWayLeft:: @ 816582C
walk_left
walk_in_place_fastest_right
step_end
PalletTown_EventScript_FatMan:: @ 816582F
msgbox PalletTown_Text_CanStoreItemsAndMonsInPC, MSGBOX_NPC
end
PalletTown_EventScript_OaksLabSign:: @ 8165838
lockall
famechecker FAMECHECKER_OAK, 0
msgbox PalletTown_Text_OakPokemonResearchLab
releaseall
end
PalletTown_EventScript_PlayersHouseSign:: @ 8165850
msgbox PalletTown_Text_PlayersHouse, MSGBOX_SIGN
end
PalletTown_EventScript_RivalsHouseSign:: @ 8165859
msgbox PalletTown_Text_RivalsHouse, MSGBOX_SIGN
end
PalletTown_EventScript_TownSign:: @ 8165862
msgbox PalletTown_Text_TownSign, MSGBOX_SIGN
end
PalletTown_EventScript_TrainerTips:: @ 816586B
lockall
msgbox PalletTown_Text_PressStartToOpenMenu
setvar VAR_MAP_SCENE_PALLET_TOWN_SIGN_LADY, 1
releaseall
end
PalletTown_EventScript_SignLadyTrigger:: @ 816587B
lockall
applymovement LOCALID_SIGN_LADY, Movement_WalkInPlaceFastestRight
applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestLeft
waitmovement 0
call PalletTown_EventScript_SignLadyShowSign
releaseall
end
PalletTown_EventScript_SignLadyShowSign:: @ 8165894
textcolor 1
msgbox PalletTown_Text_LookCopiedTrainerTipsSign
closemessage
delay 20
textcolor 3
setflag FLAG_PALLET_TOWN_LADY_MOVED_FROM_SIGN
setvar VAR_MAP_SCENE_PALLET_TOWN_SIGN_LADY, 1
setvar SIGN_LADY_READY, FALSE
special sub_80699E0
special sub_80699BC
signmsg
msgbox PalletTown_Text_PressStartToOpenMenuCopy
normalmsg
return
PalletTown_EventScript_SignLadyStartShowSign:: @ 81658C2
applymovement LOCALID_SIGN_LADY, Movement_FacePlayer
waitmovement 0
call PalletTown_EventScript_SignLadyShowSign
release
end