Finish Chief, bug fixes

This finishes Chief's event, with all the necessary components for the post-game Mewtwo fight sorted as well. I added an event the Master Ball sets for modular monologue text, for improved immersion.

I have also fixed some bugs;
- Fixed the oft-reported walking in trees bug in the Forest tileset.
- Fixed the Oak's lab computer issue by just...removing the computer. I made the map symmetrical instead, feels a lot better to look at, at least for me. I think it was meant to have an event on it or something, but I couldn't find anything, felt like I was being gaslit.
- Hopefully fixed the issue with the border blocks going weird after saving and resetting, by making the tileset directly point to the gym one, which Oak is meant to use. I am not sure how that glitch happened for ViWalls.
- Fixed the Viridian Pre-Gym text scrolling issue.

I still cannot replicate the crash bugs that some people have been experiencing and don't see anything that could be causing it.

I also changed Trampel in Victory Road to Steelix, as mentioned by Gogocrafter.
This commit is contained in:
Llinos Evans 2023-07-27 14:39:24 +01:00
parent 5cf0a7930e
commit 47f2683d85
17 changed files with 162 additions and 46 deletions

View file

@ -13,16 +13,22 @@ ResetChiefScript:
ret
SilphGauntlet7F_ScriptPointers:
;dw ChiefScript0
dw ChiefScript1
dw ChiefScript2
dw ChiefScript3
dw ChiefScript10
ChiefScript0: ; this is used in the champion script but it doesn't seem to be needed here.
ret
dw ChiefScript4
ChiefScript1:
CheckEvent EVENT_BEAT_CHIEF
jr nz, .skip
ld a, PLAYER_DIR_UP
ld [wPlayerMovingDirection], a
call UpdateSprites
jr MovePlayerToChief
.skip
ret
MovePlayerToChief:
ld a, $ff
ld [wJoyIgnore], a
ld hl, wSimulatedJoypadStatesEnd
@ -31,8 +37,9 @@ ChiefScript1:
dec a
ld [wSimulatedJoypadStatesIndex], a
call StartSimulatingJoypadStates
ld a, $2
ld a, $1
ld [wSilphGauntlet7FCurScript], a
ld [wCurMapScript], a
ret
ChiefEntrance_RLEMovement:
@ -45,15 +52,16 @@ ChiefScript2:
ret nz
call Delay3
xor a
ld [wJoyIgnore], a
ld hl, wOptions
res 7, [hl] ; Turn on battle animations like with Blue
;ld a, $1
;ldh [hSpriteIndexOrTextID], a
;call DisplayTextID
ld hl, ChiefText1
call PrintText
ld a, $1
ldh [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $2
ld [wSilphGauntlet7FCurScript], a
ret
ChiefScript3:
@ -72,18 +80,24 @@ ChiefScript3:
ld a, $1
ldh [hSpriteIndex], a
call SetSpriteMovementBytesToFF
ld a, $4
ld a, $3
ld [wSilphGauntlet7FCurScript], a
jp TextScriptEnd
ChiefScript10:
ChiefScript4:
ld a, [wSimulatedJoypadStatesIndex]
and a
ret nz
xor a
ld [wJoyIgnore], a
; Grant Mewtwo access
ld a, HS_CERULEAN_CAVE_GUY
ld [wMissableObjectIndex], a
predef HideObject
ld a, $0
ld [wChampionsRoomCurScript], a
ld [wSilphGauntlet7FCurScript], a
ret
ChiefScript_That_Seems_Needed:
@ -96,16 +110,28 @@ ChiefScript_That_Seems_Needed:
SilphGauntlet7F_TextPointers:
dw ChiefText1
; dw ChiefText2
dw ChiefPC
dw ChiefPainting1
dw ChiefPainting2
ChiefText1:
text_asm
CheckEvent EVENT_BEAT_CHIEF
ld hl, ChiefAfterBattleText
jr z, .printText
CheckEvent EVENT_BEAT_CHIEF ; Check if Chief was beaten
jr nz, .chiefBeaten ; If Chief has been beaten, skip the trainer loading
; standard processing
ld hl, ChiefMonologue
.printText
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.
CheckEvent EVENT_USED_MASTER_BALL ; Check if the Master Ball has been used.
ld hl, ChiefMonologueMasterBallNotUsed ; Load not used by default.
jr z, .masterBallSkip ; In which case, we can skip.
ld hl, ChiefMonologueMasterBallUsed ; If you get here, it's been used.
.masterBallSkip ; Now if it's been used, fall through to here.
call PrintText ; Now print the text.
ld c, BANK(Music_MeetEvilTrainer)
ld a, MUSIC_MEET_EVIL_TRAINER
@ -125,12 +151,26 @@ ChiefText1:
ld hl, ChiefDefeatedText
ld de, ChiefVictoryText
call SaveEndBattleTextPointers
jr .done
.chiefBeaten
ld hl, ChiefAfterBattleText
call PrintText
; fallthrough
.done
jp TextScriptEnd
ChiefMonologue:
text_far _ChiefMonologue
text_end
ChiefMonologueMasterBallUsed:
text_far _ChiefMonologueMasterBallUsed
text_end
ChiefMonologueMasterBallNotUsed:
text_far _ChiefMonologueMasterBallNotUsed
text_end
ChiefDefeatedText:
text_far _ChiefDefeatedText
text_end
@ -143,6 +183,21 @@ ChiefAfterBattleText:
text_far _ChiefAfterBattleText
text_end
ChiefPC:
text_far _ChiefPCText
text_end
ChiefPainting1:
text_far _ChiefPainting1
text_end
ChiefPainting2:
text_far _ChiefPainting2
text_end
; Originally, Chief was going to give you the Candy Jar.
; But this would relegate Melmetal to the post-game, which feels wrong.
; Instead, he gives you access to Mewtwo.
;ChiefText2:
; text_asm
; CheckEvent EVENT_GOT_CANDY_JAR
@ -182,5 +237,3 @@ ChiefAfterBattleText:
;CandyJarNoRoomText:
; text_far _CandyJarNoRoomText
; text_end
; text_end