pokered/scripts/BrunosRoom.asm

149 lines
3.5 KiB
NASM
Raw Permalink Normal View History

BrunosRoom_Script:
call BrunoShowOrHideExitBlock
2014-05-18 18:19:10 +00:00
call EnableAutoTextBoxDrawing
ld hl, BrunosRoomTrainerHeaders
ld de, BrunosRoom_ScriptPointers
ld a, [wBrunosRoomCurScript]
2014-05-18 18:19:10 +00:00
call ExecuteCurMapScriptInTable
ld [wBrunosRoomCurScript], a
2014-05-18 18:19:10 +00:00
ret
2016-06-12 00:24:04 +00:00
BrunoShowOrHideExitBlock:
; Blocks or clears the exit to the next room.
2016-01-03 19:17:10 +00:00
ld hl, wCurrentMapScriptFlags
bit BIT_CUR_MAP_LOADED_1, [hl]
res BIT_CUR_MAP_LOADED_1, [hl]
2014-05-18 18:19:10 +00:00
ret z
2015-07-21 01:32:02 +00:00
CheckEvent EVENT_BEAT_BRUNOS_ROOM_TRAINER_0
jr z, .blockExitToNextRoom
2014-05-18 18:19:10 +00:00
ld a, $5
jp .setExitBlock
.blockExitToNextRoom
2014-05-18 18:19:10 +00:00
ld a, $24
.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
ResetBrunoScript:
xor a ; SCRIPT_BRUNOSROOM_DEFAULT
ld [wBrunosRoomCurScript], a
2014-05-18 18:19:10 +00:00
ret
BrunosRoom_ScriptPointers:
def_script_pointers
dw_const BrunosRoomDefaultScript, SCRIPT_BRUNOSROOM_DEFAULT
dw_const DisplayEnemyTrainerTextAndStartBattle, SCRIPT_BRUNOSROOM_BRUNO_START_BATTLE
dw_const BrunosRoomBrunoEndBattleScript, SCRIPT_BRUNOSROOM_BRUNO_END_BATTLE
dw_const BrunosRoomPlayerIsMovingScript, SCRIPT_BRUNOSROOM_PLAYER_IS_MOVING
dw_const BrunosRoomNoopScript, SCRIPT_BRUNOSROOM_NOOP
BrunosRoomNoopScript:
2014-05-18 18:19:10 +00:00
ret
2016-06-12 00:24:04 +00:00
BrunoScriptWalkIntoRoom:
; Walk six steps upward.
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
ld [wSimulatedJoypadStatesIndex], a
call StartSimulatingJoypadStates
ld a, SCRIPT_BRUNOSROOM_PLAYER_IS_MOVING
ld [wBrunosRoomCurScript], a
2015-08-31 02:38:41 +00:00
ld [wCurMapScript], a
2014-05-18 18:19:10 +00:00
ret
BrunosRoomDefaultScript:
ld hl, BrunoEntranceCoords
2014-05-18 18:19:10 +00:00
call ArePlayerCoordsInArray
jp nc, CheckFightingMapTrainers
xor a
ldh [hJoyPressed], a
ldh [hJoyHeld], a
ld [wSimulatedJoypadStatesEnd], a
ld [wSimulatedJoypadStatesIndex], a
2015-07-19 03:49:52 +00:00
ld a, [wCoordIndex]
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_BRUNOS_ROOM
jr z, BrunoScriptWalkIntoRoom
.stopPlayerFromLeaving
ld a, TEXT_BRUNOSROOM_BRUNO_DONT_RUN_AWAY
ldh [hTextID], a
call DisplayTextID ; "Don't run away!"
ld a, D_UP
ld [wSimulatedJoypadStatesEnd], a
2014-05-18 18:19:10 +00:00
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
call StartSimulatingJoypadStates
ld a, SCRIPT_BRUNOSROOM_PLAYER_IS_MOVING
ld [wBrunosRoomCurScript], 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
BrunoEntranceCoords:
dbmapcoord 4, 10
dbmapcoord 5, 10
dbmapcoord 4, 11
dbmapcoord 5, 11
db -1 ; end
2014-05-18 18:19:10 +00:00
BrunosRoomPlayerIsMovingScript:
ld a, [wSimulatedJoypadStatesIndex]
2014-05-18 18:19:10 +00:00
and a
ret nz
call Delay3
xor a ; SCRIPT_BRUNOSROOM_DEFAULT
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
ld [wBrunosRoomCurScript], a
2015-08-31 02:38:41 +00:00
ld [wCurMapScript], a
2014-05-18 18:19:10 +00:00
ret
BrunosRoomBrunoEndBattleScript:
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
jp z, ResetBrunoScript
ld a, TEXT_BRUNOSROOM_BRUNO
ldh [hTextID], a
2014-05-18 18:19:10 +00:00
jp DisplayTextID
BrunosRoom_TextPointers:
def_text_pointers
dw_const BrunosRoomBrunoText, TEXT_BRUNOSROOM_BRUNO
dw_const BrunosRoomBrunoDontRunAwayText, TEXT_BRUNOSROOM_BRUNO_DONT_RUN_AWAY
2014-05-18 18:19:10 +00:00
BrunosRoomTrainerHeaders:
def_trainers
BrunosRoomTrainerHeader0:
trainer EVENT_BEAT_BRUNOS_ROOM_TRAINER_0, 0, BrunoBeforeBattleText, BrunoEndBattleText, BrunoAfterBattleText
db -1 ; end
2014-05-18 18:19:10 +00:00
BrunosRoomBrunoText:
text_asm
ld hl, BrunosRoomTrainerHeader0
2014-05-18 18:19:10 +00:00
call TalkToTrainer
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
BrunoBeforeBattleText:
text_far _BrunoBeforeBattleText
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
BrunoEndBattleText:
text_far _BrunoEndBattleText
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
BrunoAfterBattleText:
text_far _BrunoAfterBattleText
text_end
2014-05-18 18:19:10 +00:00
BrunosRoomBrunoDontRunAwayText:
text_far _BrunosRoomBrunoDontRunAwayText
text_end