pokefirered/data/maps/VermilionCity_Gym/scripts.inc
2022-08-09 20:41:54 -04:00

289 lines
9.2 KiB
C++

.equ FOUND_FIRST_SWITCH, FLAG_TEMP_1
.equ SWITCH1_ID, VAR_0x8004
.equ SWITCH2_ID, VAR_0x8005
.equ TRASH_CAN_ID, VAR_0x8008
VermilionCity_Gym_MapScripts::
map_script MAP_SCRIPT_ON_LOAD, VermilionCity_Gym_OnLoad
map_script MAP_SCRIPT_ON_TRANSITION, VermilionCity_Gym_OnTransition
.byte 0
VermilionCity_Gym_OnLoad::
call_if_set FOUND_FIRST_SWITCH, VermilionCity_Gym_EventScript_SetOneBeamOff
call_if_set FLAG_FOUND_BOTH_VERMILION_GYM_SWITCHES, VermilionCity_Gym_EventScript_SetBeamsOff
end
VermilionCity_Gym_EventScript_SetOneBeamOff::
setmetatile 3, 6, METATILE_VermilionGym_Beam_Node_TopLeft_HalfOn, 1
setmetatile 4, 6, METATILE_VermilionGym_Beam_Node_TopLeft_Edge_HalfOn, 1
setmetatile 5, 6, METATILE_VermilionGym_Beam_MidTop_HalfOn, 1
setmetatile 6, 6, METATILE_VermilionGym_Beam_Node_TopRight_Edge_HalfOn, 1
setmetatile 7, 6, METATILE_VermilionGym_Beam_Node_TopRight_HalfOn, 1
setmetatile 3, 7, METATILE_VermilionGym_Beam_Node_BottomLeft_HalfOn, 1
setmetatile 4, 7, METATILE_VermilionGym_Beam_Node_BottomLeft_Edge_HalfOn, 1
setmetatile 5, 7, METATILE_VermilionGym_Beam_MidBottom_HalfOn, 1
setmetatile 6, 7, METATILE_VermilionGym_Beam_Node_BottomRight_Edge_HalfOn, 1
setmetatile 7, 7, METATILE_VermilionGym_Beam_Node_BottomRight_HalfOn, 1
return
VermilionCity_Gym_EventScript_SetBeamsOff::
setmetatile 3, 6, METATILE_VermilionGym_Beam_Node_TopLeft_Off, 1
setmetatile 4, 6, METATILE_VermilionGym_Beam_Node_TopLeft_Edge_Off, 0
setmetatile 5, 6, METATILE_VermilionGym_Floor, 0
setmetatile 6, 6, METATILE_VermilionGym_Beam_Node_TopRight_Edge_Off, 0
setmetatile 7, 6, METATILE_VermilionGym_Beam_Node_TopRight_Off, 1
setmetatile 3, 7, METATILE_VermilionGym_Beam_Node_BottomLeft_Off, 1
setmetatile 4, 7, METATILE_VermilionGym_Beam_Node_BottomLeft_Edge_Off, 0
setmetatile 5, 7, METATILE_VermilionGym_Floor, 0
setmetatile 6, 7, METATILE_VermilionGym_Beam_Node_BottomRight_Edge_Off, 0
setmetatile 7, 7, METATILE_VermilionGym_Beam_Node_BottomRight_Off, 1
return
VermilionCity_Gym_OnTransition::
call VermilionCity_Gym_EventScript_InitTrashCans
end
VermilionCity_Gym_EventScript_InitTrashCans::
goto_if_set FLAG_FOUND_BOTH_VERMILION_GYM_SWITCHES, EventScript_Return
special SetVermilionTrashCans
copyvar VAR_TEMP_0, SWITCH1_ID
copyvar VAR_TEMP_1, SWITCH2_ID
return
VermilionCity_Gym_EventScript_TrashCan1::
lockall
setvar TRASH_CAN_ID, 1
goto VermilionCity_Gym_EventScript_TrashCan
end
VermilionCity_Gym_EventScript_TrashCan2::
lockall
setvar TRASH_CAN_ID, 2
goto VermilionCity_Gym_EventScript_TrashCan
end
VermilionCity_Gym_EventScript_TrashCan3::
lockall
setvar TRASH_CAN_ID, 3
goto VermilionCity_Gym_EventScript_TrashCan
end
VermilionCity_Gym_EventScript_TrashCan4::
lockall
setvar TRASH_CAN_ID, 4
goto VermilionCity_Gym_EventScript_TrashCan
end
VermilionCity_Gym_EventScript_TrashCan5::
lockall
setvar TRASH_CAN_ID, 5
goto VermilionCity_Gym_EventScript_TrashCan
end
VermilionCity_Gym_EventScript_TrashCan6::
lockall
setvar TRASH_CAN_ID, 6
goto VermilionCity_Gym_EventScript_TrashCan
end
VermilionCity_Gym_EventScript_TrashCan7::
lockall
setvar TRASH_CAN_ID, 7
goto VermilionCity_Gym_EventScript_TrashCan
end
VermilionCity_Gym_EventScript_TrashCan8::
lockall
setvar TRASH_CAN_ID, 8
goto VermilionCity_Gym_EventScript_TrashCan
end
VermilionCity_Gym_EventScript_TrashCan9::
lockall
setvar TRASH_CAN_ID, 9
goto VermilionCity_Gym_EventScript_TrashCan
end
VermilionCity_Gym_EventScript_TrashCan10::
lockall
setvar TRASH_CAN_ID, 10
goto VermilionCity_Gym_EventScript_TrashCan
end
VermilionCity_Gym_EventScript_TrashCan11::
lockall
setvar TRASH_CAN_ID, 11
goto VermilionCity_Gym_EventScript_TrashCan
end
VermilionCity_Gym_EventScript_TrashCan12::
lockall
setvar TRASH_CAN_ID, 12
goto VermilionCity_Gym_EventScript_TrashCan
end
VermilionCity_Gym_EventScript_TrashCan13::
lockall
setvar TRASH_CAN_ID, 13
goto VermilionCity_Gym_EventScript_TrashCan
end
VermilionCity_Gym_EventScript_TrashCan14::
lockall
setvar TRASH_CAN_ID, 14
goto VermilionCity_Gym_EventScript_TrashCan
end
VermilionCity_Gym_EventScript_TrashCan15::
lockall
setvar TRASH_CAN_ID, 15
goto VermilionCity_Gym_EventScript_TrashCan
end
VermilionCity_Gym_EventScript_TrashCan::
goto_if_questlog EventScript_ReleaseEnd
special QuestLog_CutRecording
copyvar SWITCH1_ID, VAR_TEMP_0
copyvar SWITCH2_ID, VAR_TEMP_1
goto_if_set FLAG_FOUND_BOTH_VERMILION_GYM_SWITCHES, VermilionCity_Gym_EventScript_LocksAlreadyOpen
goto_if_set FOUND_FIRST_SWITCH, VermilionCity_Gym_EventScript_TrySwitchTwo
goto_if_eq SWITCH1_ID, TRASH_CAN_ID, VermilionCity_Gym_EventScript_FoundSwitchOne
msgbox VermilionCity_Gym_Text_NopeOnlyTrashHere
releaseall
end
VermilionCity_Gym_EventScript_FoundSwitchOne::
msgbox VermilionCity_Gym_Text_SwitchUnderTrashFirstLockOpened
playse SE_PIN
waitse
call VermilionCity_Gym_EventScript_SetOneBeamOff
special DrawWholeMapView
setflag FOUND_FIRST_SWITCH
releaseall
end
VermilionCity_Gym_EventScript_TrySwitchTwo::
goto_if_eq SWITCH2_ID, TRASH_CAN_ID, VermilionCity_Gym_EventScript_FoundSwitchTwo
msgbox VermilionCity_Gym_Text_OnlyTrashLocksWereReset
clearflag FOUND_FIRST_SWITCH
special SetVermilionTrashCans
copyvar VAR_TEMP_0, SWITCH1_ID
copyvar VAR_TEMP_1, SWITCH2_ID
call VermilionCity_Gym_EventScript_SetBeamsOn
special DrawWholeMapView
releaseall
end
VermilionCity_Gym_EventScript_FoundSwitchTwo::
msgbox VermilionCity_Gym_Text_SecondLockOpened
closemessage
call VermilionCity_Gym_EventScript_SetBeamsOff
special DrawWholeMapView
playse SE_UNLOCK
waitse
setflag FLAG_FOUND_BOTH_VERMILION_GYM_SWITCHES
releaseall
end
VermilionCity_Gym_EventScript_LocksAlreadyOpen::
msgbox VermilionCity_Gym_Text_NopeOnlyTrashHere
releaseall
end
VermilionCity_Gym_EventScript_SetBeamsOn::
setmetatile 3, 6, METATILE_VermilionGym_Beam_Node_TopLeft_On, 1
setmetatile 4, 6, METATILE_VermilionGym_Beam_Node_TopLeft_Edge_On, 1
setmetatile 5, 6, METATILE_VermilionGym_Beam_MidTop, 1
setmetatile 6, 6, METATILE_VermilionGym_Beam_Node_TopRight_Edge_On, 1
setmetatile 7, 6, METATILE_VermilionGym_Beam_Node_TopRight_On, 1
setmetatile 3, 7, METATILE_VermilionGym_Beam_Node_BottomLeft_On, 1
setmetatile 4, 7, METATILE_VermilionGym_Beam_Node_BottomLeft_Edge_On, 1
setmetatile 5, 7, METATILE_VermilionGym_Beam_MidBottom, 1
setmetatile 6, 7, METATILE_VermilionGym_Beam_Node_BottomRight_Edge_On, 1
setmetatile 7, 7, METATILE_VermilionGym_Beam_Node_BottomRight_On, 1
return
VermilionCity_Gym_EventScript_LtSurge::
famechecker FAMECHECKER_LTSURGE, FCPICKSTATE_COLORED, UpdatePickStateFromSpecialVar8005
trainerbattle_single TRAINER_LEADER_LT_SURGE, VermilionCity_Gym_Text_LtSurgeIntro, VermilionCity_Gym_Text_LtSurgeDefeat, VermilionCity_Gym_EventScript_DefeatedLtSurge, NO_MUSIC
goto_if_unset FLAG_GOT_TM34_FROM_SURGE, VermilionCity_Gym_EventScript_GiveTM34
msgbox VermilionCity_Gym_Text_LtSurgePostBattle
release
end
VermilionCity_Gym_EventScript_DefeatedLtSurge::
famechecker FAMECHECKER_LTSURGE, 1
call_if_unset FLAG_GOT_HM05, VermilionCity_Gym_EventScript_ShowOaksAide
clearflag FLAG_HIDE_FAME_CHECKER_LT_SURGE_JOURNAL
setflag FLAG_DEFEATED_LT_SURGE
setflag FLAG_BADGE03_GET
set_gym_trainers 3
goto VermilionCity_Gym_EventScript_GiveTM34
end
VermilionCity_Gym_EventScript_ShowOaksAide::
clearflag FLAG_HIDE_VERMILION_CITY_OAKS_AIDE
return
VermilionCity_Gym_EventScript_GiveTM34::
msgbox VermilionCity_Gym_Text_ExplainThunderBadgeTakeThis
checkitemspace ITEM_TM34
goto_if_eq VAR_RESULT, FALSE, VermilionCity_Gym_EventScript_NoRoomForTM34
giveitem_msg VermilionCity_Gym_Text_ReceivedTM34FromLtSurge, ITEM_TM34
setflag FLAG_GOT_TM34_FROM_SURGE
msgbox VermilionCity_Gym_Text_ExplainTM34
release
end
VermilionCity_Gym_EventScript_NoRoomForTM34::
msgbox VermilionCity_Gym_Text_MakeRoomInYourBag
release
end
VermilionCity_Gym_EventScript_Dwayne::
trainerbattle_single TRAINER_SAILOR_DWAYNE, VermilionCity_Gym_Text_DwayneIntro, VermilionCity_Gym_Text_DwayneDefeat
famechecker FAMECHECKER_LTSURGE, 4
msgbox VermilionCity_Gym_Text_DwaynePostBattle, MSGBOX_AUTOCLOSE
end
VermilionCity_Gym_EventScript_Baily::
trainerbattle_single TRAINER_ENGINEER_BAILY, VermilionCity_Gym_Text_BailyIntro, VermilionCity_Gym_Text_BailyDefeat
msgbox VermilionCity_Gym_Text_BailyPostBattle, MSGBOX_AUTOCLOSE
end
VermilionCity_Gym_EventScript_Tucker::
trainerbattle_single TRAINER_GENTLEMAN_TUCKER, VermilionCity_Gym_Text_TuckerIntro, VermilionCity_Gym_Text_TuckerDefeat, VermilionCity_Gym_EventScript_DefeatedTucker
famechecker FAMECHECKER_LTSURGE, 3
msgbox VermilionCity_Gym_Text_TuckerPostBattle, MSGBOX_AUTOCLOSE
end
VermilionCity_Gym_EventScript_DefeatedTucker::
famechecker FAMECHECKER_LTSURGE, 2
release
end
VermilionCity_Gym_EventScript_GymGuy::
lock
faceplayer
goto_if_set FLAG_DEFEATED_LT_SURGE, VermilionCity_Gym_EventScript_GymGuyPostVictory
msgbox VermilionCity_Gym_Text_GymGuyAdvice
release
end
VermilionCity_Gym_EventScript_GymGuyPostVictory::
msgbox VermilionCity_Gym_Text_GymGuyPostVictory
release
end
VermilionCity_Gym_EventScript_GymStatue::
lockall
goto_if_set FLAG_BADGE03_GET, VermilionCity_Gym_EventScript_GymStatuePostVictory
msgbox VermilionCity_Gym_Text_GymStatue
releaseall
end
VermilionCity_Gym_EventScript_GymStatuePostVictory::
msgbox VermilionCity_Gym_Text_GymStatuePlayerWon
releaseall
end