Merge pull request #43 from jojo-kep/master

Improved border block glitch fix and Cat vs Dog Beauty Fixes
This commit is contained in:
Martha Schilling 2024-01-21 16:25:35 +00:00 committed by GitHub
commit 7cd95d1561
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 36 additions and 21 deletions

View file

@ -2082,17 +2082,12 @@ LoadMapHeader::
ld a, [wCurMap]
call SwitchToMapRomBank
ld a, [wCurMapTileset]
ld b, a
bit 7, a
res 7, a
ld [wCurMapTileset], a
ldh [hPreviousTileset], a
bit 7, b
;replace the conditional return with a nop in order to always load the map header data...
;...even when selecting CONTINUE from the main menu
; ret nz
nop
; ret nz ;comment this out so that the header data always loads
push af ;preserve the bit check for later to tell if CONTINUE is being selected
ld hl, MapHeaderPointers
ld a, [wCurMap]
sla a
@ -2150,7 +2145,7 @@ LoadMapHeader::
ld [wObjectDataPointerTemp], a
ld a, [hli]
ld [wObjectDataPointerTemp + 1], a
push hl
; push hl ; save hl before going to the warp/sign/sprite data (this value is saved for seemingly no purpose)
ld a, [wObjectDataPointerTemp]
ld l, a
ld a, [wObjectDataPointerTemp + 1]
@ -2158,6 +2153,9 @@ LoadMapHeader::
ld de, wMapBackgroundTile
ld a, [hli]
ld [de], a
pop af ;we're done if loading from the CONTINUE option of the main menu
ret nz
nop ;padding
.loadWarpData
ld a, [hli]
ld [wNumberOfWarps], a
@ -2330,7 +2328,7 @@ LoadMapHeader::
.finishUp
predef LoadTilesetHeader
callfar LoadWildData
pop hl ; restore hl from before going to the warp/sign/sprite data (this value was saved for seemingly no purpose)
; pop hl ; restore hl from before going to the warp/sign/sprite data (this value was saved for seemingly no purpose)
ld a, [wCurMapHeight] ; map height in 4x4 tile blocks
add a ; double it
ld [wCurrentMapHeight2], a ; store map height in 2x2 tile blocks

View file

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

View file

@ -370,14 +370,23 @@ VermilionBeauty:
; 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.
cp 5 ; Do you have 5 of the scrunklies?
jr z, .eventIsFinished ; Big if true.
jr nz, .eventInProgress ; Small if false.
; jr z, .eventIsFinished ; Big if true.
; 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.
.eventStart
ld hl, BeautyText1 ; Let's open the text.
call PrintText
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.
and a
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.
.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 a, [wBeautyChoice]
cp GROWLITHE
@ -418,10 +428,10 @@ VermilionBeauty:
.skip3
call GivePokemon
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.
ld hl, wd72e
set 0, [hl]
; ld hl, wd72e ;not needed since EVENT_VERMILION_BEAUTY_DONE is the event bit for this.
; set 0, [hl]
jr .done
; Now if it's already been said and done, we go here.
@ -435,6 +445,7 @@ VermilionBeauty:
.skip4
call PrintText
ld hl, BeautyExplainCont
.skip5
call PrintText
;fallthrough
.done
@ -490,3 +501,9 @@ BeautyExplain2:
BeautyExplainCont:
text_far _BeautyExplainCont
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.
_BeautyChoice:: ; this is separate for the in-progress event.
text "If you catch 5"
text "If you catch 5 new"
line "@"
text_ram wcd6d ; efficiency - means we don't need two separate texts...
text ", I'll"