summaryrefslogtreecommitdiff
path: root/scripts/agatha.asm
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/agatha.asm')
-rwxr-xr-xscripts/agatha.asm124
1 files changed, 61 insertions, 63 deletions
diff --git a/scripts/agatha.asm b/scripts/agatha.asm
index a8f9e137..88d6a8de 100755
--- a/scripts/agatha.asm
+++ b/scripts/agatha.asm
@@ -1,46 +1,47 @@
-AgathaScript: ; 7642d (1d:642d)
- call AgathaScript_76443
+AgathaScript:
+ call AgathaShowOrHideExitBlock
call EnableAutoTextBoxDrawing
- ld hl, AgathaTrainerHeaders
+ ld hl, AgathaTrainerHeader0
ld de, AgathaScriptPointers
- ld a, [W_AGATHACURSCRIPT]
+ ld a, [wAgathaCurScript]
call ExecuteCurMapScriptInTable
- ld [W_AGATHACURSCRIPT], a
+ ld [wAgathaCurScript], a
ret
-AgathaScript_76443: ; 76443 (1d:6443)
- ld hl, wd126
+AgathaShowOrHideExitBlock:
+; Blocks or clears the exit to the next room.
+ ld hl, wCurrentMapScriptFlags
bit 5, [hl]
res 5, [hl]
ret z
- ld a, [wd865]
- bit 1, a
- jr z, .asm_76457
+ CheckEvent EVENT_BEAT_AGATHAS_ROOM_TRAINER_0
+ jr z, .blockExitToNextRoom
ld a, $e
- jp AgathaScript_76459
-.asm_76457
+ jp .setExitBlock
+.blockExitToNextRoom
ld a, $3b
-
-AgathaScript_76459: ; 76459 (1d:6459)
- ld [wd09f], a
- ld bc, $2
+.setExitBlock:
+ ld [wNewTileBlockID], a
+ lb bc, 0, 2
predef_jump ReplaceTileBlock
-AgathaScript_76464: ; 76464 (1d:6464)
+ResetAgathaScript:
xor a
- ld [W_AGATHACURSCRIPT], a
+ ld [wAgathaCurScript], a
ret
-AgathaScriptPointers: ; 76469 (1d:6469)
+AgathaScriptPointers:
dw AgathaScript0
dw DisplayEnemyTrainerTextAndStartBattle
dw AgathaScript2
dw AgathaScript3
dw AgathaScript4
-AgathaScript4: ; 76473 (1d:6473)
+AgathaScript4:
ret
-asm_76474: ; 76474 (1d:6474)
+
+AgathaScriptWalkIntoRoom:
+; Walk six steps upward.
ld hl, wSimulatedJoypadStatesEnd
ld a, D_UP
ld [hli], a
@@ -53,12 +54,12 @@ asm_76474: ; 76474 (1d:6474)
ld [wSimulatedJoypadStatesIndex], a
call StartSimulatingJoypadStates
ld a, $3
- ld [W_AGATHACURSCRIPT], a
- ld [W_CURMAPSCRIPT], a
+ ld [wAgathaCurScript], a
+ ld [wCurMapScript], a
ret
-AgathaScript0: ; 76490 (1d:6490)
- ld hl, CoordsData_764d1
+AgathaScript0:
+ ld hl, AgathaEntranceCoords
call ArePlayerCoordsInArray
jp nc, CheckFightingMapTrainers
xor a
@@ -66,91 +67,88 @@ AgathaScript0: ; 76490 (1d:6490)
ld [hJoyHeld], a
ld [wSimulatedJoypadStatesEnd], a
ld [wSimulatedJoypadStatesIndex], a
- ld a, [wWhichTrade] ; wWhichTrade
- cp $3
- jr c, .asm_764b4
- ld hl, wd865
- bit 6, [hl]
- set 6, [hl]
- jr z, asm_76474
-.asm_764b4
+ 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 [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_AGATHACURSCRIPT], a
- ld [W_CURMAPSCRIPT], a
+ ld [wAgathaCurScript], a
+ ld [wCurMapScript], a
ret
-CoordsData_764d1: ; 764d1 (1d:64d1)
+AgathaEntranceCoords:
db $0A,$04
db $0A,$05
db $0B,$04
db $0B,$05
db $FF
-AgathaScript3: ; 764da (1d:64da)
+AgathaScript3:
ld a, [wSimulatedJoypadStatesIndex]
and a
ret nz
call Delay3
xor a
ld [wJoyIgnore], a
- ld [W_AGATHACURSCRIPT], a
- ld [W_CURMAPSCRIPT], a
+ ld [wAgathaCurScript], a
+ ld [wCurMapScript], a
ret
-AgathaScript2: ; 764ed (1d:64ed)
+AgathaScript2:
call EndTrainerBattle
- ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+ ld a, [wIsInBattle]
cp $ff
- jp z, AgathaScript_76464
+ jp z, ResetAgathaScript
ld a, $1
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $1
- ld [W_GARYCURSCRIPT], a
+ ld [wGaryCurScript], a
ret
-AgathaTextPointers: ; 76505 (1d:6505)
+AgathaTextPointers:
dw AgathaText1
- dw AgathaText2
+ dw AgathaDontRunAwayText
-AgathaTrainerHeaders: ; 76509 (1d:6509)
-AgathaTrainerHeader0: ; 76509 (1d:6509)
- db $1 ; flag's bit
+AgathaTrainerHeader0:
+ dbEventFlagBit EVENT_BEAT_AGATHAS_ROOM_TRAINER_0
db ($0 << 4) ; trainer's view range
- dw wd865 ; flag's byte
- dw AgathaBeforeBattleText ; 0x6520 TextBeforeBattle
- dw AgathaAfterBattleText ; 0x652a TextAfterBattle
- dw AgathaEndBattleText ; 0x6525 TextEndBattle
- dw AgathaEndBattleText ; 0x6525 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_AGATHAS_ROOM_TRAINER_0
+ dw AgathaBeforeBattleText ; TextBeforeBattle
+ dw AgathaAfterBattleText ; TextAfterBattle
+ dw AgathaEndBattleText ; TextEndBattle
+ dw AgathaEndBattleText ; TextEndBattle
db $ff
-AgathaText1: ; 76516 (1d:6516)
- db $08 ; asm
+AgathaText1:
+ TX_ASM
ld hl, AgathaTrainerHeader0
call TalkToTrainer
jp TextScriptEnd
-AgathaBeforeBattleText: ; 76520 (1d:6520)
+AgathaBeforeBattleText:
TX_FAR _AgathaBeforeBattleText
db "@"
-AgathaEndBattleText: ; 76525 (1d:6525)
+AgathaEndBattleText:
TX_FAR _AgathaEndBattleText
db "@"
-AgathaAfterBattleText: ; 7652a (1d:652a)
+AgathaAfterBattleText:
TX_FAR _AgathaAfterBattleText
db "@"
-AgathaText2: ; 7652f (1d:652f)
- TX_FAR _AgathaText2
+AgathaDontRunAwayText:
+ TX_FAR _AgathaDontRunAwayText
db "@"