Label elite four scripts more completely.

This commit is contained in:
Marcus Huderle 2015-12-18 19:14:42 -08:00
parent 351146024b
commit 1a5a108bdf
6 changed files with 111 additions and 103 deletions

View file

@ -1,5 +1,5 @@
AgathaScript: ; 7642d (1d:642d) AgathaScript: ; 7642d (1d:642d)
call AgathaScript_76443 call AgathaShowOrHideExitBlock
call EnableAutoTextBoxDrawing call EnableAutoTextBoxDrawing
ld hl, AgathaTrainerHeaders ld hl, AgathaTrainerHeaders
ld de, AgathaScriptPointers ld de, AgathaScriptPointers
@ -8,24 +8,24 @@ AgathaScript: ; 7642d (1d:642d)
ld [wAgathaCurScript], a ld [wAgathaCurScript], a
ret ret
AgathaScript_76443: ; 76443 (1d:6443) AgathaShowOrHideExitBlock: ; 76443 (1d:6443)
; Blocks or clears the exit to the next room.
ld hl, wd126 ld hl, wd126
bit 5, [hl] bit 5, [hl]
res 5, [hl] res 5, [hl]
ret z ret z
CheckEvent EVENT_BEAT_AGATHAS_ROOM_TRAINER_0 CheckEvent EVENT_BEAT_AGATHAS_ROOM_TRAINER_0
jr z, .asm_76457 jr z, .blockExitToNextRoom
ld a, $e ld a, $e
jp AgathaScript_76459 jp .setExitBlock
.asm_76457 .blockExitToNextRoom
ld a, $3b ld a, $3b
.setExitBlock:
AgathaScript_76459: ; 76459 (1d:6459)
ld [wNewTileBlockID], a ld [wNewTileBlockID], a
lb bc, 0, 2 lb bc, 0, 2
predef_jump ReplaceTileBlock predef_jump ReplaceTileBlock
AgathaScript_76464: ; 76464 (1d:6464) ResetAgathaScript: ; 76464 (1d:6464)
xor a xor a
ld [wAgathaCurScript], a ld [wAgathaCurScript], a
ret ret
@ -40,7 +40,8 @@ AgathaScriptPointers: ; 76469 (1d:6469)
AgathaScript4: ; 76473 (1d:6473) AgathaScript4: ; 76473 (1d:6473)
ret ret
AgathaScript_76474: ; 76474 (1d:6474) AgathaScriptWalkIntoRoom: ; 76474 (1d:6474)
; Walk six steps upward.
ld hl, wSimulatedJoypadStatesEnd ld hl, wSimulatedJoypadStatesEnd
ld a, D_UP ld a, D_UP
ld [hli], a ld [hli], a
@ -58,7 +59,7 @@ AgathaScript_76474: ; 76474 (1d:6474)
ret ret
AgathaScript0: ; 76490 (1d:6490) AgathaScript0: ; 76490 (1d:6490)
ld hl, CoordsData_764d1 ld hl, AgathaEntranceCoords
call ArePlayerCoordsInArray call ArePlayerCoordsInArray
jp nc, CheckFightingMapTrainers jp nc, CheckFightingMapTrainers
xor a xor a
@ -67,14 +68,14 @@ AgathaScript0: ; 76490 (1d:6490)
ld [wSimulatedJoypadStatesEnd], a ld [wSimulatedJoypadStatesEnd], a
ld [wSimulatedJoypadStatesIndex], a ld [wSimulatedJoypadStatesIndex], a
ld a, [wCoordIndex] ld a, [wCoordIndex]
cp $3 cp $3 ; Is player standing one tile above the exit?
jr c, .asm_764b4 jr c, .stopPlayerFromLeaving
CheckAndSetEvent EVENT_AUTOWALKED_INTO_AGATHAS_ROOM CheckAndSetEvent EVENT_AUTOWALKED_INTO_AGATHAS_ROOM
jr z, AgathaScript_76474 jr z, AgathaScriptWalkIntoRoom
.asm_764b4 .stopPlayerFromLeaving
ld a, $2 ld a, $2
ld [hSpriteIndexOrTextID], a ld [hSpriteIndexOrTextID], a
call DisplayTextID call DisplayTextID ; "Don't run away!"
ld a, D_UP ld a, D_UP
ld [wSimulatedJoypadStatesEnd], a ld [wSimulatedJoypadStatesEnd], a
ld a, $1 ld a, $1
@ -85,7 +86,7 @@ AgathaScript0: ; 76490 (1d:6490)
ld [wCurMapScript], a ld [wCurMapScript], a
ret ret
CoordsData_764d1: ; 764d1 (1d:64d1) AgathaEntranceCoords: ; 764d1 (1d:64d1)
db $0A,$04 db $0A,$04
db $0A,$05 db $0A,$05
db $0B,$04 db $0B,$04
@ -107,7 +108,7 @@ AgathaScript2: ; 764ed (1d:64ed)
call EndTrainerBattle call EndTrainerBattle
ld a, [wIsInBattle] ld a, [wIsInBattle]
cp $ff cp $ff
jp z, AgathaScript_76464 jp z, ResetAgathaScript
ld a, $1 ld a, $1
ld [hSpriteIndexOrTextID], a ld [hSpriteIndexOrTextID], a
call DisplayTextID call DisplayTextID

View file

@ -1,5 +1,5 @@
BrunoScript: ; 762d6 (1d:62d6) BrunoScript: ; 762d6 (1d:62d6)
call BrunoScript_762ec call BrunoShowOrHideExitBlock
call EnableAutoTextBoxDrawing call EnableAutoTextBoxDrawing
ld hl, BrunoTrainerHeaders ld hl, BrunoTrainerHeaders
ld de, BrunoScriptPointers ld de, BrunoScriptPointers
@ -8,24 +8,24 @@ BrunoScript: ; 762d6 (1d:62d6)
ld [wBrunoCurScript], a ld [wBrunoCurScript], a
ret ret
BrunoScript_762ec: ; 762ec (1d:62ec) BrunoShowOrHideExitBlock: ; 762ec (1d:62ec)
; Blocks or clears the exit to the next room.
ld hl, wd126 ld hl, wd126
bit 5, [hl] bit 5, [hl]
res 5, [hl] res 5, [hl]
ret z ret z
CheckEvent EVENT_BEAT_BRUNOS_ROOM_TRAINER_0 CheckEvent EVENT_BEAT_BRUNOS_ROOM_TRAINER_0
jr z, .asm_76300 jr z, .blockExitToNextRoom
ld a, $5 ld a, $5
jp BrunoScript_76302 jp .setExitBlock
.asm_76300 .blockExitToNextRoom
ld a, $24 ld a, $24
.setExitBlock
BrunoScript_76302: ; 76302 (1d:6302)
ld [wNewTileBlockID], a ld [wNewTileBlockID], a
lb bc, 0, 2 lb bc, 0, 2
predef_jump ReplaceTileBlock predef_jump ReplaceTileBlock
BrunoScript_7630d: ; 7630d (1d:630d) ResetBrunoScript: ; 7630d (1d:630d)
xor a xor a
ld [wBrunoCurScript], a ld [wBrunoCurScript], a
ret ret
@ -40,7 +40,8 @@ BrunoScriptPointers: ; 76312 (1d:6312)
BrunoScript4: ; 7631c (1d:631c) BrunoScript4: ; 7631c (1d:631c)
ret ret
BrunoScript_7631d: ; 7631d (1d:631d) BrunoScriptWalkIntoRoom: ; 7631d (1d:631d)
; Walk six steps upward.
ld hl, wSimulatedJoypadStatesEnd ld hl, wSimulatedJoypadStatesEnd
ld a, D_UP ld a, D_UP
ld [hli], a ld [hli], a
@ -58,7 +59,7 @@ BrunoScript_7631d: ; 7631d (1d:631d)
ret ret
BrunoScript0: ; 76339 (1d:6339) BrunoScript0: ; 76339 (1d:6339)
ld hl, CoordsData_7637a ld hl, BrunoEntranceCoords
call ArePlayerCoordsInArray call ArePlayerCoordsInArray
jp nc, CheckFightingMapTrainers jp nc, CheckFightingMapTrainers
xor a xor a
@ -67,14 +68,14 @@ BrunoScript0: ; 76339 (1d:6339)
ld [wSimulatedJoypadStatesEnd], a ld [wSimulatedJoypadStatesEnd], a
ld [wSimulatedJoypadStatesIndex], a ld [wSimulatedJoypadStatesIndex], a
ld a, [wCoordIndex] ld a, [wCoordIndex]
cp $3 cp $3 ; Is player standing one tile above the exit?
jr c, .asm_7635d jr c, .stopPlayerFromLeaving
CheckAndSetEvent EVENT_AUTOWALKED_INTO_BRUNOS_ROOM CheckAndSetEvent EVENT_AUTOWALKED_INTO_BRUNOS_ROOM
jr z, BrunoScript_7631d jr z, BrunoScriptWalkIntoRoom
.asm_7635d .stopPlayerFromLeaving
ld a, $2 ld a, $2
ld [hSpriteIndexOrTextID], a ld [hSpriteIndexOrTextID], a
call DisplayTextID call DisplayTextID ; "Don't run away!"
ld a, D_UP ld a, D_UP
ld [wSimulatedJoypadStatesEnd], a ld [wSimulatedJoypadStatesEnd], a
ld a, $1 ld a, $1
@ -85,7 +86,7 @@ BrunoScript0: ; 76339 (1d:6339)
ld [wCurMapScript], a ld [wCurMapScript], a
ret ret
CoordsData_7637a: ; 7637a (1d:637a) BrunoEntranceCoords: ; 7637a (1d:637a)
db $0A,$04 db $0A,$04
db $0A,$05 db $0A,$05
db $0B,$04 db $0B,$04
@ -107,7 +108,7 @@ BrunoScript2: ; 76396 (1d:6396)
call EndTrainerBattle call EndTrainerBattle
ld a, [wIsInBattle] ld a, [wIsInBattle]
cp $ff cp $ff
jp z, BrunoScript_7630d jp z, ResetBrunoScript
ld a, $1 ld a, $1
ld [hSpriteIndexOrTextID], a ld [hSpriteIndexOrTextID], a
jp DisplayTextID jp DisplayTextID

View file

@ -4,7 +4,7 @@ GaryScript: ; 75f1d (1d:5f1d)
ld a, [wGaryCurScript] ld a, [wGaryCurScript]
jp CallFunctionInTable jp CallFunctionInTable
GaryScript_75f29: ; 75f29 (1d:5f29) ResetGaryScript: ; 75f29 (1d:5f29)
xor a xor a
ld [wJoyIgnore], a ld [wJoyIgnore], a
ld [wGaryCurScript], a ld [wGaryCurScript], a
@ -30,7 +30,7 @@ GaryScript1: ; 75f48 (1d:5f48)
ld a, $ff ld a, $ff
ld [wJoyIgnore], a ld [wJoyIgnore], a
ld hl, wSimulatedJoypadStatesEnd ld hl, wSimulatedJoypadStatesEnd
ld de, RLEMovement75f63 ld de, GaryEntrance_RLEMovement
call DecodeRLEList call DecodeRLEList
dec a dec a
ld [wSimulatedJoypadStatesIndex], a ld [wSimulatedJoypadStatesIndex], a
@ -39,7 +39,7 @@ GaryScript1: ; 75f48 (1d:5f48)
ld [wGaryCurScript], a ld [wGaryCurScript], a
ret ret
RLEMovement75f63: ; 75f63 (1d:5f63) GaryEntrance_RLEMovement: ; 75f63 (1d:5f63)
db D_UP,1 db D_UP,1
db D_RIGHT,1 db D_RIGHT,1
db D_UP,3 db D_UP,3
@ -53,7 +53,7 @@ GaryScript2: ; 75f6a (1d:5f6a)
xor a xor a
ld [wJoyIgnore], a ld [wJoyIgnore], a
ld hl, wOptions ld hl, wOptions
res 7, [hl] res 7, [hl] ; Turn on battle animations to make the battle feel more epic.
ld a, $1 ld a, $1
ld [hSpriteIndexOrTextID], a ld [hSpriteIndexOrTextID], a
call DisplayTextID call DisplayTextID
@ -61,8 +61,8 @@ GaryScript2: ; 75f6a (1d:5f6a)
ld hl, wd72d ld hl, wd72d
set 6, [hl] set 6, [hl]
set 7, [hl] set 7, [hl]
ld hl, GaryText_760f9 ld hl, GaryDefeatedText
ld de, GaryText_760fe ld de, GaryVictoryText
call SaveEndBattleTextPointers call SaveEndBattleTextPointers
ld a, OPP_SONY3 ld a, OPP_SONY3
ld [wCurOpponent], a ld [wCurOpponent], a
@ -70,17 +70,17 @@ GaryScript2: ; 75f6a (1d:5f6a)
; select which team to use during the encounter ; select which team to use during the encounter
ld a, [wRivalStarter] ld a, [wRivalStarter]
cp STARTER2 cp STARTER2
jr nz, .NotSquirtle jr nz, .NotStarter2
ld a, $1 ld a, $1
jr .done jr .saveTrainerId
.NotSquirtle .NotStarter2
cp STARTER3 cp STARTER3
jr nz, .Charmander jr nz, .NotStarter3
ld a, $2 ld a, $2
jr .done jr .saveTrainerId
.Charmander .NotStarter3
ld a, $3 ld a, $3
.done .saveTrainerId
ld [wTrainerNo], a ld [wTrainerNo], a
xor a xor a
@ -92,7 +92,7 @@ GaryScript2: ; 75f6a (1d:5f6a)
GaryScript3: ; 75fbb (1d:5fbb) GaryScript3: ; 75fbb (1d:5fbb)
ld a, [wIsInBattle] ld a, [wIsInBattle]
cp $ff cp $ff
jp z, GaryScript_75f29 jp z, ResetGaryScript
call UpdateSprites call UpdateSprites
SetEvent EVENT_BEAT_CHAMPION_RIVAL SetEvent EVENT_BEAT_CHAMPION_RIVAL
ld a, $f0 ld a, $f0
@ -115,7 +115,7 @@ GaryScript4: ; 75fe4 (1d:5fe4)
ld a, $2 ld a, $2
ld [H_SPRITEINDEX], a ld [H_SPRITEINDEX], a
call SetSpriteMovementBytesToFF call SetSpriteMovementBytesToFF
ld de, MovementData_76014 ld de, OakEntranceAfterVictoryMovement
ld a, $2 ld a, $2
ld [H_SPRITEINDEX], a ld [H_SPRITEINDEX], a
call MoveSprite call MoveSprite
@ -126,7 +126,7 @@ GaryScript4: ; 75fe4 (1d:5fe4)
ld [wGaryCurScript], a ld [wGaryCurScript], a
ret ret
MovementData_76014: ; 76014 (1d:6014) OakEntranceAfterVictoryMovement: ; 76014 (1d:6014)
db NPC_MOVEMENT_UP db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP db NPC_MOVEMENT_UP
@ -179,7 +179,7 @@ GaryScript7: ; 7605f (1d:605f)
ld a, $5 ld a, $5
ld [hSpriteIndexOrTextID], a ld [hSpriteIndexOrTextID], a
call GaryScript_760c8 call GaryScript_760c8
ld de, MovementData_76080 ld de, OakExitGaryRoomMovement
ld a, $2 ld a, $2
ld [H_SPRITEINDEX], a ld [H_SPRITEINDEX], a
call MoveSprite call MoveSprite
@ -187,7 +187,7 @@ GaryScript7: ; 7605f (1d:605f)
ld [wGaryCurScript], a ld [wGaryCurScript], a
ret ret
MovementData_76080: ; 76080 (1d:6080) OakExitGaryRoomMovement: ; 76080 (1d:6080)
db NPC_MOVEMENT_UP db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP db NPC_MOVEMENT_UP
db $FF db $FF
@ -207,7 +207,7 @@ GaryScript9: ; 76099 (1d:6099)
ld a, $ff ld a, $ff
ld [wJoyIgnore], a ld [wJoyIgnore], a
ld hl, wSimulatedJoypadStatesEnd ld hl, wSimulatedJoypadStatesEnd
ld de, RLEMovement760b4 ld de, WalkToHallOfFame_RLEMovment
call DecodeRLEList call DecodeRLEList
dec a dec a
ld [wSimulatedJoypadStatesIndex], a ld [wSimulatedJoypadStatesIndex], a
@ -216,7 +216,7 @@ GaryScript9: ; 76099 (1d:6099)
ld [wGaryCurScript], a ld [wGaryCurScript], a
ret ret
RLEMovement760b4: ; 760b4 (1d:60b4) WalkToHallOfFame_RLEMovment: ; 760b4 (1d:60b4)
db D_UP,4 db D_UP,4
db D_LEFT,1 db D_LEFT,1
db $ff db $ff
@ -249,23 +249,23 @@ GaryTextPointers: ; 760d6 (1d:60d6)
GaryText1: ; 760e0 (1d:60e0) GaryText1: ; 760e0 (1d:60e0)
TX_ASM TX_ASM
CheckEvent EVENT_BEAT_CHAMPION_RIVAL CheckEvent EVENT_BEAT_CHAMPION_RIVAL
ld hl, GaryText_760f4 ld hl, GaryChampionIntroText
jr z, .asm_17e9f jr z, .printText
ld hl, GaryText_76103 ld hl, GaryText_76103
.asm_17e9f .printText
call PrintText call PrintText
jp TextScriptEnd jp TextScriptEnd
GaryText_760f4: ; 760f4 (1d:60f4) GaryChampionIntroText: ; 760f4 (1d:60f4)
TX_FAR _GaryText_760f4 TX_FAR _GaryChampionIntroText
db "@" db "@"
GaryText_760f9: ; 760f9 (1d:60f9) GaryDefeatedText: ; 760f9 (1d:60f9)
TX_FAR _GaryText_760f9 TX_FAR _GaryDefeatedText
db "@" db "@"
GaryText_760fe: ; 760fe (1d:60fe) GaryVictoryText: ; 760fe (1d:60fe)
TX_FAR _GaryText_760fe TX_FAR _GaryVictoryText
db "@" db "@"
GaryText_76103: ; 76103 (1d:6103) GaryText_76103: ; 76103 (1d:6103)

View file

@ -1,5 +1,5 @@
LanceScript: ; 5a2ae (16:62ae) LanceScript: ; 5a2ae (16:62ae)
call LanceScript_5a2c4 call LanceShowOrHideEntranceBlocks
call EnableAutoTextBoxDrawing call EnableAutoTextBoxDrawing
ld hl, LanceTrainerHeaders ld hl, LanceTrainerHeaders
ld de, LanceScriptPointers ld de, LanceScriptPointers
@ -8,34 +8,36 @@ LanceScript: ; 5a2ae (16:62ae)
ld [wLanceCurScript], a ld [wLanceCurScript], a
ret ret
LanceScript_5a2c4: ; 5a2c4 (16:62c4) LanceShowOrHideEntranceBlocks: ; 5a2c4 (16:62c4)
ld hl, wd126 ld hl, wd126
bit 5, [hl] bit 5, [hl]
res 5, [hl] res 5, [hl]
ret z ret z
CheckEvent EVENT_LANCES_ROOM_LOCK_DOOR CheckEvent EVENT_LANCES_ROOM_LOCK_DOOR
jr nz, .asm_5a2da jr nz, .closeEntrance
; open entrance
ld a, $31 ld a, $31
ld b, $32 ld b, $32
jp LanceScript_5a2de jp LanceSetEntranceBlocks
.asm_5a2da .closeEntrance
ld a, $72 ld a, $72
ld b, $73 ld b, $73
LanceScript_5a2de: ; 5a2de (16:62de) LanceSetEntranceBlocks: ; 5a2de (16:62de)
; Replaces the tile blocks so the player can't leave.
push bc push bc
ld [wNewTileBlockID], a ld [wNewTileBlockID], a
lb bc, 6, 2 lb bc, 6, 2
call LanceScript_5a2f0 call LanceSetEntranceBlock
pop bc pop bc
ld a, b ld a, b
ld [wNewTileBlockID], a ld [wNewTileBlockID], a
lb bc, 6, 3 lb bc, 6, 3
LanceScript_5a2f0: ; 5a2f0 (16:62f0) LanceSetEntranceBlock: ; 5a2f0 (16:62f0)
predef_jump ReplaceTileBlock predef_jump ReplaceTileBlock
LanceScript_5a2f5: ; 5a2f5 (16:62f5) ResetLanceScript: ; 5a2f5 (16:62f5)
xor a xor a
ld [wLanceCurScript], a ld [wLanceCurScript], a
ret ret
@ -53,29 +55,29 @@ LanceScript4: ; 5a304 (16:6304)
LanceScript0: ; 5a305 (16:6305) LanceScript0: ; 5a305 (16:6305)
CheckEvent EVENT_BEAT_LANCE CheckEvent EVENT_BEAT_LANCE
ret nz ret nz
ld hl, CoordsData_5a33e ld hl, LanceTriggerMovementCoords
call ArePlayerCoordsInArray call ArePlayerCoordsInArray
jp nc, CheckFightingMapTrainers jp nc, CheckFightingMapTrainers
xor a xor a
ld [hJoyHeld], a ld [hJoyHeld], a
ld a, [wCoordIndex] ld a, [wCoordIndex]
cp $3 cp $3 ; Is player standing next to Lance's sprite?
jr nc, .asm_5a325 jr nc, .notStandingNextToLance
ld a, $1 ld a, $1
ld [hSpriteIndexOrTextID], a ld [hSpriteIndexOrTextID], a
jp DisplayTextID jp DisplayTextID
.asm_5a325 .notStandingNextToLance
cp $5 cp $5 ; Is player standing on the entrance staircase?
jr z, LanceScript_5a35b jr z, WalkToLance
CheckAndSetEvent EVENT_LANCES_ROOM_LOCK_DOOR CheckAndSetEvent EVENT_LANCES_ROOM_LOCK_DOOR
ret nz ret nz
ld hl, wd126 ld hl, wd126
set 5, [hl] set 5, [hl]
ld a, SFX_GO_INSIDE ld a, SFX_GO_INSIDE
call PlaySound call PlaySound
jp LanceScript_5a2c4 jp LanceShowOrHideEntranceBlocks
CoordsData_5a33e: ; 5a33e (16:633e) LanceTriggerMovementCoords: ; 5a33e (16:633e)
db $01,$05 db $01,$05
db $02,$06 db $02,$06
db $0B,$05 db $0B,$05
@ -87,16 +89,17 @@ LanceScript2: ; 5a349 (16:6349)
call EndTrainerBattle call EndTrainerBattle
ld a, [wIsInBattle] ld a, [wIsInBattle]
cp $ff cp $ff
jp z, LanceScript_5a2f5 jp z, ResetLanceScript
ld a, $1 ld a, $1
ld [hSpriteIndexOrTextID], a ld [hSpriteIndexOrTextID], a
jp DisplayTextID jp DisplayTextID
LanceScript_5a35b: ; 5a35b (16:635b) WalkToLance: ; 5a35b (16:635b)
; Moves the player down the hallway to Lance's room.
ld a, $ff ld a, $ff
ld [wJoyIgnore], a ld [wJoyIgnore], a
ld hl, wSimulatedJoypadStatesEnd ld hl, wSimulatedJoypadStatesEnd
ld de, RLEList_5a379 ld de, WalkToLance_RLEList
call DecodeRLEList call DecodeRLEList
dec a dec a
ld [wSimulatedJoypadStatesIndex], a ld [wSimulatedJoypadStatesIndex], a
@ -106,7 +109,7 @@ LanceScript_5a35b: ; 5a35b (16:635b)
ld [wCurMapScript], a ld [wCurMapScript], a
ret ret
RLEList_5a379: ; 5a379 (16:6379) WalkToLance_RLEList: ; 5a379 (16:6379)
db D_UP, $0C db D_UP, $0C
db D_LEFT, $0C db D_LEFT, $0C
db D_DOWN, $07 db D_DOWN, $07

View file

@ -1,5 +1,5 @@
LoreleiScript: ; 7617b (1d:617b) LoreleiScript: ; 7617b (1d:617b)
call LoreleiScript_76191 call LoreleiShowOrHideExitBlock
call EnableAutoTextBoxDrawing call EnableAutoTextBoxDrawing
ld hl, LoreleiTrainerHeaders ld hl, LoreleiTrainerHeaders
ld de, LoreleiScriptPointers ld de, LoreleiScriptPointers
@ -8,7 +8,8 @@ LoreleiScript: ; 7617b (1d:617b)
ld [wLoreleiCurScript], a ld [wLoreleiCurScript], a
ret ret
LoreleiScript_76191: ; 76191 (1d:6191) LoreleiShowOrHideExitBlock: ; 76191 (1d:6191)
; Blocks or clears the exit to the next room.
ld hl, wd126 ld hl, wd126
bit 5, [hl] bit 5, [hl]
res 5, [hl] res 5, [hl]
@ -16,17 +17,17 @@ LoreleiScript_76191: ; 76191 (1d:6191)
ld hl, wBeatLorelei ld hl, wBeatLorelei
set 1, [hl] set 1, [hl]
CheckEvent EVENT_BEAT_LORELEIS_ROOM_TRAINER_0 CheckEvent EVENT_BEAT_LORELEIS_ROOM_TRAINER_0
jr z, .asm_761a9 jr z, .blockExitToNextRoom
ld a, $5 ld a, $5
jr .asm_761ab jr .setExitBlock
.asm_761a9 .blockExitToNextRoom
ld a, $24 ld a, $24
.asm_761ab .setExitBlock
ld [wNewTileBlockID], a ld [wNewTileBlockID], a
lb bc, 0, 2 lb bc, 0, 2
predef_jump ReplaceTileBlock predef_jump ReplaceTileBlock
LoreleiScript_761b6: ; 761b6 (1d:61b6) ResetLoreleiScript: ; 761b6 (1d:61b6)
xor a xor a
ld [wLoreleiCurScript], a ld [wLoreleiCurScript], a
ret ret
@ -41,7 +42,8 @@ LoreleiScriptPointers: ; 761bb (1d:61bb)
LoreleiScript4: ; 761c5 (1d:61c5) LoreleiScript4: ; 761c5 (1d:61c5)
ret ret
LoreleiScript_761c6: ; 761c6 (1d:61c6) LoreleiScriptWalkIntoRoom: ; 761c6 (1d:61c6)
; Walk six steps upward.
ld hl, wSimulatedJoypadStatesEnd ld hl, wSimulatedJoypadStatesEnd
ld a, D_UP ld a, D_UP
ld [hli], a ld [hli], a
@ -59,7 +61,7 @@ LoreleiScript_761c6: ; 761c6 (1d:61c6)
ret ret
LoreleiScript0: ; 761e2 (1d:61e2) LoreleiScript0: ; 761e2 (1d:61e2)
ld hl, CoordsData_76223 ld hl, LoreleiEntranceCoords
call ArePlayerCoordsInArray call ArePlayerCoordsInArray
jp nc, CheckFightingMapTrainers jp nc, CheckFightingMapTrainers
xor a xor a
@ -68,14 +70,14 @@ LoreleiScript0: ; 761e2 (1d:61e2)
ld [wSimulatedJoypadStatesEnd], a ld [wSimulatedJoypadStatesEnd], a
ld [wSimulatedJoypadStatesIndex], a ld [wSimulatedJoypadStatesIndex], a
ld a, [wCoordIndex] ld a, [wCoordIndex]
cp $3 cp $3 ; Is player standing one tile above the exit?
jr c, .asm_76206 jr c, .stopPlayerFromLeaving
CheckAndSetEvent EVENT_AUTOWALKED_INTO_LORELEIS_ROOM CheckAndSetEvent EVENT_AUTOWALKED_INTO_LORELEIS_ROOM
jr z, LoreleiScript_761c6 jr z, LoreleiScriptWalkIntoRoom
.asm_76206 .stopPlayerFromLeaving
ld a, $2 ld a, $2
ld [hSpriteIndexOrTextID], a ld [hSpriteIndexOrTextID], a
call DisplayTextID call DisplayTextID ; "Don't run away!"
ld a, D_UP ld a, D_UP
ld [wSimulatedJoypadStatesEnd], a ld [wSimulatedJoypadStatesEnd], a
ld a, $1 ld a, $1
@ -86,7 +88,7 @@ LoreleiScript0: ; 761e2 (1d:61e2)
ld [wCurMapScript], a ld [wCurMapScript], a
ret ret
CoordsData_76223: ; 76223 (1d:6223) LoreleiEntranceCoords: ; 76223 (1d:6223)
db $0A,$04 db $0A,$04
db $0A,$05 db $0A,$05
db $0B,$04 db $0B,$04
@ -103,11 +105,12 @@ LoreleiScript3: ; 7622c (1d:622c)
ld [wLoreleiCurScript], a ld [wLoreleiCurScript], a
ld [wCurMapScript], a ld [wCurMapScript], a
ret ret
LoreleiScript2: ; 7623f (1d:623f) LoreleiScript2: ; 7623f (1d:623f)
call EndTrainerBattle call EndTrainerBattle
ld a, [wIsInBattle] ld a, [wIsInBattle]
cp $ff cp $ff
jp z, LoreleiScript_761b6 jp z, ResetLoreleiScript
ld a, $1 ld a, $1
ld [hSpriteIndexOrTextID], a ld [hSpriteIndexOrTextID], a
jp DisplayTextID jp DisplayTextID

View file

@ -1,4 +1,4 @@
_GaryText_760f4:: _GaryChampionIntroText::
text $53, ": Hey!" text $53, ": Hey!"
para "I was looking" para "I was looking"
@ -35,7 +35,7 @@ _GaryText_760f4::
cont "in the world!" cont "in the world!"
done done
_GaryText_760f9:: _GaryDefeatedText::
text "NO!" text "NO!"
line "That can't be!" line "That can't be!"
cont "You beat my best!" cont "You beat my best!"
@ -49,7 +49,7 @@ _GaryText_760f9::
cont "It's not fair!" cont "It's not fair!"
prompt prompt
_GaryText_760fe:: _GaryVictoryText::
text "Hahaha!" text "Hahaha!"
line "I won, I won!" line "I won, I won!"