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.
This commit is contained in:
water111
2022-10-11 19:21:10 -04:00
committed by GitHub
parent f6bdc07990
commit 8827af5efd
11 changed files with 1869 additions and 280 deletions
+111 -15
View File
@@ -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<menu-secret-option>
;; 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))
-14
View File
@@ -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)": [
@@ -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)
+14 -14
View File
@@ -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
@@ -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
+34 -70
View File
@@ -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)
)
)
+90
View File
@@ -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)
+1 -1
View File
@@ -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)
+15 -15
View File
@@ -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
+755 -40
View File
@@ -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*
+34 -70
View File
@@ -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)
)
)