summaryrefslogtreecommitdiff
path: root/scripts/SilphCo11F.asm
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/SilphCo11F.asm')
-rwxr-xr-xscripts/SilphCo11F.asm538
1 files changed, 364 insertions, 174 deletions
diff --git a/scripts/SilphCo11F.asm b/scripts/SilphCo11F.asm
index 483082a1..e58dbebe 100755
--- a/scripts/SilphCo11F.asm
+++ b/scripts/SilphCo11F.asm
@@ -1,5 +1,5 @@
SilphCo11F_Script:
- call SilphCo11Script_62110
+ call SilphCo11Script_62127
call EnableAutoTextBoxDrawing
ld hl, SilphCo11TrainerHeader0
ld de, SilphCo11F_ScriptPointers
@@ -8,26 +8,27 @@ SilphCo11F_Script:
ld [wSilphCo11FCurScript], a
ret
-SilphCo11Script_62110:
+SilphCo11Script_62127:
ld hl, wCurrentMapScriptFlags
bit 5, [hl]
res 5, [hl]
ret z
ld hl, SilphCo11GateCoords
- call SilphCo11Script_62137
- call SilphCo11Script_62163
+ call SilphCo11Script_6214f
+ call SilphCo11Script_6217b
CheckEvent EVENT_SILPH_CO_11_UNLOCKED_DOOR
ret nz
ld a, $20
ld [wNewTileBlockID], a
lb bc, 6, 3
- predef_jump ReplaceTileBlock
+ predef ReplaceTileBlock
+ ret
SilphCo11GateCoords:
db $06,$03
db $FF
-SilphCo11Script_62137:
+SilphCo11Script_6214f:
push hl
ld hl, wCardKeyDoorY
ld a, [hli]
@@ -63,93 +64,17 @@ SilphCo11Script_62137:
ld [$ffe0], a
ret
-SilphCo11Script_62163:
+SilphCo11Script_6217b:
ld a, [$ffe0]
and a
ret z
SetEvent EVENT_SILPH_CO_11_UNLOCKED_DOOR
ret
-SilphCo11Script_6216d:
- ld hl, MissableObjectIDs_6219b
-.asm_62170
- ld a, [hli]
- cp $ff
- jr z, .asm_62181
- push hl
- ld [wMissableObjectIndex], a
- predef HideObject
- pop hl
- jr .asm_62170
-.asm_62181
- ld hl, MissableObjectIDs_62194
-.asm_62184
- ld a, [hli]
- cp $ff
- ret z
- push hl
- ld [wMissableObjectIndex], a
- predef ShowObject
- pop hl
- jr .asm_62184
-
-MissableObjectIDs_62194:
- db HS_SAFFRON_CITY_8
- db HS_SAFFRON_CITY_9
- db HS_SAFFRON_CITY_A
- db HS_SAFFRON_CITY_B
- db HS_SAFFRON_CITY_C
- db HS_SAFFRON_CITY_D
- db $FF
-
-MissableObjectIDs_6219b:
- db HS_SAFFRON_CITY_1
- db HS_SAFFRON_CITY_2
- db HS_SAFFRON_CITY_3
- db HS_SAFFRON_CITY_4
- db HS_SAFFRON_CITY_5
- db HS_SAFFRON_CITY_6
- db HS_SAFFRON_CITY_7
- db HS_SAFFRON_CITY_E
- db HS_SAFFRON_CITY_F
- db HS_SILPH_CO_2F_2
- db HS_SILPH_CO_2F_3
- db HS_SILPH_CO_2F_4
- db HS_SILPH_CO_2F_5
- db HS_SILPH_CO_3F_1
- db HS_SILPH_CO_3F_2
- db HS_SILPH_CO_4F_1
- db HS_SILPH_CO_4F_2
- db HS_SILPH_CO_4F_3
- db HS_SILPH_CO_5F_1
- db HS_SILPH_CO_5F_2
- db HS_SILPH_CO_5F_3
- db HS_SILPH_CO_5F_4
- db HS_SILPH_CO_6F_1
- db HS_SILPH_CO_6F_2
- db HS_SILPH_CO_6F_3
- db HS_SILPH_CO_7F_1
- db HS_SILPH_CO_7F_2
- db HS_SILPH_CO_7F_3
- db HS_SILPH_CO_7F_4
- db HS_SILPH_CO_8F_1
- db HS_SILPH_CO_8F_2
- db HS_SILPH_CO_8F_3
- db HS_SILPH_CO_9F_1
- db HS_SILPH_CO_9F_2
- db HS_SILPH_CO_9F_3
- db HS_SILPH_CO_10F_1
- db HS_SILPH_CO_10F_2
- db HS_SILPH_CO_11F_1
- db HS_SILPH_CO_11F_2
- db HS_SILPH_CO_11F_3
- db $FF
-
-SilphCo11Script_621c4:
+SilphCo11Script_62185:
xor a
ld [wJoyIgnore], a
-
-SilphCo11Script_621c8:
+SilphCo11Script_62189:
ld [wSilphCo11FCurScript], a
ld [wCurMapScript], a
ret
@@ -161,10 +86,26 @@ SilphCo11F_ScriptPointers:
dw SilphCo11Script3
dw SilphCo11Script4
dw SilphCo11Script5
+ dw SilphCo11Script6
+ dw SilphCo11Script7
+ dw SilphCo11Script8
+ dw SilphCo11Script9
+ dw SilphCo11Script10
+ dw SilphCo11Script11
+ dw SilphCo11Script12
+ dw SilphCo11Script13
+ dw SilphCo11Script14
SilphCo11Script0:
- CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI
+ CheckEvent EVENT_BEAT_SILPH_CO_11F_TRAINER_0
+ call z, SilphCo11Script_6229c
+ CheckEvent EVENT_782
ret nz
+ CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI
+ call z, SilphCo11Script_621c5
+ ret
+
+SilphCo11Script_621c5:
ld hl, CoordsData_62211
call ArePlayerCoordsInArray
jp nc, CheckFightingMapTrainers
@@ -182,8 +123,9 @@ SilphCo11Script0:
call SetSpriteMovementBytesToFF
ld de, MovementData_62216
call MoveSprite
- ld a, $3
- jp SilphCo11Script_621c8
+ ld a, $4
+ call SilphCo11Script_62189
+ ret
CoordsData_62211:
db $0D,$06
@@ -196,18 +138,18 @@ MovementData_62216:
db NPC_MOVEMENT_DOWN
db $FF
-SilphCo11Script_6221a:
+SilphCo11Script_621ff:
ld [wPlayerMovingDirection], a
- ld a, $3
- ld [H_SPRITEINDEX], a
ld a, b
- ld [hSpriteFacingDirection], a
- jp SetSpriteFacingDirectionAndDelay
+ ld [wSpriteStateData1 + 3 * $10 + 9], a
+ ld a, $2
+ ld [wSpriteStateData1 + 3 * $10 + 1], a
+ ret
-SilphCo11Script5:
+SilphCo11Script3:
ld a, [wIsInBattle]
cp $ff
- jp z, SilphCo11Script_621c4
+ jp z, SilphCo11Script_62185
ld a, [wcf0d]
cp $1
jr z, .asm_6223c
@@ -218,23 +160,23 @@ SilphCo11Script5:
ld a, PLAYER_DIR_UP
ld b, SPRITE_FACING_DOWN
.asm_62240
- call SilphCo11Script_6221a
+ call SilphCo11Script_621ff
ld a, $f0
ld [wJoyIgnore], a
- ld a, $6
+ ld a, $7
ld [hSpriteIndexOrTextID], a
call DisplayTextID
call GBFadeOutToBlack
- call SilphCo11Script_6216d
+ callba Func_f25a0
call UpdateSprites
call Delay3
call GBFadeInFromBlack
SetEvent EVENT_BEAT_SILPH_CO_GIOVANNI
xor a
ld [wJoyIgnore], a
- jp SilphCo11Script_621c8
+ jp SilphCo11Script_62189
-SilphCo11Script3:
+SilphCo11Script4:
ld a, [wd730]
bit 0, a
ret nz
@@ -251,26 +193,275 @@ SilphCo11Script3:
ld a, PLAYER_DIR_UP
ld b, SPRITE_FACING_DOWN
.asm_62288
- call SilphCo11Script_6221a
+ call SilphCo11Script_621ff
call Delay3
- ld a, $4
- jp SilphCo11Script_621c8
-
-SilphCo11Script4:
+ xor a
+ ld [wJoyIgnore], a
ld hl, wd72d
set 6, [hl]
set 7, [hl]
- ld hl, SilphCo10Text_62330
- ld de, SilphCo10Text_62330
+ ld hl, SilphCo10Text_62528
+ ld de, SilphCo10Text_62528
call SaveEndBattleTextPointers
ld a, [H_SPRITEINDEX]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
+ ld a, $3
+ jp SilphCo11Script_62189
+
+SilphCo11Script_6229c:
+ ld a, [wYCoord]
+ cp $3
+ ret nz
+ ld a, [wXCoord]
+ cp $4
+ ret nc
+ ResetEvents EVENT_780, EVENT_781
+ ld a, [wXCoord]
+ cp $3
+ jr z, .asm_622c3
+ SetEventReuseHL EVENT_780
+ ld a, [wXCoord]
+ cp $2
+ jr z, .asm_622c3
+ ResetEventReuseHL EVENT_780
+ SetEventReuseHL EVENT_781
+.asm_622c3
+ call StopAllMusic
+ ld c, BANK(Music_MeetJessieJames)
+ ld a, MUSIC_MEET_JESSIE_JAMES
+ call PlayMusic
+ xor a
+ ld [hJoyHeld], a
+ ld a, $fc
+ ld [wJoyIgnore], a
+ ld a, $1
+ ld [wDoNotWaitForButtonPressAfterDisplayingText], a
+ ld a, $8
+ ld [hSpriteIndexOrTextID], a
+ call DisplayTextID
xor a
+ ld [wDoNotWaitForButtonPressAfterDisplayingText], a
+ ld a, $ff
ld [wJoyIgnore], a
+ SetEvent EVENT_782
ld a, $5
- jp SilphCo11Script_621c8
+ call SilphCo11Script_62189
+ ret
+
+SilphCo11MovementData_622f5:
+ db $5
+ db $5
+ db $5
+ db $5
+ db $5
+ db $ff
+
+SilphCo11MovementData_622fb:
+ db $5
+ db $5
+ db $5
+ db $5
+ db $ff
+
+SilphCo11MovementData_62300:
+ db $5
+ db $5
+ db $5
+ db $5
+ db $ff
+
+SilphCo11MovementData_62305:
+ db $5
+ db $5
+ db $5
+ db $5
+ db $5
+ db $ff
+
+SilphCo11MovementData_6230b:
+ db $5
+ db $5
+ db $6
+ db $5
+ db $5
+ db $ff
+
+SilphCo11MovementData_62311:
+ db $5
+ db $5
+ db $5
+ db $6
+ db $5
+ db $5
+ db $ff
+
+SilphCo11Script5:
+ ld de, SilphCo11MovementData_622f5
+ CheckEitherEventSet EVENT_780, EVENT_781
+ and a
+ jr z, .asm_6232d
+ ld de, SilphCo11MovementData_62300
+ cp $1
+ jr z, .asm_6232d
+ ld de, SilphCo11MovementData_6230b
+.asm_6232d
+ ld a, $4
+ ld [hSpriteIndexOrTextID], a
+ call MoveSprite
+ ld a, $ff
+ ld [wJoyIgnore], a
+ ld a, $6
+ call SilphCo11Script_62189
+ ret
+
+SilphCo11Script6:
+ ld a, $ff
+ ld [wJoyIgnore], a
+ ld a, [wd730]
+ bit 0, a
+ ret nz
+SilphCo11Script7:
+ ld a, $2
+ ld [wSpriteStateData1 + 4 * $10 + 1], a
+ ld hl, wSpriteStateData1 + 4 * $10 + 9
+ ld [hl], SPRITE_FACING_RIGHT
+ CheckEitherEventSet EVENT_780, EVENT_781
+ and a
+ jr z, .asm_6235e
+ ld [hl], SPRITE_FACING_UP
+.asm_6235e
+ call Delay3
+ ld a, $fc
+ ld [wJoyIgnore], a
+SilphCo11Script8:
+ ld de, SilphCo11MovementData_622fb
+ CheckEitherEventSet EVENT_780, EVENT_781
+ and a
+ jr z, .asm_6237b
+ ld de, SilphCo11MovementData_62305
+ cp $1
+ jr z, .asm_6237b
+ ld de, SilphCo11MovementData_62311
+.asm_6237b
+ ld a, $6
+ ld [hSpriteIndexOrTextID], a
+ call MoveSprite
+ ld a, $ff
+ ld [wJoyIgnore], a
+ ld a, $9
+ call SilphCo11Script_62189
+ ret
+
+SilphCo11Script9:
+ ld a, $ff
+ ld [wJoyIgnore], a
+ ld a, [wd730]
+ bit 0, a
+ ret nz
+ ld a, $fc
+ ld [wJoyIgnore], a
+SilphCo11Script10:
+ ld a, $2
+ ld [wSpriteStateData1 + 6 * $10 + 1], a
+ ld hl, wSpriteStateData1 + 6 * $10 + 9
+ ld [hl], SPRITE_FACING_UP
+ CheckEitherEventSet EVENT_780, EVENT_781
+ and a
+ jr z, .asm_623b1
+ ld [hl], SPRITE_FACING_LEFT
+.asm_623b1
+ call Delay3
+ ld a, $9
+ ld [hSpriteIndexOrTextID], a
+ call DisplayTextID
+SilphCo11Script11:
+ ld hl, wd72d
+ set 6, [hl]
+ set 7, [hl]
+ ld hl, SilphCo11Text_624c2
+ ld de, SilphCo11Text_624c2
+ call SaveEndBattleTextPointers
+ ld a, OPP_ROCKET
+ ld [wCurOpponent], a
+ ld a, $2d
+ ld [wTrainerNo], a
+ xor a
+ ld [hJoyHeld], a
+ ld [wJoyIgnore], a
+ ld a, $c
+ call SilphCo11Script_62189
+ ret
+
+SilphCo11Script12:
+ ld a, $ff
+ ld [wJoyIgnore], a
+ ld a, [wIsInBattle]
+ cp $ff
+ jp z, SilphCo11Script_62185
+ ld a, $2
+ ld [wSpriteStateData1 + 4 * $10 + 1], a
+ ld [wSpriteStateData1 + 6 * $10 + 1], a
+ xor a
+ ld [wSpriteStateData1 + 4 * $10 + 9], a
+ ld [wSpriteStateData1 + 6 * $10 + 9], a
+ ld a, $fc
+ ld [wJoyIgnore], a
+ ld a, $1
+ ld [wDoNotWaitForButtonPressAfterDisplayingText], a
+ ld a, $a
+ ld [hSpriteIndexOrTextID], a
+ call DisplayTextID
+ xor a
+ ld [wDoNotWaitForButtonPressAfterDisplayingText], a
+ call StopAllMusic
+ ld c, BANK(Music_MeetJessieJames)
+ ld a, MUSIC_MEET_JESSIE_JAMES
+ call PlayMusic
+ ld a, $ff
+ ld [wJoyIgnore], a
+ ld a, $d
+ call SilphCo11Script_62189
+ ret
+
+SilphCo11Script13:
+ ld a, $ff
+ ld [wJoyIgnore], a
+ call GBFadeOutToBlack
+ ld a, HS_SILPH_CO_11F_JAMES
+ call SilphCo11Script_6246d
+ ld a, HS_SILPH_CO_11F_JESSIE
+ call SilphCo11Script_6246d
+ call UpdateSprites
+ call Delay3
+ call GBFadeInFromBlack
+ ld a, $e
+ call SilphCo11Script_62189
+ ret
+
+SilphCo11Script14:
+ call PlayDefaultMusic
+ xor a
+ ld [hJoyHeld], a
+ ld [wJoyIgnore], a
+ ResetEvent EVENT_782
+ SetEventReuseHL EVENT_BEAT_SILPH_CO_11F_TRAINER_0
+ ld a, $0
+ call SilphCo11Script_62189
+ ret
+
+SilphCo11Script_6245e:
+ ld [wMissableObjectIndex], a
+ predef ShowObject
+ call UpdateSprites
+ call Delay3
+ ret
+
+SilphCo11Script_6246d:
+ ld [wMissableObjectIndex], a
+ predef HideObject
+ ret
SilphCo11F_TextPointers:
dw SilphCo11Text1
@@ -279,64 +470,93 @@ SilphCo11F_TextPointers:
dw SilphCo11Text4
dw SilphCo11Text5
dw SilphCo11Text6
+ dw SilphCo11Text7
+ dw SilphCo11Text8
+ dw SilphCo11Text9
+ dw SilphCo11Text10
SilphCo11TrainerHeader0:
- dbEventFlagBit EVENT_BEAT_SILPH_CO_11F_TRAINER_0
- db ($4 << 4) ; trainer's view range
- dwEventFlagAddress EVENT_BEAT_SILPH_CO_11F_TRAINER_0
- dw SilphCo11BattleText1 ; TextBeforeBattle
- dw SilphCo11AfterBattleText1 ; TextAfterBattle
- dw SilphCo11EndBattleText1 ; TextEndBattle
- dw SilphCo11EndBattleText1 ; TextEndBattle
-
-SilphCo11TrainerHeader1:
dbEventFlagBit EVENT_BEAT_SILPH_CO_11F_TRAINER_1
- db ($3 << 4) ; trainer's view range
+ db ($3 << 4)
dwEventFlagAddress EVENT_BEAT_SILPH_CO_11F_TRAINER_1
- dw SilphCo11BattleText2 ; TextBeforeBattle
- dw SilphCo11AfterBattleText2 ; TextAfterBattle
- dw SilphCo11EndBattleText2 ; TextEndBattle
- dw SilphCo11EndBattleText2 ; TextEndBattle
+ dw SilphCo11Trainer1BattleText
+ dw SilphCo11Trainer1AfterBattleText
+ dw SilphCo11Trainer1EndBattleText
+ dw SilphCo11Trainer1EndBattleText
- db $ff
+ db $ff ; no more trainers
+
+SilphCo11Text4:
+SilphCo11Text6:
+SilphCo11Text8:
+ TX_FAR _SilphCoJessieJamesText1
+ TX_ASM
+ ld c, 10
+ call DelayFrames
+ ld a, $4
+ ld [wPlayerMovingDirection], a
+ ld a, $0
+ ld [wEmotionBubbleSpriteIndex], a
+ ld a, EXCLAMATION_BUBBLE
+ ld [wWhichEmotionBubble], a
+ predef EmotionBubble
+ ld c, 20
+ call DelayFrames
+ jp TextScriptEnd
+
+SilphCo11Text9:
+ TX_FAR _SilphCoJessieJamesText2
+ db "@"
+
+SilphCo11Text_624c2:
+ TX_FAR _SilphCoJessieJamesText3
+ db "@"
+
+SilphCo11Text10:
+ TX_FAR _SilphCoJessieJamesText4
+ TX_ASM
+ ld c, 64
+ call DelayFrames
+ jp TextScriptEnd
SilphCo11Text1:
TX_ASM
CheckEvent EVENT_GOT_MASTER_BALL
- jp nz, .asm_62308
- ld hl, SilphCoPresidentText
+ jp nz, .asm_62500
+ ld hl, SilphCo11Text_62509
call PrintText
lb bc, MASTER_BALL, 1
call GiveItem
- jr nc, .BagFull
- ld hl, ReceivedSilphCoMasterBallText
+ jr nc, .asm_624f8
+ ld hl, SilphCo11Text_6250e
call PrintText
SetEvent EVENT_GOT_MASTER_BALL
- jr .asm_6230e
-.BagFull
- ld hl, SilphCoMasterBallNoRoomText
+ jr .asm_62506
+.asm_624f8
+ ld hl, SilphCo11Text_62519
call PrintText
- jr .asm_6230e
-.asm_62308
- ld hl, SilphCo10Text_6231c
+ jr .asm_62506
+
+.asm_62500
+ ld hl, SilphCo11Text_62514
call PrintText
-.asm_6230e
+.asm_62506
jp TextScriptEnd
-SilphCoPresidentText:
+SilphCo11Text_62509:
TX_FAR _SilphCoPresidentText
db "@"
-ReceivedSilphCoMasterBallText:
+SilphCo11Text_6250e:
TX_FAR _ReceivedSilphCoMasterBallText
TX_SFX_KEY_ITEM
db "@"
-SilphCo10Text_6231c:
+SilphCo11Text_62514:
TX_FAR _SilphCo10Text_6231c
db "@"
-SilphCoMasterBallNoRoomText:
+SilphCo11Text_62519:
TX_FAR _SilphCoMasterBallNoRoomText
db "@"
@@ -348,58 +568,28 @@ SilphCo11Text3:
TX_FAR _SilphCo11Text3
db "@"
-SilphCo10Text_62330:
+SilphCo10Text_62528:
TX_FAR _SilphCo10Text_62330
db "@"
-SilphCo11Text6:
+SilphCo11Text7:
TX_FAR _SilphCo10Text_62335
db "@"
-SilphCo11Text4:
- TX_ASM
- ld hl, SilphCo11TrainerHeader0
- call TalkToTrainer
- jp TextScriptEnd
-
-SilphCo11BattleText1:
- TX_FAR _SilphCo11BattleText1
- db "@"
-
-SilphCo11EndBattleText1:
- TX_FAR _SilphCo11EndBattleText1
- db "@"
-
-SilphCo11AfterBattleText1:
- TX_FAR _SilphCo11AfterBattleText1
- db "@"
-
SilphCo11Text5:
TX_ASM
- ld hl, SilphCo11TrainerHeader1
+ ld hl, SilphCo11TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
-SilphCo11BattleText2:
+SilphCo11Trainer1BattleText:
TX_FAR _SilphCo11BattleText2
db "@"
-SilphCo11EndBattleText2:
+SilphCo11Trainer1EndBattleText:
TX_FAR _SilphCo11EndBattleText2
db "@"
-SilphCo11AfterBattleText2:
+SilphCo11Trainer1AfterBattleText:
TX_FAR _SilphCo11AfterBattleText2
db "@"
-
-SilphCo10Text_6236c:
- TX_ASM
- ld hl, SilphCo10Text_6237b
- call PrintText
- ld a, PORYGON
- call DisplayPokedex
- jp TextScriptEnd
-
-SilphCo10Text_6237b:
- TX_FAR _SilphCo10Text_6237b
- db "@"