diff options
author | Rangi <remy.oukaour+rangi42@gmail.com> | 2019-01-01 15:06:23 -0500 |
---|---|---|
committer | Rangi <remy.oukaour+rangi42@gmail.com> | 2019-01-01 23:33:10 -0500 |
commit | c7796024590fec48ac79756793c1a6e3b54daf8f (patch) | |
tree | 0d61caa7ebe429995a61e800d1d78c3a82aec886 /scripts/BrunosRoom.asm | |
parent | 90430e6dee9e207dc0b618d07566f83617343f60 (diff) |
Rename map files, labels, and constants to be consistent and work with Polished Map
Diffstat (limited to 'scripts/BrunosRoom.asm')
-rwxr-xr-x | scripts/BrunosRoom.asm | 151 |
1 files changed, 151 insertions, 0 deletions
diff --git a/scripts/BrunosRoom.asm b/scripts/BrunosRoom.asm new file mode 100755 index 00000000..3b6385b7 --- /dev/null +++ b/scripts/BrunosRoom.asm @@ -0,0 +1,151 @@ +BrunosRoom_Script: + call BrunoShowOrHideExitBlock + call EnableAutoTextBoxDrawing + ld hl, BrunoTrainerHeader0 + ld de, BrunosRoom_ScriptPointers + ld a, [wBrunosRoomCurScript] + call ExecuteCurMapScriptInTable + ld [wBrunosRoomCurScript], a + ret + +BrunoShowOrHideExitBlock: +; Blocks or clears the exit to the next room. + ld hl, wCurrentMapScriptFlags + bit 5, [hl] + res 5, [hl] + ret z + CheckEvent EVENT_BEAT_BRUNOS_ROOM_TRAINER_0 + jr z, .blockExitToNextRoom + ld a, $5 + jp .setExitBlock +.blockExitToNextRoom + ld a, $24 +.setExitBlock + ld [wNewTileBlockID], a + lb bc, 0, 2 + predef_jump ReplaceTileBlock + +ResetBrunoScript: + xor a + ld [wBrunosRoomCurScript], a + ret + +BrunosRoom_ScriptPointers: + dw BrunoScript0 + dw DisplayEnemyTrainerTextAndStartBattle + dw BrunoScript2 + dw BrunoScript3 + dw BrunoScript4 + +BrunoScript4: + ret + +BrunoScriptWalkIntoRoom: +; 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 [wBrunosRoomCurScript], a + ld [wCurMapScript], a + ret + +BrunoScript0: + ld hl, BrunoEntranceCoords + 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_BRUNOS_ROOM + jr z, BrunoScriptWalkIntoRoom +.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 [wBrunosRoomCurScript], a + ld [wCurMapScript], a + ret + +BrunoEntranceCoords: + db $0A,$04 + db $0A,$05 + db $0B,$04 + db $0B,$05 + db $FF + +BrunoScript3: + ld a, [wSimulatedJoypadStatesIndex] + and a + ret nz + call Delay3 + xor a + ld [wJoyIgnore], a + ld [wBrunosRoomCurScript], a + ld [wCurMapScript], a + ret + +BrunoScript2: + call EndTrainerBattle + ld a, [wIsInBattle] + cp $ff + jp z, ResetBrunoScript + ld a, $1 + ld [hSpriteIndexOrTextID], a + jp DisplayTextID + +BrunosRoom_TextPointers: + dw BrunoText1 + dw BrunoDontRunAwayText + +BrunoTrainerHeader0: + dbEventFlagBit EVENT_BEAT_BRUNOS_ROOM_TRAINER_0 + db ($0 << 4) ; trainer's view range + dwEventFlagAddress EVENT_BEAT_BRUNOS_ROOM_TRAINER_0 + dw BrunoBeforeBattleText ; TextBeforeBattle + dw BrunoAfterBattleText ; TextAfterBattle + dw BrunoEndBattleText ; TextEndBattle + dw BrunoEndBattleText ; TextEndBattle + + db $ff + +BrunoText1: + TX_ASM + ld hl, BrunoTrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +BrunoBeforeBattleText: + TX_FAR _BrunoBeforeBattleText + db "@" + +BrunoEndBattleText: + TX_FAR _BrunoEndBattleText + db "@" + +BrunoAfterBattleText: + TX_FAR _BrunoAfterBattleText + db "@" + +BrunoDontRunAwayText: + TX_FAR _BrunoDontRunAwayText + db "@" |