diff options
author | Daniel Harding <33dannye@gmail.com> | 2019-01-13 22:38:16 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-13 22:38:16 -0600 |
commit | 725b86ebbec23bd1f53fd60bf0201c904fee951d (patch) | |
tree | a37f4d33c5b77635c7ff72b91a73fcd90c4af915 /scripts/AgathasRoom.asm | |
parent | 108245cb21abb3abac051b7db84ed6c694192a61 (diff) | |
parent | c7796024590fec48ac79756793c1a6e3b54daf8f (diff) |
Merge pull request #196 from Rangi42/polishedmaps
Rename map files, labels, and constants to be consistent and work with Polished Map
Diffstat (limited to 'scripts/AgathasRoom.asm')
-rwxr-xr-x | scripts/AgathasRoom.asm | 154 |
1 files changed, 154 insertions, 0 deletions
diff --git a/scripts/AgathasRoom.asm b/scripts/AgathasRoom.asm new file mode 100755 index 00000000..a1dba196 --- /dev/null +++ b/scripts/AgathasRoom.asm @@ -0,0 +1,154 @@ +AgathasRoom_Script: + call AgathaShowOrHideExitBlock + call EnableAutoTextBoxDrawing + ld hl, AgathaTrainerHeader0 + ld de, AgathasRoom_ScriptPointers + ld a, [wAgathasRoomCurScript] + call ExecuteCurMapScriptInTable + ld [wAgathasRoomCurScript], a + ret + +AgathaShowOrHideExitBlock: +; Blocks or clears the exit to the next room. + ld hl, wCurrentMapScriptFlags + bit 5, [hl] + res 5, [hl] + ret z + CheckEvent EVENT_BEAT_AGATHAS_ROOM_TRAINER_0 + jr z, .blockExitToNextRoom + ld a, $e + jp .setExitBlock +.blockExitToNextRoom + ld a, $3b +.setExitBlock: + ld [wNewTileBlockID], a + lb bc, 0, 2 + predef_jump ReplaceTileBlock + +ResetAgathaScript: + xor a + ld [wAgathasRoomCurScript], a + ret + +AgathasRoom_ScriptPointers: + dw AgathaScript0 + dw DisplayEnemyTrainerTextAndStartBattle + dw AgathaScript2 + dw AgathaScript3 + dw AgathaScript4 + +AgathaScript4: + ret + +AgathaScriptWalkIntoRoom: +; 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 [wAgathasRoomCurScript], a + ld [wCurMapScript], a + ret + +AgathaScript0: + ld hl, AgathaEntranceCoords + 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_AGATHAS_ROOM + jr z, AgathaScriptWalkIntoRoom +.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 [wAgathasRoomCurScript], a + ld [wCurMapScript], a + ret + +AgathaEntranceCoords: + db $0A,$04 + db $0A,$05 + db $0B,$04 + db $0B,$05 + db $FF + +AgathaScript3: + ld a, [wSimulatedJoypadStatesIndex] + and a + ret nz + call Delay3 + xor a + ld [wJoyIgnore], a + ld [wAgathasRoomCurScript], a + ld [wCurMapScript], a + ret + +AgathaScript2: + call EndTrainerBattle + ld a, [wIsInBattle] + cp $ff + jp z, ResetAgathaScript + ld a, $1 + ld [hSpriteIndexOrTextID], a + call DisplayTextID + ld a, $1 + ld [wChampionsRoomCurScript], a + ret + +AgathasRoom_TextPointers: + dw AgathaText1 + dw AgathaDontRunAwayText + +AgathaTrainerHeader0: + dbEventFlagBit EVENT_BEAT_AGATHAS_ROOM_TRAINER_0 + db ($0 << 4) ; trainer's view range + dwEventFlagAddress EVENT_BEAT_AGATHAS_ROOM_TRAINER_0 + dw AgathaBeforeBattleText ; TextBeforeBattle + dw AgathaAfterBattleText ; TextAfterBattle + dw AgathaEndBattleText ; TextEndBattle + dw AgathaEndBattleText ; TextEndBattle + + db $ff + +AgathaText1: + TX_ASM + ld hl, AgathaTrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +AgathaBeforeBattleText: + TX_FAR _AgathaBeforeBattleText + db "@" + +AgathaEndBattleText: + TX_FAR _AgathaEndBattleText + db "@" + +AgathaAfterBattleText: + TX_FAR _AgathaAfterBattleText + db "@" + +AgathaDontRunAwayText: + TX_FAR _AgathaDontRunAwayText + db "@" |