pokefirered/data/maps/CinnabarIsland/scripts.inc
2022-08-28 16:51:45 +02:00

356 lines
9.6 KiB
C++

.equ LOCALID_BILL, 3
.equ LOCALID_SEAGALLOP, 4
CinnabarIsland_MapScripts::
map_script MAP_SCRIPT_ON_TRANSITION, CinnabarIsland_OnTransition
map_script MAP_SCRIPT_ON_FRAME_TABLE, CinnabarIsland_OnFrame
.byte 0
CinnabarIsland_OnTransition::
setworldmapflag FLAG_WORLD_MAP_CINNABAR_ISLAND
call CinnabarIsland_EventScript_CheckUnlockGym
call_if_eq VAR_MAP_SCENE_CINNABAR_ISLAND, 1, CinnabarIsland_EventScript_ReadyObjectsSailToOneIsland
call_if_eq VAR_MAP_SCENE_CINNABAR_ISLAND, 3, CinnabarIsland_EventScript_ReadyObjectsReturnFromSeviiIslands
call_if_eq VAR_MAP_SCENE_CINNABAR_ISLAND_2, 1, CinnabarIsland_EventScript_ReadyObjectsSailToOneIslandFromPokeCenter
end
CinnabarIsland_EventScript_ReadyObjectsSailToOneIslandFromPokeCenter::
savebgm MUS_FOLLOW_ME
setflag FLAG_TEMP_2
setobjectxyperm LOCALID_BILL, 15, 12
setobjectmovementtype LOCALID_BILL, MOVEMENT_TYPE_FACE_LEFT
setobjectxyperm LOCALID_SEAGALLOP, 30, 12
return
CinnabarIsland_EventScript_ReadyObjectsSailToOneIsland::
getplayerxy VAR_0x8004, VAR_0x8005
goto_if_ge VAR_0x8004, 18, CinnabarIsland_EventScript_MoveSeagallopDown
setflag FLAG_TEMP_2
setobjectxyperm LOCALID_BILL, 18, 12
setobjectmovementtype LOCALID_BILL, MOVEMENT_TYPE_FACE_UP
setobjectxyperm LOCALID_SEAGALLOP, 30, 12
return
CinnabarIsland_EventScript_MoveSeagallopDown::
setobjectxyperm LOCALID_SEAGALLOP, 30, 8
return
CinnabarIsland_EventScript_ReadyObjectsReturnFromSeviiIslands::
setobjectxyperm LOCALID_BILL, 21, 8
setobjectmovementtype LOCALID_BILL, MOVEMENT_TYPE_FACE_UP
return
CinnabarIsland_EventScript_CheckUnlockGym::
goto_if_set FLAG_HIDE_POKEMON_MANSION_B1F_SECRET_KEY, CinnabarIsland_EventScript_UnlockGym
return
CinnabarIsland_EventScript_UnlockGym::
setvar VAR_TEMP_1, 1
return
CinnabarIsland_OnFrame::
map_script_2 VAR_MAP_SCENE_CINNABAR_ISLAND_2, 1, CinnabarIsland_EventScript_ExitPokeCenterForOneIsland
map_script_2 VAR_MAP_SCENE_CINNABAR_ISLAND, 1, CinnabarIsland_EventScript_BillScene
map_script_2 VAR_MAP_SCENE_CINNABAR_ISLAND, 3, CinnabarIsland_EventScript_ReturnFromSeviiIslands
.2byte 0
CinnabarIsland_EventScript_ExitPokeCenterForOneIsland::
lockall
clearflag FLAG_DONT_TRANSITION_MUSIC
savebgm MUS_DUMMY
textcolor NPC_TEXT_COLOR_MALE
setvar VAR_MAP_SCENE_CINNABAR_ISLAND_2, 2
delay 20
call CinnabarIsland_EventScript_SailToOneIsland
releaseall
end
CinnabarIsland_EventScript_ReturnFromSeviiIslands::
lockall
textcolor NPC_TEXT_COLOR_MALE
msgbox CinnabarIsland_Text_IfYouHaveTriPassYouCanGoAgain
closemessage
applymovement LOCALID_BILL, CinnabarIsland_Movement_BillExit
waitmovement 0
removeobject LOCALID_BILL
setvar VAR_MAP_SCENE_CINNABAR_ISLAND, 4
setflag FLAG_HIDE_TWO_ISLAND_GAME_CORNER_LOSTELLE
clearflag FLAG_HIDE_LOSTELLE_IN_HER_HOME
releaseall
end
CinnabarIsland_Movement_BillExit::
walk_down
walk_down
walk_down
walk_down
walk_down
walk_down
step_end
CinnabarIsland_EventScript_BillScene::
lockall
textcolor NPC_TEXT_COLOR_MALE
call_if_unset FLAG_TEMP_2, CinnabarIsland_EventScript_BillFacePlayer1
call_if_set FLAG_TEMP_2, CinnabarIsland_EventScript_BillFacePlayer2
playse SE_PIN
applymovement LOCALID_BILL, Common_Movement_ExclamationMark
waitmovement 0
applymovement LOCALID_BILL, Common_Movement_Delay48
waitmovement 0
call_if_unset FLAG_TEMP_2, CinnabarIsland_EventScript_BillApproachPlayer1
call_if_set FLAG_TEMP_2, CinnabarIsland_EventScript_BillApproachPlayer2
msgbox CinnabarIsland_Text_HeyIfItIsntPlayer
msgbox CinnabarIsland_Text_ComeWithMeToOneIsland, MSGBOX_YESNO
goto_if_eq VAR_RESULT, YES, CinnabarIsland_EventScript_AgreeSailToOneIsland
goto_if_eq VAR_RESULT, NO, CinnabarIsland_EventScript_DeclineSailToOneIsland
end
CinnabarIsland_EventScript_BillFacePlayer1::
applymovement LOCALID_BILL, Common_Movement_WalkInPlaceFasterUp
waitmovement 0
return
CinnabarIsland_EventScript_BillFacePlayer2::
applymovement LOCALID_BILL, Common_Movement_WalkInPlaceFasterLeft
waitmovement 0
return
CinnabarIsland_EventScript_BillApproachPlayer1::
applymovement LOCALID_BILL, CinnabarIsland_Movement_BillApproachPlayer1
waitmovement 0
return
CinnabarIsland_EventScript_BillApproachPlayer2::
applymovement LOCALID_BILL, CinnabarIsland_Movement_BillApproachPlayer2
waitmovement 0
applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight
waitmovement 0
return
CinnabarIsland_EventScript_AgreeSailToOneIsland::
msgbox CinnabarIsland_Text_AllRightLetsGo
closemessage
call CinnabarIsland_EventScript_SailToOneIsland
releaseall
end
CinnabarIsland_EventScript_DeclineSailToOneIsland::
msgbox CinnabarIsland_Text_IllBeWaitingInPokeCenter
closemessage
call_if_unset FLAG_TEMP_2, CinnabarIsland_EventScript_BillExitToPokeCenter
call_if_set FLAG_TEMP_2, CinnabarIsland_EventScript_BillReturnToPokeCenter
removeobject LOCALID_BILL
setvar VAR_MAP_SCENE_CINNABAR_ISLAND, 2
clearflag FLAG_HIDE_CINNABAR_POKECENTER_BILL
releaseall
end
CinnabarIsland_EventScript_BillExitToPokeCenter::
applymovement LOCALID_BILL, CinnabarIsland_Movement_BillExitToPokeCenter
waitmovement 0
return
CinnabarIsland_Movement_BillExitToPokeCenter::
walk_right
walk_down
walk_down
walk_down
walk_down
walk_down
walk_down
step_end
CinnabarIsland_EventScript_BillReturnToPokeCenter::
applymovement OBJ_EVENT_ID_PLAYER, CinnabarIsland_Movement_PlayerWatchBillExit
applymovement LOCALID_BILL, CinnabarIsland_Movement_BillApproachDoor
waitmovement 0
opendoor 14, 11
waitdooranim
applymovement LOCALID_BILL, CinnabarIsland_Movement_BillReEnterPokeCenter
waitmovement 0
closedoor 14, 11
waitdooranim
return
CinnabarIsland_Movement_PlayerWatchBillExit::
walk_left
walk_in_place_faster_right
step_end
CinnabarIsland_Movement_BillApproachDoor::
delay_16
walk_left
walk_in_place_faster_up
step_end
CinnabarIsland_Movement_BillReEnterPokeCenter::
walk_up
delay_4
set_invisible
step_end
@ Can be triggered outside, or after talking to Bill in the poke center
CinnabarIsland_EventScript_SailToOneIsland::
call_if_set FLAG_TEMP_2, CinnabarIsland_EventScript_ApproachShore
addobject LOCALID_SEAGALLOP
call_if_unset FLAG_TEMP_2, CinnabarIsland_EventScript_BoatArrive
call_if_set FLAG_TEMP_2, CinnabarIsland_EventScript_BoatArriveExitedPokeCenter
msgbox CinnabarIsland_Text_MyPalsBoatArrived
closemessage
call_if_unset FLAG_TEMP_2, CinnabarIsland_EventScript_BoardBoat
call_if_set FLAG_TEMP_2, CinnabarIsland_EventScript_BoardBoatExitedPokeCenter
setvar VAR_MAP_SCENE_CINNABAR_ISLAND, 2
removeobject LOCALID_BILL
delay 40
setflag FLAG_HIDE_CINNABAR_SEAGALLOP
setvar VAR_MAP_SCENE_ONE_ISLAND_HARBOR, 1
setvar VAR_0x8004, SEAGALLOP_CINNABAR_ISLAND
setvar VAR_0x8006, SEAGALLOP_ONE_ISLAND
goto EventScript_SetSail
end
CinnabarIsland_EventScript_ApproachShore::
applymovement LOCALID_BILL, CinnabarIsland_Movement_ApproachShore
applymovement OBJ_EVENT_ID_PLAYER, CinnabarIsland_Movement_ApproachShore
waitmovement 0
return
CinnabarIsland_EventScript_BoatArrive::
applymovement LOCALID_BILL, CinnabarIsland_Movement_BillFaceBoat
applymovement LOCALID_SEAGALLOP, CinnabarIsland_Movement_BoatArrive
waitmovement 0
return
CinnabarIsland_EventScript_BoatArriveExitedPokeCenter::
applymovement LOCALID_SEAGALLOP, CinnabarIsland_Movement_BoatArrive
waitmovement 0
return
CinnabarIsland_EventScript_BoardBoat::
applymovement LOCALID_BILL, CinnabarIsland_Movement_BillBoardBoat
applymovement OBJ_EVENT_ID_PLAYER, CinnabarIsland_Movement_PlayerBoardBoat
waitmovement 0
return
CinnabarIsland_EventScript_BoardBoatExitedPokeCenter::
applymovement LOCALID_BILL, CinnabarIsland_Movement_BillBoardBoatFromShore
applymovement OBJ_EVENT_ID_PLAYER, CinnabarIsland_Movement_PlayerBoardBoatFromShore
waitmovement 0
return
CinnabarIsland_Movement_BoatArrive::
delay_16
delay_16
walk_fast_left
walk_fast_left
walk_left
walk_slower_left
walk_slower_left
step_end
CinnabarIsland_Movement_BillBoardBoat::
walk_right
walk_down
walk_down
walk_right
delay_4
set_invisible
step_end
CinnabarIsland_Movement_BillApproachPlayer1::
walk_up
step_end
CinnabarIsland_Movement_BillApproachPlayer2::
walk_left
walk_left
walk_left
step_end
CinnabarIsland_Movement_BillFaceBoat::
delay_16
delay_16
delay_8
walk_in_place_faster_right
step_end
CinnabarIsland_Movement_ApproachShore::
walk_right
walk_right
walk_right
walk_right
walk_right
walk_right
step_end
CinnabarIsland_Movement_BillBoardBoatFromShore::
walk_right
delay_4
set_invisible
step_end
CinnabarIsland_Movement_PlayerBoardBoat::
walk_down
walk_right
walk_down
walk_down
walk_in_place_faster_right
delay_4
walk_right
delay_4
set_invisible
step_end
CinnabarIsland_Movement_PlayerBoardBoatFromShore::
walk_right
delay_4
walk_right
delay_4
set_invisible
step_end
@ Triggered when VAR_TEMP_1 is 0
CinnabarIsland_EventScript_GymDoorLocked::
lockall
applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp
waitmovement 0
delay 20
msgbox CinnabarIsland_Text_DoorIsLocked
closemessage
applymovement OBJ_EVENT_ID_PLAYER, CinnabarIsland_Movement_ForcePlayerFromDoor
waitmovement 0
releaseall
end
CinnabarIsland_Movement_ForcePlayerFromDoor::
walk_down
step_end
CinnabarIsland_EventScript_Woman::
lock
faceplayer
famechecker FAMECHECKER_BLAINE, 3
msgbox CinnabarIsland_Text_BlaineLivedHereSinceBeforeLab
release
end
CinnabarIsland_EventScript_OldMan::
msgbox CinnabarIsland_Text_ScientistsExperimentInMansion, MSGBOX_NPC
end
CinnabarIsland_EventScript_IslandSign::
msgbox CinnabarIsland_Text_IslandSign, MSGBOX_SIGN
end
CinnabarIsland_EventScript_PokemonLabSign::
msgbox CinnabarIsland_Text_PokemonLab, MSGBOX_SIGN
end
CinnabarIsland_EventScript_GymSign::
lockall
famechecker FAMECHECKER_BLAINE, 0
msgbox CinnabarIsland_Text_GymSign
releaseall
end