Post-Playtest Bug Fixes

- Finishes the Vermilion Beauty event. One silly mistake involving the choice was fixed, and a workaround for wBeautyChoice failing in strange places implemented. Functionally the result I wanted.
- Implemented the Yellow spriteset for Vermilion City with minor adaptations. Fixes that funny issue I found on stream.
- Viridian Pre-Gym was fixed, reworking some events.
This commit is contained in:
Llinos Evans 2023-07-05 17:59:21 +01:00
parent e932c39ed4
commit 6ba59391c1
8 changed files with 90 additions and 61 deletions

View file

@ -525,13 +525,15 @@ PassRefuse:
; LGPE Beauty who gives you a Persian or Arcanine depending on the game.
; Here, we make it a Cats vs Dogs question and change based on that.
; The way it works is it makes the player catch the opposite Pokemon, and then get the one they picked.
; So Meowth gets Arcanine, and Growlithe gets Persian.
; This code is kind of schizophrenic but it does the job.
; Meowth = Arcanine
; Growlithe = Persian
; This code is nightmare fuel but it does the job.
; Basically, at some point, wBeautyChoice stops working for reasons scientists are still trying to figure out.
VermilionBeauty:
text_asm
CheckEvent EVENT_VERMILION_BEAUTY_DONE ; First, check if the event is actually done.
jp nz, BeautyDone ; Yes? Alright, no need for this.
jp nz, .beautyDone ; Yes? Alright, no need for this.
ld a, [wBeautyChoice] ; Next, we check if wBeautyChoice has been set. This saves an event constant.
cp 0 ; It will never be 0 if the player has made their choice.
@ -545,11 +547,11 @@ VermilionBeauty:
jr z, .eventIsFinished ; Big if true.
jr nz, .eventInProgress ; Small if false.
; Let us start the game.
.eventStart
ld hl, BeautyText1 ; Let's open the text.
call PrintText
call CatsDogsChoice
ld a, [wCurrentMenuItem] ; Let's load what they picked. 0 is cats, 1 is dogs.
and a
jr nz, .getArcanine ; Skip storing Growlithe if dogs.
@ -559,23 +561,27 @@ VermilionBeauty:
ld a, MEOWTH
.skip ; Now we land here.
ld [wBeautyChoice], a ; Finally store the choice in wBeautyChoice.
ld hl, BeautyText2 ; Now spit it out.
call PrintText
.eventInProgress ; This is a jump point for if the event was already started.
; This is a jump point for if the event was already started.
.eventInProgress
ld a, [wBeautyChoice]
ld [wd11e], a
call GetMonName
ld hl, BeautyChoice
call PrintText
jr .done ; no give pokemon. bad.
; Now if the event is finished, she needs to hand the Pokemon over.
.eventIsFinished
call SaveScreenTilesToBuffer1 ; saves us from some corruption disasters if nicknaming.
ld hl, BeautyFinish1
ld a, [wBeautyChoice]
ld [wd11e], a
call GetMonName
ld hl, BeautyFinish
cp GROWLITHE
jr z, .skip2
ld hl, BeautyFinish2
.skip2
call PrintText
ld a, [wSimulatedJoypadStatesEnd] ; ensuring that the text doesn't autoskip.
and a ; yep, here too.
@ -583,27 +589,32 @@ VermilionBeauty:
call EnableAutoTextBoxDrawing ; and here. GivePokemon is very hasty.
lb bc, PERSIAN, 16 ; because we're elitists, let's see if they chose cats first.
ld a, [wBeautyChoice] ; *sigh*, but if they're dog lovers, let's make sure they actually want Persian.
cp PERSIAN ; Do they? If yes, skip.
jr z, .skip2 ; electric boogaloo
cp GROWLITHE ; Do they? If yes, skip.
jr z, .skip3 ; electric boogaloo
lb bc, ARCANINE, 16 ; ok but skip2 means arc never gets loaded in. very good sequel. disney would NEVER.
.skip2
.skip3
call GivePokemon
jr nc, .done
call LoadScreenTilesFromBuffer1 ; saves us from some corruption disasters if nicknaming.
SetEvent EVENT_VERMILION_BEAUTY_DONE ; and now we can finally rest.
ld hl, wd72e
set 0, [hl]
.done
jp TextScriptEnd
jr .done
; This needs to be separate for reasons I refuse to elaborate on for fear of angering God.
BeautyDone:
text_asm
; Now if it's already been said and done, we go here.
; Due to man-made horrors beyond my comprehension, we need to split the text here.
.beautyDone
ld hl, BeautyExplain1
ld a, [wBeautyChoice]
ld [wd11e], a
call GetMonName
ld hl, BeautyExplain
cp GROWLITHE
jr z, .skip4
ld hl, BeautyExplain2
.skip4
call PrintText
ld hl, BeautyExplainCont
call PrintText
;fallthrough
.done
jp TextScriptEnd
; displays cats/dogs choice
@ -637,10 +648,22 @@ BeautyChoice:
text_far _BeautyChoice
text_end
BeautyFinish:
text_far _BeautyFinish
BeautyFinish1:
text_far _BeautyFinish1
text_end
BeautyExplain:
text_far _BeautyExplain
BeautyFinish2:
text_far _BeautyFinish2
text_end
BeautyExplain1:
text_far _BeautyExplain1
text_end
BeautyExplain2:
text_far _BeautyExplain2
text_end
BeautyExplainCont:
text_far _BeautyExplainCont
text_end

View file

@ -32,10 +32,10 @@ YujirouHasBeenBeaten:
jp ViridianPreGymResetScripts
ViridianPreGym_TextPointers:
dw YujirouText
dw YujirouHasBeenBeaten
dw ViridianPreGymText1
dw ViridianPreGymText2
dw YujirouText
dw YujirouHasBeenBeaten
dw ViridianPreGymGuide
dw ViridianPreGymSign1
dw ViridianPreGymSign2
@ -45,7 +45,7 @@ ViridianPreGym_TextPointers:
dw ViridianPreGymStatue2
ViridianPreGymTrainerHeaders:
def_trainers 3
def_trainers
ViridianPreGymTrainerHeader0:
trainer EVENT_BEAT_VIRIDIAN_PREGYM_TRAINER_0, 3, ViridianPreGymBattleText1, ViridianPreGymEndBattleText1, ViridianPreGymAfterBattleText1
ViridianPreGymTrainerHeader1:
@ -98,9 +98,9 @@ YujirouText:
ld de, YujirouWinText
call SaveEndBattleTextPointers
call EngageMapTrainer
ld a, OPP_BROCK
ld a, OPP_YUJIROU
ld [wCurOpponent], a
ld a, 9
ld a, 2
ld [wTrainerNo], a
ld a, 1
ld [wIsTrainerBattle], a