fixes for CatDog Beauty quest

This commit is contained in:
jojobear13 2024-01-18 18:25:16 -06:00
parent 9bad9fc109
commit 7acb5b697f
3 changed files with 28 additions and 11 deletions

View file

@ -309,8 +309,8 @@ SilphCo7TrainerHeader3:
SilphCo7Text1: SilphCo7Text1:
; lapras guy ; lapras guy
text_asm text_asm
ld a, [wd72c] ld a, [wd72e]
bit 2, a bit 0, a
jr z, .givelapras jr z, .givelapras
CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI
jr nz, .savedsilph jr nz, .savedsilph
@ -329,8 +329,8 @@ SilphCo7Text1:
call EnableAutoTextBoxDrawing call EnableAutoTextBoxDrawing
ld hl, .HeresYourLaprasText ld hl, .HeresYourLaprasText
call PrintText call PrintText
ld hl, wd72c ld hl, wd72e
set 2, [hl] set 0, [hl]
jr .done jr .done
.savedsilph .savedsilph
ld hl, .LaprasGuySavedText ld hl, .LaprasGuySavedText

View file

@ -370,14 +370,23 @@ VermilionBeauty:
; All it really achieves is weird architecture for like 3-4 less machine cycles. ; All it really achieves is weird architecture for like 3-4 less machine cycles.
ld a, [wBeautyCounter] ; Alright, if you got here, then the event is in progress. ld a, [wBeautyCounter] ; Alright, if you got here, then the event is in progress.
cp 5 ; Do you have 5 of the scrunklies? cp 5 ; Do you have 5 of the scrunklies?
jr z, .eventIsFinished ; Big if true. ; jr z, .eventIsFinished ; Big if true.
jr nz, .eventInProgress ; Small if false. ; jr nz, .eventInProgress ; Small if false.
jr nc, .eventIsFinished ; A set z flag happens for exactly 5. A cleared carry flag happens for values 5 to 255.
jr c, .eventInProgress ; And a set carry flag happens for values 0 to 4.
; Let us start the game. ; Let us start the game.
.eventStart .eventStart
ld hl, BeautyText1 ; Let's open the text. ld hl, BeautyText1 ; Let's open the text.
call PrintText call PrintText
call CatsDogsChoice call CatsDogsChoice
;account for cancelling with the B button
ld hl, _BeautyWait
ldh a, [hJoyHeld]
and B_BUTTON
jr nz, .skip5
ld a, [wCurrentMenuItem] ; Let's load what they picked. 0 is cats, 1 is dogs. ld a, [wCurrentMenuItem] ; Let's load what they picked. 0 is cats, 1 is dogs.
and a and a
jr nz, .getArcanine ; Skip storing Growlithe if dogs. jr nz, .getArcanine ; Skip storing Growlithe if dogs.
@ -401,7 +410,8 @@ VermilionBeauty:
; Now if the event is finished, she needs to hand the Pokemon over. ; Now if the event is finished, she needs to hand the Pokemon over.
.eventIsFinished .eventIsFinished
call SaveScreenTilesToBuffer1 ; saves us from some corruption disasters if nicknaming. ; call SaveScreenTilesToBuffer1 ; saves us from some corruption disasters if nicknaming.
; ...not needed anymore as this was fixed in commit dd71684
ld hl, BeautyFinish1 ld hl, BeautyFinish1
ld a, [wBeautyChoice] ld a, [wBeautyChoice]
cp GROWLITHE cp GROWLITHE
@ -418,10 +428,10 @@ VermilionBeauty:
.skip3 .skip3
call GivePokemon call GivePokemon
jr nc, .done jr nc, .done
call LoadScreenTilesFromBuffer1 ; saves us from some corruption disasters if nicknaming. ; call LoadScreenTilesFromBuffer1 ; saves us from some corruption disasters if nicknaming.
SetEvent EVENT_VERMILION_BEAUTY_DONE ; and now we can finally rest. SetEvent EVENT_VERMILION_BEAUTY_DONE ; and now we can finally rest.
ld hl, wd72e ; ld hl, wd72e ;not needed since EVENT_VERMILION_BEAUTY_DONE is the event bit for this.
set 0, [hl] ; set 0, [hl]
jr .done jr .done
; Now if it's already been said and done, we go here. ; Now if it's already been said and done, we go here.
@ -435,6 +445,7 @@ VermilionBeauty:
.skip4 .skip4
call PrintText call PrintText
ld hl, BeautyExplainCont ld hl, BeautyExplainCont
.skip5
call PrintText call PrintText
;fallthrough ;fallthrough
.done .done
@ -490,3 +501,9 @@ BeautyExplain2:
BeautyExplainCont: BeautyExplainCont:
text_far _BeautyExplainCont text_far _BeautyExplainCont
text_end text_end
_BeautyWait:
text "I can wait on"
line "your answer."
done
db "@"

View file

@ -136,7 +136,7 @@ _BeautyText2::
prompt ; needed for text to scroll correctly - it looks and acts fine in-game, don't worry. prompt ; needed for text to scroll correctly - it looks and acts fine in-game, don't worry.
_BeautyChoice:: ; this is separate for the in-progress event. _BeautyChoice:: ; this is separate for the in-progress event.
text "If you catch 5" text "If you catch 5 new"
line "@" line "@"
text_ram wcd6d ; efficiency - means we don't need two separate texts... text_ram wcd6d ; efficiency - means we don't need two separate texts...
text ", I'll" text ", I'll"