From 8827af5efdc65884191426705612eae20e45bbb6 Mon Sep 17 00:00:00 2001 From: water111 <48171810+water111@users.noreply.github.com> Date: Tue, 11 Oct 2022 19:21:10 -0400 Subject: [PATCH] add workaround for menu-option-list weirdness (#1961) The type makes no sense when compared to the actual data there. This modifies the type slightly, which I think is better than spending a bunch of effort to special case this in the compiler/decompiler. If we try this, and it turns out it doesn't work, we can always revisit it. But I think this will work. --- decompiler/config/jak2/all-types.gc | 126 ++- decompiler/config/jak2/type_casts.jsonc | 14 - .../jak2/engine/ui/progress/progress-draw.gc | 2 +- .../jak2/engine/ui/progress/progress-h.gc | 28 +- .../engine/ui/progress/progress-static.gc | 854 +++++++++++++++++- goal_src/jak2/engine/ui/progress/progress.gc | 104 +-- goal_src/jak2/engine/ui/text-id-h.gc | 90 ++ .../engine/ui/progress/progress-draw_REF.gc | 2 +- .../jak2/engine/ui/progress/progress-h_REF.gc | 30 +- .../engine/ui/progress/progress-static_REF.gc | 795 +++++++++++++++- .../jak2/engine/ui/progress/progress_REF.gc | 104 +-- 11 files changed, 1869 insertions(+), 280 deletions(-) diff --git a/decompiler/config/jak2/all-types.gc b/decompiler/config/jak2/all-types.gc index 61e5864c4c..02f733fc33 100644 --- a/decompiler/config/jak2/all-types.gc +++ b/decompiler/config/jak2/all-types.gc @@ -6588,9 +6588,77 @@ :type uint32 :bitfield #f (null 0) + (text-xc8 #x00c8) + (text-xc9 #x00c9) + (text-xca #x00ca) + (text-xcb #x00cb) + (text-xcc #x00cc) + (text-xcd #x00cd) + (text-xce #x00ce) + (text-xcf #x00cf) + (text-xd0 #x00d0) + (text-xd1 #x00d1) + (text-xd2 #x00d2) + (text-xd3 #x00d3) + (text-xd4 #x00d4) + (text-xd5 #x00d5) + (text-xd6 #x00d6) + (text-xd7 #x00d7) + (text-xd8 #x00d8) + (text-xd9 #x00d9) + (text-xda #x00da) + (text-xdb #x00db) + (text-xdc #x00dc) + (text-xdd #x00dd) + (text-xde #x00de) + (text-xdf #x00df) + (text-xe0 #x00e0) + (text-xe1 #x00e1) + (text-xe2 #x00e2) + (text-xe3 #x00e3) + (text-xe4 #x00e4) + (text-xe5 #x00e5) + (text-xe6 #x00e6) + (text-xe7 #x00e7) + (text-xe8 #x00e8) + (text-xe9 #x00e9) + (text-xea #x00ea) + (text-xeb #x00eb) + (text-xec #x00ec) + (text-xed #x00ed) + (text-xee #x00ee) + (text-xef #x00ef) + (text-xf0 #x00f0) + (text-xf1 #x00f1) + (text-xf2 #x00f2) + (text-xf3 #x00f3) + (text-xf4 #x00f4) + (text-xf5 #x00f5) + (text-xf6 #x00f6) + (text-xf7 #x00f7) + (text-xf8 #x00f8) + (text-xf9 #x00f9) + (text-xfa #x00fa) + (text-xfb #x00fb) + (text-xfc #x00fc) + (text-xfd #x00fd) + (text-xfe #x00fe) + (text-xff #x00ff) + (text-x100 #x0100) (pause 257) + (text-x102 #x0102) + (text-x103 #x0103) + (text-x104 #x0104) + (text-x105 #x0105) + (text-x106 #x0106) + (text-x107 #x0107) (progress-sound-music-volume 264) (progress-sound-speech-volume 265) + (text-x109 #x0109) + (text-x10a #x010a) + (text-x10b #x010b) + (text-x10c #x010c) + (text-x10d #x010d) (progress-on 270) (progress-off 271) (progress-move-dpad 272) @@ -6622,6 +6690,7 @@ (progress-title-prompt 306) (progress-quit 307) (progress-root-show-map 308) + (text-x135 #x0135) (progress-root-highscores 310) (progress-highscores-1st 311) (progress-highscores-2nd 312) @@ -6633,6 +6702,10 @@ (progress-highscores-8th 318) (progress-root-secrets 339) (progress-secrets-unlocked 340) + (text-x155 #x0155) + (text-x156 #x0156) + (text-x157 #x0157) + (text-x158 #x0158) (progress-main-secrets-hero-mode 345) (progress-main-secrets-sceneplayer-1 346) (progress-main-secrets-sceneplayer-2 347) @@ -6641,13 +6714,30 @@ (progress-main-secrets-mega-scrapbook 350) (progress-main-secrets-scrapbook-3 351) (progress-main-secrets-levelselect 352) + (text-x161 #x0161) + (text-x162 #x0162) + (text-x163 #x0163) + (text-x164 #x0164) + (text-x165 #x0165) + (text-x166 #x0166) + (text-x167 #x0167) (progress-secrets-orb-label 360) (progress-root-missions 361) + (text-x16a #x016a) + (text-x16b #x016b) + (text-x16c #x016c) + (text-x16d #x016d) (progress-root-restart-mission 366) (progress-missions-icon-todo 367) (progress-missions-icon-completed 368) (progress-missions-none 369) (progress-unknown-game 370) + (text-x173 #x0173) + (text-x174 #x0174) + (text-x175 #x0175) + (text-x176 #x0176) + (text-x177 #x0177) + (text-x178 #x0178) (progress-unknown-square-to-reset 377) (progress-unknown-oi1un23i13 380) (progress-unknown-kjanskd 381) @@ -20916,7 +21006,7 @@ (deftype menu-option (basic) ((name game-text-id :offset-assert 4) - (scale float :offset-assert 8) + (scale symbol :offset-assert 8) (unknown function :offset-assert 12) ;; This is gross if im correct ;; this HAS to have a bunch of `menu-option`s -- look at `(method 24 progress)` and `(method 25 progress)` @@ -20989,7 +21079,7 @@ ) (deftype menu-sub-menu-option (menu-option) - ((next-state basic :offset-assert 48) + ((next-state symbol :offset-assert 48) (pad uint8 44) ) :method-count-assert 12 @@ -21000,7 +21090,7 @@ ) (deftype menu-sub-menu-sound-option (menu-option) - ((next-state basic :offset-assert 48) + ((next-state symbol :offset-assert 48) ) :method-count-assert 12 :size-assert #x34 @@ -21019,7 +21109,7 @@ ) (deftype menu-sub-menu-graphic-option (menu-option) - ((next-state basic :offset-assert 48) + ((next-state symbol :offset-assert 48) ) :method-count-assert 12 :size-assert #x34 @@ -21038,7 +21128,7 @@ ) (deftype menu-main-menu-option (menu-option) - ((next-state basic :offset-assert 48) + ((next-state symbol :offset-assert 48) ) :method-count-assert 12 :size-assert #x34 @@ -21311,15 +21401,21 @@ ;; ohhhh man i wish OpenGOAL had generics -- would be awesome if you could create a menu-option-list ;; for example, and then `options T ...` and then everything could just figure it out with type safety + +;; note: in the original game, they actually had +;; (options (array menu-option) :dynamic), with the dynamic array always having length of exactly 1. +;; this is likely just a typo, and a huge pain to support in the decompiler, so we've modified +;; the type. This means that the size/flag asserts no longer match. (deftype menu-option-list (basic) ((y-center int32 :offset-assert 4) (y-space int32 :offset-assert 8) (scale float :offset-assert 12) - (options menu-option :dynamic :offset-assert 16) + ;(options menu-option :dynamic :offset-assert 16) + (options (array menu-option) :offset-assert 16) ) :method-count-assert 9 - :size-assert #x10 - :flag-assert #x900000010 + ; :size-assert #x10 + ; :flag-assert #x900000010 ) (deftype menu-qr-option (menu-option) @@ -21334,7 +21430,7 @@ ) (deftype menu-restart-mission-qr-option (menu-qr-option) - ((next-state basic :offset-assert 64) + ((next-state symbol :offset-assert 64) ) :method-count-assert 12 :size-assert #x44 @@ -21344,7 +21440,7 @@ ) (deftype menu-quit-qr-option (menu-qr-option) - ((next-state basic :offset-assert 64) + ((next-state symbol :offset-assert 64) ) :method-count-assert 12 :size-assert #x44 @@ -21354,7 +21450,7 @@ ) (deftype menu-sub-menu-qr-option (menu-qr-option) - ((next-state basic :offset-assert 64) + ((next-state symbol :offset-assert 64) ) :method-count-assert 12 :size-assert #x44 @@ -21393,7 +21489,7 @@ ) (deftype menu-center-screen-graphic-option (menu-graphic-option) - ((next-state basic :offset-assert 64) + ((next-state symbol :offset-assert 64) ) :method-count-assert 12 :size-assert #x44 @@ -21441,7 +21537,7 @@ ) (deftype menu-sub-menu-game-option (menu-game-option) - ((next-state basic :offset-assert 64) + ((next-state symbol :offset-assert 64) ) :method-count-assert 12 :size-assert #x44 @@ -30069,7 +30165,7 @@ ) (define-extern progress-selected (function int int :behavior progress)) -(define-extern draw-percent-bar (function int int float rgba none)) ;; +(define-extern draw-percent-bar (function int int float rgba none)) ;; (define-extern draw-highlight (function int int float pointer)) (define-extern draw-busy-loading (function font-context float :behavior progress)) (define-extern draw-previous-next (function menu-highscores-option font-context symbol none)) @@ -30092,7 +30188,7 @@ (define-extern num-unlocked-secret? "@returns The number of secrets currently unlocked" (function game-secrets int)) -(define-extern print-menu-text (function string float font-context progress none)) +(define-extern print-menu-text (function string symbol font-context progress none)) (define-extern draw-yes-no (function progress font-context pointer)) (define-extern draw-continue-retry (function progress font-context pointer)) (define-extern draw-savegame-box (function menu-option float float float float pointer)) diff --git a/decompiler/config/jak2/type_casts.jsonc b/decompiler/config/jak2/type_casts.jsonc index b156540ad9..281471b8aa 100644 --- a/decompiler/config/jak2/type_casts.jsonc +++ b/decompiler/config/jak2/type_casts.jsonc @@ -2967,33 +2967,19 @@ "(code part-tester-idle)": [[[16, 22], "s5", "process-drawable"]], "(method 25 progress)": [[[19, 31], "a0", "menu-option"]], "(method 24 progress)": [ - [70, "a0", "(array menu-option)"], [71, "a0", "menu-on-off-game-vibrations-option"], - [76, "a0", "(array menu-option)"], [77, "a0", "menu-on-off-game-subtitles-option"], - [82, "a0", "(array menu-option)"], [83, "a0", "menu-language-option"], - [87, "a0", "(array menu-option)"], [88, "a0", "menu-language-option"], - [91, "v1", "(array menu-option)"], [92, "v1", "menu-language-option"], - [95, "v1", "(array menu-option)"], [96, "v1", "menu-language-option"], - [101, "a0", "(array menu-option)"], [102, "a0", "menu-on-off-option"], - [107, "a0", "(array menu-option)"], [108, "a0", "menu-on-off-option"], - [113, "a0", "(array menu-option)"], [114, "a0", "menu-on-off-option"], - [119, "a0", "(array menu-option)"], [120, "a0", "menu-on-off-option"], - [125, "a0", "(array menu-option)"], [126, "a0", "menu-slider-option"], - [131, "a0", "(array menu-option)"], [132, "a0", "menu-slider-option"], - [137, "a0", "(array menu-option)"], [138, "a0", "menu-slider-option"], - [141, "v1", "(array menu-option)"], [142, "v1", "menu-missions-option"] ], "(method 31 progress)": [ diff --git a/goal_src/jak2/engine/ui/progress/progress-draw.gc b/goal_src/jak2/engine/ui/progress/progress-draw.gc index e3ed3308e7..74557f015c 100644 --- a/goal_src/jak2/engine/ui/progress/progress-draw.gc +++ b/goal_src/jak2/engine/ui/progress/progress-draw.gc @@ -679,7 +679,7 @@ ) ) -(defun print-menu-text ((arg0 string) (arg1 float) (arg2 font-context) (arg3 progress)) +(defun print-menu-text ((arg0 string) (arg1 symbol) (arg2 font-context) (arg3 progress)) (let ((f0-1 (- 1.0 (-> arg3 menu-transition)))) (let ((v1-1 arg2)) (set! (-> v1-1 scale) 0.5) diff --git a/goal_src/jak2/engine/ui/progress/progress-h.gc b/goal_src/jak2/engine/ui/progress/progress-h.gc index c62d9cd212..479256efe0 100644 --- a/goal_src/jak2/engine/ui/progress/progress-h.gc +++ b/goal_src/jak2/engine/ui/progress/progress-h.gc @@ -74,7 +74,7 @@ (deftype menu-option (basic) ((name game-text-id :offset-assert 4) - (scale float :offset-assert 8) + (scale symbol :offset-assert 8) (unknown function :offset-assert 12) (box hud-box 1 :inline :offset-assert 16) (options menu-option 8 :offset 16) @@ -139,8 +139,8 @@ (deftype menu-sub-menu-option (menu-option) - ((next-state basic :offset-assert 48) - (pad uint8 44 :offset-assert 52) + ((next-state symbol :offset-assert 48) + (pad uint8 44 :offset-assert 52) ) :method-count-assert 12 :size-assert #x60 @@ -149,7 +149,7 @@ (deftype menu-sub-menu-sound-option (menu-option) - ((next-state basic :offset-assert 48) + ((next-state symbol :offset-assert 48) ) :method-count-assert 12 :size-assert #x34 @@ -166,7 +166,7 @@ (deftype menu-sub-menu-graphic-option (menu-option) - ((next-state basic :offset-assert 48) + ((next-state symbol :offset-assert 48) ) :method-count-assert 12 :size-assert #x34 @@ -183,7 +183,7 @@ (deftype menu-main-menu-option (menu-option) - ((next-state basic :offset-assert 48) + ((next-state symbol :offset-assert 48) ) :method-count-assert 12 :size-assert #x34 @@ -431,11 +431,11 @@ ((y-center int32 :offset-assert 4) (y-space int32 :offset-assert 8) (scale float :offset-assert 12) - (options menu-option :dynamic :offset-assert 16) + (options (array menu-option) :offset-assert 16) ) :method-count-assert 9 - :size-assert #x10 - :flag-assert #x900000010 + :size-assert #x14 + :flag-assert #x900000014 ) @@ -450,7 +450,7 @@ (deftype menu-restart-mission-qr-option (menu-qr-option) - ((next-state basic :offset-assert 64) + ((next-state symbol :offset-assert 64) ) :method-count-assert 12 :size-assert #x44 @@ -459,7 +459,7 @@ (deftype menu-quit-qr-option (menu-qr-option) - ((next-state basic :offset-assert 64) + ((next-state symbol :offset-assert 64) ) :method-count-assert 12 :size-assert #x44 @@ -468,7 +468,7 @@ (deftype menu-sub-menu-qr-option (menu-qr-option) - ((next-state basic :offset-assert 64) + ((next-state symbol :offset-assert 64) ) :method-count-assert 12 :size-assert #x44 @@ -503,7 +503,7 @@ (deftype menu-center-screen-graphic-option (menu-graphic-option) - ((next-state basic :offset-assert 64) + ((next-state symbol :offset-assert 64) ) :method-count-assert 12 :size-assert #x44 @@ -546,7 +546,7 @@ (deftype menu-sub-menu-game-option (menu-game-option) - ((next-state basic :offset-assert 64) + ((next-state symbol :offset-assert 64) ) :method-count-assert 12 :size-assert #x44 diff --git a/goal_src/jak2/engine/ui/progress/progress-static.gc b/goal_src/jak2/engine/ui/progress/progress-static.gc index 1a05dde8c8..930c1a8952 100644 --- a/goal_src/jak2/engine/ui/progress/progress-static.gc +++ b/goal_src/jak2/engine/ui/progress/progress-static.gc @@ -41,101 +41,853 @@ (add-to-loading-level a0-1) ) -(define *main-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *main-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-main-menu-option + :name (game-text-id progress-root-missions) + :scale #t + :next-state 'missions + ) + (new 'static 'menu-main-menu-option :name (game-text-id progress-root-show-map) :scale #t :next-state 'bigmap) + (new 'static 'menu-main-menu-option + :name (game-text-id progress-root-highscores) + :scale #t + :next-state 'highscores + ) + (new 'static 'menu-main-menu-option + :name (game-text-id progress-root-game-options) + :scale #t + :next-state 'game-options + ) + (new 'static 'menu-main-menu-option + :name (game-text-id progress-root-graphic-options) + :scale #t + :next-state 'graphic-options + ) + (new 'static 'menu-main-menu-option + :name (game-text-id progress-root-sound-options) + :scale #t + :next-state 'sound-options + ) + (new 'static 'menu-main-menu-option + :name (game-text-id progress-load-game) + :scale #t + :next-state 'select-load + ) + (new 'static 'menu-main-menu-option + :name (game-text-id progress-save-game) + :scale #t + :next-state 'select-save + ) + (new 'static 'menu-main-menu-option :name (game-text-id progress-root-secrets) :scale #t :next-state 'secret) + (new 'static 'menu-main-menu-option :name (game-text-id text-x173) :scale #t :next-state 'quit-restart) + ) + ) + ) -(define *main-options-debug* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *main-options-debug* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-main-menu-option :name (game-text-id text-x135) :scale #t :next-state 'select-start) + (new 'static 'menu-main-menu-option :name (game-text-id text-x16a) :scale #t :next-state 'select-pre-start) + (new 'static 'menu-main-menu-option :name (game-text-id text-x16b) :scale #t :next-state 'select-kiosk-start) + (new 'static 'menu-main-menu-option + :name (game-text-id progress-main-secrets-sceneplayer-1) + :scale #t + :next-state 'select-scene + ) + (new 'static 'menu-main-menu-option + :name (game-text-id progress-main-secrets-sceneplayer-2) + :scale #t + :next-state 'select-scene + ) + (new 'static 'menu-main-menu-option + :name (game-text-id progress-main-secrets-sceneplayer-3) + :scale #t + :next-state 'select-scene + ) + (new 'static 'menu-main-menu-option + :name (game-text-id progress-load-game) + :scale #t + :next-state 'select-load + ) + (new 'static 'menu-main-menu-option + :name (game-text-id progress-save-game) + :scale #t + :next-state 'select-save + ) + (new 'static 'menu-main-menu-option + :name (game-text-id progress-root-secrets) + :scale #t + :next-state 'unlocked-secrets + ) + (new 'static 'menu-main-menu-option :name (game-text-id progress-back) :scale #t :next-state 'back) + ) + ) + ) -(define *main-kiosk-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *main-kiosk-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-main-menu-option + :name (game-text-id progress-root-restart-mission) + :scale #t + :next-state 'restart + ) + (new 'static 'menu-main-menu-option + :name (game-text-id progress-root-missions) + :scale #t + :next-state 'missions + ) + (new 'static 'menu-main-menu-option :name (game-text-id progress-back) :scale #t :next-state 'back) + ) + ) + ) -(define *main-demo-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *main-demo-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-main-menu-option :name (game-text-id progress-demo-exit) :scale #t :next-state 'back) + (new 'static 'menu-main-menu-option :name (game-text-id progress-back) :scale #t :next-state 'back) + ) + ) + ) -(define *title* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) -(define *unlocked-secrets* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *title* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-sub-menu-option + :name (game-text-id progress-title-new-game) + :scale #t + :next-state 'select-save-title + ) + (new 'static 'menu-sub-menu-option :name (game-text-id progress-load-game) :scale #t :next-state 'select-load) + (new 'static 'menu-sub-menu-option + :name (game-text-id progress-title-options) + :scale #t + :next-state 'title-options + ) + (new 'static 'menu-sub-menu-option + :name (game-text-id progress-root-secrets) + :scale #t + :next-state 'unlocked-secrets + ) + ) + ) + ) -(define *options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) -(define *game-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *unlocked-secrets* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-unlocked-menu-option :name (game-text-id progress-main-secrets-scrapbook) :scale #f) + (new 'static 'menu-unlocked-menu-option :name (game-text-id progress-main-secrets-mega-scrapbook) :scale #f) + (new 'static 'menu-unlocked-menu-option :name (game-text-id progress-main-secrets-sceneplayer-1) :scale #f) + (new 'static 'menu-unlocked-menu-option :name (game-text-id progress-main-secrets-sceneplayer-2) :scale #f) + (new 'static 'menu-unlocked-menu-option :name (game-text-id progress-main-secrets-sceneplayer-3) :scale #f) + (new 'static 'menu-unlocked-menu-option + :name (game-text-id progress-main-secrets-hero-mode) + :scale #f + :next-state 'select-save-title + ) + (new 'static 'menu-unlocked-menu-option + :name (game-text-id progress-main-secrets-levelselect) + :scale #f + :next-state 'select-start + ) + ) + ) + ) -(define *game-options-japan* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) -(define *game-options-demo* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *options* (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-sub-menu-option + :name (game-text-id progress-root-game-options) + :scale #t + :next-state 'game-options + ) + (new 'static 'menu-sub-menu-option + :name (game-text-id progress-root-graphic-options) + :scale #t + :next-state 'graphic-options + ) + (new 'static 'menu-sub-menu-option + :name (game-text-id progress-root-sound-options) + :scale #t + :next-state 'sound-options + ) + ) + ) + ) -(define *graphic-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) -(define *graphic-title-options-pal* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *game-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-on-off-game-vibrations-option :name (game-text-id text-x10b) :scale #t) + (new 'static 'menu-on-off-game-subtitles-option :name (game-text-id text-x16d) :scale #t) + (new 'static 'menu-subtitle-language-game-option :name (game-text-id text-x102) :scale #t) + (new 'static 'menu-language-game-option :name (game-text-id text-x10a) :scale #t) + (new 'static 'menu-sub-menu-game-option :name (game-text-id progress-back) :scale #t :next-state 'back) + ) + ) + ) -(define *sound-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) -(define *quit-restart-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *game-options-japan* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-on-off-game-vibrations-option :name (game-text-id text-x10b) :scale #t) + (new 'static 'menu-sub-menu-game-option :name (game-text-id progress-back) :scale #t :next-state 'back) + ) + ) + ) -(define *load-save-options* (new 'static 'menu-option-list :y-center #xdc :y-space 30 :scale 0.82)) -(define *save-options-title* (new 'static 'menu-option-list :y-center #xdc :y-space 30 :scale 0.82)) +(define *game-options-demo* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-on-off-option :name (game-text-id text-x10b) :scale #t) + (new 'static 'menu-on-off-option :name (game-text-id text-x10c) :scale #t) + (new 'static 'menu-sub-menu-option :name (game-text-id progress-back) :scale #t :next-state 'back) + ) + ) + ) -(define *loading-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) -(define *insufficient-space-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *graphic-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-center-screen-graphic-option :name (game-text-id text-x10d) :scale #t) + (new 'static 'menu-aspect-ratio-option :name (game-text-id progress-aspect-ratio) :scale #t) + (new 'static 'menu-on-off-progressive-scan-graphic-option + :name (game-text-id progress-progressive-scan) + :scale #t + ) + ) + ) + ) + + +(define *graphic-title-options-pal* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-center-screen-graphic-option :name (game-text-id text-x10d) :scale #t) + (new 'static 'menu-aspect-ratio-option :name (game-text-id progress-aspect-ratio) :scale #t) + (new 'static 'menu-on-off-progressive-scan-graphic-option + :name (game-text-id progress-progressive-scan) + :scale #t + ) + (new 'static 'menu-video-mode-option :name (game-text-id progress-video-mode) :scale #t) + ) + ) + ) + + +(define *sound-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-slider-option :name (game-text-id text-x107) :scale #t) + (new 'static 'menu-slider-option :name (game-text-id progress-sound-music-volume) :scale #t) + (new 'static 'menu-slider-option :name (game-text-id progress-sound-speech-volume) :scale #t) + (new 'static 'menu-stereo-mode-sound-option :name (game-text-id text-x103) :scale #t) + ) + ) + ) + + +(define *quit-restart-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-restart-mission-qr-option :name (game-text-id progress-root-restart-mission) :scale #t) + (new 'static 'menu-quit-qr-option :name (game-text-id progress-quit) :scale #t) + ) + ) + ) + + +(define *load-save-options* (new 'static 'menu-option-list + :y-center #xdc + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-memcard-slot-option) + (new 'static 'menu-memcard-slot-option) + (new 'static 'menu-memcard-slot-option) + (new 'static 'menu-memcard-slot-option) + ) + ) + ) + + +(define *save-options-title* (new 'static 'menu-option-list + :y-center #xdc + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-memcard-slot-option) + (new 'static 'menu-memcard-slot-option) + (new 'static 'menu-memcard-slot-option) + (new 'static 'menu-memcard-slot-option) + (new 'static 'menu-sub-menu-option + :name (game-text-id progress-continue-without-saving) + :scale #f + :next-state 'continue + ) + ) + ) + ) + + +(define *loading-options* (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-loading-option)) + ) + ) + + +(define *insufficient-space-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-insufficient-space-option)) + ) + ) + (define *secrets-insufficient-space-options* - (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82) + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-secrets-insufficient-space-option)) + ) ) -(define *insert-card-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) -(define *error-loading-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *insert-card-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-insert-card-option)) + ) + ) -(define *error-auto-saving-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) -(define *card-removed-options* (new 'static 'menu-option-list :y-center #x104 :y-space 30 :scale 0.82)) +(define *error-loading-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-error-loading-option)) + ) + ) -(define *error-disc-removed-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) -(define *error-reading-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *error-auto-saving-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-error-auto-saving-option)) + ) + ) -(define *icon-info-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) -(define *format-card-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *card-removed-options* + (new 'static 'menu-option-list + :y-center #x104 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-card-removed-option)) + ) + ) -(define *already-exists-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) -(define *create-game-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *error-disc-removed-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-error-disc-removed-option)) + ) + ) -(define *video-mode-warning-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) -(define *video-mode-ok-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *error-reading-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-error-reading-option)) + ) + ) + + +(define *icon-info-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-icon-info-option)) + ) + ) + + +(define *format-card-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-format-card-option)) + ) + ) + + +(define *already-exists-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-already-exists-option)) + ) + ) + + +(define *create-game-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-create-game-option)) + ) + ) + + +(define *video-mode-warning-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-video-mode-warning-option)) + ) + ) + + +(define *video-mode-ok-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-video-mode-ok-option)) + ) + ) + (define *progressive-mode-warning-options* - (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82) + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-progressive-mode-warning-option)) + ) ) -(define *progressive-mode-ok-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) -(define *quit-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *progressive-mode-ok-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-progressive-mode-ok-option)) + ) + ) + + +(define *quit-options* (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-quit-option)) + ) + ) + (define *select-start-options* "List of [[menu-select-start-option]]" - (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82) + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-select-start-option)) + ) ) + (define *select-scene-options* "List of [[menu-select-scene-option]]" - (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82) + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-select-scene-option)) + ) ) -(define *bigmap-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) + +(define *bigmap-options* (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-bigmap-option)) + ) + ) + (define *missions-options* "List of [[menu-missions-option]]" - (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82) + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-missions-option :num-pages 2)) + ) ) + (define *highscores-options* "List of [[menu-highscores-option]]" - (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82) + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-highscores-option :num-pages 15 :slide-dir 1.0) + ) + ) + ) + + +(define *secret-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-secret-option + :num-items 16 + :num-hero-items 16 + :secret-items (new 'static 'boxed-array :type secret-item-option + (new 'static 'secret-item-option + :name (game-text-id text-x155) + :scale #t + :cost 5 + :can-toggle #t + :flag #x1 + :avail-after #x1 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x156) + :scale #t + :cost 15 + :can-toggle #t + :flag #x2 + :avail-after #x1 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x165) + :scale #t + :cost 30 + :can-toggle #t + :flag #x10000 + :avail-after #x1 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x166) + :scale #t + :cost 45 + :can-toggle #t + :flag #x20000 + :avail-after #x1 + ) + (new 'static 'secret-item-option + :name (game-text-id progress-main-secrets-scrapbook) + :scale #t + :cost 55 + :can-toggle #f + :flag #x200 + :avail-after #x1 + ) + (new 'static 'secret-item-option + :name (game-text-id progress-main-secrets-sceneplayer-1) + :scale #t + :cost 65 + :can-toggle #f + :flag #x20 + :avail-after #x62 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x162) + :scale #t + :cost 75 + :can-toggle 'auto + :flag #x1000 + :avail-after #x62 + ) + (new 'static 'secret-item-option + :name (game-text-id progress-main-secrets-sceneplayer-2) + :scale #t + :cost 95 + :can-toggle #f + :flag #x40 + :avail-after #xaa + ) + (new 'static 'secret-item-option + :name (game-text-id text-x163) + :scale #t + :cost #x69 + :can-toggle 'auto + :flag #x2000 + :avail-after #xb1 + ) + (new 'static 'secret-item-option + :name (game-text-id progress-main-secrets-sceneplayer-3) + :scale #t + :cost #x7d + :can-toggle #f + :flag #x80 + :avail-after #xf5 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x164) + :scale #t + :cost #x87 + :can-toggle 'auto + :flag #x4000 + :avail-after #xd3 + ) + (new 'static 'secret-item-option + :name (game-text-id progress-main-secrets-levelselect) + :scale #t + :cost #x91 + :can-toggle #f + :flag #x100 + :avail-after #xf5 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x157) + :scale #t + :cost #x9b + :can-toggle #t + :flag #x4 + :avail-after #xf5 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x161) + :scale #t + :cost #xa5 + :can-toggle #t + :flag #x10 + :avail-after #xf5 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x158) + :scale #t + :cost #xaf + :can-toggle #t + :flag #x8 + :avail-after #xf5 + ) + (new 'static 'secret-item-option + :name (game-text-id progress-main-secrets-hero-mode) + :scale #t + :cost #xc8 + :can-toggle #f + :flag #x8000 + :avail-after #x1 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x155) + :scale #t + :cost 5 + :can-toggle #t + :flag #x1 + :avail-after #x1 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x156) + :scale #t + :cost 15 + :can-toggle #t + :flag #x2 + :avail-after #x1 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x157) + :scale #t + :cost 20 + :can-toggle #t + :flag #x4 + :avail-after #x1 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x161) + :scale #t + :cost 25 + :can-toggle #t + :flag #x10 + :avail-after #x1 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x158) + :scale #t + :cost 30 + :can-toggle #t + :flag #x8 + :avail-after #x1 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x165) + :scale #t + :cost 35 + :can-toggle #t + :flag #x10000 + :avail-after #x1 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x166) + :scale #t + :cost 40 + :can-toggle #t + :flag #x20000 + :avail-after #x1 + ) + (new 'static 'secret-item-option + :name (game-text-id progress-main-secrets-scrapbook) + :scale #t + :cost 55 + :can-toggle #f + :flag #x200 + :avail-after #x1 + ) + (new 'static 'secret-item-option + :name (game-text-id progress-main-secrets-sceneplayer-1) + :scale #t + :cost 65 + :can-toggle #f + :flag #x20 + :avail-after #x62 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x162) + :scale #t + :cost 75 + :can-toggle 'auto + :flag #x1000 + :avail-after #x62 + ) + (new 'static 'secret-item-option + :name (game-text-id progress-main-secrets-sceneplayer-2) + :scale #t + :cost 95 + :can-toggle #f + :flag #x40 + :avail-after #xaa + ) + (new 'static 'secret-item-option + :name (game-text-id text-x163) + :scale #t + :cost #x69 + :can-toggle 'auto + :flag #x2000 + :avail-after #xb1 + ) + (new 'static 'secret-item-option + :name (game-text-id progress-main-secrets-sceneplayer-3) + :scale #t + :cost #x7d + :can-toggle #f + :flag #x80 + :avail-after #xf5 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x164) + :scale #t + :cost #x87 + :can-toggle 'auto + :flag #x4000 + :avail-after #xd3 + ) + (new 'static 'secret-item-option + :name (game-text-id progress-main-secrets-levelselect) + :scale #t + :cost #x91 + :can-toggle #f + :flag #x100 + :avail-after #xf5 + ) + (new 'static 'secret-item-option + :name (game-text-id progress-main-secrets-mega-scrapbook) + :scale #t + :cost #xc8 + :can-toggle #f + :flag #x400 + :avail-after #x1 + ) + ) + ) + ) + ) ) -(define *secret-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) (define *language-name-remap* (the-as (array game-text-id) @@ -143,22 +895,27 @@ ) ) + (define *stereo-mode-name-remap* (the-as (array game-text-id) (new 'static 'boxed-array :type uint32 #x104 #x105 #x106)) ) + (define *hud-ring-graphic-remap* (new 'static 'boxed-array :type uint64 #x80 #x40 #x10 #x4 #x8 #x400 #x20 #x100 #x200 #x2) ) + (define *hud-ring-kiosk-graphic-remap* (new 'static 'boxed-array :type uint64 #x40 #x80 #x2 #x200 #x200 #x200 #x200 #x200 #x200 #x200) ) + (define *hud-ring-demo-graphic-remap* (new 'static 'boxed-array :type uint64 #x80 #x2 #x200 #x200 #x200 #x200 #x200 #x200 #x200 #x200) ) +;; definition of type hud-scene-info (deftype hud-scene-info (basic) ((name string :offset-assert 4) (continue string :offset-assert 8) @@ -172,6 +929,21 @@ :flag-assert #x900000014 ) +;; definition for method 3 of type hud-scene-info +(defmethod inspect hud-scene-info ((obj hud-scene-info)) + (when (not obj) + (set! obj obj) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" obj (-> obj type)) + (format #t "~1Tname: ~A~%" (-> obj name)) + (format #t "~1Tcontinue: ~A~%" (-> obj continue)) + (format #t "~1Tinfo: ~A~%" (-> obj info)) + (format #t "~1Ttext: ~D~%" (-> obj text)) + (label cfg-4) + obj + ) + (define *hud-select-scene-act1* (new 'static 'boxed-array :type hud-scene-info @@ -454,6 +1226,7 @@ ) ) + (define *hud-select-scene-act2* (new 'static 'boxed-array :type hud-scene-info (new 'static 'hud-scene-info @@ -682,6 +1455,7 @@ ) ) + (define *hud-select-scene-act3* (new 'static 'boxed-array :type hud-scene-info (new 'static 'hud-scene-info diff --git a/goal_src/jak2/engine/ui/progress/progress.gc b/goal_src/jak2/engine/ui/progress/progress.gc index e2282ebe24..1573b95a84 100644 --- a/goal_src/jak2/engine/ui/progress/progress.gc +++ b/goal_src/jak2/engine/ui/progress/progress.gc @@ -130,76 +130,40 @@ (set! (-> obj sliding-height) 0.0) (set! (-> obj sliding-off) 1.0) (set! (-> obj scanlines-alpha) 0.0) - (set! (-> (the-as menu-on-off-game-vibrations-option (-> (the-as (array menu-option) (-> *game-options* options 0)) 0)) - value-to-modify - ) + (set! (-> (the-as menu-on-off-game-vibrations-option (-> *game-options* options 0)) value-to-modify) (&-> *setting-control* user-default vibration) ) - (set! (-> (the-as menu-on-off-game-subtitles-option (-> (the-as (array menu-option) (-> *game-options* options 0)) 1)) - value-to-modify - ) + (set! (-> (the-as menu-on-off-game-subtitles-option (-> *game-options* options 1)) value-to-modify) (&-> *setting-control* user-default subtitle) ) - (set! (-> (the-as menu-language-option (-> (the-as (array menu-option) (-> *game-options* options 0)) 2)) - language-selection - ) + (set! (-> (the-as menu-language-option (-> *game-options* options 2)) language-selection) (-> *setting-control* user-current language) ) - (set! (-> (the-as menu-language-option (-> (the-as (array menu-option) (-> *game-options* options 0)) 2)) - language-direction - ) - #t - ) - (set! (-> (the-as menu-language-option (-> (the-as (array menu-option) (-> *game-options* options 0)) 2)) - language-transition - ) - #f - ) - (set! (-> (the-as menu-language-option (-> (the-as (array menu-option) (-> *game-options* options 0)) 2)) - language-x-offset - ) - 0 - ) - (set! (-> (the-as menu-on-off-option (-> (the-as (array menu-option) (-> *game-options-japan* options 0)) 0)) - value-to-modify - ) + (set! (-> (the-as menu-language-option (-> *game-options* options 2)) language-direction) #t) + (set! (-> (the-as menu-language-option (-> *game-options* options 2)) language-transition) #f) + (set! (-> (the-as menu-language-option (-> *game-options* options 2)) language-x-offset) 0) + (set! (-> (the-as menu-on-off-option (-> *game-options-japan* options 0)) value-to-modify) (&-> *setting-control* user-default vibration) ) - (set! (-> (the-as menu-on-off-option (-> (the-as (array menu-option) (-> *game-options-demo* options 0)) 0)) - value-to-modify - ) + (set! (-> (the-as menu-on-off-option (-> *game-options-demo* options 0)) value-to-modify) (&-> *setting-control* user-default vibration) ) - (set! (-> (the-as menu-on-off-option (-> (the-as (array menu-option) (-> *graphic-options* options 0)) 2)) - value-to-modify - ) + (set! (-> (the-as menu-on-off-option (-> *graphic-options* options 2)) value-to-modify) (&-> *setting-control* user-default use-progressive-scan) ) - (set! (-> (the-as menu-on-off-option (-> (the-as (array menu-option) (-> *graphic-title-options-pal* options 0)) 2)) - value-to-modify - ) + (set! (-> (the-as menu-on-off-option (-> *graphic-title-options-pal* options 2)) value-to-modify) (&-> *setting-control* user-default use-progressive-scan) ) - (set! (-> (the-as menu-slider-option (-> (the-as (array menu-option) (-> *sound-options* options 0)) 0)) - value-to-modify - ) + (set! (-> (the-as menu-slider-option (-> *sound-options* options 0)) value-to-modify) (&-> *setting-control* user-default sfx-volume) ) - (set! (-> (the-as menu-slider-option (-> (the-as (array menu-option) (-> *sound-options* options 0)) 1)) - value-to-modify - ) + (set! (-> (the-as menu-slider-option (-> *sound-options* options 1)) value-to-modify) (&-> *setting-control* user-default music-volume) ) - (set! (-> (the-as menu-slider-option (-> (the-as (array menu-option) (-> *sound-options* options 0)) 2)) - value-to-modify - ) + (set! (-> (the-as menu-slider-option (-> *sound-options* options 2)) value-to-modify) (&-> *setting-control* user-default dialog-volume) ) - (set! (-> (the-as menu-missions-option (-> (the-as (array menu-option) (-> *missions-options* options 0)) 0)) - task-line-index - ) - 0 - ) + (set! (-> (the-as menu-missions-option (-> *missions-options* options 0)) task-line-index) 0) (set-setting-by-param *setting-control* 'extra-bank '((force2 menu1)) 0 0) ) @@ -766,7 +730,7 @@ (('loading) (set! (-> *progress-state* last-slot-saved) (-> *progress-state* which-slot)) (auto-save-command 'restore 0 (-> *progress-state* which-slot) obj #f) - (set! (-> (the-as menu-missions-option (-> (the-as (array menu-option) (-> *missions-options* options 0)) 0)) + (set! (-> (the-as menu-missions-option (-> (the-as (array menu-option) (-> *missions-options* options)) 0)) task-line-index ) 0 @@ -918,7 +882,7 @@ ) (('select-start 'select-pre-start 'select-kiosk-start) (set! (-> obj current-options) *select-start-options*) - (set! (-> (the-as menu-select-start-option (-> (the-as (array menu-option) (-> *select-start-options* options 0)) 0)) + (set! (-> (the-as menu-select-start-option (-> (the-as (array menu-option) (-> *select-start-options* options)) 0)) task-index ) 0 @@ -927,7 +891,7 @@ ) (('select-scene) (set! (-> obj current-options) *select-scene-options*) - (set! (-> (the-as menu-select-scene-option (-> (the-as (array menu-option) (-> *select-scene-options* options 0)) 0)) + (set! (-> (the-as menu-select-scene-option (-> (the-as (array menu-option) (-> *select-scene-options* options)) 0)) task-index ) 0 @@ -961,7 +925,7 @@ ) (('missions) (set! (-> *progress-state* missions-total-spacing) 0.0) - (set! (-> (the-as menu-missions-option (-> (the-as (array menu-option) (-> *missions-options* options 0)) 0)) + (set! (-> (the-as menu-missions-option (-> (the-as (array menu-option) (-> *missions-options* options)) 0)) task-line-index ) 0 @@ -969,12 +933,12 @@ (set! (-> obj current-options) *missions-options*) ) (('highscores) - (set! (-> (the-as menu-highscores-option (-> (the-as (array menu-option) (-> *highscores-options* options 0)) 0)) + (set! (-> (the-as menu-highscores-option (-> (the-as (array menu-option) (-> *highscores-options* options)) 0)) page-index ) 0 ) - (set! (-> (the-as menu-highscores-option (-> (the-as (array menu-option) (-> *highscores-options* options 0)) 0)) + (set! (-> (the-as menu-highscores-option (-> (the-as (array menu-option) (-> *highscores-options* options)) 0)) prev-page-index ) 0 @@ -1002,10 +966,10 @@ (defmethod progress-method-25 progress ((obj progress)) (mc-get-slot-info 0 *progress-save-info*) (when (-> obj current-options) - (let ((s5-0 (-> obj current-options options 0))) + (let ((s5-0 (-> obj current-options options))) (when (and s5-0 (= (-> obj menu-transition) 0.0)) (respond-progress - (the-as menu-option (-> s5-0 options (-> obj option-index))) + (the-as menu-option (-> s5-0 (-> obj option-index))) obj (and (= (-> obj menu-transition) 0.0) (-> obj selected-option)) ) @@ -1196,7 +1160,7 @@ ) (else (set! (-> self option-index) - (min-max-wrap-around (+ (-> self option-index) -1) 0 (+ (length (-> self current-options options 0)) -1)) + (min-max-wrap-around (+ (-> self option-index) -1) 0 (+ (length (-> self current-options options)) -1)) ) ) ) @@ -1206,13 +1170,13 @@ ((> (-> self want-option-index) 0) (cond ((and (= *cheat-mode* #f) (= *kernel-boot-message* 'kiosk)) - (if (< (-> self option-index) (+ (length (-> self current-options options 0)) -1)) + (if (< (-> self option-index) (+ (length (-> self current-options options)) -1)) (+! (-> self option-index) 1) ) ) (else (set! (-> self option-index) - (min-max-wrap-around (+ (-> self option-index) 1) 0 (+ (length (-> self current-options options 0)) -1)) + (min-max-wrap-around (+ (-> self option-index) 1) 0 (+ (length (-> self current-options options)) -1)) ) ) ) @@ -1337,7 +1301,7 @@ (defbehavior progress-post progress () (local-vars (sv-144 font-context) (sv-148 int) (sv-152 hud-box) (sv-156 symbol)) (when (-> self current-options) - (let ((gp-0 (-> self current-options options 0)) + (let ((gp-0 (-> self current-options options)) (s4-0 (-> self current-options y-center)) (s5-0 (-> self current-options y-space)) ) @@ -1386,7 +1350,7 @@ ) ) (menu-option-method-10 - (-> gp-0 options s4-1) + (-> gp-0 s4-1) self sv-144 s4-1 @@ -2025,7 +1989,7 @@ ) (sound-play "window-expand") (progress-method-29 arg0) - (set-next-state arg0 (the-as symbol (-> obj next-state)) 0) + (set-next-state arg0 (-> obj next-state) 0) ) ((= (-> obj next-state) 'back) (progress-method-30 arg0) @@ -2038,13 +2002,13 @@ (else (sound-play "window-expand") (progress-method-29 arg0) - (set-next-state arg0 (the-as symbol (-> obj next-state)) 0) + (set-next-state arg0 (-> obj next-state) 0) ) ) ) ) ((not (-> arg0 selected-option)) - (let ((a0-53 (-> arg0 current-options options 0))) + (let ((a0-53 (-> arg0 current-options options))) (cond ((logtest? (pad-buttons left l-analog-left) (-> *cpad-list* cpads 0 button0-rel 0)) (if (!= (length a0-53) 1) @@ -2132,7 +2096,7 @@ (else (sound-play "generic-beep") (progress-method-29 arg0) - (set-next-state arg0 (the-as symbol (-> obj next-state)) 0) + (set-next-state arg0 (-> obj next-state) 0) ) ) ) @@ -2246,7 +2210,7 @@ ) ) ((not (-> arg0 selected-option)) - (let ((a0-131 (-> arg0 current-options options 0))) + (let ((a0-131 (-> arg0 current-options options))) (cond ((logtest? (pad-buttons left l-analog-left) (-> *cpad-list* cpads 0 button0-rel 0)) (when (!= (length a0-131) 1) @@ -2306,12 +2270,12 @@ ) ((= (-> *progress-save-info* file (-> *progress-state* which-slot) present) 1) (set! s5-0 #t) - (menu-update-purchase-secrets (the-as menu-secret-option (-> *secret-options* options 0 box 0 min x))) + (menu-update-purchase-secrets (the-as menu-secret-option (-> *secret-options* options 0))) (set-next-state arg0 'already-exists 0) ) (else (set! s5-0 #t) - (menu-update-purchase-secrets (the-as menu-secret-option (-> *secret-options* options 0 box 0 min x))) + (menu-update-purchase-secrets (the-as menu-secret-option (-> *secret-options* options 0))) (set-next-state arg0 'saving 0) ) ) diff --git a/goal_src/jak2/engine/ui/text-id-h.gc b/goal_src/jak2/engine/ui/text-id-h.gc index 5e27c31e34..9fe5d0170c 100644 --- a/goal_src/jak2/engine/ui/text-id-h.gc +++ b/goal_src/jak2/engine/ui/text-id-h.gc @@ -10,9 +10,77 @@ :type uint32 :bitfield #f (null 0) + (text-xc8 #x00c8) + (text-xc9 #x00c9) + (text-xca #x00ca) + (text-xcb #x00cb) + (text-xcc #x00cc) + (text-xcd #x00cd) + (text-xce #x00ce) + (text-xcf #x00cf) + (text-xd0 #x00d0) + (text-xd1 #x00d1) + (text-xd2 #x00d2) + (text-xd3 #x00d3) + (text-xd4 #x00d4) + (text-xd5 #x00d5) + (text-xd6 #x00d6) + (text-xd7 #x00d7) + (text-xd8 #x00d8) + (text-xd9 #x00d9) + (text-xda #x00da) + (text-xdb #x00db) + (text-xdc #x00dc) + (text-xdd #x00dd) + (text-xde #x00de) + (text-xdf #x00df) + (text-xe0 #x00e0) + (text-xe1 #x00e1) + (text-xe2 #x00e2) + (text-xe3 #x00e3) + (text-xe4 #x00e4) + (text-xe5 #x00e5) + (text-xe6 #x00e6) + (text-xe7 #x00e7) + (text-xe8 #x00e8) + (text-xe9 #x00e9) + (text-xea #x00ea) + (text-xeb #x00eb) + (text-xec #x00ec) + (text-xed #x00ed) + (text-xee #x00ee) + (text-xef #x00ef) + (text-xf0 #x00f0) + (text-xf1 #x00f1) + (text-xf2 #x00f2) + (text-xf3 #x00f3) + (text-xf4 #x00f4) + (text-xf5 #x00f5) + (text-xf6 #x00f6) + (text-xf7 #x00f7) + (text-xf8 #x00f8) + (text-xf9 #x00f9) + (text-xfa #x00fa) + (text-xfb #x00fb) + (text-xfc #x00fc) + (text-xfd #x00fd) + (text-xfe #x00fe) + (text-xff #x00ff) + (text-x100 #x0100) (pause 257) + (text-x102 #x0102) + (text-x103 #x0103) + (text-x104 #x0104) + (text-x105 #x0105) + (text-x106 #x0106) + (text-x107 #x0107) (progress-sound-music-volume 264) (progress-sound-speech-volume 265) + (text-x109 #x0109) + (text-x10a #x010a) + (text-x10b #x010b) + (text-x10c #x010c) + (text-x10d #x010d) (progress-on 270) (progress-off 271) (progress-move-dpad 272) @@ -44,6 +112,7 @@ (progress-title-prompt 306) (progress-quit 307) (progress-root-show-map 308) + (text-x135 #x0135) (progress-root-highscores 310) (progress-highscores-1st 311) (progress-highscores-2nd 312) @@ -55,6 +124,10 @@ (progress-highscores-8th 318) (progress-root-secrets 339) (progress-secrets-unlocked 340) + (text-x155 #x0155) + (text-x156 #x0156) + (text-x157 #x0157) + (text-x158 #x0158) (progress-main-secrets-hero-mode 345) (progress-main-secrets-sceneplayer-1 346) (progress-main-secrets-sceneplayer-2 347) @@ -63,13 +136,30 @@ (progress-main-secrets-mega-scrapbook 350) (progress-main-secrets-scrapbook-3 351) (progress-main-secrets-levelselect 352) + (text-x161 #x0161) + (text-x162 #x0162) + (text-x163 #x0163) + (text-x164 #x0164) + (text-x165 #x0165) + (text-x166 #x0166) + (text-x167 #x0167) (progress-secrets-orb-label 360) (progress-root-missions 361) + (text-x16a #x016a) + (text-x16b #x016b) + (text-x16c #x016c) + (text-x16d #x016d) (progress-root-restart-mission 366) (progress-missions-icon-todo 367) (progress-missions-icon-completed 368) (progress-missions-none 369) (progress-unknown-game 370) + (text-x173 #x0173) + (text-x174 #x0174) + (text-x175 #x0175) + (text-x176 #x0176) + (text-x177 #x0177) + (text-x178 #x0178) (progress-unknown-square-to-reset 377) (progress-unknown-oi1un23i13 380) (progress-unknown-kjanskd 381) diff --git a/test/decompiler/reference/jak2/engine/ui/progress/progress-draw_REF.gc b/test/decompiler/reference/jak2/engine/ui/progress/progress-draw_REF.gc index fd10d3d1b7..3cb7ca73ce 100644 --- a/test/decompiler/reference/jak2/engine/ui/progress/progress-draw_REF.gc +++ b/test/decompiler/reference/jak2/engine/ui/progress/progress-draw_REF.gc @@ -711,7 +711,7 @@ ;; definition for function print-menu-text ;; WARN: Return type mismatch int vs none. -(defun print-menu-text ((arg0 string) (arg1 float) (arg2 font-context) (arg3 progress)) +(defun print-menu-text ((arg0 string) (arg1 symbol) (arg2 font-context) (arg3 progress)) (let ((f0-1 (- 1.0 (-> arg3 menu-transition)))) (let ((v1-1 arg2)) (set! (-> v1-1 scale) 0.5) diff --git a/test/decompiler/reference/jak2/engine/ui/progress/progress-h_REF.gc b/test/decompiler/reference/jak2/engine/ui/progress/progress-h_REF.gc index 7598d3ef48..322eff54a6 100644 --- a/test/decompiler/reference/jak2/engine/ui/progress/progress-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/ui/progress/progress-h_REF.gc @@ -91,7 +91,7 @@ ;; definition of type menu-option (deftype menu-option (basic) ((name game-text-id :offset-assert 4) - (scale float :offset-assert 8) + (scale symbol :offset-assert 8) (unknown function :offset-assert 12) (box hud-box 1 :inline :offset-assert 16) (options menu-option 8 :offset 16) @@ -248,8 +248,8 @@ ;; definition of type menu-sub-menu-option (deftype menu-sub-menu-option (menu-option) - ((next-state basic :offset-assert 48) - (pad uint8 44 :offset-assert 52) + ((next-state symbol :offset-assert 48) + (pad uint8 44 :offset-assert 52) ) :method-count-assert 12 :size-assert #x60 @@ -274,7 +274,7 @@ ;; definition of type menu-sub-menu-sound-option (deftype menu-sub-menu-sound-option (menu-option) - ((next-state basic :offset-assert 48) + ((next-state symbol :offset-assert 48) ) :method-count-assert 12 :size-assert #x34 @@ -320,7 +320,7 @@ ;; definition of type menu-sub-menu-graphic-option (deftype menu-sub-menu-graphic-option (menu-option) - ((next-state basic :offset-assert 48) + ((next-state symbol :offset-assert 48) ) :method-count-assert 12 :size-assert #x34 @@ -368,7 +368,7 @@ ;; definition of type menu-main-menu-option (deftype menu-main-menu-option (menu-option) - ((next-state basic :offset-assert 48) + ((next-state symbol :offset-assert 48) ) :method-count-assert 12 :size-assert #x34 @@ -1031,11 +1031,11 @@ ((y-center int32 :offset-assert 4) (y-space int32 :offset-assert 8) (scale float :offset-assert 12) - (options menu-option :dynamic :offset-assert 16) + (options (array menu-option) :offset-assert 16) ) :method-count-assert 9 - :size-assert #x10 - :flag-assert #x900000010 + :size-assert #x14 + :flag-assert #x900000014 ) ;; definition for method 3 of type menu-option-list @@ -1048,7 +1048,7 @@ (format #t "~1Ty-center: ~D~%" (-> obj y-center)) (format #t "~1Ty-space: ~D~%" (-> obj y-space)) (format #t "~1Tscale: ~f~%" (-> obj scale)) - (format #t "~1Toptions: ~A~%" (-> obj options 0)) + (format #t "~1Toptions: ~A~%" (-> obj options)) (label cfg-4) obj ) @@ -1082,7 +1082,7 @@ ;; definition of type menu-restart-mission-qr-option (deftype menu-restart-mission-qr-option (menu-qr-option) - ((next-state basic :offset-assert 64) + ((next-state symbol :offset-assert 64) ) :method-count-assert 12 :size-assert #x44 @@ -1109,7 +1109,7 @@ ;; definition of type menu-quit-qr-option (deftype menu-quit-qr-option (menu-qr-option) - ((next-state basic :offset-assert 64) + ((next-state symbol :offset-assert 64) ) :method-count-assert 12 :size-assert #x44 @@ -1136,7 +1136,7 @@ ;; definition of type menu-sub-menu-qr-option (deftype menu-sub-menu-qr-option (menu-qr-option) - ((next-state basic :offset-assert 64) + ((next-state symbol :offset-assert 64) ) :method-count-assert 12 :size-assert #x44 @@ -1240,7 +1240,7 @@ ;; definition of type menu-center-screen-graphic-option (deftype menu-center-screen-graphic-option (menu-graphic-option) - ((next-state basic :offset-assert 64) + ((next-state symbol :offset-assert 64) ) :method-count-assert 12 :size-assert #x44 @@ -1369,7 +1369,7 @@ ;; definition of type menu-sub-menu-game-option (deftype menu-sub-menu-game-option (menu-game-option) - ((next-state basic :offset-assert 64) + ((next-state symbol :offset-assert 64) ) :method-count-assert 12 :size-assert #x44 diff --git a/test/decompiler/reference/jak2/engine/ui/progress/progress-static_REF.gc b/test/decompiler/reference/jak2/engine/ui/progress/progress-static_REF.gc index a05f802e54..846a5a6675 100644 --- a/test/decompiler/reference/jak2/engine/ui/progress/progress-static_REF.gc +++ b/test/decompiler/reference/jak2/engine/ui/progress/progress-static_REF.gc @@ -38,140 +38,855 @@ ) ;; definition for symbol *main-options*, type menu-option-list -(define *main-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *main-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-main-menu-option + :name (game-text-id progress-root-missions) + :scale #t + :next-state 'missions + ) + (new 'static 'menu-main-menu-option :name (game-text-id progress-root-show-map) :scale #t :next-state 'bigmap) + (new 'static 'menu-main-menu-option + :name (game-text-id progress-root-highscores) + :scale #t + :next-state 'highscores + ) + (new 'static 'menu-main-menu-option + :name (game-text-id progress-root-game-options) + :scale #t + :next-state 'game-options + ) + (new 'static 'menu-main-menu-option + :name (game-text-id progress-root-graphic-options) + :scale #t + :next-state 'graphic-options + ) + (new 'static 'menu-main-menu-option + :name (game-text-id progress-root-sound-options) + :scale #t + :next-state 'sound-options + ) + (new 'static 'menu-main-menu-option + :name (game-text-id progress-load-game) + :scale #t + :next-state 'select-load + ) + (new 'static 'menu-main-menu-option + :name (game-text-id progress-save-game) + :scale #t + :next-state 'select-save + ) + (new 'static 'menu-main-menu-option :name (game-text-id progress-root-secrets) :scale #t :next-state 'secret) + (new 'static 'menu-main-menu-option :name (game-text-id text-x173) :scale #t :next-state 'quit-restart) + ) + ) + ) ;; definition for symbol *main-options-debug*, type menu-option-list -(define *main-options-debug* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *main-options-debug* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-main-menu-option :name (game-text-id text-x135) :scale #t :next-state 'select-start) + (new 'static 'menu-main-menu-option :name (game-text-id text-x16a) :scale #t :next-state 'select-pre-start) + (new 'static 'menu-main-menu-option :name (game-text-id text-x16b) :scale #t :next-state 'select-kiosk-start) + (new 'static 'menu-main-menu-option + :name (game-text-id progress-main-secrets-sceneplayer-1) + :scale #t + :next-state 'select-scene + ) + (new 'static 'menu-main-menu-option + :name (game-text-id progress-main-secrets-sceneplayer-2) + :scale #t + :next-state 'select-scene + ) + (new 'static 'menu-main-menu-option + :name (game-text-id progress-main-secrets-sceneplayer-3) + :scale #t + :next-state 'select-scene + ) + (new 'static 'menu-main-menu-option + :name (game-text-id progress-load-game) + :scale #t + :next-state 'select-load + ) + (new 'static 'menu-main-menu-option + :name (game-text-id progress-save-game) + :scale #t + :next-state 'select-save + ) + (new 'static 'menu-main-menu-option + :name (game-text-id progress-root-secrets) + :scale #t + :next-state 'unlocked-secrets + ) + (new 'static 'menu-main-menu-option :name (game-text-id progress-back) :scale #t :next-state 'back) + ) + ) + ) ;; definition for symbol *main-kiosk-options*, type menu-option-list -(define *main-kiosk-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *main-kiosk-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-main-menu-option + :name (game-text-id progress-root-restart-mission) + :scale #t + :next-state 'restart + ) + (new 'static 'menu-main-menu-option + :name (game-text-id progress-root-missions) + :scale #t + :next-state 'missions + ) + (new 'static 'menu-main-menu-option :name (game-text-id progress-back) :scale #t :next-state 'back) + ) + ) + ) ;; definition for symbol *main-demo-options*, type menu-option-list -(define *main-demo-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *main-demo-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-main-menu-option :name (game-text-id progress-demo-exit) :scale #t :next-state 'back) + (new 'static 'menu-main-menu-option :name (game-text-id progress-back) :scale #t :next-state 'back) + ) + ) + ) ;; definition for symbol *title*, type menu-option-list -(define *title* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *title* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-sub-menu-option + :name (game-text-id progress-title-new-game) + :scale #t + :next-state 'select-save-title + ) + (new 'static 'menu-sub-menu-option :name (game-text-id progress-load-game) :scale #t :next-state 'select-load) + (new 'static 'menu-sub-menu-option + :name (game-text-id progress-title-options) + :scale #t + :next-state 'title-options + ) + (new 'static 'menu-sub-menu-option + :name (game-text-id progress-root-secrets) + :scale #t + :next-state 'unlocked-secrets + ) + ) + ) + ) ;; definition for symbol *unlocked-secrets*, type menu-option-list -(define *unlocked-secrets* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *unlocked-secrets* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-unlocked-menu-option :name (game-text-id progress-main-secrets-scrapbook) :scale #f) + (new 'static 'menu-unlocked-menu-option :name (game-text-id progress-main-secrets-mega-scrapbook) :scale #f) + (new 'static 'menu-unlocked-menu-option :name (game-text-id progress-main-secrets-sceneplayer-1) :scale #f) + (new 'static 'menu-unlocked-menu-option :name (game-text-id progress-main-secrets-sceneplayer-2) :scale #f) + (new 'static 'menu-unlocked-menu-option :name (game-text-id progress-main-secrets-sceneplayer-3) :scale #f) + (new 'static 'menu-unlocked-menu-option + :name (game-text-id progress-main-secrets-hero-mode) + :scale #f + :next-state 'select-save-title + ) + (new 'static 'menu-unlocked-menu-option + :name (game-text-id progress-main-secrets-levelselect) + :scale #f + :next-state 'select-start + ) + ) + ) + ) ;; definition for symbol *options*, type menu-option-list -(define *options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *options* (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-sub-menu-option + :name (game-text-id progress-root-game-options) + :scale #t + :next-state 'game-options + ) + (new 'static 'menu-sub-menu-option + :name (game-text-id progress-root-graphic-options) + :scale #t + :next-state 'graphic-options + ) + (new 'static 'menu-sub-menu-option + :name (game-text-id progress-root-sound-options) + :scale #t + :next-state 'sound-options + ) + ) + ) + ) ;; definition for symbol *game-options*, type menu-option-list -(define *game-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *game-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-on-off-game-vibrations-option :name (game-text-id text-x10b) :scale #t) + (new 'static 'menu-on-off-game-subtitles-option :name (game-text-id text-x16d) :scale #t) + (new 'static 'menu-subtitle-language-game-option :name (game-text-id text-x102) :scale #t) + (new 'static 'menu-language-game-option :name (game-text-id text-x10a) :scale #t) + (new 'static 'menu-sub-menu-game-option :name (game-text-id progress-back) :scale #t :next-state 'back) + ) + ) + ) ;; definition for symbol *game-options-japan*, type menu-option-list -(define *game-options-japan* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *game-options-japan* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-on-off-game-vibrations-option :name (game-text-id text-x10b) :scale #t) + (new 'static 'menu-sub-menu-game-option :name (game-text-id progress-back) :scale #t :next-state 'back) + ) + ) + ) ;; definition for symbol *game-options-demo*, type menu-option-list -(define *game-options-demo* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *game-options-demo* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-on-off-option :name (game-text-id text-x10b) :scale #t) + (new 'static 'menu-on-off-option :name (game-text-id text-x10c) :scale #t) + (new 'static 'menu-sub-menu-option :name (game-text-id progress-back) :scale #t :next-state 'back) + ) + ) + ) ;; definition for symbol *graphic-options*, type menu-option-list -(define *graphic-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *graphic-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-center-screen-graphic-option :name (game-text-id text-x10d) :scale #t) + (new 'static 'menu-aspect-ratio-option :name (game-text-id progress-aspect-ratio) :scale #t) + (new 'static 'menu-on-off-progressive-scan-graphic-option + :name (game-text-id progress-progressive-scan) + :scale #t + ) + ) + ) + ) ;; definition for symbol *graphic-title-options-pal*, type menu-option-list -(define *graphic-title-options-pal* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *graphic-title-options-pal* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-center-screen-graphic-option :name (game-text-id text-x10d) :scale #t) + (new 'static 'menu-aspect-ratio-option :name (game-text-id progress-aspect-ratio) :scale #t) + (new 'static 'menu-on-off-progressive-scan-graphic-option + :name (game-text-id progress-progressive-scan) + :scale #t + ) + (new 'static 'menu-video-mode-option :name (game-text-id progress-video-mode) :scale #t) + ) + ) + ) ;; definition for symbol *sound-options*, type menu-option-list -(define *sound-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *sound-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-slider-option :name (game-text-id text-x107) :scale #t) + (new 'static 'menu-slider-option :name (game-text-id progress-sound-music-volume) :scale #t) + (new 'static 'menu-slider-option :name (game-text-id progress-sound-speech-volume) :scale #t) + (new 'static 'menu-stereo-mode-sound-option :name (game-text-id text-x103) :scale #t) + ) + ) + ) ;; definition for symbol *quit-restart-options*, type menu-option-list -(define *quit-restart-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *quit-restart-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-restart-mission-qr-option :name (game-text-id progress-root-restart-mission) :scale #t) + (new 'static 'menu-quit-qr-option :name (game-text-id progress-quit) :scale #t) + ) + ) + ) ;; definition for symbol *load-save-options*, type menu-option-list -(define *load-save-options* (new 'static 'menu-option-list :y-center #xdc :y-space 30 :scale 0.82)) +(define *load-save-options* (new 'static 'menu-option-list + :y-center #xdc + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-memcard-slot-option) + (new 'static 'menu-memcard-slot-option) + (new 'static 'menu-memcard-slot-option) + (new 'static 'menu-memcard-slot-option) + ) + ) + ) ;; definition for symbol *save-options-title*, type menu-option-list -(define *save-options-title* (new 'static 'menu-option-list :y-center #xdc :y-space 30 :scale 0.82)) +(define *save-options-title* (new 'static 'menu-option-list + :y-center #xdc + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-memcard-slot-option) + (new 'static 'menu-memcard-slot-option) + (new 'static 'menu-memcard-slot-option) + (new 'static 'menu-memcard-slot-option) + (new 'static 'menu-sub-menu-option + :name (game-text-id progress-continue-without-saving) + :scale #f + :next-state 'continue + ) + ) + ) + ) ;; definition for symbol *loading-options*, type menu-option-list -(define *loading-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *loading-options* (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-loading-option)) + ) + ) ;; definition for symbol *insufficient-space-options*, type menu-option-list -(define *insufficient-space-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *insufficient-space-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-insufficient-space-option)) + ) + ) ;; definition for symbol *secrets-insufficient-space-options*, type menu-option-list (define *secrets-insufficient-space-options* - (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82) + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-secrets-insufficient-space-option)) + ) ) ;; definition for symbol *insert-card-options*, type menu-option-list -(define *insert-card-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *insert-card-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-insert-card-option)) + ) + ) ;; definition for symbol *error-loading-options*, type menu-option-list -(define *error-loading-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *error-loading-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-error-loading-option)) + ) + ) ;; definition for symbol *error-auto-saving-options*, type menu-option-list -(define *error-auto-saving-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *error-auto-saving-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-error-auto-saving-option)) + ) + ) ;; definition for symbol *card-removed-options*, type menu-option-list -(define *card-removed-options* (new 'static 'menu-option-list :y-center #x104 :y-space 30 :scale 0.82)) +(define *card-removed-options* + (new 'static 'menu-option-list + :y-center #x104 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-card-removed-option)) + ) + ) ;; definition for symbol *error-disc-removed-options*, type menu-option-list -(define *error-disc-removed-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *error-disc-removed-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-error-disc-removed-option)) + ) + ) ;; definition for symbol *error-reading-options*, type menu-option-list -(define *error-reading-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *error-reading-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-error-reading-option)) + ) + ) ;; definition for symbol *icon-info-options*, type menu-option-list -(define *icon-info-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *icon-info-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-icon-info-option)) + ) + ) ;; definition for symbol *format-card-options*, type menu-option-list -(define *format-card-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *format-card-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-format-card-option)) + ) + ) ;; definition for symbol *already-exists-options*, type menu-option-list -(define *already-exists-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *already-exists-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-already-exists-option)) + ) + ) ;; definition for symbol *create-game-options*, type menu-option-list -(define *create-game-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *create-game-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-create-game-option)) + ) + ) ;; definition for symbol *video-mode-warning-options*, type menu-option-list -(define *video-mode-warning-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *video-mode-warning-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-video-mode-warning-option)) + ) + ) ;; definition for symbol *video-mode-ok-options*, type menu-option-list -(define *video-mode-ok-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *video-mode-ok-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-video-mode-ok-option)) + ) + ) ;; definition for symbol *progressive-mode-warning-options*, type menu-option-list (define *progressive-mode-warning-options* - (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82) + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-progressive-mode-warning-option)) + ) ) ;; definition for symbol *progressive-mode-ok-options*, type menu-option-list -(define *progressive-mode-ok-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *progressive-mode-ok-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-progressive-mode-ok-option)) + ) + ) ;; definition for symbol *quit-options*, type menu-option-list -(define *quit-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *quit-options* (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-quit-option)) + ) + ) ;; definition for symbol *select-start-options*, type menu-option-list (define *select-start-options* "List of [[menu-select-start-option]]" - (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82) + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-select-start-option)) + ) ) ;; definition for symbol *select-scene-options*, type menu-option-list (define *select-scene-options* "List of [[menu-select-scene-option]]" - (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82) + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-select-scene-option)) + ) ) ;; definition for symbol *bigmap-options*, type menu-option-list -(define *bigmap-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *bigmap-options* (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-bigmap-option)) + ) + ) ;; definition for symbol *missions-options*, type menu-option-list (define *missions-options* "List of [[menu-missions-option]]" - (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82) + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-missions-option :num-pages 2)) + ) ) ;; definition for symbol *highscores-options*, type menu-option-list (define *highscores-options* "List of [[menu-highscores-option]]" - (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82) + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option + (new 'static 'menu-highscores-option :num-pages 15 :slide-dir 1.0) + ) + ) ) ;; definition for symbol *secret-options*, type menu-option-list -(define *secret-options* (new 'static 'menu-option-list :y-center #xc6 :y-space 30 :scale 0.82)) +(define *secret-options* + (new 'static 'menu-option-list + :y-center #xc6 + :y-space 30 + :scale 0.82 + :options (new 'static 'boxed-array :type menu-option (new 'static 'menu-secret-option + :num-items 16 + :num-hero-items 16 + :secret-items (new 'static 'boxed-array :type secret-item-option + (new 'static 'secret-item-option + :name (game-text-id text-x155) + :scale #t + :cost 5 + :can-toggle #t + :flag #x1 + :avail-after #x1 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x156) + :scale #t + :cost 15 + :can-toggle #t + :flag #x2 + :avail-after #x1 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x165) + :scale #t + :cost 30 + :can-toggle #t + :flag #x10000 + :avail-after #x1 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x166) + :scale #t + :cost 45 + :can-toggle #t + :flag #x20000 + :avail-after #x1 + ) + (new 'static 'secret-item-option + :name (game-text-id progress-main-secrets-scrapbook) + :scale #t + :cost 55 + :can-toggle #f + :flag #x200 + :avail-after #x1 + ) + (new 'static 'secret-item-option + :name (game-text-id progress-main-secrets-sceneplayer-1) + :scale #t + :cost 65 + :can-toggle #f + :flag #x20 + :avail-after #x62 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x162) + :scale #t + :cost 75 + :can-toggle 'auto + :flag #x1000 + :avail-after #x62 + ) + (new 'static 'secret-item-option + :name (game-text-id progress-main-secrets-sceneplayer-2) + :scale #t + :cost 95 + :can-toggle #f + :flag #x40 + :avail-after #xaa + ) + (new 'static 'secret-item-option + :name (game-text-id text-x163) + :scale #t + :cost #x69 + :can-toggle 'auto + :flag #x2000 + :avail-after #xb1 + ) + (new 'static 'secret-item-option + :name (game-text-id progress-main-secrets-sceneplayer-3) + :scale #t + :cost #x7d + :can-toggle #f + :flag #x80 + :avail-after #xf5 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x164) + :scale #t + :cost #x87 + :can-toggle 'auto + :flag #x4000 + :avail-after #xd3 + ) + (new 'static 'secret-item-option + :name (game-text-id progress-main-secrets-levelselect) + :scale #t + :cost #x91 + :can-toggle #f + :flag #x100 + :avail-after #xf5 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x157) + :scale #t + :cost #x9b + :can-toggle #t + :flag #x4 + :avail-after #xf5 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x161) + :scale #t + :cost #xa5 + :can-toggle #t + :flag #x10 + :avail-after #xf5 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x158) + :scale #t + :cost #xaf + :can-toggle #t + :flag #x8 + :avail-after #xf5 + ) + (new 'static 'secret-item-option + :name (game-text-id progress-main-secrets-hero-mode) + :scale #t + :cost #xc8 + :can-toggle #f + :flag #x8000 + :avail-after #x1 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x155) + :scale #t + :cost 5 + :can-toggle #t + :flag #x1 + :avail-after #x1 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x156) + :scale #t + :cost 15 + :can-toggle #t + :flag #x2 + :avail-after #x1 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x157) + :scale #t + :cost 20 + :can-toggle #t + :flag #x4 + :avail-after #x1 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x161) + :scale #t + :cost 25 + :can-toggle #t + :flag #x10 + :avail-after #x1 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x158) + :scale #t + :cost 30 + :can-toggle #t + :flag #x8 + :avail-after #x1 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x165) + :scale #t + :cost 35 + :can-toggle #t + :flag #x10000 + :avail-after #x1 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x166) + :scale #t + :cost 40 + :can-toggle #t + :flag #x20000 + :avail-after #x1 + ) + (new 'static 'secret-item-option + :name (game-text-id progress-main-secrets-scrapbook) + :scale #t + :cost 55 + :can-toggle #f + :flag #x200 + :avail-after #x1 + ) + (new 'static 'secret-item-option + :name (game-text-id progress-main-secrets-sceneplayer-1) + :scale #t + :cost 65 + :can-toggle #f + :flag #x20 + :avail-after #x62 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x162) + :scale #t + :cost 75 + :can-toggle 'auto + :flag #x1000 + :avail-after #x62 + ) + (new 'static 'secret-item-option + :name (game-text-id progress-main-secrets-sceneplayer-2) + :scale #t + :cost 95 + :can-toggle #f + :flag #x40 + :avail-after #xaa + ) + (new 'static 'secret-item-option + :name (game-text-id text-x163) + :scale #t + :cost #x69 + :can-toggle 'auto + :flag #x2000 + :avail-after #xb1 + ) + (new 'static 'secret-item-option + :name (game-text-id progress-main-secrets-sceneplayer-3) + :scale #t + :cost #x7d + :can-toggle #f + :flag #x80 + :avail-after #xf5 + ) + (new 'static 'secret-item-option + :name (game-text-id text-x164) + :scale #t + :cost #x87 + :can-toggle 'auto + :flag #x4000 + :avail-after #xd3 + ) + (new 'static 'secret-item-option + :name (game-text-id progress-main-secrets-levelselect) + :scale #t + :cost #x91 + :can-toggle #f + :flag #x100 + :avail-after #xf5 + ) + (new 'static 'secret-item-option + :name (game-text-id progress-main-secrets-mega-scrapbook) + :scale #t + :cost #xc8 + :can-toggle #f + :flag #x400 + :avail-after #x1 + ) + ) + ) + ) + ) + ) ;; definition for symbol *language-name-remap*, type (array game-text-id) (define *language-name-remap* diff --git a/test/decompiler/reference/jak2/engine/ui/progress/progress_REF.gc b/test/decompiler/reference/jak2/engine/ui/progress/progress_REF.gc index 2d86ce9de9..13deb8a336 100644 --- a/test/decompiler/reference/jak2/engine/ui/progress/progress_REF.gc +++ b/test/decompiler/reference/jak2/engine/ui/progress/progress_REF.gc @@ -189,76 +189,40 @@ (set! (-> obj sliding-height) 0.0) (set! (-> obj sliding-off) 1.0) (set! (-> obj scanlines-alpha) 0.0) - (set! (-> (the-as menu-on-off-game-vibrations-option (-> (the-as (array menu-option) (-> *game-options* options 0)) 0)) - value-to-modify - ) + (set! (-> (the-as menu-on-off-game-vibrations-option (-> *game-options* options 0)) value-to-modify) (&-> *setting-control* user-default vibration) ) - (set! (-> (the-as menu-on-off-game-subtitles-option (-> (the-as (array menu-option) (-> *game-options* options 0)) 1)) - value-to-modify - ) + (set! (-> (the-as menu-on-off-game-subtitles-option (-> *game-options* options 1)) value-to-modify) (&-> *setting-control* user-default subtitle) ) - (set! (-> (the-as menu-language-option (-> (the-as (array menu-option) (-> *game-options* options 0)) 2)) - language-selection - ) + (set! (-> (the-as menu-language-option (-> *game-options* options 2)) language-selection) (-> *setting-control* user-current language) ) - (set! (-> (the-as menu-language-option (-> (the-as (array menu-option) (-> *game-options* options 0)) 2)) - language-direction - ) - #t - ) - (set! (-> (the-as menu-language-option (-> (the-as (array menu-option) (-> *game-options* options 0)) 2)) - language-transition - ) - #f - ) - (set! (-> (the-as menu-language-option (-> (the-as (array menu-option) (-> *game-options* options 0)) 2)) - language-x-offset - ) - 0 - ) - (set! (-> (the-as menu-on-off-option (-> (the-as (array menu-option) (-> *game-options-japan* options 0)) 0)) - value-to-modify - ) + (set! (-> (the-as menu-language-option (-> *game-options* options 2)) language-direction) #t) + (set! (-> (the-as menu-language-option (-> *game-options* options 2)) language-transition) #f) + (set! (-> (the-as menu-language-option (-> *game-options* options 2)) language-x-offset) 0) + (set! (-> (the-as menu-on-off-option (-> *game-options-japan* options 0)) value-to-modify) (&-> *setting-control* user-default vibration) ) - (set! (-> (the-as menu-on-off-option (-> (the-as (array menu-option) (-> *game-options-demo* options 0)) 0)) - value-to-modify - ) + (set! (-> (the-as menu-on-off-option (-> *game-options-demo* options 0)) value-to-modify) (&-> *setting-control* user-default vibration) ) - (set! (-> (the-as menu-on-off-option (-> (the-as (array menu-option) (-> *graphic-options* options 0)) 2)) - value-to-modify - ) + (set! (-> (the-as menu-on-off-option (-> *graphic-options* options 2)) value-to-modify) (&-> *setting-control* user-default use-progressive-scan) ) - (set! (-> (the-as menu-on-off-option (-> (the-as (array menu-option) (-> *graphic-title-options-pal* options 0)) 2)) - value-to-modify - ) + (set! (-> (the-as menu-on-off-option (-> *graphic-title-options-pal* options 2)) value-to-modify) (&-> *setting-control* user-default use-progressive-scan) ) - (set! (-> (the-as menu-slider-option (-> (the-as (array menu-option) (-> *sound-options* options 0)) 0)) - value-to-modify - ) + (set! (-> (the-as menu-slider-option (-> *sound-options* options 0)) value-to-modify) (&-> *setting-control* user-default sfx-volume) ) - (set! (-> (the-as menu-slider-option (-> (the-as (array menu-option) (-> *sound-options* options 0)) 1)) - value-to-modify - ) + (set! (-> (the-as menu-slider-option (-> *sound-options* options 1)) value-to-modify) (&-> *setting-control* user-default music-volume) ) - (set! (-> (the-as menu-slider-option (-> (the-as (array menu-option) (-> *sound-options* options 0)) 2)) - value-to-modify - ) + (set! (-> (the-as menu-slider-option (-> *sound-options* options 2)) value-to-modify) (&-> *setting-control* user-default dialog-volume) ) - (set! (-> (the-as menu-missions-option (-> (the-as (array menu-option) (-> *missions-options* options 0)) 0)) - task-line-index - ) - 0 - ) + (set! (-> (the-as menu-missions-option (-> *missions-options* options 0)) task-line-index) 0) (set-setting-by-param *setting-control* 'extra-bank '((force2 menu1)) 0 0) ) @@ -862,7 +826,7 @@ (('loading) (set! (-> *progress-state* last-slot-saved) (-> *progress-state* which-slot)) (auto-save-command 'restore 0 (-> *progress-state* which-slot) obj #f) - (set! (-> (the-as menu-missions-option (-> (the-as (array menu-option) (-> *missions-options* options 0)) 0)) + (set! (-> (the-as menu-missions-option (-> (the-as (array menu-option) (-> *missions-options* options)) 0)) task-line-index ) 0 @@ -1015,7 +979,7 @@ ) (('select-start 'select-pre-start 'select-kiosk-start) (set! (-> obj current-options) *select-start-options*) - (set! (-> (the-as menu-select-start-option (-> (the-as (array menu-option) (-> *select-start-options* options 0)) 0)) + (set! (-> (the-as menu-select-start-option (-> (the-as (array menu-option) (-> *select-start-options* options)) 0)) task-index ) 0 @@ -1024,7 +988,7 @@ ) (('select-scene) (set! (-> obj current-options) *select-scene-options*) - (set! (-> (the-as menu-select-scene-option (-> (the-as (array menu-option) (-> *select-scene-options* options 0)) 0)) + (set! (-> (the-as menu-select-scene-option (-> (the-as (array menu-option) (-> *select-scene-options* options)) 0)) task-index ) 0 @@ -1058,7 +1022,7 @@ ) (('missions) (set! (-> *progress-state* missions-total-spacing) 0.0) - (set! (-> (the-as menu-missions-option (-> (the-as (array menu-option) (-> *missions-options* options 0)) 0)) + (set! (-> (the-as menu-missions-option (-> (the-as (array menu-option) (-> *missions-options* options)) 0)) task-line-index ) 0 @@ -1066,12 +1030,12 @@ (set! (-> obj current-options) *missions-options*) ) (('highscores) - (set! (-> (the-as menu-highscores-option (-> (the-as (array menu-option) (-> *highscores-options* options 0)) 0)) + (set! (-> (the-as menu-highscores-option (-> (the-as (array menu-option) (-> *highscores-options* options)) 0)) page-index ) 0 ) - (set! (-> (the-as menu-highscores-option (-> (the-as (array menu-option) (-> *highscores-options* options 0)) 0)) + (set! (-> (the-as menu-highscores-option (-> (the-as (array menu-option) (-> *highscores-options* options)) 0)) prev-page-index ) 0 @@ -1101,10 +1065,10 @@ (defmethod progress-method-25 progress ((obj progress)) (mc-get-slot-info 0 *progress-save-info*) (when (-> obj current-options) - (let ((s5-0 (-> obj current-options options 0))) + (let ((s5-0 (-> obj current-options options))) (when (and s5-0 (= (-> obj menu-transition) 0.0)) (respond-progress - (the-as menu-option (-> s5-0 options (-> obj option-index))) + (the-as menu-option (-> s5-0 (-> obj option-index))) obj (and (= (-> obj menu-transition) 0.0) (-> obj selected-option)) ) @@ -1297,7 +1261,7 @@ ) (else (set! (-> self option-index) - (min-max-wrap-around (+ (-> self option-index) -1) 0 (+ (length (-> self current-options options 0)) -1)) + (min-max-wrap-around (+ (-> self option-index) -1) 0 (+ (length (-> self current-options options)) -1)) ) ) ) @@ -1307,13 +1271,13 @@ ((> (-> self want-option-index) 0) (cond ((and (= *cheat-mode* #f) (= *kernel-boot-message* 'kiosk)) - (if (< (-> self option-index) (+ (length (-> self current-options options 0)) -1)) + (if (< (-> self option-index) (+ (length (-> self current-options options)) -1)) (+! (-> self option-index) 1) ) ) (else (set! (-> self option-index) - (min-max-wrap-around (+ (-> self option-index) 1) 0 (+ (length (-> self current-options options 0)) -1)) + (min-max-wrap-around (+ (-> self option-index) 1) 0 (+ (length (-> self current-options options)) -1)) ) ) ) @@ -1458,7 +1422,7 @@ (defbehavior progress-post progress () (local-vars (sv-144 font-context) (sv-148 int) (sv-152 hud-box) (sv-156 symbol)) (when (-> self current-options) - (let ((gp-0 (-> self current-options options 0)) + (let ((gp-0 (-> self current-options options)) (s4-0 (-> self current-options y-center)) (s5-0 (-> self current-options y-space)) ) @@ -1507,7 +1471,7 @@ ) ) (menu-option-method-10 - (-> gp-0 options s4-1) + (-> gp-0 s4-1) self sv-144 s4-1 @@ -2156,7 +2120,7 @@ ) (sound-play "window-expand") (progress-method-29 arg0) - (set-next-state arg0 (the-as symbol (-> obj next-state)) 0) + (set-next-state arg0 (-> obj next-state) 0) ) ((= (-> obj next-state) 'back) (progress-method-30 arg0) @@ -2169,13 +2133,13 @@ (else (sound-play "window-expand") (progress-method-29 arg0) - (set-next-state arg0 (the-as symbol (-> obj next-state)) 0) + (set-next-state arg0 (-> obj next-state) 0) ) ) ) ) ((not (-> arg0 selected-option)) - (let ((a0-53 (-> arg0 current-options options 0))) + (let ((a0-53 (-> arg0 current-options options))) (cond ((logtest? (pad-buttons left l-analog-left) (-> *cpad-list* cpads 0 button0-rel 0)) (if (!= (length a0-53) 1) @@ -2264,7 +2228,7 @@ (else (sound-play "generic-beep") (progress-method-29 arg0) - (set-next-state arg0 (the-as symbol (-> obj next-state)) 0) + (set-next-state arg0 (-> obj next-state) 0) ) ) ) @@ -2379,7 +2343,7 @@ ) ) ((not (-> arg0 selected-option)) - (let ((a0-131 (-> arg0 current-options options 0))) + (let ((a0-131 (-> arg0 current-options options))) (cond ((logtest? (pad-buttons left l-analog-left) (-> *cpad-list* cpads 0 button0-rel 0)) (when (!= (length a0-131) 1) @@ -2440,12 +2404,12 @@ ) ((= (-> *progress-save-info* file (-> *progress-state* which-slot) present) 1) (set! s5-0 #t) - (menu-update-purchase-secrets (the-as menu-secret-option (-> *secret-options* options 0 box 0 min x))) + (menu-update-purchase-secrets (the-as menu-secret-option (-> *secret-options* options 0))) (set-next-state arg0 'already-exists 0) ) (else (set! s5-0 #t) - (menu-update-purchase-secrets (the-as menu-secret-option (-> *secret-options* options 0 box 0 min x))) + (menu-update-purchase-secrets (the-as menu-secret-option (-> *secret-options* options 0))) (set-next-state arg0 'saving 0) ) )