mirror of
https://github.com/thornAvery/kep-hack.git
synced 2026-02-20 22:28:41 +13:00
The Big One.
Whoa, this one's been in the making for a while now. This one has been my attempt to fix as much as I could within a little over a month. Here's what I've got for you. - Fixed a bug in Silph Gauntlet where the trainers would not see you unless you spoke to them - Removed the unnecessary Gawarhed and Wugtrio static encounters. In what was once Gawarhed's place is a Rare Candy. - Implemented a working ferry system (huge thanks to Red++) that allows travelling to Faraway Island and Citrine City with the right tickets. Currently both maps use a copy of the SS Anne, which may be revised later. - Bittybat, Magnetite and Burgela have been removed to fix a Pokedex bug where entries wouldn't display correctly if the total number wasn't a multiple of 8. - Fixed a bug where fishing up a Wiglett and Wugtrio would play the trainer battle and Champion battle themes respectively - Restructured the Pokedex a little. Don't worry, Lickitung's still number 108! - All references to betamon in the disassembly have had their names updated to match the new Ogasawara ones - Removed Blastyke as a Game Corner prize, replacing it with Squeamata. - Garnet Cavern is now properly listed as a dungeon map - Fixed an issue where trying to leave Bill's House after entering the garden would put you back in the garden - Moved Silph Gauntlet's Beauty down 1 floor to make the number of trainers on each floor more consistent - Finished Gauntlet 6F except for the trainer text (PvK please help) - Gavillain's stats updated to match KEP 1.4 on the Showdown server. It's now a Dragon/Electric type with less Ice coverage. - Fixed Clefable's and Wigglytuff's starting movesets from an earlier commit - Fixed an ABSOLUTELY HORRIBLE, EGREGIOUSLY FRUSTRATING BUG that caused the Pokedex's seen counter to rarely update. This is what caused this commit to be delayed for so long. No joke. - New sprites, courtesy of Albatross, for Sylveon's back sprite, Alolan Marowak, Alolan Muk, Galarian Weezing and Magnezone! - Fixed a bug preventing the trade for Haunter from being accessed.
This commit is contained in:
parent
57186bb2a0
commit
508a4e790e
246 changed files with 2446 additions and 2384 deletions
|
|
@ -39,6 +39,47 @@ ShakeElevator::
|
|||
call UpdateSprites
|
||||
jp PlayDefaultMusic
|
||||
|
||||
ShakeElevatorFerry::
|
||||
ld de, -$20
|
||||
call ShakeElevatorRedrawRow
|
||||
ld de, SCREEN_HEIGHT * $20
|
||||
call ShakeElevatorRedrawRow
|
||||
call Delay3
|
||||
ld a, SFX_STOP_ALL_MUSIC
|
||||
call PlaySound
|
||||
ldh a, [hSCY]
|
||||
ld d, a
|
||||
ld e, $1
|
||||
ld b, 100
|
||||
.shakeLoop ; scroll the BG up and down and play a sound effect
|
||||
ld a, e
|
||||
xor $fe
|
||||
ld e, a
|
||||
add d
|
||||
ldh [hSCY], a
|
||||
push bc
|
||||
ld c, 0 ; BANK(SFX_Collision_1)
|
||||
ld a, SFX_COLLISION
|
||||
call PlaySound
|
||||
pop bc
|
||||
ld c, 2
|
||||
call DelayFrames
|
||||
dec b
|
||||
jr nz, .shakeLoop
|
||||
ld a, d
|
||||
ldh [hSCY], a
|
||||
ld a, SFX_STOP_ALL_MUSIC
|
||||
call PlaySound
|
||||
ld c, 0 ; BANK(SFX_SS_Anne_Horn)
|
||||
ld a, SFX_SS_ANNE_HORN
|
||||
call PlaySound
|
||||
;.musicLoop
|
||||
; ld a, [wChannelSoundIDs + CHAN5]
|
||||
; cp SFX_SAFARI_ZONE_PA
|
||||
; jr z, .musicLoop
|
||||
call UpdateSprites
|
||||
jp PlayDefaultMusic
|
||||
|
||||
ShakeElevatorRedrawRow:
|
||||
; This function is used to redraw certain portions of the screen, but it does
|
||||
; not appear to ever result in any visible effect, so this function seems to
|
||||
|
|
|
|||
230
engine/overworld/ferry_script.asm
Normal file
230
engine/overworld/ferry_script.asm
Normal file
|
|
@ -0,0 +1,230 @@
|
|||
; New script for Red++
|
||||
; Based on a combination of Fossil Lab and Elevator Menus
|
||||
; Allows travel to any Event Island based on which tickets the player has in the pack
|
||||
EventIslandsFerryScript::
|
||||
ld hl, WelcomeToSeagallopText
|
||||
call PrintText
|
||||
call GetFerryTickets
|
||||
ld a, [wFilteredBagItemsCount]
|
||||
and a
|
||||
jr z, .noTicket
|
||||
call DoIslandMenu
|
||||
ret
|
||||
|
||||
.noTicket
|
||||
call ManualTextScroll
|
||||
ld hl,NoTicketText
|
||||
call PrintText
|
||||
ret
|
||||
|
||||
GetFerryTickets:
|
||||
; generate a list in wram of all Event Items the player has
|
||||
xor a
|
||||
ld [wFilteredBagItemsCount], a
|
||||
ld de, wFilteredBagItems
|
||||
ld hl, TicketList
|
||||
.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 ticket's in the bag
|
||||
ld a, [wd11e]
|
||||
ld [de], a
|
||||
inc de
|
||||
push hl
|
||||
ld hl, wFilteredBagItemsCount
|
||||
inc [hl]
|
||||
pop hl
|
||||
jr .loop
|
||||
.done
|
||||
ld hl, wFilteredBagItemsCount
|
||||
ld a, [hl]
|
||||
and a
|
||||
jr z, .endList ; if no items are in the pack, don't add "Go Home" option
|
||||
|
||||
; add Vermilion to the list if there is one, to get back home
|
||||
ld a, FLOOR_11F
|
||||
ld [de],a
|
||||
inc de
|
||||
inc [hl] ; increase item count so GO HOME shows up
|
||||
|
||||
.endList
|
||||
ld a, $ff ; End of list
|
||||
ld [de], a
|
||||
ret
|
||||
|
||||
TicketList:
|
||||
db OLD_SEA_MAP
|
||||
db CITRINE_PASS
|
||||
db $00
|
||||
|
||||
PrintTicketsInBag:
|
||||
; Print the list of names inside the menu box we drew
|
||||
ld hl, wFilteredBagItems
|
||||
xor a
|
||||
ld [$ffdb], a
|
||||
.loop
|
||||
ld a, [hli]
|
||||
cp $ff
|
||||
ret z
|
||||
push hl
|
||||
ld [wd11e], a
|
||||
call GetItemName
|
||||
coord hl, 2, 2
|
||||
ld a, [$ffdb]
|
||||
ld bc, $28
|
||||
call AddNTimes
|
||||
ld de, wcd6d
|
||||
call PlaceString
|
||||
ld hl, $ffdb
|
||||
inc [hl]
|
||||
pop hl
|
||||
jr .loop
|
||||
|
||||
DoIslandMenu:
|
||||
; Display the menu we generated earlier, let the player choose an item to use,
|
||||
; then do the elevator thing and update the warps accordingly
|
||||
ld hl, wd730
|
||||
set 6, [hl]
|
||||
xor a
|
||||
ld [wCurrentMenuItem], a
|
||||
ld a, $3 ; 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
|
||||
ld hl, wTileMap
|
||||
call TextBoxBorder
|
||||
call UpdateSprites
|
||||
call PrintTicketsInBag
|
||||
ld hl, wd730
|
||||
res 6, [hl]
|
||||
call HandleMenuInput
|
||||
bit 1, a ; Pressed B?
|
||||
jr nz, .cancelledChoosingTicket
|
||||
ld hl, wFilteredBagItems
|
||||
ld a, [wCurrentMenuItem]
|
||||
ld d, 0
|
||||
ld e, a
|
||||
add hl, de
|
||||
ld a, [hl]
|
||||
ld [$ffdb], a
|
||||
cp OLD_SEA_MAP
|
||||
jr z, .choseFarawayIsland
|
||||
cp CITRINE_PASS
|
||||
jr z, .choseCitrineCity
|
||||
|
||||
;choseVermilion
|
||||
ld b, 1
|
||||
ld c, VERMILION_FERRY_DOCK
|
||||
jr .islandSelected
|
||||
|
||||
.choseFarawayIsland
|
||||
ld b, 0
|
||||
ld c, FARAWAY_ISLAND_OUTSIDE
|
||||
jr .islandSelected
|
||||
|
||||
.choseCitrineCity
|
||||
ld b, 1
|
||||
ld c, CITRINE_FERRY_DOCK
|
||||
jr .islandSelected
|
||||
|
||||
.islandSelected
|
||||
; First, see if we need to update the warps
|
||||
ld a, [wWarpEntries + 3] ; Map ID of first warp
|
||||
cp c ; see if we're already at the place we tried to go
|
||||
jr z, .alreadyThere
|
||||
|
||||
; Hold onto the warp entry we selected
|
||||
push bc
|
||||
|
||||
; Mark for it to do the shake animation
|
||||
ld hl, wCurrentMapScriptFlags
|
||||
set 7, [hl]
|
||||
|
||||
; Announce that we are leaving
|
||||
ld hl, AllAboardText
|
||||
call PrintText
|
||||
|
||||
; Update the warp entries to match the ones for that island
|
||||
pop bc ; get the warp IDs back
|
||||
ld hl, wWarpEntries
|
||||
call .doWarpStuff
|
||||
|
||||
; This is called once to update the first warp, then it falls through to run again and update the second warp
|
||||
.doWarpStuff
|
||||
inc hl
|
||||
inc hl
|
||||
ld a, b
|
||||
ld [hli], a
|
||||
ld a, c
|
||||
ld [hli], a
|
||||
ret
|
||||
|
||||
.cancelledChoosingTicket
|
||||
ld hl, GoingNowhereText
|
||||
call PrintText
|
||||
ret
|
||||
|
||||
.alreadyThere
|
||||
ld hl, AlreadyThereText
|
||||
call PrintText
|
||||
ret
|
||||
|
||||
WelcomeToSeagallopText:
|
||||
text "Welcome aboard"
|
||||
line "the SEAGALLOP"
|
||||
cont "FERRY!"
|
||||
|
||||
para "Do you have a"
|
||||
line "ticket to travel"
|
||||
cont "with us today?@@"
|
||||
|
||||
NoTicketText:
|
||||
text "No? That's too"
|
||||
line "bad."
|
||||
|
||||
para "Come back and see"
|
||||
line "us later."
|
||||
prompt
|
||||
db "@"
|
||||
|
||||
GoingNowhereText:
|
||||
text "Come back and see"
|
||||
line "us later."
|
||||
prompt
|
||||
db "@"
|
||||
|
||||
AllAboardText:
|
||||
text "All aboard!"
|
||||
prompt
|
||||
db "@"
|
||||
|
||||
AlreadyThereText:
|
||||
text "We're already"
|
||||
line "there!"
|
||||
prompt
|
||||
db "@"
|
||||
Loading…
Add table
Add a link
Reference in a new issue