pokeemerald/data/maps/FarawayIsland_Interior/scripts.inc

206 lines
6.0 KiB
C++

@ Note: LOCALID_FARAWAY_ISLAND_MEW is a local id for this map used elsewhere. It's defined in event_objects.h
FarawayIsland_Interior_MapScripts::
map_script MAP_SCRIPT_ON_RESUME, FarawayIsland_Interior_OnResume
map_script MAP_SCRIPT_ON_TRANSITION, FarawayIsland_Interior_OnTransition
map_script MAP_SCRIPT_ON_FRAME_TABLE, FarawayIsland_Interior_OnFrame
map_script MAP_SCRIPT_ON_RETURN_TO_FIELD, FarawayIsland_Interior_OnReturnToField
.byte 0
FarawayIsland_Interior_OnReturnToField:
call_if_set FLAG_SYS_CTRL_OBJ_DELETE, FarawayIsland_Interior_EventScript_TrySetMewAboveGrass
end
FarawayIsland_Interior_EventScript_TrySetMewAboveGrass::
specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, B_OUTCOME_WON
goto_if_eq FarawayIsland_Interior_EventScript_SetMewAboveGrass
compare VAR_RESULT, B_OUTCOME_RAN
goto_if_eq FarawayIsland_Interior_EventScript_SetMewAboveGrass
compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED
goto_if_eq FarawayIsland_Interior_EventScript_SetMewAboveGrass
compare VAR_RESULT, B_OUTCOME_MON_TELEPORTED
goto_if_eq FarawayIsland_Interior_EventScript_SetMewAboveGrass
return
FarawayIsland_Interior_EventScript_SetMewAboveGrass::
setvar VAR_0x8004, 1
special SetMewAboveGrass
return
FarawayIsland_Interior_OnResume:
call_if_set FLAG_SYS_CTRL_OBJ_DELETE, FarawayIsland_Interior_EventScript_TryRemoveMew
end
FarawayIsland_Interior_EventScript_TryRemoveMew::
specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, B_OUTCOME_CAUGHT
goto_if_ne Common_EventScript_NopReturn
removeobject VAR_LAST_TALKED
return
FarawayIsland_Interior_OnTransition:
setvar VAR_FARAWAY_ISLAND_STEP_COUNTER, 0
setvar VAR_TEMP_1, 1
call_if_unset FLAG_CAUGHT_MEW, FarawayIsland_Interior_EventScript_TryShowMew
end
FarawayIsland_Interior_EventScript_TryShowMew::
goto_if_set FLAG_DEFEATED_MEW, Common_EventScript_NopReturn
clearflag FLAG_HIDE_MEW
setvar VAR_TEMP_1, 0
return
FarawayIsland_Interior_OnFrame:
map_script_2 VAR_TEMP_1, 0, FarawayIsland_Interior_EventScript_FindMew
.2byte 0
FarawayIsland_Interior_EventScript_FindMew::
lockall
playse SE_PIN
applymovement LOCALID_FARAWAY_ISLAND_MEW, Common_Movement_ExclamationMark
waitmovement 0
applymovement LOCALID_FARAWAY_ISLAND_MEW, Common_Movement_Delay48
waitmovement 0
applymovement LOCALID_FARAWAY_ISLAND_MEW, FarawayIsland_Interior_Movement_MewMoveAndHide
waitmovement 0
copyobjectxytoperm LOCALID_FARAWAY_ISLAND_MEW
setvar VAR_TEMP_1, 1
releaseall
end
FarawayIsland_Interior_Movement_MewMoveAndHide:
walk_up
walk_up
walk_up
walk_in_place_faster_down
set_invisible
step_end
FarawayIsland_Interior_Movement_MewAppear:
set_visible
step_end
FarawayIsland_Interior_Movement_MewFloatUpNorth:
lock_facing_direction
walk_fast_up
walk_fast_up
unlock_facing_direction
walk_in_place_down
walk_in_place_down
step_end
FarawayIsland_Interior_Movement_MewFloatUpSouth:
lock_facing_direction
walk_fast_up
walk_fast_up
unlock_facing_direction
walk_in_place_up
walk_in_place_up
step_end
FarawayIsland_Interior_Movement_MewFloatUpWest:
lock_facing_direction
walk_fast_up
walk_fast_up
unlock_facing_direction
walk_in_place_right
walk_in_place_right
step_end
FarawayIsland_Interior_Movement_MewFloatUpEast:
lock_facing_direction
walk_fast_up
walk_fast_up
unlock_facing_direction
walk_in_place_left
walk_in_place_left
step_end
FarawayIsland_Interior_EventScript_Mew::
lock
faceplayer
applymovement LOCALID_FARAWAY_ISLAND_MEW, FarawayIsland_Interior_Movement_MewAppear
waitmovement 0
setvar VAR_0x8004, 0
special SetMewAboveGrass
message FarawayIsland_Interior_Text_Mew
waitse
playmoncry SPECIES_MEW, 2
compare VAR_FACING, DIR_NORTH
call_if_eq FarawayIsland_Interior_EventScript_FoundMewNorth
compare VAR_FACING, DIR_SOUTH
call_if_eq FarawayIsland_Interior_EventScript_FoundMewSouth
compare VAR_FACING, DIR_WEST
call_if_eq FarawayIsland_Interior_EventScript_FoundMewWest
compare VAR_FACING, DIR_EAST
call_if_eq FarawayIsland_Interior_EventScript_FoundMewEast
special DestroyMewEmergingGrassSprite
delay 40
waitmoncry
setvar VAR_0x8004, SPECIES_MEW
setvar VAR_0x8005, 30 @ level
setvar VAR_0x8006, ITEM_NONE
special CreateEventLegalEnemyMon
setflag FLAG_SYS_CTRL_OBJ_DELETE
special BattleSetup_StartLegendaryBattle
waitstate
clearflag FLAG_SYS_CTRL_OBJ_DELETE
specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, B_OUTCOME_WON
goto_if_eq FarawayIsland_Interior_EventScript_MewDefeated
compare VAR_RESULT, B_OUTCOME_RAN
goto_if_eq FarawayIsland_Interior_EventScript_PlayerOrMewRan
compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED
goto_if_eq FarawayIsland_Interior_EventScript_PlayerOrMewRan
compare VAR_RESULT, B_OUTCOME_MON_TELEPORTED
goto_if_eq FarawayIsland_Interior_EventScript_PlayerOrMewRan
setflag FLAG_CAUGHT_MEW
release
end
FarawayIsland_Interior_EventScript_MewDefeated::
setflag FLAG_DEFEATED_MEW
setvar VAR_0x8004, SPECIES_MEW
goto Common_EventScript_LegendaryFlewAway
end
FarawayIsland_Interior_EventScript_PlayerOrMewRan::
setvar VAR_0x8004, SPECIES_MEW
goto Common_EventScript_LegendaryFlewAway
end
FarawayIsland_Interior_EventScript_FoundMewNorth::
applymovement LOCALID_FARAWAY_ISLAND_MEW, FarawayIsland_Interior_Movement_MewFloatUpNorth
waitmovement 0
return
FarawayIsland_Interior_EventScript_FoundMewSouth::
applymovement LOCALID_FARAWAY_ISLAND_MEW, FarawayIsland_Interior_Movement_MewFloatUpSouth
waitmovement 0
return
FarawayIsland_Interior_EventScript_FoundMewWest::
applymovement LOCALID_FARAWAY_ISLAND_MEW, FarawayIsland_Interior_Movement_MewFloatUpWest
waitmovement 0
return
FarawayIsland_Interior_EventScript_FoundMewEast::
applymovement LOCALID_FARAWAY_ISLAND_MEW, FarawayIsland_Interior_Movement_MewFloatUpEast
waitmovement 0
return
FarawayIsland_Interior_EventScript_HideMewWhenGrassCut::
lockall
fadescreenswapbuffers FADE_TO_BLACK
setflag FLAG_HIDE_MEW
removeobject LOCALID_FARAWAY_ISLAND_MEW
fadescreenswapbuffers FADE_FROM_BLACK
msgbox FarawayIsland_Interior_Text_TheFeelingOfBeingWatchedFaded, MSGBOX_DEFAULT
closemessage
releaseall
end
FarawayIsland_Interior_Text_TheFeelingOfBeingWatchedFaded:
.string "The feeling of being watched faded…$"