diff --git a/goal_src/jak2/pc/progress/progress-static-pc.gc b/goal_src/jak2/pc/progress/progress-static-pc.gc index de1dd19786..d2a0ac78c0 100644 --- a/goal_src/jak2/pc/progress/progress-static-pc.gc +++ b/goal_src/jak2/pc/progress/progress-static-pc.gc @@ -427,7 +427,9 @@ This gives us more freedom to write code how we want. (text-id language-name-korean)) :get-item-index-fn (lambda () (-> *setting-control* user-default language)) :on-confirm (lambda ((index int) (the-progress progress)) - (set! (-> *setting-control* user-default language) (the-as language-enum index))))) + (set! (-> *setting-control* user-default language) (the-as language-enum index)) + (set! (-> *setting-control* user-current language) (the-as language-enum index)) + (pc-settings-save)))) (defmacro game-options-pc-text-language () `(new 'static 'menu-generic-carousel-option diff --git a/goal_src/jak3/pc/pckernel-impl.gc b/goal_src/jak3/pc/pckernel-impl.gc index 1fbe8c1361..f6e30929f6 100644 --- a/goal_src/jak3/pc/pckernel-impl.gc +++ b/goal_src/jak3/pc/pckernel-impl.gc @@ -175,6 +175,22 @@ (false! (-> obj hires-clouds?)) (set! (-> obj speedrunner-mode-custom-bind) 0) + (cond + ((and (= *default-territory* GAME_TERRITORY_SCEE) (= (-> obj text-language) (pc-language english))) + (set! (-> obj text-language) (pc-language uk-english)) + (set! (-> obj subtitle-language) (pc-language uk-english)) + ) + ;; ((= *default-territory* GAME_TERRITORY_SCEI) + ;; (set! (-> obj text-language) (pc-language japanese)) + ;; (set! (-> obj subtitle-language) (pc-language japanese)) + ;; ) + ((= *default-territory* GAME_TERRITORY_SCEK) + (set! (-> obj text-language) (pc-language korean)) + (set! (-> obj subtitle-language) (pc-language korean)) + ) + (else + )) + (set! (-> obj memcard-volume-sfx) 0.5) (set! (-> obj memcard-volume-music) 0.4) (set! (-> obj memcard-volume-dialog) 0.75) diff --git a/goal_src/jak3/pc/pckernel.gc b/goal_src/jak3/pc/pckernel.gc index f613958874..fed259194d 100644 --- a/goal_src/jak3/pc/pckernel.gc +++ b/goal_src/jak3/pc/pckernel.gc @@ -239,6 +239,7 @@ (set! (-> *setting-control* user-default dialog-volume) (-> obj memcard-volume-dialog)) (set! (-> *setting-control* user-default vibration) (-> obj memcard-vibration?)) (set! (-> *setting-control* user-default subtitle) (-> obj memcard-subtitles?)) + (set! (-> *setting-control* user-default subtitle-language) (the-as language-enum (-> obj subtitle-language))) obj) (defmethod set-game-setting! ((obj pc-settings-jak3) (setting symbol) (value symbol)) @@ -270,12 +271,12 @@ ) (defmethod set-game-language! ((obj pc-settings-jak3) (lang language-enum)) - (set! (-> *setting-control* user-default language) lang) + (set! (-> *setting-control* user-default audio-language) lang) ) (defmethod get-game-language ((obj pc-settings-jak3)) ;; if the language is unintialized, return the default - (let ((lang (get-current-language))) + (let ((lang (-> *setting-control* user-current audio-language))) (if (= lang 255) (scf-get-language) lang @@ -646,6 +647,8 @@ (("smooth-minimap?") (set! (-> obj smooth-minimap?) (file-stream-read-symbol file))) (("minimap-force-north") (set! (-> obj minimap-force-north) (file-stream-read-symbol file))) (("hires-clouds?") (set! (-> obj hires-clouds?) (file-stream-read-symbol file))) + (("text-language") (set! (-> obj text-language) (the-as pc-language (file-stream-read-int file)))) + (("subtitle-language") (set! (-> obj subtitle-language) (the-as pc-language (file-stream-read-int file)))) (("controller-led-status?") (set! (-> obj controller-led-status?) (file-stream-read-symbol file))) (("controller-swap-r1-r2?") (set! (-> obj controller-swap-r1-r2?) (file-stream-read-symbol file))) (("speedrunner-mode-custom-bind") (set! (-> obj speedrunner-mode-custom-bind) (file-stream-read-int file))) @@ -700,6 +703,8 @@ (format file " (smooth-minimap? ~A)~%" (-> obj smooth-minimap?)) (format file " (minimap-force-north ~A)~%" (-> obj minimap-force-north)) (format file " (hires-clouds? ~A)~%" (-> obj hires-clouds?)) + (format file " (text-language ~D)~%" (-> obj text-language)) + (format file " (subtitle-language ~D)~%" (-> obj subtitle-language)) (format file " (controller-led-status? ~A)~%" (-> obj controller-led-status?)) (format file " (controller-swap-r1-r2? ~A)~%" (-> obj controller-swap-r1-r2?)) (format file " (speedrunner-mode-custom-bind ~D)~%" (-> obj speedrunner-mode-custom-bind)) diff --git a/goal_src/jak3/pc/progress/progress-pc.gc b/goal_src/jak3/pc/progress/progress-pc.gc index 5342dd96ed..90db6413f9 100644 --- a/goal_src/jak3/pc/progress/progress-pc.gc +++ b/goal_src/jak3/pc/progress/progress-pc.gc @@ -490,8 +490,8 @@ ((= (-> self state-array 0) 'title) (let ((gp-1 (-> *setting-control* user-default auto-save))) (sound-volume-off) - (set! (-> *setting-control* user-default auto-save) gp-1) (progress-intro-start) + (set! (-> *setting-control* user-default auto-save) gp-1) ) ) ((-> *progress-work* hero-mode-save) diff --git a/goal_src/jak3/pc/progress/progress-static-pc.gc b/goal_src/jak3/pc/progress/progress-static-pc.gc index a720981ece..6a8a37b163 100644 --- a/goal_src/jak3/pc/progress/progress-static-pc.gc +++ b/goal_src/jak3/pc/progress/progress-static-pc.gc @@ -512,7 +512,9 @@ This gives us more freedom to write code how we want. ) :get-item-index-fn (lambda () (-> *setting-control* user-default audio-language)) :on-confirm (lambda ((index int) (the-progress progress)) - (set! (-> *setting-control* user-default audio-language) (the-as language-enum index))))) + (set! (-> *setting-control* user-default audio-language) (the-as language-enum index)) + (set! (-> *setting-control* user-current audio-language) (the-as language-enum index)) + (pc-settings-save)))) (defmacro game-options-pc-text-language () `(new 'static 'menu-generic-carousel-option