mirror of
https://github.com/thornAvery/kep-hack.git
synced 2025-09-17 02:40:50 +12:00

This is still a bit glitchy: - For some reason, unrelated text pops up after something is printed. I don't know why. - Pocket Lapras needs to close the menu post-use. Probably very easy, something in engine\items\item_effects. - The Pocket Lapras needs to default to Lapras as the text. This is a bit difficult as the item effect is actually used by Surf itself, so you may need to add a function that the Pocket Lapras loads before jumping to the real function (basically just loading the LAPRAS species ID for the text, ask me if you need help) - Cycling Road needs to run the routine to force you onto the bike after using the Pocket Lapras, or simply have it check for if you're on a ForceBikeSurf map and yell at you. Both work. I don't have time to finish this right now but it's at least obtainable.
160 lines
3.1 KiB
NASM
160 lines
3.1 KiB
NASM
CinnabarIsland_Script:
|
|
call EnableAutoTextBoxDrawing
|
|
ld hl, wCurrentMapScriptFlags
|
|
set 5, [hl]
|
|
ResetEvent EVENT_MANSION_SWITCH_ON
|
|
ResetEvent EVENT_LAB_STILL_REVIVING_FOSSIL
|
|
ld hl, CinnabarIsland_ScriptPointers
|
|
ld a, [wCinnabarIslandCurScript]
|
|
jp CallFunctionInTable
|
|
|
|
CinnabarIsland_ScriptPointers:
|
|
dw CinnabarIslandScript0
|
|
dw CinnabarIslandScript1
|
|
|
|
CinnabarIslandScript0:
|
|
ld b, SECRET_KEY
|
|
call IsItemInBag
|
|
ret nz
|
|
ld a, [wYCoord]
|
|
cp 10
|
|
ret nz
|
|
ld a, [wXCoord]
|
|
cp 20
|
|
ret nz
|
|
ld a, PLAYER_DIR_UP
|
|
ld [wPlayerMovingDirection], a
|
|
ld a, $8
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
xor a
|
|
ldh [hJoyHeld], a
|
|
ld a, $1
|
|
ld [wSimulatedJoypadStatesIndex], a
|
|
ld a, D_DOWN
|
|
ld [wSimulatedJoypadStatesEnd], a
|
|
call StartSimulatingJoypadStates
|
|
xor a
|
|
ld [wSpritePlayerStateData1FacingDirection], a
|
|
ld [wJoyIgnore], a
|
|
ld a, $1
|
|
ld [wCinnabarIslandCurScript], a
|
|
ret
|
|
|
|
CinnabarIslandScript1:
|
|
ld a, [wSimulatedJoypadStatesIndex]
|
|
and a
|
|
ret nz
|
|
call Delay3
|
|
ld a, $0
|
|
ld [wCinnabarIslandCurScript], a
|
|
ret
|
|
|
|
CinnabarIsland_TextPointers:
|
|
dw CinnabarIslandText1
|
|
dw CinnabarIslandText2
|
|
dw CinnabarPocketLapras
|
|
dw CinnabarIslandText3
|
|
dw MartSignText
|
|
dw PokeCenterSignText
|
|
dw CinnabarIslandText6
|
|
dw CinnabarIslandText7
|
|
dw CinnabarIslandText8
|
|
|
|
CinnabarIslandText8:
|
|
text_far _CinnabarIslandText8
|
|
text_end
|
|
|
|
CinnabarIslandText1:
|
|
text_far _CinnabarIslandText1
|
|
text_end
|
|
|
|
CinnabarIslandText2:
|
|
text_far _CinnabarIslandText2
|
|
text_end
|
|
|
|
CinnabarIslandText3:
|
|
text_far _CinnabarIslandText3
|
|
text_end
|
|
|
|
CinnabarIslandText6:
|
|
text_far _CinnabarIslandText6
|
|
text_end
|
|
|
|
CinnabarIslandText7:
|
|
text_far _CinnabarIslandText7
|
|
text_end
|
|
|
|
_CinnabarPocketLapras1:
|
|
text "Bah, this LAPRAS"
|
|
line "just doesn't"
|
|
cont "wanna fight! Can"
|
|
cont "you believe that?"
|
|
|
|
para "All it does is"
|
|
line "SURF. My GYARADOS"
|
|
cont "can do that!"
|
|
|
|
para "Here. Take it."
|
|
line "I can't stand"
|
|
cont "looking at its"
|
|
cont "big ol' eyes."
|
|
done
|
|
|
|
_PocketLaprasNoRoomText:
|
|
text "You don't have"
|
|
line "room either?"
|
|
|
|
para "Well, it's not"
|
|
line "going anywhere..."
|
|
done
|
|
|
|
_ReceivedPocketLaprasText:
|
|
text "Take care of that"
|
|
line "LAPRAS though,"
|
|
cont "yeah? They're"
|
|
cont "an endangered"
|
|
cont "species."
|
|
|
|
para "You should stay"
|
|
line "safe, too." ; haha, llinos, you sly dog
|
|
done
|
|
|
|
; for some reason it crashed super hard if I didn't do this.
|
|
CinnabarPocketLapras1:
|
|
text_far _CinnabarPocketLapras1
|
|
text_end
|
|
|
|
PocketLaprasNoRoomText:
|
|
text_far _PocketLaprasNoRoomText
|
|
text_end
|
|
|
|
ReceivedPocketLaprasText:
|
|
text_far _ReceivedPocketLaprasText
|
|
text_end
|
|
|
|
CinnabarPocketLapras:
|
|
text_asm
|
|
CheckEvent EVENT_GOT_POCKET_LAPRAS
|
|
jr nz, .skip
|
|
ld hl, CinnabarPocketLapras1
|
|
call PrintText
|
|
call TheAutoskipStopinator ; it's been a while but i didnt forget how annoying this was
|
|
lb bc, SURFBOARD, 1
|
|
call GiveItem
|
|
jr nc, .bag_full
|
|
SetEvent EVENT_GOT_POCKET_LAPRAS ; if you get here, it's done. Using this to load all three texts with one PrintText instruction
|
|
sound_get_key_item
|
|
ld hl, ReceivedPocketLaprasText
|
|
jr .end
|
|
.bag_full
|
|
ld hl, PocketLaprasNoRoomText
|
|
jr .end
|
|
.skip
|
|
ld hl, ReceivedPocketLaprasText
|
|
; fallthrough
|
|
.end
|
|
call PrintText
|
|
call TheAutoskipStopinator
|
|
jp TextScriptEnd
|