mirror of
https://github.com/thornAvery/kep-hack.git
synced 2025-09-16 18:30:50 +12:00
Groundwork for Vermilion Passes
The warps are currently broken for reasons I can't figure out for the life of me. Faraway Island works but is loaded in a glitched state where other warps break and are generally very unstable, while Citrine softlocks. It's progress, though.
This commit is contained in:
parent
44b4264933
commit
7200b1474a
|
@ -5,7 +5,7 @@ MapSongBanks::
|
||||||
db MUSIC_CITIES1, 0 ; PEWTER_CITY
|
db MUSIC_CITIES1, 0 ; PEWTER_CITY
|
||||||
db MUSIC_CITIES2, 0 ; CERULEAN_CITY
|
db MUSIC_CITIES2, 0 ; CERULEAN_CITY
|
||||||
db MUSIC_VERMILION, 0 ; VERMILION_CITY
|
db MUSIC_VERMILION, 0 ; VERMILION_CITY
|
||||||
db MUSIC_LAVENBAR, 0 ; LAVENDER_TOWN
|
db MUSIC_LAVENDER, 0 ; LAVENDER_TOWN
|
||||||
db MUSIC_CELADON, 0 ; CELADON_CITY
|
db MUSIC_CELADON, 0 ; CELADON_CITY
|
||||||
db MUSIC_CELADON, 0 ; CELADON_UNIVERSITY_OUTSIDE
|
db MUSIC_CELADON, 0 ; CELADON_UNIVERSITY_OUTSIDE
|
||||||
db MUSIC_CITIES2, 0 ; FUCHSIA_CITY
|
db MUSIC_CITIES2, 0 ; FUCHSIA_CITY
|
||||||
|
|
|
@ -4011,15 +4011,6 @@ CheckForDisobedience:
|
||||||
bit BIT_EARTHBADGE, [hl]
|
bit BIT_EARTHBADGE, [hl]
|
||||||
ld a, 101
|
ld a, 101
|
||||||
jr nz, .next
|
jr nz, .next
|
||||||
bit BIT_MARSHBADGE, [hl]
|
|
||||||
ld a, 101
|
|
||||||
jr nz, .next
|
|
||||||
bit BIT_RAINBOWBADGE, [hl]
|
|
||||||
ld a, 101
|
|
||||||
jr nz, .next
|
|
||||||
bit BIT_CASCADEBADGE, [hl]
|
|
||||||
ld a, 101
|
|
||||||
jr nz, .next
|
|
||||||
ld a, 101
|
ld a, 101
|
||||||
.next
|
.next
|
||||||
ld b, a
|
ld b, a
|
||||||
|
|
|
@ -117,6 +117,154 @@ VermilionCityScript1:
|
||||||
ld [wVermilionCityCurScript], a
|
ld [wVermilionCityCurScript], a
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
; New Pass script begins here
|
||||||
|
VermillionCityScript_GetPassesInBag:
|
||||||
|
; Gets a list of Passes in the player's bag.
|
||||||
|
; Ripped and modified from the fossil guy
|
||||||
|
xor a
|
||||||
|
ld [wFilteredBagItemsCount], a
|
||||||
|
ld de, wFilteredBagItems
|
||||||
|
ld hl, PassList
|
||||||
|
.loop
|
||||||
|
ld a, [hli]
|
||||||
|
and a
|
||||||
|
jr z, .done
|
||||||
|
push hl
|
||||||
|
push de
|
||||||
|
ld [wd11e], a
|
||||||
|
ld b, a
|
||||||
|
predef GetQuantityOfItemInBag
|
||||||
|
pop de
|
||||||
|
pop hl
|
||||||
|
ld a, b
|
||||||
|
and a
|
||||||
|
jr z, .loop
|
||||||
|
|
||||||
|
; A Pass is in the bag
|
||||||
|
ld a, [wd11e]
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
push hl
|
||||||
|
ld hl, wFilteredBagItemsCount
|
||||||
|
inc [hl]
|
||||||
|
pop hl
|
||||||
|
jr .loop
|
||||||
|
.done
|
||||||
|
ld a, $ff
|
||||||
|
ld [de], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
PassList:
|
||||||
|
db S_S_TICKET
|
||||||
|
db OLD_SEA_MAP
|
||||||
|
db CITRINE_PASS
|
||||||
|
;db RAINBOW_PASS maybe someday
|
||||||
|
db 0 ; end
|
||||||
|
|
||||||
|
PrintPassesInBag:
|
||||||
|
; Prints each pass in the player's bag on a separate line in the menu.
|
||||||
|
ld hl, wFilteredBagItems
|
||||||
|
xor a
|
||||||
|
ldh [hItemCounter], a
|
||||||
|
.loop
|
||||||
|
ld a, [hli]
|
||||||
|
cp $ff
|
||||||
|
ret z
|
||||||
|
push hl
|
||||||
|
ld [wd11e], a
|
||||||
|
call GetItemName
|
||||||
|
hlcoord 2, 2
|
||||||
|
ldh a, [hItemCounter]
|
||||||
|
ld bc, SCREEN_WIDTH * 2
|
||||||
|
call AddNTimes
|
||||||
|
ld de, wcd6d
|
||||||
|
call PlaceString
|
||||||
|
ld hl, hItemCounter
|
||||||
|
inc [hl]
|
||||||
|
pop hl
|
||||||
|
jr .loop
|
||||||
|
|
||||||
|
PassListings:
|
||||||
|
ld hl, VermillionCityPassSelectionText
|
||||||
|
call PrintText
|
||||||
|
call VermillionCityScript_GetPassesInBag
|
||||||
|
ld hl, wd730
|
||||||
|
set 6, [hl]
|
||||||
|
xor a
|
||||||
|
ld [wCurrentMenuItem], a
|
||||||
|
ld a, A_BUTTON | B_BUTTON
|
||||||
|
ld [wMenuWatchedKeys], a
|
||||||
|
ld a, [wFilteredBagItemsCount]
|
||||||
|
dec a
|
||||||
|
ld [wMaxMenuItem], a
|
||||||
|
ld a, 2
|
||||||
|
ld [wTopMenuItemY], a
|
||||||
|
ld a, 1
|
||||||
|
ld [wTopMenuItemX], a
|
||||||
|
ld a, [wFilteredBagItemsCount]
|
||||||
|
dec a
|
||||||
|
ld bc, 2
|
||||||
|
ld hl, 3
|
||||||
|
call AddNTimes
|
||||||
|
dec l
|
||||||
|
ld b, l
|
||||||
|
ld c, $d
|
||||||
|
hlcoord 0, 0
|
||||||
|
call TextBoxBorder
|
||||||
|
call UpdateSprites
|
||||||
|
call PrintPassesInBag
|
||||||
|
ld hl, wd730
|
||||||
|
res 6, [hl]
|
||||||
|
call HandleMenuInput
|
||||||
|
bit BIT_B_BUTTON, a
|
||||||
|
jr nz, .cancelledPass
|
||||||
|
ld hl, wFilteredBagItems
|
||||||
|
ld a, [wCurrentMenuItem]
|
||||||
|
ld d, 0
|
||||||
|
ld e, a
|
||||||
|
add hl, de
|
||||||
|
ld a, [hl]
|
||||||
|
ldh [hItemToRemoveID], a
|
||||||
|
cp S_S_TICKET
|
||||||
|
jr z, .choseSSAnne
|
||||||
|
cp OLD_SEA_MAP
|
||||||
|
jr z, .choseFaraway
|
||||||
|
cp CITRINE_PASS
|
||||||
|
jr z, .choseCitrine
|
||||||
|
; god bless the safari game and pokemon tower 7f for being the few times a forcewarp exists
|
||||||
|
; For some reason, these aren't working properly...
|
||||||
|
.choseSSAnne
|
||||||
|
jp VermilionCityText3.playerHasTicket ; Saves time and less risk of bugs
|
||||||
|
.choseFaraway
|
||||||
|
ld hl, EventVermillionCityOldSeaMap
|
||||||
|
call PrintText
|
||||||
|
ld a, FARAWAY_ISLAND_OUTSIDE
|
||||||
|
ldh [hWarpDestinationMap], a
|
||||||
|
ld a, $1
|
||||||
|
ld [wDestinationWarpID], a
|
||||||
|
ld a, VERMILION_CITY
|
||||||
|
ld [wLastMap], a
|
||||||
|
call PlayMapChangeSound
|
||||||
|
call WarpFound2
|
||||||
|
jr .done
|
||||||
|
.choseCitrine
|
||||||
|
ld hl, EventVermillionCityCitrinePass
|
||||||
|
call PrintText
|
||||||
|
ld a, CITRINE_CITY
|
||||||
|
ldh [hWarpDestinationMap], a
|
||||||
|
ld a, $1
|
||||||
|
ld [wDestinationWarpID], a
|
||||||
|
ld a, VERMILION_CITY
|
||||||
|
ld [wLastMap], a
|
||||||
|
call PlayMapChangeSound
|
||||||
|
call WarpFound2
|
||||||
|
jr .done
|
||||||
|
.cancelledPass
|
||||||
|
ld hl, PassRefuse
|
||||||
|
call PrintText
|
||||||
|
.done
|
||||||
|
ret
|
||||||
|
|
||||||
VermilionCity_TextPointers:
|
VermilionCity_TextPointers:
|
||||||
dw VermilionCityText1
|
dw VermilionCityText1
|
||||||
dw VermilionCityText2
|
dw VermilionCityText2
|
||||||
|
@ -160,6 +308,20 @@ VermilionCityTextSSAnneDeparted:
|
||||||
|
|
||||||
VermilionCityText3:
|
VermilionCityText3:
|
||||||
text_asm
|
text_asm
|
||||||
|
|
||||||
|
; If you have either of these, go to Pass List.
|
||||||
|
; You only access these in the post-game, really, so it works out.
|
||||||
|
ld b, OLD_SEA_MAP
|
||||||
|
predef GetQuantityOfItemInBag
|
||||||
|
ld a, b
|
||||||
|
and a
|
||||||
|
jp nz, PassListings
|
||||||
|
ld b, CITRINE_PASS
|
||||||
|
predef GetQuantityOfItemInBag
|
||||||
|
ld a, b
|
||||||
|
and a
|
||||||
|
jp nz, PassListings
|
||||||
|
|
||||||
ld a, [wObtainedBadges]
|
ld a, [wObtainedBadges]
|
||||||
bit 5, a ; after obtaining marsh badge the ship returns
|
bit 5, a ; after obtaining marsh badge the ship returns
|
||||||
jr nz, .default
|
jr nz, .default
|
||||||
|
@ -283,3 +445,23 @@ VermilionCityText13:
|
||||||
RoingusText:
|
RoingusText:
|
||||||
text_far _RoingusText
|
text_far _RoingusText
|
||||||
text_end
|
text_end
|
||||||
|
|
||||||
|
VermillionCityPassSelectionText:
|
||||||
|
text_far _VermillionCityPassSelectionText
|
||||||
|
text_end
|
||||||
|
|
||||||
|
EventVermillionCityOldSeaMap:
|
||||||
|
text_far _VermillionCityOldSeaMap
|
||||||
|
text_end
|
||||||
|
|
||||||
|
EventVermillionCityCitrinePass:
|
||||||
|
text_far _VermillionCityCitrinePass
|
||||||
|
text_end
|
||||||
|
|
||||||
|
EventVermillionCitySSTicket:
|
||||||
|
text_far _SSAnneFlashedTicketText
|
||||||
|
text_end
|
||||||
|
|
||||||
|
PassRefuse:
|
||||||
|
text_far _VermillionCityHarborRefuse
|
||||||
|
text_end
|
||||||
|
|
|
@ -140,3 +140,38 @@ _RoingusText:: ; new NPC made as an inside joke, with a slight reference to Mew
|
||||||
para "I'm gonna call"
|
para "I'm gonna call"
|
||||||
line "it... ROINGUS!"
|
line "it... ROINGUS!"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
; Text for the new pass system.
|
||||||
|
_VermillionCityPassSelectionText::
|
||||||
|
text "Which PASS do you"
|
||||||
|
line "want to present?"
|
||||||
|
prompt
|
||||||
|
|
||||||
|
_VermillionCityOldSeaMap::
|
||||||
|
text "<PLAYER> flashed"
|
||||||
|
line "the OLD SEA MAP!"
|
||||||
|
|
||||||
|
para "My, my. I haven't"
|
||||||
|
line "seen this in a"
|
||||||
|
cont "long time."
|
||||||
|
|
||||||
|
para "Come. I'll take"
|
||||||
|
line "you there."
|
||||||
|
done
|
||||||
|
|
||||||
|
_VermillionCityCitrinePass::
|
||||||
|
text "<PLAYER> flashed"
|
||||||
|
line "the CITRINE PASS!"
|
||||||
|
|
||||||
|
para "Ah! You must be"
|
||||||
|
line "pretty strong to"
|
||||||
|
cont "have this PASS!"
|
||||||
|
|
||||||
|
para "Come on, come"
|
||||||
|
line "on!"
|
||||||
|
done
|
||||||
|
|
||||||
|
_VermillionCityHarborRefuse::
|
||||||
|
text "Alright! Have a"
|
||||||
|
line "nice day!"
|
||||||
|
done
|
||||||
|
|
Loading…
Reference in a new issue