diff options
Diffstat (limited to 'scripts/SilphCo11F.asm')
-rwxr-xr-x | scripts/SilphCo11F.asm | 490 |
1 files changed, 343 insertions, 147 deletions
diff --git a/scripts/SilphCo11F.asm b/scripts/SilphCo11F.asm index f3a7088b..113ceecc 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: dbmapcoord 3, 6 db -1 ; end -SilphCo11Script_62137: +SilphCo11Script_6214f: push hl ld hl, wCardKeyDoorY ld a, [hli] @@ -63,93 +64,17 @@ SilphCo11Script_62137: ldh [hUnlockedSilphCoDoors], a ret -SilphCo11Script_62163: +SilphCo11Script_6217b: ldh a, [hUnlockedSilphCoDoors] 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 -1 - 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 -1 ; end - -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 -1 ; end - -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: dbmapcoord 6, 13 @@ -196,18 +138,18 @@ MovementData_62216: db NPC_MOVEMENT_DOWN db -1 ; end -SilphCo11Script_6221a: +SilphCo11Script_621ff: ld [wPlayerMovingDirection], a - ld a, $3 - ldh [hSpriteIndex], a ld a, b - ldh [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 ldh [hSpriteIndexOrTextID], a call DisplayTextID call GBFadeOutToBlack - call SilphCo11Script_6216d + farcall 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 ldh a, [hSpriteIndex] 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 + ldh [hJoyHeld], a + ld a, $fc + ld [wJoyIgnore], a + ld a, $1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + ld a, $8 + ldh [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 + ldh [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 + ldh [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 + ldh [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 + ldh [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 + ldh [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 + ldh [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,13 +470,48 @@ SilphCo11F_TextPointers: dw SilphCo11Text4 dw SilphCo11Text5 dw SilphCo11Text6 + dw SilphCo11Text7 + dw SilphCo11Text8 + dw SilphCo11Text9 + dw SilphCo11Text10 SilphCo11TrainerHeader0: - trainer EVENT_BEAT_SILPH_CO_11F_TRAINER_0, 4, SilphCo11BattleText1, SilphCo11EndBattleText1, SilphCo11AfterBattleText1 -SilphCo11TrainerHeader1: - trainer EVENT_BEAT_SILPH_CO_11F_TRAINER_1, 3, SilphCo11BattleText2, SilphCo11EndBattleText2, SilphCo11AfterBattleText2 + trainer EVENT_BEAT_SILPH_CO_11F_TRAINER_1, 3, SilphCo11Trainer1BattleText, SilphCo11Trainer1EndBattleText, SilphCo11Trainer1AfterBattleText db -1 ; end +SilphCo11Text4: +SilphCo11Text6: +SilphCo11Text8: + text_far _SilphCoJessieJamesText1 + text_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: + text_far _SilphCoJessieJamesText2 + text_end + +SilphCo11Text_624c2: + text_far _SilphCoJessieJamesText3 + text_end + +SilphCo11Text10: + text_far _SilphCoJessieJamesText4 + text_asm + ld c, 64 + call DelayFrames + jp TextScriptEnd + SilphCo11Text1: text_asm CheckEvent EVENT_GOT_MASTER_BALL @@ -334,58 +560,28 @@ SilphCo11Text3: text_far _SilphCo11Text3 text_end -SilphCo10Text_62330: +SilphCo10Text_62528: text_far _SilphCo10Text_62330 text_end -SilphCo11Text6: +SilphCo11Text7: text_far _SilphCo10Text_62335 text_end -SilphCo11Text4: - text_asm - ld hl, SilphCo11TrainerHeader0 - call TalkToTrainer - jp TextScriptEnd - -SilphCo11BattleText1: - text_far _SilphCo11BattleText1 - text_end - -SilphCo11EndBattleText1: - text_far _SilphCo11EndBattleText1 - text_end - -SilphCo11AfterBattleText1: - text_far _SilphCo11AfterBattleText1 - text_end - SilphCo11Text5: text_asm - ld hl, SilphCo11TrainerHeader1 + ld hl, SilphCo11TrainerHeader0 call TalkToTrainer jp TextScriptEnd -SilphCo11BattleText2: +SilphCo11Trainer1BattleText: text_far _SilphCo11BattleText2 text_end -SilphCo11EndBattleText2: +SilphCo11Trainer1EndBattleText: text_far _SilphCo11EndBattleText2 text_end -SilphCo11AfterBattleText2: +SilphCo11Trainer1AfterBattleText: text_far _SilphCo11AfterBattleText2 text_end - -SilphCo10Text_6236c: - text_asm - ld hl, SilphCo10Text_6237b - call PrintText - ld a, PORYGON - call DisplayPokedex - jp TextScriptEnd - -SilphCo10Text_6237b: - text_far _SilphCo10Text_6237b - text_end |