ref: fcb573f4ac006b73827b6fc317fc7501e17004ae
dir: /scripts/CeruleanCity.asm/
CeruleanCity_Script: call EnableAutoTextBoxDrawing ld hl, CeruleanCity_ScriptPointers ld a, [wCeruleanCityCurScript] jp CallFunctionInTable CeruleanCityScript_1948c: xor a ld [wJoyIgnore], a ld [wCeruleanCityCurScript], a ld a, HS_CERULEAN_RIVAL ld [wMissableObjectIndex], a predef_jump HideObject CeruleanCity_ScriptPointers: dw CeruleanCityScript0 dw CeruleanCityScript1 dw CeruleanCityScript2 dw CeruleanCityScript3 dw CeruleanCityScript4 CeruleanCityScript4: ld a, [wIsInBattle] cp $ff jp z, CeruleanCityScript_1948c ld a, $f0 ld [wJoyIgnore], a SetEvent EVENT_BEAT_CERULEAN_ROCKET_THIEF ld a, $2 ldh [hSpriteIndexOrTextID], a call DisplayTextID xor a ld [wJoyIgnore], a ld [wCeruleanCityCurScript], a ret CeruleanCityScript0: CheckEvent EVENT_BEAT_CERULEAN_ROCKET_THIEF jr nz, .asm_194f7 ld hl, CeruleanCityCoords1 call ArePlayerCoordsInArray jr nc, .asm_194f7 ld a, [wCoordIndex] cp $1 ld a, PLAYER_DIR_UP ld b, SPRITE_FACING_DOWN jr nz, .asm_194e6 ld a, PLAYER_DIR_DOWN ld b, SPRITE_FACING_UP .asm_194e6 ld [wPlayerMovingDirection], a ld a, b ld [wSprite02StateData1FacingDirection], a call Delay3 ld a, $2 ldh [hSpriteIndexOrTextID], a jp DisplayTextID .asm_194f7 CheckEvent EVENT_BEAT_CERULEAN_RIVAL ret nz ld hl, CeruleanCityCoords2 call ArePlayerCoordsInArray ret nc ld a, [wWalkBikeSurfState] and a jr z, .asm_19512 ld a, SFX_STOP_ALL_MUSIC ld [wNewSoundID], a call PlaySound .asm_19512 ld c, BANK(Music_MeetRival) ld a, MUSIC_MEET_RIVAL call PlayMusic xor a ldh [hJoyHeld], a ld a, $f0 ld [wJoyIgnore], a ld a, [wXCoord] cp $14 jr z, .asm_19535 ld a, $1 ldh [hSpriteIndex], a ld a, $5 ldh [hSpriteDataOffset], a call GetPointerWithinSpriteStateData2 ld [hl], $19 .asm_19535 ld a, HS_CERULEAN_RIVAL ld [wMissableObjectIndex], a predef ShowObject ld de, CeruleanCityMovement1 ld a, $1 ldh [hSpriteIndex], a call MoveSprite ld a, $1 ld [wCeruleanCityCurScript], a ret CeruleanCityCoords1: db $07,$1e db $09,$1e db $ff CeruleanCityCoords2: db $06,$14 db $06,$15 db $ff CeruleanCityMovement1: db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_DOWN db $FF CeruleanCityScript_1955d: ld a, 1 ldh [hSpriteIndex], a xor a ; SPRITE_FACING_DOWN ldh [hSpriteFacingDirection], a jp SetSpriteFacingDirectionAndDelay ; face object CeruleanCityScript1: ld a, [wd730] bit 0, a ret nz xor a ld [wJoyIgnore], a ld a, $1 ldh [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wd72d set 6, [hl] set 7, [hl] ld hl, CeruleanCityText_1966d ld de, CeruleanCityText_19672 call SaveEndBattleTextPointers ld a, OPP_SONY1 ld [wCurOpponent], a ; select which team to use during the encounter ld a, [wRivalStarter] cp STARTER2 jr nz, .NotSquirtle ld a, $7 jr .done .NotSquirtle cp STARTER3 jr nz, .Charmander ld a, $8 jr .done .Charmander ld a, $9 .done ld [wTrainerNo], a xor a ldh [hJoyHeld], a call CeruleanCityScript_1955d ld a, $2 ld [wCeruleanCityCurScript], a ret CeruleanCityScript2: ld a, [wIsInBattle] cp $ff jp z, CeruleanCityScript_1948c call CeruleanCityScript_1955d ld a, $f0 ld [wJoyIgnore], a SetEvent EVENT_BEAT_CERULEAN_RIVAL ld a, $1 ldh [hSpriteIndexOrTextID], a call DisplayTextID ld a, SFX_STOP_ALL_MUSIC ld [wNewSoundID], a call PlaySound farcall Music_RivalAlternateStart ld a, $1 ldh [hSpriteIndex], a call SetSpriteMovementBytesToFF ld a, [wXCoord] cp $14 jr nz, .asm_195f0 ld de, CeruleanCityMovement4 jr .asm_195f3 .asm_195f0 ld de, CeruleanCityMovement3 .asm_195f3 ld a, $1 ldh [hSpriteIndex], a call MoveSprite ld a, $3 ld [wCeruleanCityCurScript], a ret CeruleanCityMovement3: db NPC_MOVEMENT_LEFT db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_DOWN db $FF CeruleanCityMovement4: db NPC_MOVEMENT_RIGHT db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_DOWN db $FF CeruleanCityScript3: ld a, [wd730] bit 0, a ret nz ld a, HS_CERULEAN_RIVAL ld [wMissableObjectIndex], a predef HideObject xor a ld [wJoyIgnore], a call PlayDefaultMusic ld a, $0 ld [wCeruleanCityCurScript], a ret CeruleanCity_TextPointers: dw CeruleanCityText1 dw CeruleanCityText2 dw CeruleanCityText3 dw CeruleanCityText4 dw CeruleanCityText5 dw CeruleanCityText6 dw CeruleanCityText7 dw CeruleanCityText8 dw CeruleanCityText9 dw CeruleanCityText10 dw CeruleanCityText11 dw CeruleanCityText12 dw CeruleanCityText13 dw MartSignText dw PokeCenterSignText dw CeruleanCityText16 dw CeruleanCityText17 CeruleanCityText1: text_asm CheckEvent EVENT_BEAT_CERULEAN_RIVAL ; do pre-battle text jr z, .PreBattleText ; or talk about bill ld hl, CeruleanCityText_19677 call PrintText jr .end .PreBattleText ld hl, CeruleanCityText_19668 call PrintText .end jp TextScriptEnd CeruleanCityText_19668: text_far _CeruleanCityText_19668 text_end CeruleanCityText_1966d: text_far _CeruleanCityText_1966d text_end CeruleanCityText_19672: text_far _CeruleanCityText_19672 text_end CeruleanCityText_19677: text_far _CeruleanCityText_19677 text_end CeruleanCityText2: text_asm CheckEvent EVENT_BEAT_CERULEAN_ROCKET_THIEF jr nz, .asm_4ca20 ld hl, CeruleanCityText_196d9 call PrintText ld hl, wd72d set 6, [hl] set 7, [hl] ld hl, CeruleanCityText_196ee ld de, CeruleanCityText_196ee call SaveEndBattleTextPointers ldh a, [hSpriteIndexOrTextID] ld [wSpriteIndex], a call EngageMapTrainer call InitBattleEnemyParameters ld a, $4 ld [wCeruleanCityCurScript], a jp TextScriptEnd .asm_4ca20 ld hl, CeruleanCityText_196f3 call PrintText lb bc, TM_DIG, 1 call GiveItem jr c, .Success ld hl, TM28NoRoomText call PrintText jr .Done .Success ld a, $1 ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld hl, ReceivedTM28Text call PrintText farcall CeruleanHideRocket .Done jp TextScriptEnd CeruleanCityText_196d9: text_far _CeruleanCityText_196d9 text_end ReceivedTM28Text: text_far _ReceivedTM28Text sound_get_item_1 text_far _ReceivedTM28Text2 text_waitbutton text_end TM28NoRoomText: text_far _TM28NoRoomText text_end CeruleanCityText_196ee: text_far _CeruleanCityText_196ee text_end CeruleanCityText_196f3: text_far _CeruleanCityText_196f3 text_end CeruleanCityText3: text_far _CeruleanCityText3 text_end CeruleanCityText4: text_far _CeruleanCityText4 text_end CeruleanCityText5: text_far _CeruleanCityText5 text_end CeruleanCityText11: CeruleanCityText6: text_far _CeruleanCityText6 text_end CeruleanCityText7: text_asm ldh a, [hRandomAdd] cp 180 jr c, .asm_e9fc9 ld hl, CeruleanCityText_19730 call PrintText jr .asm_d486e .asm_e9fc9 cp 100 jr c, .asm_df99b ld hl, CeruleanCityText_19735 call PrintText jr .asm_d486e .asm_df99b ld hl, CeruleanCityText_1973a call PrintText .asm_d486e jp TextScriptEnd CeruleanCityText_19730: text_far _CeruleanCityText_19730 text_end CeruleanCityText_19735: text_far _CeruleanCityText_19735 text_end CeruleanCityText_1973a: text_far _CeruleanCityText_1973a text_end CeruleanCityText8: text_asm ldh a, [hRandomAdd] cp 180 jr c, .asm_e28da ld hl, CeruleanCityText_1976f call PrintText jr .asm_f2f38 .asm_e28da cp 120 jr c, .asm_15d08 ld hl, CeruleanCityText_19774 call PrintText jr .asm_f2f38 .asm_15d08 cp 60 jr c, .asm_d7fea ld hl, CeruleanCityText_19779 call PrintText jr .asm_f2f38 .asm_d7fea ld hl, CeruleanCityText_1977e call PrintText .asm_f2f38 jp TextScriptEnd CeruleanCityText_1976f: text_far _CeruleanCityText_1976f text_end CeruleanCityText_19774: text_far _CeruleanCityText_19774 text_end CeruleanCityText_19779: text_far _CeruleanCityText_19779 text_end CeruleanCityText_1977e: text_far _CeruleanCityText_1977e text_end CeruleanCityText9: text_far _CeruleanCityText9 text_end CeruleanCityText10: text_far _CeruleanCityText10 text_end CeruleanCityText12: text_far _CeruleanCityText12 text_end CeruleanCityText13: text_far _CeruleanCityText13 text_end CeruleanCityText16: text_far _CeruleanCityText16 text_end CeruleanCityText17: text_far _CeruleanCityText17 text_end