Skip to content

Commit

Permalink
[jak2] split language and text language (#3233)
Browse files Browse the repository at this point in the history
  • Loading branch information
ManDude authored Nov 29, 2023
1 parent 956645b commit e38fe70
Show file tree
Hide file tree
Showing 11 changed files with 104 additions and 94 deletions.
6 changes: 5 additions & 1 deletion goal_src/jak2/engine/game/settings-h.gc
Original file line number Diff line number Diff line change
Expand Up @@ -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)))

68 changes: 26 additions & 42 deletions goal_src/jak2/engine/ui/progress/progress-draw.gc
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down Expand Up @@ -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))
Expand Down Expand Up @@ -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)
)
Expand All @@ -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))
Expand Down Expand Up @@ -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)
)
)
Expand Down Expand Up @@ -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)
)
Expand Down Expand Up @@ -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)
)
Expand Down Expand Up @@ -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)
)
Expand Down Expand Up @@ -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)
)
Expand All @@ -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)
)
Expand All @@ -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)
)
Expand Down Expand Up @@ -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)
)
Expand All @@ -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)
)
Expand Down Expand Up @@ -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)
)
Expand Down Expand Up @@ -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)
)
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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)
)
Expand Down
4 changes: 2 additions & 2 deletions goal_src/jak2/engine/ui/progress/progress.gc
Original file line number Diff line number Diff line change
Expand Up @@ -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)
)
Expand Down Expand Up @@ -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
Expand Down
13 changes: 7 additions & 6 deletions goal_src/jak2/engine/ui/text.gc
Original file line number Diff line number Diff line change
Expand Up @@ -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))
)
)
Expand All @@ -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
Expand Down Expand Up @@ -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)
Expand Down
4 changes: 2 additions & 2 deletions goal_src/jak2/levels/common/race/race-hud.gc
Original file line number Diff line number Diff line change
Expand Up @@ -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)
)
Expand All @@ -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)
)
Expand Down
2 changes: 1 addition & 1 deletion goal_src/jak2/levels/title/title-obs.gc
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
38 changes: 19 additions & 19 deletions goal_src/jak2/pc/debug/default-menu-pc.gc
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down Expand Up @@ -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?)))
Expand Down
13 changes: 13 additions & 0 deletions goal_src/jak2/pc/pckernel-impl.gc
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down
Loading

0 comments on commit e38fe70

Please sign in to comment.