tumbledemerald-legacy/data/maps/AbandonedShip_HiddenFloorRooms/scripts.inc
2022-05-19 17:14:13 +00:00

118 lines
3.7 KiB
C++

AbandonedShip_HiddenFloorRooms_MapScripts::
map_script MAP_SCRIPT_ON_FRAME_TABLE, AbandonedShip_HiddenFloorRooms_OnFrame
.byte 0
AbandonedShip_HiddenFloorRooms_OnFrame:
map_script_2 VAR_TEMP_1, 0, AbandonedShip_HiddenFloorRooms_EventScript_DoHiddenItemSparkle
.2byte 0
@ After the below calculation, VAR_TEMP_4 is the room number of the door the player entered
@ Bottom row, left column (Rm 1)
@ Bottom row, middle column (Rm 2)
@ Bottom row, right column (Rm 3)
@ Upper row, left column (Rm 4)
@ Upper row, middle column (Rm 5)
@ Upper row, right column (Rm 6)
AbandonedShip_HiddenFloorRooms_EventScript_DoHiddenItemSparkle::
setvar VAR_TEMP_1, 1
getplayerxy VAR_TEMP_2, VAR_TEMP_3
setvar VAR_TEMP_4, 1
call_if_eq VAR_TEMP_2, 21, AbandonedShip_HiddenFloorRooms_EventScript_InMiddleRoomColumn
call_if_eq VAR_TEMP_2, 36, AbandonedShip_HiddenFloorRooms_EventScript_InRightRoomColumn
call_if_eq VAR_TEMP_3, 2, AbandonedShip_HiddenFloorRooms_EventScript_InUpperRoomRow
switch VAR_TEMP_4
case 1, AbandonedShip_HiddenFloorRooms_EventScript_EnterRm1
case 2, AbandonedShip_HiddenFloorRooms_EventScript_EnterRm2
case 3, AbandonedShip_HiddenFloorRooms_EventScript_EnterRm3
case 4, AbandonedShip_HiddenFloorRooms_EventScript_EnterRm4
case 5, AbandonedShip_HiddenFloorRooms_EventScript_EnterRm5
case 6, AbandonedShip_HiddenFloorRooms_EventScript_EnterRm6
end
AbandonedShip_HiddenFloorRooms_EventScript_InMiddleRoomColumn::
addvar VAR_TEMP_4, 1
return
AbandonedShip_HiddenFloorRooms_EventScript_InRightRoomColumn::
addvar VAR_TEMP_4, 2
return
AbandonedShip_HiddenFloorRooms_EventScript_InUpperRoomRow::
addvar VAR_TEMP_4, 3
return
AbandonedShip_HiddenFloorRooms_EventScript_EnterRm1::
delay 20
dofieldeffectsparkle 10, 10, 0
specialvar VAR_RESULT, FoundAbandonedShipRoom4Key
call_if_eq VAR_RESULT, FALSE, AbandonedShip_HiddenFloorRooms_EventScript_Rm4KeySparkle
waitfieldeffect FLDEFF_SPARKLE
delay 10
end
AbandonedShip_HiddenFloorRooms_EventScript_EnterRm2::
end
AbandonedShip_HiddenFloorRooms_EventScript_EnterRm3::
specialvar VAR_RESULT, FoundAbandonedShipRoom1Key
goto_if_eq VAR_RESULT, TRUE, AbandonedShip_HiddenFloorRooms_EventScript_Rm3NoSparkle
delay 20
call_if_eq VAR_RESULT, FALSE, AbandonedShip_HiddenFloorRooms_EventScript_Rm1KeySparkle
waitfieldeffect FLDEFF_SPARKLE
delay 10
end
AbandonedShip_HiddenFloorRooms_EventScript_Rm3NoSparkle::
end
AbandonedShip_HiddenFloorRooms_EventScript_EnterRm4::
delay 20
dofieldeffectsparkle 8, 5, 0
dofieldeffectsparkle 11, 3, 0
specialvar VAR_RESULT, FoundAbandonedShipRoom6Key
call_if_eq VAR_RESULT, FALSE, AbandonedShip_HiddenFloorRooms_EventScript_Rm6KeySparkle
waitfieldeffect FLDEFF_SPARKLE
delay 10
end
AbandonedShip_HiddenFloorRooms_EventScript_EnterRm5::
delay 20
dofieldeffectsparkle 16, 3, 0
dofieldeffectsparkle 25, 2, 0
dofieldeffectsparkle 24, 6, 0
specialvar VAR_RESULT, FoundAbandonedShipRoom2Key
call_if_eq VAR_RESULT, FALSE, AbandonedShip_HiddenFloorRooms_EventScript_Rm2KeySparkle
waitfieldeffect FLDEFF_SPARKLE
delay 10
end
AbandonedShip_HiddenFloorRooms_EventScript_EnterRm6::
end
AbandonedShip_HiddenFloorRooms_EventScript_Rm1KeySparkle::
dofieldeffectsparkle 42, 10, 0
return
AbandonedShip_HiddenFloorRooms_EventScript_Rm2KeySparkle::
dofieldeffectsparkle 20, 5, 0
return
AbandonedShip_HiddenFloorRooms_EventScript_Rm4KeySparkle::
dofieldeffectsparkle 1, 12, 0
return
AbandonedShip_HiddenFloorRooms_EventScript_Rm6KeySparkle::
dofieldeffectsparkle 1, 2, 0
return
AbandonedShip_HiddenFloorRooms_EventScript_Trash::
lockall
msgbox AbandonedShip_HiddenFloorRooms_Text_BrightShinyTrash, MSGBOX_DEFAULT
releaseall
end
AbandonedShip_HiddenFloorRooms_Text_BrightShinyTrash:
.string "It's bright and shiny!\n"
.string "But it's just trash…$"