diff --git a/goal_src/jak2/engine/game/settings-h.gc b/goal_src/jak2/engine/game/settings-h.gc index 4628506ab5..7a48ec5edf 100644 --- a/goal_src/jak2/engine/game/settings-h.gc +++ b/goal_src/jak2/engine/game/settings-h.gc @@ -331,8 +331,12 @@ ) ) -;; og:preserve-this added macro +;; og:preserve-this added macros (defmacro language? (&rest langs) "is the current language any of the ones specified?" `(or ,@(apply (lambda (x) `(= (-> *setting-control* user-default language) (language-enum ,x))) langs))) +(defmacro text-language? (&rest langs) + "is the current language any of the ones specified?" + `(or ,@(apply (lambda (x) `(= (-> *pc-settings* text-language) (pc-language ,x))) langs))) + diff --git a/goal_src/jak2/engine/ui/progress/progress-draw.gc b/goal_src/jak2/engine/ui/progress/progress-draw.gc index f779fdf0d2..5079be8171 100644 --- a/goal_src/jak2/engine/ui/progress/progress-draw.gc +++ b/goal_src/jak2/engine/ui/progress/progress-draw.gc @@ -1075,7 +1075,8 @@ )) (cond ((= (-> this name) (text-id progress-root-show-map)) - (when (= (-> *setting-control* user-default language) (language-enum french)) + ;; og:preserve-this changed to text language check + (when (text-language? french) (set-scale! arg1 0.7) ) (print-game-text (lookup-text! *common-text* (-> this name) #f) arg1 #f 44 (bucket-id progress)) @@ -1919,10 +1920,7 @@ ) ) (set-scale! sv-80 0.65) - (when (or (= (-> *setting-control* user-default language) (language-enum french)) - (= (-> *setting-control* user-default language) (language-enum spanish)) - (= (-> *setting-control* user-default language) (language-enum italian)) - ) + (when (text-language? french spanish italian) ;; og:preserve-this text-language patch (set-scale! sv-80 0.5) ) (set! (-> sv-80 origin y) (the float sv-16)) @@ -3387,9 +3385,7 @@ ) ) ) - (if (or (= (-> *setting-control* user-default language) (language-enum french)) - (= (-> *setting-control* user-default language) (language-enum spanish)) - ) + (if (text-language? french spanish) ;; og:preserve-this text-language patch (draw-decoration this arg1 f30-0 (the-as text-id a3-1) #t 0.7) (draw-decoration this arg1 f30-0 (the-as text-id a3-1) #t 0.95) ) @@ -3400,9 +3396,7 @@ (if (not (-> *pc-settings* use-vis?)) (set! (-> arg1 origin x) (the float (adjust-game-x (-> arg1 origin x)))))) (set-scale! arg1 0.5) - (when (or (= (-> *setting-control* user-default language) (language-enum japanese)) - (= (-> *setting-control* user-default language) (language-enum korean)) - ) + (when (text-language? japanese korean) ;; og:preserve-this text-language patch (set-scale! arg1 0.6) ) (set-flags! arg1 (font-flags kerning large)) @@ -3458,12 +3452,12 @@ ) ) (cond - ((and (= (-> *setting-control* user-default language) (language-enum german)) - (= (text-id progress-missions-stadium-board1) (-> sv-80 text-name)) - ) + ;; og:preserve-this text-language patch + ((and (text-language? german) (= (text-id progress-missions-stadium-board1) (-> sv-80 text-name))) (set-scale! arg1 0.45) ) - ((and (= (-> *setting-control* user-default language) (language-enum german)) (!= (text-id progress-missions-stadium-board1) (-> sv-80 text-name))) + ;; og:preserve-this text-language patch + ((and (text-language? german) (!= (text-id progress-missions-stadium-board1) (-> sv-80 text-name))) (set-scale! arg1 0.5) ) ) @@ -3524,9 +3518,7 @@ (*! (-> arg1 width) (-> *pc-settings* aspect-ratio-reciprocal)) )) (set-color! arg1 (font-color progress)) - (if (or (= (-> *setting-control* user-default language) (language-enum french)) - (= (-> *setting-control* user-default language) (language-enum spanish)) - ) + (if (text-language? french spanish) ;; og:preserve-this text-language patch (draw-decoration this arg1 f30-0 (text-id progress-select-scene) #t 0.7) (draw-decoration this arg1 f30-0 (text-id progress-select-scene) #t 0.95) ) @@ -3989,7 +3981,7 @@ (+! (-> arg2 origin x) -10.0) ) ) - (when (= (-> *setting-control* user-default language) (language-enum german)) + (when (text-language? german) ;; og:preserve-this text-language patch (let ((v1-19 arg2)) (set! (-> v1-19 scale) 0.43) ) @@ -4218,9 +4210,7 @@ (let ((v1-58 arg1)) (set! (-> v1-58 scale) 0.45) ) - (when (or (= (-> *setting-control* user-default language) (language-enum japanese)) - (= (-> *setting-control* user-default language) (language-enum korean)) - ) + (when (text-language? japanese korean) ;; og:preserve-this text-language patch (let ((v1-66 arg1)) (set! (-> v1-66 scale) 0.53) ) @@ -5221,7 +5211,7 @@ ) (set! (-> sv-144 sprites 0 pos z) #xfffff0) (set! (-> sv-144 sprites 0 pos w) 0) - (if (= (-> *setting-control* user-default language) (language-enum spanish)) + (if (text-language? spanish) ;; og:preserve-this text-language patch (draw-decoration sv-144 sv-140 sv-96 (text-id progress-root-highscores) #t 0.8) (draw-decoration sv-144 sv-140 sv-96 (text-id progress-root-highscores) #t 0.95) ) @@ -5246,17 +5236,17 @@ (let ((v1-53 sv-140)) (set! (-> v1-53 scale) 0.75) ) - (when (= (-> *setting-control* user-default language) (language-enum german)) + (when (text-language? german) ;; og:preserve-this text-language patch (let ((v1-56 sv-140)) (set! (-> v1-56 scale) 0.69) ) ) - (when (= (-> *setting-control* user-default language) (language-enum french)) + (when (text-language? french) ;; og:preserve-this text-language patch (let ((v1-59 sv-140)) (set! (-> v1-59 scale) 0.72) ) ) - (when (= (-> *setting-control* user-default language) (language-enum spanish)) + (when (text-language? spanish) ;; og:preserve-this text-language patch (let ((v1-62 sv-140)) (set! (-> v1-62 scale) 0.65) ) @@ -5273,9 +5263,7 @@ (let ((v1-68 sv-140)) (set! (-> v1-68 scale) 0.6) ) - (when (or (= (-> *setting-control* user-default language) (language-enum french)) - (= (-> *setting-control* user-default language) (language-enum spanish)) - ) + (when (text-language? french spanish) ;; og:preserve-this text-language patch (let ((v1-76 sv-140)) (set! (-> v1-76 scale) 0.58) ) @@ -5360,17 +5348,17 @@ (let ((v1-142 sv-140)) (set! (-> v1-142 scale) 0.75) ) - (when (= (-> *setting-control* user-default language) (language-enum german)) + (when (text-language? german) ;; og:preserve-this text-language patch (let ((v1-145 sv-140)) (set! (-> v1-145 scale) 0.69) ) ) - (when (= (-> *setting-control* user-default language) (language-enum french)) + (when (text-language? french) ;; og:preserve-this text-language patch (let ((v1-148 sv-140)) (set! (-> v1-148 scale) 0.72) ) ) - (when (= (-> *setting-control* user-default language) (language-enum spanish)) + (when (text-language? spanish) ;; og:preserve-this text-language patch (let ((v1-151 sv-140)) (set! (-> v1-151 scale) 0.65) ) @@ -5387,9 +5375,7 @@ (let ((v1-157 sv-140)) (set! (-> v1-157 scale) 0.6) ) - (when (or (= (-> *setting-control* user-default language) (language-enum french)) - (= (-> *setting-control* user-default language) (language-enum spanish)) - ) + (when (text-language? french spanish) ;; og:preserve-this text-language patch (let ((v1-165 sv-140)) (set! (-> v1-165 scale) 0.58) ) @@ -5929,7 +5915,7 @@ (let ((a1-1 arg1)) (set! (-> a1-1 flags) (font-flags kerning middle large)) ) - (if (= (-> *setting-control* user-default language) (language-enum spanish)) + (if (text-language? spanish) ;; og:preserve-this text-language patch (draw-decoration this arg1 f0-1 (text-id progress-root-game-options) #f 0.85) (draw-decoration this arg1 f0-1 (text-id progress-root-game-options) #f 0.95) ) @@ -6180,7 +6166,7 @@ (+! (-> arg1 origin y) 30.0) ) ) - (when (= (-> *setting-control* user-default language) (language-enum french)) + (when (text-language? french) ;; og:preserve-this text-language patch (let ((v1-23 arg1)) (set! (-> v1-23 scale) 0.55) ) @@ -6376,10 +6362,10 @@ ) (print-game-text a0-12 arg1 #f 44 (bucket-id progress)) (cond - ((= (-> *setting-control* user-default language) (language-enum french)) + ((text-language? french) ;; og:preserve-this text-language patch (draw-decoration this arg1 f30-0 (text-id progress-restart-quit) #f 0.8) ) - ((= (-> *setting-control* user-default language) (language-enum german)) + ((text-language? german) ;; og:preserve-this text-language patch (draw-decoration this arg1 f30-0 (text-id progress-restart-quit) #f 0.7) ) (else @@ -6620,9 +6606,7 @@ (else (set! sv-208 (-> this value-to-modify)) (+! (-> s5-0 origin y) -8.0) - (when (or (= (-> *setting-control* user-default language) (language-enum german)) - (= (-> *setting-control* user-default language) (language-enum french)) - ) + (when (text-language? german french) ;; og:preserve-this text-language patch (let ((v1-121 s5-0)) (set! (-> v1-121 scale) 0.56) ) diff --git a/goal_src/jak2/engine/ui/progress/progress.gc b/goal_src/jak2/engine/ui/progress/progress.gc index bf1da0b7c0..72fe0d2837 100644 --- a/goal_src/jak2/engine/ui/progress/progress.gc +++ b/goal_src/jak2/engine/ui/progress/progress.gc @@ -1313,7 +1313,7 @@ (set! (-> sv-144 origin y) (the float sv-148)) (set-width! sv-144 355) (set-height! sv-144 30) - (set! (-> sv-144 flags) (if (= (-> *setting-control* user-default language) (language-enum japanese)) + (set! (-> sv-144 flags) (if (text-language? japanese) ;; og:preserve-this text-language patch (font-flags middle middle-vert large) (font-flags kerning middle middle-vert large) ) @@ -3266,7 +3266,7 @@ (-> *progress-state* game-options-vibrations) (-> *progress-state* game-options-subtitles) (let ((gp-0 #f)) - (load-level-text-files (the-as int (-> *setting-control* user-current language))) + (load-level-text-files (the-as int (#if PC_PORT (-> *pc-settings* text-language) (-> *setting-control* user-current language)))) ;; og:preserve-this text-language patch (cond ((= (-> *progress-state* game-options-item-picked) #f) (cond diff --git a/goal_src/jak2/engine/ui/text.gc b/goal_src/jak2/engine/ui/text.gc index 6ec21d9135..53f4fe7bec 100644 --- a/goal_src/jak2/engine/ui/text.gc +++ b/goal_src/jak2/engine/ui/text.gc @@ -220,7 +220,8 @@ (defmethod lookup-text ((this level) (arg0 text-id) (arg1 symbol)) (let ((v1-0 *common-text*)) (dotimes (a3-0 (-> this loaded-text-info-count)) - (if (= (-> this loaded-text-info a3-0 language-id) (-> *setting-control* user-current language)) + (if (= (-> this loaded-text-info a3-0 language-id) (#if PC_PORT (the language-enum (-> *pc-settings* text-language)) + (-> *setting-control* user-current language))) (set! v1-0 (-> this loaded-text-info a3-0)) ) ) @@ -234,9 +235,10 @@ (defun load-game-text-info ((arg0 string) (arg1 (pointer object)) (arg2 kheap)) "Load text, if needed. txt-name is the group name, curr-text is the _symbol_ for the game-text-info, and heap is the heap to load to. The heap will be cleared." - (local-vars (v0-3 int) (sv-16 game-text-info) (sv-24 int) (sv-32 int) (sv-40 int)) + (local-vars (v0-3 int) (sv-16 game-text-info) (sv-24 language-enum) (sv-32 int) (sv-40 int)) (set! sv-16 (the-as game-text-info (-> arg1 0))) - (set! sv-24 (the-as int (-> *setting-control* user-current language))) + (set! sv-24 (#if PC_PORT (the language-enum (-> *pc-settings* text-language)) + (-> *setting-control* user-current language))) (set! sv-32 0) (set! sv-40 (&- (-> arg2 top) (the-as uint (-> arg2 base)))) ;; english -> UK english in PAL @@ -319,9 +321,8 @@ in a single text group and file." (when (or *level-text-file-load-flag* (>= arg0 0)) (load-game-text-info "common" (&-> '*common-text* value) *common-text-heap*) (#when PC_PORT - (protect ((-> *setting-control* user-current language)) - ;; todo - split text language - (set! (-> *setting-control* user-current language) (language-enum english)) + (protect ((-> *pc-settings* text-language)) + (set! (-> *pc-settings* text-language) (pc-language english)) (load-game-text-info "common" (&-> '*fallback-text* value) *fallback-text-heap*)))) 0 (none) diff --git a/goal_src/jak2/levels/common/race/race-hud.gc b/goal_src/jak2/levels/common/race/race-hud.gc index dcc9b08598..3f419738e8 100644 --- a/goal_src/jak2/levels/common/race/race-hud.gc +++ b/goal_src/jak2/levels/common/race/race-hud.gc @@ -332,7 +332,7 @@ (let ((v1-21 s1-0)) (set! (-> v1-21 scale) 1.6) ) - (when (= (-> *setting-control* user-default language) (language-enum german)) + (when (text-language? german) ;; og:preserve-this text-language patch (let ((v1-24 s1-0)) (set! (-> v1-24 scale) 1.0) ) @@ -351,7 +351,7 @@ (let ((v1-27 s1-0)) (set! (-> v1-27 scale) 1.6) ) - (when (= (-> *setting-control* user-default language) (language-enum german)) + (when (text-language? german) ;; og:preserve-this text-language patch (let ((v1-30 s1-0)) (set! (-> v1-30 scale) 1.0) ) diff --git a/goal_src/jak2/levels/title/title-obs.gc b/goal_src/jak2/levels/title/title-obs.gc index cef2f30c8c..3a4ce493a7 100644 --- a/goal_src/jak2/levels/title/title-obs.gc +++ b/goal_src/jak2/levels/title/title-obs.gc @@ -432,7 +432,7 @@ (defbehavior title-screen-change title-control ((arg0 string) (arg1 int) (arg2 string) (arg3 int) (arg4 symbol) (arg5 symbol)) (when arg5 (let ((s1-0 (the-as int (-> *setting-control* user-current language)))) - (if (and (= (the-as language-enum s1-0) (language-enum english)) (= (scf-get-territory) 1)) + (if (and (= (the-as language-enum s1-0) (language-enum english)) (= (scf-get-territory) GAME_TERRITORY_SCEE)) ;; og:preserve-this (set! s1-0 7) ) (if (>= arg1 0) diff --git a/goal_src/jak2/pc/debug/default-menu-pc.gc b/goal_src/jak2/pc/debug/default-menu-pc.gc index 3771a40e96..79667eb234 100644 --- a/goal_src/jak2/pc/debug/default-menu-pc.gc +++ b/goal_src/jak2/pc/debug/default-menu-pc.gc @@ -476,14 +476,14 @@ ) ) -;; (defun dm-text-language ((blang int) (msg debug-menu-msg)) -;; (let ((lang (the pc-language (/ blang 8)))) -;; (when (= msg (debug-menu-msg press)) -;; (set! (-> *pc-settings* text-language) lang)) -;; (= (-> *pc-settings* text-language) lang) -;; ) -;; ) -;; +(defun dm-text-language ((blang int) (msg debug-menu-msg)) + (let ((lang (the pc-language (/ blang 8)))) + (when (= msg (debug-menu-msg press)) + (set! (-> *pc-settings* text-language) lang)) + (= (-> *pc-settings* text-language) lang) + ) + ) + (defun dm-subtitle-setting ((setting symbol) (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (set! (-> *pc-settings* subtitle-speaker?) setting)) @@ -867,17 +867,17 @@ (flag "On" #t dm-subtitle-setting) (flag "Auto" auto dm-subtitle-setting) ) - ;; (menu "Text language" - ;; (flag "english" 0 dm-text-language) - ;; (flag "french" 1 dm-text-language) - ;; (flag "german" 2 dm-text-language) - ;; (flag "spanish" 3 dm-text-language) - ;; (flag "italian" 4 dm-text-language) - ;; (flag "japanese" 5 dm-text-language) - ;; (flag "uk-english" 6 dm-text-language) - ;; (flag "br-portuguese" 13 dm-text-language) - ;; (flag "hungarian" 14 dm-text-language) - ;; ) + (menu "Text language" + ;; TODO macro + (flag "english" (the binteger (pc-language english)) dm-text-language) + (flag "french" (the binteger (pc-language french)) dm-text-language) + (flag "german" (the binteger (pc-language german)) dm-text-language) + (flag "spanish" (the binteger (pc-language spanish)) dm-text-language) + (flag "italian" (the binteger (pc-language italian)) dm-text-language) + (flag "japanese" (the binteger (pc-language japanese)) dm-text-language) + (flag "korean" (the binteger (pc-language korean)) dm-text-language) + (flag "uk-english" (the binteger (pc-language uk-english)) dm-text-language) + ) (flag "Discord RPC" #t ,(dm-lambda-boolean-flag (-> *pc-settings* discord-rpc?))) (flag "Speedrunner Mode" #t ,(dm-lambda-boolean-flag (-> *pc-settings* speedrunner-mode?))) (flag "Jetboard Trick String" #t ,(dm-lambda-boolean-flag (-> *pc-settings* jetboard-trick-text?))) diff --git a/goal_src/jak2/pc/pckernel-impl.gc b/goal_src/jak2/pc/pckernel-impl.gc index 2ff1c36a05..aba53d456a 100644 --- a/goal_src/jak2/pc/pckernel-impl.gc +++ b/goal_src/jak2/pc/pckernel-impl.gc @@ -144,6 +144,19 @@ (false! (-> obj fast-progress?)) (true! (-> obj smooth-minimap?)) (false! (-> obj hires-clouds?)) + + (cond + ((and (= *default-territory* GAME_TERRITORY_SCEE) (= (-> obj text-language) (pc-language english))) + (set! (-> obj text-language) (pc-language uk-english)) + ) + ((= *default-territory* GAME_TERRITORY_SCEI) + (set! (-> obj text-language) (pc-language japanese)) + ) + ((= *default-territory* GAME_TERRITORY_SCEK) + (set! (-> obj text-language) (pc-language korean)) + ) + (else + )) 0) (defmethod reset-extra ((obj pc-settings-jak2) (call-handlers symbol)) diff --git a/goal_src/jak2/pc/progress/progress-draw-pc.gc b/goal_src/jak2/pc/progress/progress-draw-pc.gc index a8ec510190..dabaed5615 100644 --- a/goal_src/jak2/pc/progress/progress-draw-pc.gc +++ b/goal_src/jak2/pc/progress/progress-draw-pc.gc @@ -474,9 +474,9 @@ (set! (-> this sprites 0 pos w) 0) ;; draw decoration text - (if (= (-> *setting-control* user-default language) (language-enum spanish)) - (draw-decoration this font-ctx alpha (text-id progress-root-highscores) #t 0.8) - (draw-decoration this font-ctx alpha (text-id progress-root-highscores) #t 0.95)) + (if (text-language? spanish) + (draw-decoration this font-ctx alpha (text-id progress-root-highscores) #t 0.8) + (draw-decoration this font-ctx alpha (text-id progress-root-highscores) #t 0.95)) ;; draw scrolling arrows if applicable (when (> (progress-pc-max-highscore-rows (-> this page-index)) 8) @@ -496,20 +496,18 @@ (set-color! font-ctx (font-color progress-force-selected)) (set! (-> font-ctx origin x) (+ padding row-width (-> font-ctx origin x))) (set-scale! font-ctx 0.75) - (when (= (-> *setting-control* user-default language) (language-enum german)) + (when (text-language? german) (set-scale! font-ctx 0.69)) - (when (= (-> *setting-control* user-default language) (language-enum french)) + (when (text-language? french) (set-scale! font-ctx 0.72)) - (when (= (-> *setting-control* user-default language) (language-enum spanish)) + (when (text-language? spanish) (set-scale! font-ctx 0.65)) (print-game-text (string-format "~S" (lookup-text! *common-text* (get-highscore-text (-> this page-index)) #f)) font-ctx #f 44 (bucket-id progress)) ;; now draw highscore subtitle (e.g 'Scatter Gun') (+! (-> font-ctx origin y) 25.0) (set-scale! font-ctx 0.6) - (when (or (= (-> *setting-control* user-default language) (language-enum french)) - (= (-> *setting-control* user-default language) (language-enum spanish)) - ) + (when (text-language? french spanish) (set-scale! font-ctx 0.58)) (print-game-text (string-format "~S" (lookup-text! *common-text* (get-highscore-text-sub (-> this page-index)) #f)) font-ctx #f 44 (bucket-id progress)) @@ -591,17 +589,16 @@ (set-color! font-ctx (font-color progress-force-selected)) (set! (-> font-ctx origin x) (+ padding unknown-todo (-> font-ctx origin x))) (set-scale! font-ctx 0.75) - (when (= (-> *setting-control* user-default language) (language-enum german)) + (when (text-language? german) (set-scale! font-ctx 0.69)) - (when (= (-> *setting-control* user-default language) (language-enum french)) + (when (text-language? french) (set-scale! font-ctx 0.72)) - (when (= (-> *setting-control* user-default language) (language-enum spanish)) + (when (text-language? spanish) (set-scale! font-ctx 0.65)) (print-game-text (string-format "~S" (lookup-text! *common-text* (get-highscore-text (-> this prev-page-index)) #f)) font-ctx #f 44 (bucket-id progress)) (+! (-> font-ctx origin y) 25.0) (set-scale! font-ctx 0.6) - (when (or (= (-> *setting-control* user-default language) (language-enum french)) - (= (-> *setting-control* user-default language) (language-enum spanish))) + (when (text-language? french spanish) (set-scale! font-ctx 0.58)) (print-game-text (string-format "~S" (lookup-text! *common-text* (get-highscore-text-sub (-> this prev-page-index)) #f)) font-ctx #f 44 (bucket-id progress)) (set! (-> font-ctx origin x) (- (-> font-ctx origin x) (+ padding unknown-todo))) @@ -827,9 +824,7 @@ (else (set! sv-208 (-> obj value-to-modify)) (+! (-> s5-0 origin y) -8.0) - (when (or (= (-> *setting-control* user-default language) (language-enum german)) - (= (-> *setting-control* user-default language) (language-enum french)) - ) + (when (text-language? german french) (set-scale! s5-0 0.56) ) (if (= (-> arg0 option-index) gp-0) @@ -1212,7 +1207,7 @@ (+! (-> arg2 origin x) -10.0) ) ) - (when (= (-> *setting-control* user-default language) (language-enum german)) + (when (text-language? german) (set-scale! arg2 0.43) ) (print-game-text diff --git a/goal_src/jak2/pc/progress/progress-generic-pc.gc b/goal_src/jak2/pc/progress/progress-generic-pc.gc index e4411f52b0..d293cef07e 100644 --- a/goal_src/jak2/pc/progress/progress-generic-pc.gc +++ b/goal_src/jak2/pc/progress/progress-generic-pc.gc @@ -172,7 +172,7 @@ (mc-get-slot-info 0 *progress-save-info*) ;; ND originally did this...called this every frame in the game options, looked like a hack ;; there's probably a way to consistently do it synchronously - (load-level-text-files (the-as int (-> *setting-control* user-current language))) + (load-level-text-files (the-as int (-> *pc-settings* text-language))) (when (-> this current-options) (let ((option-array (-> this current-options options)) (has-generic-history? (has-history? *progress-pc-generic-store*))) diff --git a/goal_src/jak2/pc/progress/progress-static-pc.gc b/goal_src/jak2/pc/progress/progress-static-pc.gc index 622945f1d8..82073ed96a 100644 --- a/goal_src/jak2/pc/progress/progress-static-pc.gc +++ b/goal_src/jak2/pc/progress/progress-static-pc.gc @@ -285,6 +285,18 @@ This gives us more freedom to write code how we want. (the-as language-enum index)))) (new 'static 'menu-generic-carousel-option :name (text-id progress-sound-language) + :items (new 'static 'boxed-array :type text-id + (text-id language-name-english) + (text-id language-name-french) + (text-id language-name-german) + (text-id language-name-spanish) + (text-id language-name-italian) + (text-id language-name-japanese) + (text-id language-name-korean)) + :get-item-index-fn (lambda () (-> *setting-control* user-default language)) + :on-confirm (lambda ((index int)) (set! (-> *setting-control* user-default language) (the-as language-enum index)))) + (new 'static 'menu-generic-carousel-option + :name (text-id progress-text-language) :items (new 'static 'boxed-array :type text-id (text-id language-name-english) (text-id language-name-french) @@ -294,8 +306,9 @@ This gives us more freedom to write code how we want. (text-id language-name-japanese) (text-id language-name-korean) (text-id language-name-english-uk)) - :get-item-index-fn (lambda () (-> *setting-control* user-default language)) - :on-confirm (lambda ((index int)) (set! (-> *setting-control* user-default language) (the-as language-enum index)) + :get-item-index-fn (lambda () (-> *pc-settings* text-language)) + :on-confirm (lambda ((index int)) (set! (-> *pc-settings* text-language) + (the-as pc-language index)) ;; NOTE - this doesn't actually work (naughty dog tried it too in their progress code) ;; fix it eventually (load-level-text-files (the-as int (-> *setting-control* user-default language)))))