diff options
Diffstat (limited to 'scripts/bruno.asm')
-rwxr-xr-x | scripts/bruno.asm | 122 |
1 files changed, 60 insertions, 62 deletions
diff --git a/scripts/bruno.asm b/scripts/bruno.asm index ffe05bce..02ceebf2 100755 --- a/scripts/bruno.asm +++ b/scripts/bruno.asm @@ -1,46 +1,47 @@ -BrunoScript: ; 762d6 (1d:62d6) - call BrunoScript_762ec +BrunoScript: + call BrunoShowOrHideExitBlock call EnableAutoTextBoxDrawing - ld hl, BrunoTrainerHeaders + ld hl, BrunoTrainerHeader0 ld de, BrunoScriptPointers - ld a, [W_BRUNOCURSCRIPT] + ld a, [wBrunoCurScript] call ExecuteCurMapScriptInTable - ld [W_BRUNOCURSCRIPT], a + ld [wBrunoCurScript], a ret -BrunoScript_762ec: ; 762ec (1d:62ec) - ld hl, wd126 +BrunoShowOrHideExitBlock: +; Blocks or clears the exit to the next room. + ld hl, wCurrentMapScriptFlags bit 5, [hl] res 5, [hl] ret z - ld a, [wd864] - bit 1, a - jr z, .asm_76300 + CheckEvent EVENT_BEAT_BRUNOS_ROOM_TRAINER_0 + jr z, .blockExitToNextRoom ld a, $5 - jp BrunoScript_76302 -.asm_76300 + jp .setExitBlock +.blockExitToNextRoom ld a, $24 - -BrunoScript_76302: ; 76302 (1d:6302) - ld [wd09f], a - ld bc, $2 +.setExitBlock + ld [wNewTileBlockID], a + lb bc, 0, 2 predef_jump ReplaceTileBlock -BrunoScript_7630d: ; 7630d (1d:630d) +ResetBrunoScript: xor a - ld [W_BRUNOCURSCRIPT], a + ld [wBrunoCurScript], a ret -BrunoScriptPointers: ; 76312 (1d:6312) +BrunoScriptPointers: dw BrunoScript0 dw DisplayEnemyTrainerTextAndStartBattle dw BrunoScript2 dw BrunoScript3 dw BrunoScript4 -BrunoScript4: ; 7631c (1d:631c) +BrunoScript4: ret -asm_7631d: ; 7631d (1d:631d) + +BrunoScriptWalkIntoRoom: +; Walk six steps upward. ld hl, wSimulatedJoypadStatesEnd ld a, D_UP ld [hli], a @@ -53,12 +54,12 @@ asm_7631d: ; 7631d (1d:631d) ld [wSimulatedJoypadStatesIndex], a call StartSimulatingJoypadStates ld a, $3 - ld [W_BRUNOCURSCRIPT], a - ld [W_CURMAPSCRIPT], a + ld [wBrunoCurScript], a + ld [wCurMapScript], a ret -BrunoScript0: ; 76339 (1d:6339) - ld hl, CoordsData_7637a +BrunoScript0: + ld hl, BrunoEntranceCoords call ArePlayerCoordsInArray jp nc, CheckFightingMapTrainers xor a @@ -66,88 +67,85 @@ BrunoScript0: ; 76339 (1d:6339) ld [hJoyHeld], a ld [wSimulatedJoypadStatesEnd], a ld [wSimulatedJoypadStatesIndex], a - ld a, [wWhichTrade] ; wWhichTrade - cp $3 - jr c, .asm_7635d - ld hl, wd864 - bit 6, [hl] - set 6, [hl] - jr z, asm_7631d -.asm_7635d + 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 [H_DOWNARROWBLINKCNT2], a ; $ff8c - call DisplayTextID + 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 [W_BRUNOCURSCRIPT], a - ld [W_CURMAPSCRIPT], a + ld [wBrunoCurScript], a + ld [wCurMapScript], a ret -CoordsData_7637a: ; 7637a (1d:637a) +BrunoEntranceCoords: db $0A,$04 db $0A,$05 db $0B,$04 db $0B,$05 db $FF -BrunoScript3: ; 76383 (1d:6383) +BrunoScript3: ld a, [wSimulatedJoypadStatesIndex] and a ret nz call Delay3 xor a ld [wJoyIgnore], a - ld [W_BRUNOCURSCRIPT], a - ld [W_CURMAPSCRIPT], a + ld [wBrunoCurScript], a + ld [wCurMapScript], a ret -BrunoScript2: ; 76396 (1d:6396) +BrunoScript2: call EndTrainerBattle - ld a, [W_ISINBATTLE] ; W_ISINBATTLE + ld a, [wIsInBattle] cp $ff - jp z, BrunoScript_7630d + jp z, ResetBrunoScript ld a, $1 - ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + ld [hSpriteIndexOrTextID], a jp DisplayTextID -BrunoTextPointers: ; 763a8 (1d:63a8) +BrunoTextPointers: dw BrunoText1 - dw BrunoText2 + dw BrunoDontRunAwayText -BrunoTrainerHeaders: ; 763ac (1d:63ac) -BrunoTrainerHeader0: ; 763ac (1d:63ac) - db $1 ; flag's bit +BrunoTrainerHeader0: + dbEventFlagBit EVENT_BEAT_BRUNOS_ROOM_TRAINER_0 db ($0 << 4) ; trainer's view range - dw wd864 ; flag's byte - dw BrunoBeforeBattleText ; 0x63c3 TextBeforeBattle - dw BrunoAfterBattleText ; 0x63cd TextAfterBattle - dw BrunoEndBattleText ; 0x63c8 TextEndBattle - dw BrunoEndBattleText ; 0x63c8 TextEndBattle + dwEventFlagAddress EVENT_BEAT_BRUNOS_ROOM_TRAINER_0 + dw BrunoBeforeBattleText ; TextBeforeBattle + dw BrunoAfterBattleText ; TextAfterBattle + dw BrunoEndBattleText ; TextEndBattle + dw BrunoEndBattleText ; TextEndBattle db $ff -BrunoText1: ; 763b9 (1d:63b9) - db $08 ; asm +BrunoText1: + TX_ASM ld hl, BrunoTrainerHeader0 call TalkToTrainer jp TextScriptEnd -BrunoBeforeBattleText: ; 763c3 (1d:63c3) +BrunoBeforeBattleText: TX_FAR _BrunoBeforeBattleText db "@" -BrunoEndBattleText: ; 763c8 (1d:63c8) +BrunoEndBattleText: TX_FAR _BrunoEndBattleText db "@" -BrunoAfterBattleText: ; 763cd (1d:63cd) +BrunoAfterBattleText: TX_FAR _BrunoAfterBattleText db "@" -BrunoText2: ; 763d2 (1d:63d2) - TX_FAR _UnnamedText_763d2 +BrunoDontRunAwayText: + TX_FAR _BrunoDontRunAwayText db "@" |