Groundwork

Letter is there, post-game warp is done, new post-game event where you receive the letter isn't working properly
This commit is contained in:
Llinos Evans 2023-07-12 17:44:25 +01:00
parent 0852d5f725
commit c4afafb9ac
17 changed files with 206 additions and 12 deletions

View file

@ -8,7 +8,8 @@
const EVENT_HALL_OF_FAME_DEX_RATING const EVENT_HALL_OF_FAME_DEX_RATING
const EVENT_GOT_SQUIRTLE const EVENT_GOT_SQUIRTLE
const EVENT_PALLET_AFTER_GETTING_POKEBALLS const EVENT_PALLET_AFTER_GETTING_POKEBALLS
const_skip 17 const EVENT_LETTER_RECEIVED
const_skip 16
const EVENT_GOT_TOWN_MAP const EVENT_GOT_TOWN_MAP
const EVENT_ENTERED_BLUES_HOUSE const EVENT_ENTERED_BLUES_HOUSE
const EVENT_DAISY_WALKING const EVENT_DAISY_WALKING

View file

@ -103,6 +103,7 @@ DEF SAFARI_ROCK EQU $16 ; overload
const METAL_COAT ; $5C const METAL_COAT ; $5C
const MYSTERY_BOX ; $5D const MYSTERY_BOX ; $5D
const TEA ; $5E const TEA ; $5E
const SILPHLETTER ; $5F
DEF NUM_ITEMS EQU const_value - 1 DEF NUM_ITEMS EQU const_value - 1
; elevator floors use item IDs ; elevator floors use item IDs

View file

@ -254,4 +254,4 @@ CredChatot:
CredEni: CredEni:
db -3, "ENIGAMI@" db -3, "ENIGAMI@"
CredVort: CredVort:
db -4, "VORTIENE@" db -3, "VORTIENE@"

View file

@ -94,6 +94,7 @@ KeyItemFlags:
dbit FALSE ; METAL_COAT dbit FALSE ; METAL_COAT
dbit TRUE ; MYSTERY_BOX dbit TRUE ; MYSTERY_BOX
dbit TRUE ; TEA dbit TRUE ; TEA
dbit TRUE ; SILPHLETTER
dbit TRUE ; FLOOR_B2F dbit TRUE ; FLOOR_B2F
dbit TRUE ; FLOOR_B1F dbit TRUE ; FLOOR_B1F
dbit TRUE ; FLOOR_1F dbit TRUE ; FLOOR_1F

View file

@ -94,6 +94,7 @@ ItemNames::
li "METAL COAT" li "METAL COAT"
li "MYSTERY BOX" li "MYSTERY BOX"
li "TEA" li "TEA"
li "SILPHLETTER"
assert_list_length NUM_ITEMS assert_list_length NUM_ITEMS
li "B2F" li "B2F"
li "B1F" li "B1F"

View file

@ -94,6 +94,7 @@ ItemPrices::
bcd3 3000 ; METAL_COAT bcd3 3000 ; METAL_COAT
bcd3 0 ; MYSTERY_BOX bcd3 0 ; MYSTERY_BOX
bcd3 0 ; TEA bcd3 0 ; TEA
bcd3 0 ; SILPHLETTER
assert_table_length NUM_ITEMS assert_table_length NUM_ITEMS
bcd3 0 ; FLOOR_B2F bcd3 0 ; FLOOR_B2F
bcd3 0 ; FLOOR_B1F bcd3 0 ; FLOOR_B1F

View file

@ -4,8 +4,8 @@ IndigoPlateauLobby_Object:
def_warp_events def_warp_events
warp_event 7, 11, LAST_MAP, 1 warp_event 7, 11, LAST_MAP, 1
warp_event 8, 11, LAST_MAP, 2 warp_event 8, 11, LAST_MAP, 2
;warp_event 8, 0, HALL_OF_FAME, 1 ; test post-game setup warp_event 8, 0, HALL_OF_FAME, 1 ; test post-game setup
warp_event 8, 0, LORELEIS_ROOM, 1 ;warp_event 8, 0, LORELEIS_ROOM, 1
def_bg_events def_bg_events

View file

@ -44,7 +44,7 @@ MACRO special_warp_spec
db \4 db \4
ENDM ENDM
FirstMapSpec: FirstMapSpec::
special_warp_spec REDS_HOUSE_2F, 3, 6, REDS_HOUSE_2 special_warp_spec REDS_HOUSE_2F, 3, 6, REDS_HOUSE_2
TradeCenterSpec1: TradeCenterSpec1:
special_warp_spec TRADE_CENTER, 3, 4, CLUB special_warp_spec TRADE_CENTER, 3, 4, CLUB
@ -77,6 +77,7 @@ FlyWarpDataPtr:
fly_warp_spec CELADON_UNIVERSITY_OUTSIDE, .CeladonUniversityOutside fly_warp_spec CELADON_UNIVERSITY_OUTSIDE, .CeladonUniversityOutside
fly_warp_spec ROUTE_4, .Route4 fly_warp_spec ROUTE_4, .Route4
fly_warp_spec ROUTE_10, .Route10 fly_warp_spec ROUTE_10, .Route10
fly_warp_spec REDS_HOUSE_2F, .RedsHouse2F ; This doesn't show on the Fly map, just used so the post-league warp doesn't have a stroke
.PalletTown: fly_warp PALLET_TOWN, 5, 6 .PalletTown: fly_warp PALLET_TOWN, 5, 6
.ViridianCity: fly_warp VIRIDIAN_CITY, 23, 26 .ViridianCity: fly_warp VIRIDIAN_CITY, 23, 26
@ -93,3 +94,4 @@ FlyWarpDataPtr:
.CeladonUniversityOutside: fly_warp CELADON_UNIVERSITY_OUTSIDE, 15, 26 .CeladonUniversityOutside: fly_warp CELADON_UNIVERSITY_OUTSIDE, 15, 26
.Route4: fly_warp ROUTE_4, 11, 6 .Route4: fly_warp ROUTE_4, 11, 6
.Route10: fly_warp ROUTE_10, 11, 20 .Route10: fly_warp ROUTE_10, 11, 20
.RedsHouse2F: fly_warp REDS_HOUSE_2F, 3, 6

View file

@ -358,6 +358,11 @@ _TeaDescription::
next "quenching thirst." next "quenching thirst."
prompt prompt
_SilphLetterDescription::
text "A LETTER from"
next "the SILPH CHIEF."
prompt
_HM01Description:: _HM01Description::
text "Cuts using claws," text "Cuts using claws,"
next "scythes, etc." next "scythes, etc."

View file

@ -187,9 +187,9 @@ DebugPikachuEevee:
jr .loop jr .loop
DebugPikachuEeveeShows: DebugPikachuEeveeShows:
db HS_DAMIEN ; Charmander guy db HS_DAMIEN ; Charmander guy
db HS_VERMILION_JENNY ; Squirtle db HS_VERMILION_JENNY ; Squirtle
db -1 ; end db -1 ; end
DebugSetPokedexEntries: DebugSetPokedexEntries:
ld b, wPokedexOwnedEnd - wPokedexOwned ld b, wPokedexOwnedEnd - wPokedexOwned
@ -203,6 +203,7 @@ DebugSetPokedexEntries:
DebugItemsList: DebugItemsList:
db MASTER_BALL, 99 db MASTER_BALL, 99
db SILPHLETTER, 1
db MYSTERY_BOX, 1 db MYSTERY_BOX, 1
db CANDY_JAR, 1 db CANDY_JAR, 1
db BICYCLE, 1 db BICYCLE, 1

View file

@ -111,6 +111,7 @@ ItemUsePtrTable:
dw ItemUseEvoStone ; METAL_COAT dw ItemUseEvoStone ; METAL_COAT
dw ItemUseMysteryBox ; MYSTERY_BOX dw ItemUseMysteryBox ; MYSTERY_BOX
dw UnusableItem ; TEA dw UnusableItem ; TEA
dw ItemUseLetter ; SILPHLETTER
dw UnusableItem ; FLOOR_B2F dw UnusableItem ; FLOOR_B2F
dw UnusableItem ; FLOOR_B1F dw UnusableItem ; FLOOR_B1F
dw UnusableItem ; FLOOR_1F dw UnusableItem ; FLOOR_1F
@ -126,6 +127,16 @@ ItemUsePtrTable:
dw UnusableItem ; FLOOR_11F dw UnusableItem ; FLOOR_11F
dw UnusableItem ; FLOOR_14F dw UnusableItem ; FLOOR_14F
ItemUseLetter:
text_asm
ld hl, ChiefLetterText
call PrintText
jp TextScriptEnd
ChiefLetterText:
text_far _ChiefLetterText
text_end
ItemUseMysteryBox: ItemUseMysteryBox:
; Mystery Box can't be used in battle. ; Mystery Box can't be used in battle.
ld a, [wIsInBattle] ld a, [wIsInBattle]

View file

@ -202,6 +202,8 @@ ItemDescriptionPointers:
text_end text_end
text_far _TeaDescription text_far _TeaDescription
text_end text_end
text_far _SilphLetterDescription
text_end
text_far _HM01Description text_far _HM01Description
text_end text_end
text_far _HM02Description text_far _HM02Description

View file

@ -117,7 +117,7 @@ MainMenu:
ld a, [wCurMap] ; map ID ld a, [wCurMap] ; map ID
cp HALL_OF_FAME cp HALL_OF_FAME
jp nz, SpecialEnterMap jp nz, SpecialEnterMap
xor a ld a, REDS_HOUSE_2F
ld [wDestinationMap], a ld [wDestinationMap], a
ld hl, wd732 ld hl, wd732
set 2, [hl] ; fly warp or dungeon warp set 2, [hl] ; fly warp or dungeon warp

View file

@ -1991,7 +1991,8 @@ wPalletTownCurScript:: db
wCitrineRocketHouseCurScript:: db wCitrineRocketHouseCurScript:: db
wBluesHouseCurScript:: db wBluesHouseCurScript:: db
wViridianCityCurScript:: db wViridianCityCurScript:: db
ds 2 wRedsHouse1FCurScript:: db
ds 1
wPewterCityCurScript:: db wPewterCityCurScript:: db
wRoute3CurScript:: db wRoute3CurScript:: db
wRoute4CurScript:: db wRoute4CurScript:: db

View file

@ -43,7 +43,8 @@ HallofFameRoomScript2:
ResetEventRange INDIGO_PLATEAU_EVENTS_START, INDIGO_PLATEAU_EVENTS_END, 1 ResetEventRange INDIGO_PLATEAU_EVENTS_START, INDIGO_PLATEAU_EVENTS_END, 1
xor a xor a
ld [wHallOfFameCurScript], a ld [wHallOfFameCurScript], a
ld a, PALLET_TOWN ld hl, FirstMapSpec
ld a, [hli]
ld [wLastBlackoutMap], a ld [wLastBlackoutMap], a
farcall SaveSAVtoSRAM farcall SaveSAVtoSRAM
ld b, 5 ld b, 5

View file

@ -1,9 +1,81 @@
RedsHouse1F_Script: RedsHouse1F_Script:
jp EnableAutoTextBoxDrawing call EnableAutoTextBoxDrawing
ld hl, RedsHouse1F_ScriptPointers
ld a, [wRedsHouse1FCurScript]
jp CallFunctionInTable
RedsHouse1F_ScriptPointers:
dw ChiefLetter1
dw ChiefLetter2
ChiefLetter1:
CheckEvent EVENT_POST_GAME_ATTAINED
jr z, .done
CheckEvent EVENT_LETTER_RECEIVED
jr nz, .done
; with the way this is being done, coords will be unnecessary.
; this will trigger the minute you enter the house.
call UpdateSprites
call PlayerSeeMom
ld a, $ff
ld [wJoyIgnore], a
ld hl, wSimulatedJoypadStatesEnd
ld de, PlayerSeeMom_RLEMovement
call DecodeRLEList
dec a
ld [wSimulatedJoypadStatesIndex], a
call StartSimulatingJoypadStates
ld a, $2
ld [wRedsHouse1FCurScript], a
ld [wCurMapScript], a
.done
ret
ChiefLetter2:
ld a, [wSimulatedJoypadStatesIndex]
and a
ret nz
call Delay3
ld a, $1
ldh [hSpriteIndex], a
ld a, SPRITE_FACING_LEFT
ldh [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld hl, MomGreeting
call PrintText
SetEvent EVENT_LETTER_RECEIVED
ld a, $1
ld [wRedsHouse1FCurScript], a
ld [wCurMapScript], a
ret
PlayerSeeMom:
ld c, 10
call DelayFrames
ld [wEmotionBubbleSpriteIndex], a
xor a ; EXCLAMATION_BUBBLE
ld [wWhichEmotionBubble], a
predef EmotionBubble
ld c, 20
call DelayFrames
ret
PlayerSeeMom_RLEMovement:
db D_LEFT, 1
db D_DOWN, 3
db -1 ; end
RedsHouse1F_TextPointers: RedsHouse1F_TextPointers:
dw RedsHouse1FMomText dw RedsHouse1FMomText
dw RedsHouse1FTVText dw RedsHouse1FTVText
dw MomGreeting
RedsHouse1FMomText: RedsHouse1FMomText:
text_asm text_asm
@ -70,3 +142,39 @@ StandByMeText:
TVWrongSideText: TVWrongSideText:
text_far _TVWrongSideText text_far _TVWrongSideText
text_end text_end
; Post-Game stuff here.
MomGreeting:
text_asm
ld hl, MomYoureBack
call PrintText
lb bc, SILPHLETTER, 1
call GiveItem
ld hl, ReceivedChiefLetterText
call PrintText
ld a, [wSimulatedJoypadStatesEnd] ; ensuring that the text doesn't autoskip.
and a ; yep, here too.
call z, WaitForTextScrollButtonPress ; and here.
call EnableAutoTextBoxDrawing ; and here.
ld hl, ChiefLetterText
call PrintText
ld hl, MomAmazing
call PrintText
jp TextScriptEnd
ChiefLetterText:
text_far _ChiefLetterText
text_end
MomYoureBack:
text_far _MomYoureBack
text_end
ReceivedChiefLetterText:
text_far _ReceivedChiefLetterText
text_end
MomAmazing:
text_far _MomAmazing
text_end

View file

@ -35,3 +35,61 @@ _StandByMeText::
_TVWrongSideText:: _TVWrongSideText::
text "Oops, wrong side." text "Oops, wrong side."
done done
_MomYoureBack::
text "MOM: <PLAYER>!"
line "Good morning!"
para "I'm so proud of"
line "you, dear! You've"
cont "grown so much!"
para "Oh! I nearly"
line "forgot..."
para "I received this"
line "letter from"
cont "SILPH CO."
done
; I want the letter text to play when we use the letter, so it's gonna be like this.
_ReceivedChiefLetterText::
text "<PLAYER> received"
line "@"
text_ram wStringBuffer
text "!@"
text_end
_ChiefLetterText::
text "Dear <PLAYER>!"
line "You are cordially"
cont "invited to my"
cont "greatest event!"
para "I call it...the"
line "SILPH GAUNTLET!"
para "I have called"
line "the greatest"
cont "TRAINERs in all"
cont "of KANTO! Even"
cont "stronger than"
cont "the ELITE FOUR!"
para "You will come to"
line "SILPH CO., yes?"
para "See you then!"
line " - CHIEF"
done
_MomAmazing::
text "Oh! Isn't this"
line "amazing, sweetie?"
para "I'm sure you'll"
line "do great!"
para "I'm always here"
line "if you need me!"
done