Skip to content

Commit b2289e8

Browse files
authored
g/j2: persist subtitle language properly, eliminates a crash (#3872)
Fixes #3870
1 parent ccbd600 commit b2289e8

File tree

4 files changed

+12
-5
lines changed

4 files changed

+12
-5
lines changed

goal_src/jak2/pc/pckernel-impl.gc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@
106106
(memcard-subtitles? symbol)
107107

108108
(text-language pc-language) ;; language for game text
109+
(subtitle-language pc-language)
109110
)
110111

111112
(:methods
@@ -155,12 +156,15 @@
155156
(cond
156157
((and (= *default-territory* GAME_TERRITORY_SCEE) (= (-> obj text-language) (pc-language english)))
157158
(set! (-> obj text-language) (pc-language uk-english))
159+
(set! (-> obj subtitle-language) (pc-language uk-english))
158160
)
159161
((= *default-territory* GAME_TERRITORY_SCEI)
160162
(set! (-> obj text-language) (pc-language japanese))
163+
(set! (-> obj subtitle-language) (pc-language japanese))
161164
)
162165
((= *default-territory* GAME_TERRITORY_SCEK)
163166
(set! (-> obj text-language) (pc-language korean))
167+
(set! (-> obj subtitle-language) (pc-language korean))
164168
)
165169
(else
166170
))

goal_src/jak2/pc/pckernel.gc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -760,6 +760,7 @@
760760
(("minimap-force-north") (set! (-> obj minimap-force-north) (file-stream-read-symbol file)))
761761
(("hires-clouds?") (set! (-> obj hires-clouds?) (file-stream-read-symbol file)))
762762
(("text-language") (set! (-> obj text-language) (the-as pc-language (file-stream-read-int file))))
763+
(("subtitle-language") (set! (-> obj subtitle-language) (the-as pc-language (file-stream-read-int file))))
763764
(("controller-led-status?") (set! (-> obj controller-led-status?) (file-stream-read-symbol file)))
764765
(("speedrunner-mode-custom-bind") (set! (-> obj speedrunner-mode-custom-bind) (file-stream-read-int file)))
765766
(("cheats") (set! (-> obj cheats) (the-as pc-cheats (file-stream-read-int file))))
@@ -814,6 +815,7 @@
814815
(format file " (minimap-force-north ~A)~%" (-> obj minimap-force-north))
815816
(format file " (hires-clouds? ~A)~%" (-> obj hires-clouds?))
816817
(format file " (text-language ~D)~%" (-> obj text-language))
818+
(format file " (subtitle-language ~D)~%" (-> obj text-language))
817819
(format file " (controller-led-status? ~A)~%" (-> obj controller-led-status?))
818820
(format file " (speedrunner-mode-custom-bind ~D)~%" (-> obj speedrunner-mode-custom-bind))
819821
(format file " (cheats #x~x)~%" (-> obj cheats))

goal_src/jak2/pc/progress/progress-static-pc.gc

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -373,9 +373,10 @@ This gives us more freedom to write code how we want.
373373
(text-id language-name-czech)
374374
(text-id language-name-croatian)
375375
(text-id language-name-galician))
376-
:get-item-index-fn (lambda () (-> *setting-control* user-default subtitle-language))
376+
:get-item-index-fn (lambda () (-> *pc-settings* subtitle-language))
377377
:on-confirm (lambda ((index int) (the-progress progress))
378-
(set! (-> *setting-control* user-default subtitle-language) (the-as language-enum index)))))
378+
(set! (-> *pc-settings* subtitle-language) (the-as pc-language index))
379+
(pc-settings-save))))
379380

380381
(defmacro game-options-pc-sound-language ()
381382
`(new 'static 'menu-generic-carousel-option

goal_src/jak2/pc/subtitle2.gc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@
106106
heap = the text heap to load the file onto"
107107

108108
(let ((heap-sym-heap (the-as subtitle2-text-info (-> curr-text value)))
109-
(lang (-> *setting-control* user-current subtitle-language))
109+
(lang (-> *pc-settings* subtitle-language))
110110
(load-status 0)
111111
(heap-free (&- (-> heap top) (the-as uint (-> heap base)))))
112112

@@ -358,7 +358,7 @@
358358
"setup a font and parameters for the subtitle2 subtitles."
359359

360360
;; set font settings.
361-
(if (!= (language-enum japanese) (-> *setting-control* user-current subtitle-language))
361+
(if (!= (pc-language japanese) (-> *pc-settings* subtitle-language))
362362
(set-scale! font (* 0.5 (-> *SUBTITLE2-bank* scale)))
363363
(set-scale! font (* 0.5 (-> *SUBTITLE2-bank* scale) 1.2)))
364364
(set-width! font (the int (* (-> *SUBTITLE2-bank* width) 0.91 512)))
@@ -591,7 +591,7 @@
591591
(set-height! (-> self font) 70)
592592
(set-scale! (-> self font) 0.5)
593593

594-
(when (= (-> *setting-control* user-current subtitle-language) (language-enum korean))
594+
(when (= (-> *pc-settings* subtitle-language) (pc-language korean))
595595
(set-scale! (-> self font) 0.6))
596596
)
597597
#t)

0 commit comments

Comments
 (0)