summaryrefslogtreecommitdiff
path: root/scripts/lance.asm
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/lance.asm')
-rwxr-xr-xscripts/lance.asm145
1 files changed, 71 insertions, 74 deletions
diff --git a/scripts/lance.asm b/scripts/lance.asm
index f2523098..a0b0e6e7 100755
--- a/scripts/lance.asm
+++ b/scripts/lance.asm
@@ -1,85 +1,83 @@
-LanceScript: ; 5a2ae (16:62ae)
- call LanceScript_5a2c4
+LanceScript:
+ call LanceShowOrHideEntranceBlocks
call EnableAutoTextBoxDrawing
- ld hl, LanceTrainerHeaders
+ ld hl, LanceTrainerHeader0
ld de, LanceScriptPointers
- ld a, [W_LANCECURSCRIPT]
+ ld a, [wLanceCurScript]
call ExecuteCurMapScriptInTable
- ld [W_LANCECURSCRIPT], a
+ ld [wLanceCurScript], a
ret
-LanceScript_5a2c4: ; 5a2c4 (16:62c4)
- ld hl, wd126
+LanceShowOrHideEntranceBlocks:
+ ld hl, wCurrentMapScriptFlags
bit 5, [hl]
res 5, [hl]
ret z
- ld a, [wd866]
- bit 7, a
- jr nz, .asm_5a2da
+ CheckEvent EVENT_LANCES_ROOM_LOCK_DOOR
+ jr nz, .closeEntrance
+ ; open entrance
ld a, $31
ld b, $32
- jp LanceScript_5a2de
-.asm_5a2da
+ jp LanceSetEntranceBlocks
+.closeEntrance
ld a, $72
ld b, $73
-LanceScript_5a2de: ; 5a2de (16:62de)
+LanceSetEntranceBlocks:
+; Replaces the tile blocks so the player can't leave.
push bc
- ld [wd09f], a
- ld bc, $602
- call LanceScript_5a2f0
+ ld [wNewTileBlockID], a
+ lb bc, 6, 2
+ call LanceSetEntranceBlock
pop bc
ld a, b
- ld [wd09f], a
- ld bc, $603
+ ld [wNewTileBlockID], a
+ lb bc, 6, 3
-LanceScript_5a2f0: ; 5a2f0 (16:62f0)
+LanceSetEntranceBlock:
predef_jump ReplaceTileBlock
-LanceScript_5a2f5: ; 5a2f5 (16:62f5)
+ResetLanceScript:
xor a
- ld [W_LANCECURSCRIPT], a
+ ld [wLanceCurScript], a
ret
-LanceScriptPointers: ; 5a2fa (16:62fa)
+LanceScriptPointers:
dw LanceScript0
dw DisplayEnemyTrainerTextAndStartBattle
dw LanceScript2
dw LanceScript3
dw LanceScript4
-LanceScript4: ; 5a304 (16:6304)
+LanceScript4:
ret
-LanceScript0: ; 5a305 (16:6305)
- ld a, [wd866]
- bit 6, a
+LanceScript0:
+ CheckEvent EVENT_BEAT_LANCE
ret nz
- ld hl, CoordsData_5a33e
+ ld hl, LanceTriggerMovementCoords
call ArePlayerCoordsInArray
jp nc, CheckFightingMapTrainers
xor a
ld [hJoyHeld], a
- ld a, [wWhichTrade] ; wWhichTrade
- cp $3
- jr nc, .asm_5a325
+ ld a, [wCoordIndex]
+ cp $3 ; Is player standing next to Lance's sprite?
+ jr nc, .notStandingNextToLance
ld a, $1
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
jp DisplayTextID
-.asm_5a325
- cp $5
- jr z, LanceScript_5a35b
- ld hl, wd866
- bit 7, [hl]
- set 7, [hl]
+.notStandingNextToLance
+ cp $5 ; Is player standing on the entrance staircase?
+ jr z, WalkToLance
+ CheckAndSetEvent EVENT_LANCES_ROOM_LOCK_DOOR
ret nz
- ld hl, wd126
+ ld hl, wCurrentMapScriptFlags
set 5, [hl]
- ld a, (SFX_02_57 - SFX_Headers_02) / 3
+ ld a, SFX_GO_INSIDE
call PlaySound
- jp LanceScript_5a2c4
+ jp LanceShowOrHideEntranceBlocks
-CoordsData_5a33e: ; 5a33e (16:633e)
+LanceTriggerMovementCoords:
db $01,$05
db $02,$06
db $0B,$05
@@ -87,79 +85,78 @@ CoordsData_5a33e: ; 5a33e (16:633e)
db $10,$18
db $FF
-LanceScript2: ; 5a349 (16:6349)
+LanceScript2:
call EndTrainerBattle
- ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+ ld a, [wIsInBattle]
cp $ff
- jp z, LanceScript_5a2f5
+ jp z, ResetLanceScript
ld a, $1
- ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld [hSpriteIndexOrTextID], a
jp DisplayTextID
-LanceScript_5a35b: ; 5a35b (16:635b)
+WalkToLance:
+; Moves the player down the hallway to Lance's room.
ld a, $ff
ld [wJoyIgnore], a
ld hl, wSimulatedJoypadStatesEnd
- ld de, RLEList_5a379
+ ld de, WalkToLance_RLEList
call DecodeRLEList
dec a
ld [wSimulatedJoypadStatesIndex], a
call StartSimulatingJoypadStates
ld a, $3
- ld [W_LANCECURSCRIPT], a
- ld [W_CURMAPSCRIPT], a
+ ld [wLanceCurScript], a
+ ld [wCurMapScript], a
ret
-RLEList_5a379: ; 5a379 (16:6379)
- db $40, $0C
- db $20, $0C
- db $80, $07
- db $20, $06
+WalkToLance_RLEList:
+ db D_UP, $0C
+ db D_LEFT, $0C
+ db D_DOWN, $07
+ db D_LEFT, $06
db $FF
-LanceScript3: ; 5a382 (16:6382)
+LanceScript3:
ld a, [wSimulatedJoypadStatesIndex]
and a
ret nz
call Delay3
xor a
ld [wJoyIgnore], a
- ld [W_LANCECURSCRIPT], a
- ld [W_CURMAPSCRIPT], a
+ ld [wLanceCurScript], a
+ ld [wCurMapScript], a
ret
-LanceTextPointers: ; 5a395 (16:6395)
+LanceTextPointers:
dw LanceText1
-LanceTrainerHeaders: ; 5a397 (16:6397)
-LanceTrainerHeader0: ; 5a397 (16:6397)
- db $1 ; flag's bit
+LanceTrainerHeader0:
+ dbEventFlagBit EVENT_BEAT_LANCES_ROOM_TRAINER_0
db ($0 << 4) ; trainer's view range
- dw wd866 ; flag's byte
- dw LanceBeforeBattleText ; 0x63ae TextBeforeBattle
- dw LanceAfterBattleText ; 0x63b8 TextAfterBattle
- dw LanceEndBattleText ; 0x63b3 TextEndBattle
- dw LanceEndBattleText ; 0x63b3 TextEndBattle
+ dwEventFlagAddress EVENT_BEAT_LANCES_ROOM_TRAINER_0
+ dw LanceBeforeBattleText ; TextBeforeBattle
+ dw LanceAfterBattleText ; TextAfterBattle
+ dw LanceEndBattleText ; TextEndBattle
+ dw LanceEndBattleText ; TextEndBattle
db $ff
-LanceText1: ; 5a3a4 (16:63a4)
- db $08 ; asm
+LanceText1:
+ TX_ASM
ld hl, LanceTrainerHeader0
call TalkToTrainer
jp TextScriptEnd
-LanceBeforeBattleText: ; 5a3ae (16:63ae)
+LanceBeforeBattleText:
TX_FAR _LanceBeforeBattleText
db "@"
-LanceEndBattleText: ; 5a3b3 (16:63b3)
+LanceEndBattleText:
TX_FAR _LanceEndBattleText
db "@"
-LanceAfterBattleText: ; 5a3b8 (16:63b8)
+LanceAfterBattleText:
TX_FAR _LanceAfterBattleText
- db $8
- ld hl, wd866
- set 6, [hl]
+ TX_ASM
+ SetEvent EVENT_BEAT_LANCE
jp TextScriptEnd