mirror of
https://github.com/open-goal/jak-project
synced 2026-07-05 13:43:52 -04:00
110 lines
4.7 KiB
Common Lisp
110 lines
4.7 KiB
Common Lisp
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
#|
|
|
|
|
Additional PC port specific file for overriding/expanding the progress menu
|
|
This gives us more freedom to write code how we want.
|
|
|
|
|#
|
|
|
|
|
|
(set! (-> *main-options-debug* options 9) (new 'static 'menu-main-menu-option :name (text-id progress-music-player) :scale #t :next-state 'music-player))
|
|
|
|
(define *game-options-pc*
|
|
(progress-new-generic-scrolling-page (text-id progress-root-game-options)
|
|
(new 'static 'menu-generic-boolean-option
|
|
:name (text-id progress-vibration)
|
|
:truthy-text (text-id progress-on)
|
|
:falsey-text (text-id progress-off)
|
|
:get-value-fn (lambda () (-> *setting-control* user-default vibration))
|
|
:on-confirm (lambda ((val symbol)) (set! (-> *setting-control* user-default vibration) val)))
|
|
(new 'static 'menu-generic-boolean-option
|
|
:name (text-id progress-subtitles)
|
|
:truthy-text (text-id progress-on)
|
|
:falsey-text (text-id progress-off)
|
|
:get-value-fn (lambda () (-> *setting-control* user-default subtitle))
|
|
:on-confirm (lambda ((val symbol)) (set! (-> *setting-control* user-default subtitle) val)))
|
|
(new 'static 'menu-generic-carousel-option
|
|
:name (text-id progress-sound-subtitle-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)
|
|
(text-id language-name-english-uk))
|
|
:get-item-index-fn (lambda () (-> *setting-control* user-default subtitle-language))
|
|
:on-confirm (lambda ((index int)) (set! (-> *setting-control* user-default subtitle-language)
|
|
(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)
|
|
(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))
|
|
;; 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)))))
|
|
(progress-new-generic-link (text-id progress-misc-game-options)
|
|
(progress-new-generic-scrolling-page (text-id progress-misc-game-options)
|
|
(new 'static 'menu-generic-boolean-option
|
|
:name (text-id progress-speedrunner-mode)
|
|
:truthy-text (text-id progress-on)
|
|
:falsey-text (text-id progress-off)
|
|
:get-value-fn (lambda () (-> *pc-settings* speedrunner-mode?))
|
|
:on-confirm (lambda ((val symbol))
|
|
(set! (-> *pc-settings* speedrunner-mode?) val)
|
|
(commit-to-file *pc-settings*)))))))
|
|
|
|
|
|
(define *graphic-options-pc*
|
|
(new 'static 'menu-option-list
|
|
:y-center 198
|
|
:y-space 34
|
|
:scale 0.82
|
|
:options (new 'static 'boxed-array :type menu-option
|
|
(new 'static 'menu-display-mode-option :name (text-id progress-display-mode))
|
|
(new 'static 'menu-aspect-ratio-pc-option :name (text-id progress-aspect-ratio))
|
|
(new 'static 'menu-frame-rate-option :name (text-id progress-frame-rate))
|
|
(new 'static 'menu-on-off-vsync-option :name (text-id progress-vsync))
|
|
)
|
|
)
|
|
)
|
|
|
|
(define *frame-rate-options* (new 'static 'boxed-array :type int16 30 50 60 75 120 144 165 240))
|
|
|
|
(define *aspect-ratio-custom-options*
|
|
(new 'static 'menu-option-list
|
|
:y-center 198
|
|
:y-space 34
|
|
:scale 0.82
|
|
:options (new 'static 'boxed-array :type menu-option
|
|
(new 'static 'menu-aspect-ratio-custom-option :name (text-id progress-aspect-ratio-custom-title))
|
|
)
|
|
)
|
|
)
|
|
|
|
|
|
(define *music-player-options*
|
|
(new 'static 'menu-option-list
|
|
:y-center 198
|
|
:y-space 34
|
|
:scale 0.82
|
|
:options (new 'static 'boxed-array :type menu-option
|
|
(new 'static 'menu-music-player-option :name (text-id progress-music-player))
|
|
)
|
|
)
|
|
)
|
|
|
|
|