Special:: ; Run script special de. ld hl, SpecialsPointers add hl, de add hl, de add hl, de ld b, [hl] inc hl ld a, [hli] ld h, [hl] ld l, a ld a, b rst FarCall ret INCLUDE "data/events/special_pointers.asm" SetPlayerPalette: ldh a, [hScriptVar] ld d, a farcall _SetPlayerPalette ret GameCornerPrizeMonCheckDex: ldh a, [hScriptVar] dec a call CheckCaughtMon ret nz ldh a, [hScriptVar] dec a call SetSeenAndCaughtMon call FadeToMenu ldh a, [hScriptVar] ld [wNamedObjectIndex], a farcall NewPokedexEntry call ExitAllMenus ret UnusedSetSeenMon: ldh a, [hScriptVar] dec a call SetSeenMon ret FindPartyMonAboveLevel: ldh a, [hScriptVar] ld b, a farcall _FindPartyMonAboveLevel jr z, FoundNone jr FoundOne FindPartyMonAtLeastThatHappy: ldh a, [hScriptVar] ld b, a farcall _FindPartyMonAtLeastThatHappy jr z, FoundNone jr FoundOne FindPartyMonThatSpecies: ldh a, [hScriptVar] ld b, a farcall _FindPartyMonThatSpecies jr z, FoundNone jr FoundOne FindPartyMonThatSpeciesYourTrainerID: ldh a, [hScriptVar] ld b, a farcall _FindPartyMonThatSpeciesYourTrainerID jr z, FoundNone jr FoundOne FoundOne: ld a, TRUE ldh [hScriptVar], a ret FoundNone: xor a ldh [hScriptVar], a ret NameRival: ld b, NAME_RIVAL ld de, wRivalName farcall _NamingScreen ld hl, wRivalName ld de, .DefaultName call InitName ret .DefaultName: db "SILVER@" NameRater: farcall _NameRater ret OverworldTownMap: call FadeToMenu farcall _TownMap call ExitAllMenus ret UnownPrinter: call FadeToMenu farcall _UnownPrinter call ExitAllMenus ret DisplayLinkRecord: call FadeToMenu farcall _DisplayLinkRecord call ExitAllMenus ret PlayersHousePC: xor a ldh [hScriptVar], a farcall _PlayersHousePC ld a, c ldh [hScriptVar], a ret BugContestJudging: farcall _BugContestJudging ld a, b ldh [hScriptVar], a ret MapRadio: ldh a, [hScriptVar] ld e, a farcall PlayRadio ret UnownPuzzle: call FadeToMenu farcall _UnownPuzzle ld a, [wSolvedUnownPuzzle] ldh [hScriptVar], a call ExitAllMenus ret SlotMachine: call CheckChipsAndChipCase ret c ld a, BANK(_SlotMachine) ld hl, _SlotMachine call StartGameCornerGame ret CardFlip: call CheckChipsAndChipCase ret c ld a, BANK(_CardFlip) ld hl, _CardFlip call StartGameCornerGame ret UnusedMemoryGame: call CheckChipsAndChipCase ret c ld a, BANK(_MemoryGame) ld hl, _MemoryGame call StartGameCornerGame ret StartGameCornerGame: call FarQueueScript call FadeToMenu ld hl, wQueuedScriptBank ld a, [hli] push af ld a, [hli] ld h, [hl] ld l, a pop af rst FarCall call ExitAllMenus ret CheckChipsAndChipCase: ld hl, wChips ld a, [hli] or [hl] jr z, .no_chips ld a, CHIP_CASE ld [wCurItem], a ld hl, wNumItems call CheckItem jr nc, .no_chip_case and a ret .no_chips ld hl, .NoChipsText jr .print .no_chip_case ld hl, .NoChipCaseText .print call PrintText2bpp scf ret .NoChipsText: text_far _NoChipsText text_end .NoChipCaseText: text_far _NoChipCaseText text_end ClearBGPalettesBufferScreen: call ClearBGPalettes call BufferScreen ret ScriptReturnCarry: jr c, .carry xor a ldh [hScriptVar], a ret .carry ld a, 1 ldh [hScriptVar], a ret ActivateFishingSwarm: ldh a, [hScriptVar] ld [wFishingSwarmFlag], a ret StoreSwarmMapIndices:: ld a, c and a jr nz, .yanma ; swarm dark cave violet entrance ld a, d ld [wDunsparceMapGroup], a ld a, e ld [wDunsparceMapNumber], a ret .yanma ld a, d ld [wYanmaMapGroup], a ld a, e ld [wYanmaMapNumber], a ret CheckPokerus: ; Check if a monster in your party has Pokerus farcall _CheckPokerus jp ScriptReturnCarry ResetLuckyNumberShowFlag: farcall RestartLuckyNumberCountdown ld hl, wLuckyNumberShowFlag res LUCKYNUMBERSHOW_GAME_OVER_F, [hl] farcall LoadOrRegenerateLuckyIDNumber ret CheckLuckyNumberShowFlag: farcall _CheckLuckyNumberShowFlag jp ScriptReturnCarry SnorlaxAwake: ; Check if the Poké Flute channel is playing, and if the player is standing ; next to Snorlax. ; outputs: ; hScriptVar is 1 if the conditions are met, otherwise 0. ; check background music ld a, [wMapMusic] cp MUSIC_POKE_FLUTE_CHANNEL jr nz, .nope ld a, [wXCoord] ld b, a ld a, [wYCoord] ld c, a ld hl, .ProximityCoords .loop ld a, [hli] cp -1 jr z, .nope cp b jr nz, .nextcoord ld a, [hli] cp c jr nz, .loop ld a, TRUE jr .done .nextcoord inc hl jr .loop .nope xor a .done ldh [hScriptVar], a ret .ProximityCoords: ; x, y db 33, 8 ; left db 34, 10 ; below db 35, 10 ; below db 36, 8 ; right db 36, 9 ; right db -1 PlayCurMonCry: ld a, [wCurPartySpecies] jp PlayMonCry GameboyCheck: ldh a, [hCGB] and a jr nz, .cgb ldh a, [hSGB] and a jr nz, .sgb ; gb xor a ; GBCHECK_GB jr .done .sgb ld a, GBCHECK_SGB jr .done .cgb ld a, GBCHECK_CGB .done ldh [hScriptVar], a ret FadeOutMusic: ld a, LOW(MUSIC_NONE) ld [wMusicFadeID], a ld a, HIGH(MUSIC_NONE) ld [wMusicFadeID + 1], a ld a, $2 ld [wMusicFade], a ret Diploma: call FadeToMenu farcall _Diploma call ExitAllMenus ret PrintDiploma: call FadeToMenu farcall _PrintDiploma call ExitAllMenus ret