;;-*-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)) ) ) )