summaryrefslogtreecommitdiff
path: root/scripts/bruno.asm
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/bruno.asm')
-rwxr-xr-xscripts/bruno.asm122
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 "@"