mirror of
https://github.com/thornAvery/jep-hack.git
synced 2025-09-16 10:13:24 +12:00

The act of naming your mother was restored by adding a name substitution system to WRAM, thus allowing the Dude to occupy a slot naturally. I believe Red and Blue's names are unused too, but just to be safe, I left them alone. Using this means we can technically have battles that substitute names all the time, so this is really neat. Reworked the first rival encounter scene to have him treat you like an idiot, blurt out what you name your mother, tease you, and piss you off. Arguably flows better than the original and makes more sense. Also, now the mother's name is placed in various spots. Only concern really is seeing the default name in the phone contact. Feel free to change that if you want, but it's hard to place due to situations where the player leaves without talking to her, so take care!
445 lines
6.2 KiB
NASM
445 lines
6.2 KiB
NASM
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"
|
|
|
|
UnusedDummySpecial:
|
|
ret
|
|
|
|
SetPlayerPalette:
|
|
ld a, [wScriptVar]
|
|
ld d, a
|
|
farcall _SetPlayerPalette
|
|
ret
|
|
|
|
GameCornerPrizeMonCheckDex:
|
|
ld a, [wScriptVar]
|
|
call CheckCaughtMon
|
|
ret nz
|
|
ld a, [wScriptVar]
|
|
call SetSeenAndCaughtMon
|
|
call FadeToMenu
|
|
ld a, [wScriptVar]
|
|
ld [wNamedObjectIndex], a
|
|
farcall NewPokedexEntry
|
|
call ExitAllMenus
|
|
ret
|
|
|
|
UnusedSetSeenMon:
|
|
ld a, [wScriptVar]
|
|
call SetSeenMon
|
|
ret
|
|
|
|
FindPartyMonAboveLevel:
|
|
ld a, [wScriptVar]
|
|
ld b, a
|
|
farcall _FindPartyMonAboveLevel
|
|
jr z, FoundNone
|
|
jr FoundOne
|
|
|
|
FindPartyMonAtLeastThatHappy:
|
|
ld a, [wScriptVar]
|
|
ld b, a
|
|
farcall _FindPartyMonAtLeastThatHappy
|
|
jr z, FoundNone
|
|
jr FoundOne
|
|
|
|
FindPartyMonThatSpecies:
|
|
ld a, [wScriptVar]
|
|
ld b, a
|
|
farcall _FindPartyMonThatSpecies
|
|
jr z, FoundNone
|
|
jr FoundOne
|
|
|
|
FindPartyMonThatSpeciesYourTrainerID:
|
|
ld a, [wScriptVar]
|
|
ld b, a
|
|
farcall _FindPartyMonThatSpeciesYourTrainerID
|
|
jr z, FoundNone
|
|
jr FoundOne
|
|
|
|
FoundOne:
|
|
ld a, TRUE
|
|
ld [wScriptVar], a
|
|
ret
|
|
|
|
FoundNone:
|
|
xor a
|
|
ld [wScriptVar], a
|
|
ret
|
|
|
|
NameRival:
|
|
ld b, NAME_RIVAL
|
|
ld de, wRivalName
|
|
farcall _NamingScreen
|
|
ld hl, wRivalName
|
|
ld de, .DefaultName
|
|
call InitName
|
|
ret
|
|
|
|
.DefaultName:
|
|
db "SILVER@"
|
|
|
|
NameMom:
|
|
ld b, NAME_MOM
|
|
ld de, wMomsName
|
|
farcall _NamingScreen
|
|
ld hl, wMomsName
|
|
ld de, .DefaultName
|
|
call InitName
|
|
ret
|
|
|
|
.DefaultName:
|
|
db "MOM@"
|
|
|
|
|
|
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
|
|
ld [wScriptVar], a
|
|
farcall _PlayersHousePC
|
|
ld a, c
|
|
ld [wScriptVar], a
|
|
ret
|
|
|
|
CheckMysteryGift:
|
|
ld a, BANK(sMysteryGiftItem)
|
|
call OpenSRAM
|
|
ld a, [sMysteryGiftItem]
|
|
and a
|
|
jr z, .no
|
|
inc a
|
|
|
|
.no
|
|
ld [wScriptVar], a
|
|
call CloseSRAM
|
|
ret
|
|
|
|
GetMysteryGiftItem:
|
|
ld a, BANK(sMysteryGiftItem)
|
|
call OpenSRAM
|
|
ld a, [sMysteryGiftItem]
|
|
ld [wCurItem], a
|
|
ld a, 1
|
|
ld [wItemQuantityChange], a
|
|
ld hl, wNumItems
|
|
call ReceiveItem
|
|
jr nc, .no_room
|
|
xor a
|
|
ld [sMysteryGiftItem], a
|
|
call CloseSRAM
|
|
ld a, [wCurItem]
|
|
ld [wNamedObjectIndex], a
|
|
call GetItemName
|
|
ld hl, .ReceiveItemText
|
|
call PrintText
|
|
ld a, TRUE
|
|
ld [wScriptVar], a
|
|
ret
|
|
|
|
.no_room
|
|
call CloseSRAM
|
|
xor a
|
|
ld [wScriptVar], a
|
|
ret
|
|
|
|
.ReceiveItemText:
|
|
text_far _ReceiveItemText
|
|
text_end
|
|
|
|
BugContestJudging:
|
|
farcall _BugContestJudging
|
|
ld a, b
|
|
ld [wScriptVar], a
|
|
ret
|
|
|
|
MapRadio:
|
|
ld a, [wScriptVar]
|
|
ld e, a
|
|
farcall PlayRadio
|
|
ret
|
|
|
|
UnownPuzzle:
|
|
call FadeToMenu
|
|
farcall _UnownPuzzle
|
|
ld a, [wSolvedUnownPuzzle]
|
|
ld [wScriptVar], a
|
|
call ExitAllMenus
|
|
ret
|
|
|
|
SlotMachine:
|
|
call CheckCoinsAndCoinCase
|
|
ret c
|
|
ld a, BANK(_SlotMachine)
|
|
ld hl, _SlotMachine
|
|
call StartGameCornerGame
|
|
ret
|
|
|
|
CardFlip:
|
|
call CheckCoinsAndCoinCase
|
|
ret c
|
|
ld a, BANK(_CardFlip)
|
|
ld hl, _CardFlip
|
|
call StartGameCornerGame
|
|
ret
|
|
|
|
UnusedMemoryGame:
|
|
call CheckCoinsAndCoinCase
|
|
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
|
|
|
|
CheckCoinsAndCoinCase:
|
|
ld hl, wCoins
|
|
ld a, [hli]
|
|
or [hl]
|
|
jr z, .no_coins
|
|
ld a, COIN_CASE
|
|
ld [wCurItem], a
|
|
ld hl, wNumItems
|
|
call CheckItem
|
|
jr nc, .no_coin_case
|
|
and a
|
|
ret
|
|
|
|
.no_coins
|
|
ld hl, .NoCoinsText
|
|
jr .print
|
|
|
|
.no_coin_case
|
|
ld hl, .NoCoinCaseText
|
|
|
|
.print
|
|
call PrintText
|
|
scf
|
|
ret
|
|
|
|
.NoCoinsText:
|
|
text_far _NoCoinsText
|
|
text_end
|
|
|
|
.NoCoinCaseText:
|
|
text_far _NoCoinCaseText
|
|
text_end
|
|
|
|
ClearBGPalettesBufferScreen:
|
|
call ClearBGPalettes
|
|
call BufferScreen
|
|
ret
|
|
|
|
ScriptReturnCarry:
|
|
jr c, .carry
|
|
xor a
|
|
ld [wScriptVar], a
|
|
ret
|
|
.carry
|
|
ld a, 1
|
|
ld [wScriptVar], a
|
|
ret
|
|
|
|
CheckSweetHoneyTimer:
|
|
farcall _CheckSweetHoneyTimer
|
|
ld a, [wSweetHoneyTimer]
|
|
ld [wScriptVar], a
|
|
ret
|
|
|
|
ActivateFishingSwarm:
|
|
ld a, [wScriptVar]
|
|
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:
|
|
; wScriptVar 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
|
|
ld [wScriptVar], 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
|
|
ld [wScriptVar], 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
|
|
|
|
TrainerHouse:
|
|
ld a, BANK(sMysteryGiftTrainerHouseFlag)
|
|
call OpenSRAM
|
|
ld a, [sMysteryGiftTrainerHouseFlag]
|
|
ld [wScriptVar], a
|
|
jp CloseSRAM
|
|
|
|
; Tradeback NPC tutorial
|
|
TradebackNPC:
|
|
farcall TradebackGuy
|
|
ret
|
|
|
|
;FossilScientist:
|
|
; farcall FossilScientistGuy
|
|
; ret
|