2019-01-01 20:06:23 +00:00
|
|
|
LoreleisRoom_Script:
|
2015-12-19 03:14:42 +00:00
|
|
|
call LoreleiShowOrHideExitBlock
|
2014-05-18 18:19:10 +00:00
|
|
|
call EnableAutoTextBoxDrawing
|
2021-04-13 22:24:37 +00:00
|
|
|
ld hl, LoreleisRoomTrainerHeaders
|
2019-01-01 20:06:23 +00:00
|
|
|
ld de, LoreleisRoom_ScriptPointers
|
|
|
|
ld a, [wLoreleisRoomCurScript]
|
2014-05-18 18:19:10 +00:00
|
|
|
call ExecuteCurMapScriptInTable
|
2019-01-01 20:06:23 +00:00
|
|
|
ld [wLoreleisRoomCurScript], a
|
2014-05-18 18:19:10 +00:00
|
|
|
ret
|
|
|
|
|
2016-06-12 00:24:04 +00:00
|
|
|
LoreleiShowOrHideExitBlock:
|
2015-12-19 03:14:42 +00:00
|
|
|
; Blocks or clears the exit to the next room.
|
2016-01-03 19:17:10 +00:00
|
|
|
ld hl, wCurrentMapScriptFlags
|
2014-05-18 18:19:10 +00:00
|
|
|
bit 5, [hl]
|
|
|
|
res 5, [hl]
|
|
|
|
ret z
|
2015-07-21 21:21:14 +00:00
|
|
|
ld hl, wBeatLorelei
|
2014-05-18 18:19:10 +00:00
|
|
|
set 1, [hl]
|
2015-07-21 01:32:02 +00:00
|
|
|
CheckEvent EVENT_BEAT_LORELEIS_ROOM_TRAINER_0
|
2015-12-19 03:14:42 +00:00
|
|
|
jr z, .blockExitToNextRoom
|
2014-05-18 18:19:10 +00:00
|
|
|
ld a, $5
|
2015-12-19 03:14:42 +00:00
|
|
|
jr .setExitBlock
|
|
|
|
.blockExitToNextRoom
|
2014-05-18 18:19:10 +00:00
|
|
|
ld a, $24
|
2015-12-19 03:14:42 +00:00
|
|
|
.setExitBlock
|
2015-07-24 21:39:45 +00:00
|
|
|
ld [wNewTileBlockID], a
|
2015-08-05 21:20:29 +00:00
|
|
|
lb bc, 0, 2
|
2014-09-14 18:29:18 +00:00
|
|
|
predef_jump ReplaceTileBlock
|
2014-05-18 18:19:10 +00:00
|
|
|
|
2016-06-12 00:24:04 +00:00
|
|
|
ResetLoreleiScript:
|
2023-07-14 01:27:56 +00:00
|
|
|
xor a ; SCRIPT_LORELEISROOM_DEFAULT
|
2019-01-01 20:06:23 +00:00
|
|
|
ld [wLoreleisRoomCurScript], a
|
2014-05-18 18:19:10 +00:00
|
|
|
ret
|
|
|
|
|
2019-01-01 20:06:23 +00:00
|
|
|
LoreleisRoom_ScriptPointers:
|
2023-07-14 01:27:56 +00:00
|
|
|
def_script_pointers
|
|
|
|
dw_const LoreleisRoomDefaultScript, SCRIPT_LORELEISROOM_DEFAULT
|
|
|
|
dw_const DisplayEnemyTrainerTextAndStartBattle, SCRIPT_LORELEISROOM_LORELEI_START_BATTLE
|
|
|
|
dw_const LoreleisRoomLoreleiEndBattleScript, SCRIPT_LORELEISROOM_LORELEI_END_BATTLE
|
|
|
|
dw_const LoreleisRoomPlayerIsMovingScript, SCRIPT_LORELEISROOM_PLAYER_IS_MOVING
|
|
|
|
dw_const LoreleisRoomNoopScript, SCRIPT_LORELEISROOM_NOOP
|
|
|
|
|
|
|
|
LoreleisRoomNoopScript:
|
2014-05-18 18:19:10 +00:00
|
|
|
ret
|
2015-07-03 19:38:12 +00:00
|
|
|
|
2016-06-12 00:24:04 +00:00
|
|
|
LoreleiScriptWalkIntoRoom:
|
2015-12-19 03:14:42 +00:00
|
|
|
; Walk six steps upward.
|
2014-09-10 03:55:19 +00:00
|
|
|
ld hl, wSimulatedJoypadStatesEnd
|
|
|
|
ld a, D_UP
|
2014-05-18 18:19:10 +00:00
|
|
|
ld [hli], a
|
|
|
|
ld [hli], a
|
|
|
|
ld [hli], a
|
|
|
|
ld [hli], a
|
|
|
|
ld [hli], a
|
|
|
|
ld [hl], a
|
|
|
|
ld a, $6
|
2014-09-10 03:55:19 +00:00
|
|
|
ld [wSimulatedJoypadStatesIndex], a
|
|
|
|
call StartSimulatingJoypadStates
|
2023-07-14 01:27:56 +00:00
|
|
|
ld a, SCRIPT_LORELEISROOM_PLAYER_IS_MOVING
|
2019-01-01 20:06:23 +00:00
|
|
|
ld [wLoreleisRoomCurScript], a
|
2015-08-31 02:38:41 +00:00
|
|
|
ld [wCurMapScript], a
|
2014-05-18 18:19:10 +00:00
|
|
|
ret
|
2015-07-03 19:38:12 +00:00
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
LoreleisRoomDefaultScript:
|
2015-12-19 03:14:42 +00:00
|
|
|
ld hl, LoreleiEntranceCoords
|
2014-05-18 18:19:10 +00:00
|
|
|
call ArePlayerCoordsInArray
|
|
|
|
jp nc, CheckFightingMapTrainers
|
|
|
|
xor a
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh [hJoyPressed], a
|
|
|
|
ldh [hJoyHeld], a
|
2014-09-10 03:55:19 +00:00
|
|
|
ld [wSimulatedJoypadStatesEnd], a
|
|
|
|
ld [wSimulatedJoypadStatesIndex], a
|
2015-07-19 03:49:52 +00:00
|
|
|
ld a, [wCoordIndex]
|
2015-12-19 03:14:42 +00:00
|
|
|
cp $3 ; Is player standing one tile above the exit?
|
|
|
|
jr c, .stopPlayerFromLeaving
|
2015-07-21 17:36:03 +00:00
|
|
|
CheckAndSetEvent EVENT_AUTOWALKED_INTO_LORELEIS_ROOM
|
2015-12-19 03:14:42 +00:00
|
|
|
jr z, LoreleiScriptWalkIntoRoom
|
|
|
|
.stopPlayerFromLeaving
|
2023-07-14 01:27:56 +00:00
|
|
|
ld a, TEXT_LORELEISROOM_DONT_RUN_AWAY
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh [hSpriteIndexOrTextID], a
|
2015-12-19 03:14:42 +00:00
|
|
|
call DisplayTextID ; "Don't run away!"
|
2014-09-10 03:55:19 +00:00
|
|
|
ld a, D_UP
|
|
|
|
ld [wSimulatedJoypadStatesEnd], a
|
2014-05-18 18:19:10 +00:00
|
|
|
ld a, $1
|
2014-09-10 03:55:19 +00:00
|
|
|
ld [wSimulatedJoypadStatesIndex], a
|
|
|
|
call StartSimulatingJoypadStates
|
2023-07-14 01:27:56 +00:00
|
|
|
ld a, SCRIPT_LORELEISROOM_PLAYER_IS_MOVING
|
2019-01-01 20:06:23 +00:00
|
|
|
ld [wLoreleisRoomCurScript], a
|
2015-08-31 02:38:41 +00:00
|
|
|
ld [wCurMapScript], a
|
2014-05-18 18:19:10 +00:00
|
|
|
ret
|
|
|
|
|
2016-06-12 00:24:04 +00:00
|
|
|
LoreleiEntranceCoords:
|
2020-07-16 16:32:19 +00:00
|
|
|
dbmapcoord 4, 10
|
|
|
|
dbmapcoord 5, 10
|
|
|
|
dbmapcoord 4, 11
|
|
|
|
dbmapcoord 5, 11
|
|
|
|
db -1 ; end
|
2014-05-18 18:19:10 +00:00
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
LoreleisRoomPlayerIsMovingScript:
|
2014-09-10 03:55:19 +00:00
|
|
|
ld a, [wSimulatedJoypadStatesIndex]
|
2014-05-18 18:19:10 +00:00
|
|
|
and a
|
|
|
|
ret nz
|
|
|
|
call Delay3
|
|
|
|
xor a
|
2014-05-25 17:51:53 +00:00
|
|
|
ld [wJoyIgnore], a
|
2019-01-01 20:06:23 +00:00
|
|
|
ld [wLoreleisRoomCurScript], a
|
2015-08-31 02:38:41 +00:00
|
|
|
ld [wCurMapScript], a
|
2014-05-18 18:19:10 +00:00
|
|
|
ret
|
2015-12-19 03:14:42 +00:00
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
LoreleisRoomLoreleiEndBattleScript:
|
2014-05-18 18:19:10 +00:00
|
|
|
call EndTrainerBattle
|
2015-08-31 02:38:41 +00:00
|
|
|
ld a, [wIsInBattle]
|
2014-05-18 18:19:10 +00:00
|
|
|
cp $ff
|
2015-12-19 03:14:42 +00:00
|
|
|
jp z, ResetLoreleiScript
|
2023-07-14 01:27:56 +00:00
|
|
|
ld a, TEXT_LORELEISROOM_LORELEI
|
2020-07-06 23:03:05 +00:00
|
|
|
ldh [hSpriteIndexOrTextID], a
|
2014-05-18 18:19:10 +00:00
|
|
|
jp DisplayTextID
|
|
|
|
|
2019-01-01 20:06:23 +00:00
|
|
|
LoreleisRoom_TextPointers:
|
2023-07-14 01:27:56 +00:00
|
|
|
def_text_pointers
|
|
|
|
dw_const LoreleisRoomLoreleiText, TEXT_LORELEISROOM_LORELEI
|
|
|
|
dw_const LoreleisRoomLoreleiDontRunAwayText, TEXT_LORELEISROOM_DONT_RUN_AWAY
|
2014-05-18 18:19:10 +00:00
|
|
|
|
2021-04-13 22:24:37 +00:00
|
|
|
LoreleisRoomTrainerHeaders:
|
|
|
|
def_trainers
|
|
|
|
LoreleisRoomTrainerHeader0:
|
2023-07-14 01:27:56 +00:00
|
|
|
trainer EVENT_BEAT_LORELEIS_ROOM_TRAINER_0, 0, LoreleisRoomLoreleiBeforeBattleText, LoreleisRoomLoreleiEndBattleText, LoreleisRoomLoreleiAfterBattleText
|
2020-07-14 19:45:36 +00:00
|
|
|
db -1 ; end
|
2014-05-18 18:19:10 +00:00
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
LoreleisRoomLoreleiText:
|
2020-07-04 21:09:35 +00:00
|
|
|
text_asm
|
2021-04-13 22:24:37 +00:00
|
|
|
ld hl, LoreleisRoomTrainerHeader0
|
2014-05-18 18:19:10 +00:00
|
|
|
call TalkToTrainer
|
|
|
|
jp TextScriptEnd
|
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
LoreleisRoomLoreleiBeforeBattleText:
|
|
|
|
text_far _LoreleisRoomLoreleiBeforeBattleText
|
2020-07-04 21:09:35 +00:00
|
|
|
text_end
|
2014-05-18 18:19:10 +00:00
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
LoreleisRoomLoreleiEndBattleText:
|
|
|
|
text_far _LoreleisRoomLoreleiEndBattleText
|
2020-07-04 21:09:35 +00:00
|
|
|
text_end
|
2014-05-18 18:19:10 +00:00
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
LoreleisRoomLoreleiAfterBattleText:
|
|
|
|
text_far _LoreleisRoomLoreleiAfterBattleText
|
2020-07-04 21:09:35 +00:00
|
|
|
text_end
|
2014-05-18 18:19:10 +00:00
|
|
|
|
2023-07-14 01:27:56 +00:00
|
|
|
LoreleisRoomLoreleiDontRunAwayText:
|
|
|
|
text_far _LoreleisRoomLoreleiDontRunAwayText
|
2020-07-04 21:09:35 +00:00
|
|
|
text_end
|