123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- LoreleiScript:
- call LoreleiShowOrHideExitBlock
- call EnableAutoTextBoxDrawing
- ld hl, LoreleiTrainerHeader0
- ld de, LoreleiScriptPointers
- ld a, [wLoreleiCurScript]
- call ExecuteCurMapScriptInTable
- ld [wLoreleiCurScript], a
- ret
- LoreleiShowOrHideExitBlock:
- ; Blocks or clears the exit to the next room.
- ld hl, wCurrentMapScriptFlags
- bit 5, [hl]
- res 5, [hl]
- ret z
- ld hl, wBeatLorelei
- set 1, [hl]
- CheckEvent EVENT_BEAT_LORELEIS_ROOM_TRAINER_0
- jr z, .blockExitToNextRoom
- ld a, $5
- jr .setExitBlock
- .blockExitToNextRoom
- ld a, $24
- .setExitBlock
- ld [wNewTileBlockID], a
- lb bc, 0, 2
- predef_jump ReplaceTileBlock
- ResetLoreleiScript:
- xor a
- ld [wLoreleiCurScript], a
- ret
- LoreleiScriptPointers:
- dw LoreleiScript0
- dw DisplayEnemyTrainerTextAndStartBattle
- dw LoreleiScript2
- dw LoreleiScript3
- dw LoreleiScript4
- LoreleiScript4:
- ret
- LoreleiScriptWalkIntoRoom:
- ; Walk six steps upward.
- ld hl, wSimulatedJoypadStatesEnd
- ld a, D_UP
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hl], a
- ld a, $6
- ld [wSimulatedJoypadStatesIndex], a
- call StartSimulatingJoypadStates
- ld a, $3
- ld [wLoreleiCurScript], a
- ld [wCurMapScript], a
- ret
- LoreleiScript0:
- ld hl, LoreleiEntranceCoords
- call ArePlayerCoordsInArray
- jp nc, CheckFightingMapTrainers
- xor a
- ld [hJoyPressed], a
- ld [hJoyHeld], a
- ld [wSimulatedJoypadStatesEnd], a
- ld [wSimulatedJoypadStatesIndex], a
- ld a, [wCoordIndex]
- cp $3 ; Is player standing one tile above the exit?
- jr c, .stopPlayerFromLeaving
- CheckAndSetEvent EVENT_AUTOWALKED_INTO_LORELEIS_ROOM
- jr z, LoreleiScriptWalkIntoRoom
- .stopPlayerFromLeaving
- ld a, $2
- ld [hSpriteIndexOrTextID], a
- call DisplayTextID ; "Don't run away!"
- ld a, D_UP
- ld [wSimulatedJoypadStatesEnd], a
- ld a, $1
- ld [wSimulatedJoypadStatesIndex], a
- call StartSimulatingJoypadStates
- ld a, $3
- ld [wLoreleiCurScript], a
- ld [wCurMapScript], a
- ret
- LoreleiEntranceCoords:
- db $0A,$04
- db $0A,$05
- db $0B,$04
- db $0B,$05
- db $FF
- LoreleiScript3:
- ld a, [wSimulatedJoypadStatesIndex]
- and a
- ret nz
- call Delay3
- xor a
- ld [wJoyIgnore], a
- ld [wLoreleiCurScript], a
- ld [wCurMapScript], a
- ret
- LoreleiScript2:
- call EndTrainerBattle
- ld a, [wIsInBattle]
- cp $ff
- jp z, ResetLoreleiScript
- ld a, $1
- ld [hSpriteIndexOrTextID], a
- jp DisplayTextID
- LoreleiTextPointers:
- dw LoreleiText1
- dw LoreleiDontRunAwayText
- LoreleiTrainerHeader0:
- dbEventFlagBit EVENT_BEAT_LORELEIS_ROOM_TRAINER_0
- db ($0 << 4) ; trainer's view range
- dwEventFlagAddress EVENT_BEAT_LORELEIS_ROOM_TRAINER_0
- dw LoreleiBeforeBattleText ; TextBeforeBattle
- dw LoreleiAfterBattleText ; TextAfterBattle
- dw LoreleiEndBattleText ; TextEndBattle
- dw LoreleiEndBattleText ; TextEndBattle
- db $ff
- LoreleiText1:
- TX_ASM
- ld hl, LoreleiTrainerHeader0
- call TalkToTrainer
- jp TextScriptEnd
- LoreleiBeforeBattleText:
- TX_FAR _LoreleiBeforeBattleText
- db "@"
- LoreleiEndBattleText:
- TX_FAR _LoreleiEndBattleText
- db "@"
- LoreleiAfterBattleText:
- TX_FAR _LoreleiAfterBattleText
- db "@"
- LoreleiDontRunAwayText:
- TX_FAR _LoreleiDontRunAwayText
- db "@"
|