save & load game territory setting (#3243)

This commit is contained in:
ManDude
2023-12-03 18:19:38 +00:00
committed by GitHub
parent 94b984326f
commit 1808596679
16 changed files with 214 additions and 198 deletions
+1
View File
@@ -7417,6 +7417,7 @@
(progress-shadows-normal #x12a1)
(progress-shadows-extended #x12a2)
(progress-error-no-resolutions #x12a3)
(progress-territory-auto #x12a4)
(progress-input-options-auto-hide-cursor #x1300)
(progress-menu-reassign-binds #x1301)
(progress-reassign-binds-controller #x1302)
@@ -654,7 +654,7 @@
"collectables": [[69, "(function part-tracker vector)"]],
"mech-states": [[50, "(function none :behavior target)"]],
"target-mech": [
[7, "(function none :behavior target)"],
[7, "(function none :behavior manipy)"],
[8, "(function none :behavior mech)"],
[9, "(function none :behavior manipy)"],
[18, "(function surface object surface int none :behavior target)"],
@@ -4968,10 +4968,6 @@
],
"(enter target-mech-carry-hit-ground)": [[3, "v0", "sound-rpc-set-param"]],
"(event target-mech-grab)": [[24, "a0", "process"]],
"(anon-function 7 target-mech)": [
[32, "a0", "joint-mod-ik"],
[26, "a0", "(array joint-mod-ik)"]
],
"(enter target-mech-hit-ground)": [[3, "v0", "sound-rpc-set-param"]],
"(exit target-mech-carry-drag)": [
[11, "v0", "sound-rpc-set-param"],
@@ -144,6 +144,7 @@
"12a1": "Normal",
"12a2": "Extended",
"12a3": "No valid resolutions found.",
"12a4": "Automatic",
"1300": "Auto Hide Cursor",
"1301": "Reassign Binds",
"1302": "Controller Binds",
+3 -4
View File
@@ -19,12 +19,11 @@
;; opengoal territory override
;;;;;;;;;;;;;;;;;;;;;;
(define *debug-territory* GAME_TERRITORY_SCEA)
(defun scf-get-territory ()
"redefined from C kernel for convenience"
(if *debug-segment*
*debug-territory*
*default-territory*)
(if (= (-> *pc-settings* territory) -1)
*default-territory*
(-> *pc-settings* territory))
)
)
+3 -2
View File
@@ -629,8 +629,8 @@
(defun dm-territory-pick-func ((bterr int) (msg debug-menu-msg))
(let ((terr (/ bterr 8)))
(when (= msg (debug-menu-msg press))
(set! *debug-territory* terr))
(= *debug-territory* terr)))
(set! (-> *pc-settings* territory) terr))
(= (-> *pc-settings* territory) terr)))
(defun dm-pc-cheats-pick-func ((bcheat int) (msg debug-menu-msg))
(let ((cheat (the pc-cheats (/ bcheat 8))))
@@ -829,6 +829,7 @@
(flag "heat" #f ,(dm-lambda-boolean-flag (-> *pc-settings* controller-led-heat?)))
)
(menu "Territory"
(flag "Automatic" -1 dm-territory-pick-func)
(flag "GAME_TERRITORY_SCEA" (the binteger GAME_TERRITORY_SCEA) dm-territory-pick-func)
(flag "GAME_TERRITORY_SCEE" (the binteger GAME_TERRITORY_SCEE) dm-territory-pick-func)
(flag "GAME_TERRITORY_SCEI" (the binteger GAME_TERRITORY_SCEI) dm-territory-pick-func)
+2
View File
@@ -664,6 +664,7 @@
(("lod-force-actor") (set! (-> obj lod-force-actor) (file-stream-read-int file)))
(("game-language") (set-game-language! obj (the-as language-enum (file-stream-read-int file))))
(("subtitle-speaker") (set! (-> obj subtitle-speaker?) (file-stream-read-symbol file)))
(("territory") (set! (-> obj territory) (file-stream-read-int file)))
(("ignore-controller-win-unfocused?") (set-ignore-controller-in-bg! obj (file-stream-read-symbol file)))
(("controller-hp-led?") (set! (-> obj controller-led-hp?) (file-stream-read-symbol file)))
@@ -786,6 +787,7 @@
(format file " (hinttitles? ~A)~%" (-> obj hinttitles?))
(format file " (game-language ~D)~%" (get-game-language obj))
(format file " (subtitle-speaker ~A)~%" (-> obj subtitle-speaker?))
(format file " (territory ~D)~%" (-> obj territory))
0)
(defmethod write-to-file pc-settings ((obj pc-settings) (filename string))
+1 -1
View File
@@ -418,7 +418,7 @@
(set! (-> obj subtitle-speaker?) 'auto)
(reset-camera obj call-handlers)
(set! (-> obj territory) *default-territory*)
(set! (-> obj territory) -1) ;; auto
0)
(defmethod reset-camera pc-settings ((obj pc-settings) (call-handlers symbol))
+2 -2
View File
@@ -11,8 +11,8 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; version: 1.10.3.1
(defconstant PC_KERNEL_VERSION (static-pckernel-version 1 10 3 1))
;; version: 1.10.4.0
(defconstant PC_KERNEL_VERSION (static-pckernel-version 1 10 4 0))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; types and enums
+3 -2
View File
@@ -71,10 +71,11 @@ The cpad-set-buzz! function can be used for vibration.
(#when PC_PORT
;; redefined from C kernel
(define *debug-territory* *default-territory*)
(defun scf-get-territory ()
"redefined from C kernel for convenience"
*debug-territory*
(if (= (-> *pc-settings* territory) -1)
*default-territory*
(-> *pc-settings* territory))
)
)
+94 -97
View File
@@ -7,46 +7,46 @@
;; DECOMP BEGINS
(defmethod draw hud-heatmeter ((obj hud-heatmeter))
(defmethod draw ((this hud-heatmeter))
(set-hud-piece-position!
(the-as hud-sprite (-> obj sprites))
(the-as hud-sprite (-> this sprites))
256
(the int (+ 25.0 (* -100.0 (-> obj offset))))
(the int (+ 25.0 (* -100.0 (-> this offset))))
)
(set! (-> obj sprites 0 pos z) #xfffff0)
(set! (-> this sprites 0 pos z) #xfffff0)
(set-as-offset-from!
(-> obj sprites 1)
(the-as vector4w (-> obj sprites))
(+ (the int (* 0.128 (the float (-> obj values 0 current)))) -63)
(-> this sprites 1)
(the-as vector4w (-> this sprites))
(+ (the int (* 0.128 (the float (-> this values 0 current)))) -63)
1
)
(set! (-> obj sprites 1 pos z) #xfffff0)
((method-of-type hud draw) obj)
(set! (-> this sprites 1 pos z) #xfffff0)
((method-of-type hud draw) this)
0
(none)
)
(defmethod update-values hud-heatmeter ((obj hud-heatmeter))
(set! (-> obj values 0 target) (the int (* 1000.0 (-> *game-info* distance))))
(logclear! (-> obj flags) (hud-flags disable))
((method-of-type hud update-values) obj)
(defmethod update-values ((this hud-heatmeter))
(set! (-> this values 0 target) (the int (* 1000.0 (-> *game-info* distance))))
(logclear! (-> this flags) (hud-flags disable))
((method-of-type hud update-values) this)
0
(none)
)
(defmethod init-callback hud-heatmeter ((obj hud-heatmeter))
(set! (-> obj gui-id)
(add-process *gui-control* obj (gui-channel hud-upper-center-2) (gui-action hidden) (-> obj name) 81920.0 0)
(defmethod init-callback ((this hud-heatmeter))
(set! (-> this gui-id)
(add-process *gui-control* this (gui-channel hud-upper-center-2) (gui-action hidden) (-> this name) 81920.0 0)
)
(logior! (-> obj flags) (hud-flags show))
(set! (-> obj sprites 0 tex) (lookup-texture-by-id (new 'static 'texture-id :index #x43 :page #x67a)))
(set! (-> obj sprites 0 flags) (the-as uint 8))
(set! (-> obj sprites 0 scale-x) 1.2)
(set! (-> obj sprites 0 scale-y) 1.2)
(set! (-> obj sprites 1 tex) (lookup-texture-by-id (new 'static 'texture-id :index #x34 :page #x67a)))
(set! (-> obj sprites 1 flags) (the-as uint 8))
(set! (-> obj sprites 1 scale-x) 1.8)
(set! (-> obj sprites 1 scale-y) 1.8)
(logior! (-> this flags) (hud-flags show))
(set! (-> this sprites 0 tex) (lookup-texture-by-id (new 'static 'texture-id :index #x43 :page #x67a)))
(set! (-> this sprites 0 flags) (the-as uint 8))
(set! (-> this sprites 0 scale-x) 1.2)
(set! (-> this sprites 0 scale-y) 1.2)
(set! (-> this sprites 1 tex) (lookup-texture-by-id (new 'static 'texture-id :index #x34 :page #x67a)))
(set! (-> this sprites 1 flags) (the-as uint 8))
(set! (-> this sprites 1 scale-x) 1.8)
(set! (-> this sprites 1 scale-y) 1.8)
0
(none)
)
@@ -710,69 +710,66 @@
;; WARN: Return type mismatch symbol vs object.
(defbehavior target-mech-bonk-event-handler target ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(let ((s4-0 (new 'stack-no-clear 'vector)))
(the-as
object
(when (and (= arg2 'touched)
((method-of-type touching-shapes-entry prims-touching?)
(the-as touching-shapes-entry (-> arg3 param 0))
(-> self control)
(the-as uint 6)
)
(>= 409.6 (vector-dot (-> self control dynam gravity-normal) (-> self control transv)))
(begin
(vector-normalize!
(vector-!
s4-0
(the-as vector (-> self control collision-spheres 0 prim-core))
(-> self control actor-contact-pt)
)
1.0
)
(< 0.01 (-> s4-0 y))
)
)
(if (< 0.75 (-> s4-0 y))
(send-event
arg0
'bonk
(-> arg3 param 0)
(fmax
(-> self control ground-impact-vel)
(- (vector-dot (-> self control transv) (-> self control dynam gravity-normal)))
(when (and (= arg2 'touched)
((method-of-type touching-shapes-entry prims-touching?)
(the-as touching-shapes-entry (-> arg3 param 0))
(-> self control)
(the-as uint 6)
)
(>= 409.6 (vector-dot (-> self control dynam gravity-normal) (-> self control transv)))
(begin
(vector-normalize!
(vector-!
s4-0
(the-as vector (-> self control collision-spheres 0 prim-core))
(-> self control actor-contact-pt)
)
1.0
)
(< 0.01 (-> s4-0 y))
)
)
(if (< 0.75 (-> s4-0 y))
(send-event
arg0
'bonk
(-> arg3 param 0)
(fmax
(-> self control ground-impact-vel)
(- (vector-dot (-> self control transv) (-> self control dynam gravity-normal)))
)
)
(when (and (= (target-send-attack
arg0
'bonk
(the-as touching-shapes-entry (-> arg3 param 0))
(the-as int (-> self control target-attack-id))
(the-as int (-> self control attack-count))
(penetrate touch bonk mech-bonk)
)
'bounce
)
(not (logtest? (-> self focus-status) (focus-status dead hit)))
)
(set! (-> self control last-trans-any-surf quad) (-> self control trans quad))
(target-timed-invulnerable (seconds 0.1) self 1)
(if (focus-test? self carry)
(go
target-mech-carry-jump
(-> *TARGET-bank* mech-carry-jump-height-min)
(-> *TARGET-bank* mech-carry-jump-height-max)
#f
)
(go
target-mech-jump
(-> *TARGET-bank* mech-jump-height-min)
(-> *TARGET-bank* mech-jump-height-max)
(the-as surface #f)
)
)
)
#f
(when (and (= (target-send-attack
arg0
'bonk
(the-as touching-shapes-entry (-> arg3 param 0))
(the-as int (-> self control target-attack-id))
(the-as int (-> self control attack-count))
(penetrate touch bonk mech-bonk)
)
'bounce
)
(not (logtest? (-> self focus-status) (focus-status dead hit)))
)
(set! (-> self control last-trans-any-surf quad) (-> self control trans quad))
(target-timed-invulnerable (seconds 0.1) self 1)
(if (focus-test? self carry)
(go
target-mech-carry-jump
(-> *TARGET-bank* mech-carry-jump-height-min)
(-> *TARGET-bank* mech-carry-jump-height-max)
#f
)
(go
target-mech-jump
(-> *TARGET-bank* mech-jump-height-min)
(-> *TARGET-bank* mech-jump-height-max)
(the-as surface #f)
)
)
)
#f
)
)
)
@@ -866,7 +863,7 @@
)
)
)
(the-as object (handle-copy! arg0 s5-0))
(handle-copy! arg0 s5-0)
)
)
)
@@ -1041,9 +1038,9 @@
(set! (-> self board latch?) #f)
(set! (-> self mech stick-lock) #f)
(set! (-> self mech stick-off) #f)
(set! (-> self mech unstuck-time) (current-time))
(set-time! (-> self mech unstuck-time))
(set! (-> self mech stuck-count) 0)
(set! (-> self mech mech-start-time) (current-time))
(set-time! (-> self mech mech-start-time))
(set! (-> self mech jump-thrust) 0.0)
(set! (-> self mech jump-thrust-fuel) (-> *TARGET-bank* mech-jump-thrust-fuel))
(set! (-> self mech state-impact? 0) #f)
@@ -1186,18 +1183,18 @@
(send-event
(ppointer->process (-> self manipy))
'eval
(lambda :behavior target
(lambda :behavior manipy
()
(set! (-> self state-hook) #f)
(set! (-> self clone-copy-trans) #f)
(set! (-> self draw shadow-ctrl) *mech-shadow-control*)
(set! (-> self mech-ik 0) (new 'process 'joint-mod-ik self 27 5283.84))
(set! (-> self mech-ik 1) (new 'process 'joint-mod-ik self 33 5283.84))
(set! (-> self joint 0) (the-as joint-mod (new 'process 'joint-mod-ik self 27 5283.84)))
(set! (-> self joint 1) (the-as joint-mod (new 'process 'joint-mod-ik self 33 5283.84)))
(dotimes (v1-3 2)
(let ((a0-5 (-> (the-as (array joint-mod-ik) (+ (* v1-3 4) (the-as int self))) 64)))
(set! (-> a0-5 elbow-pole-vector-axis) (the-as uint 2))
(set! (-> a0-5 elbow-rotation-axis) (the-as uint 0))
(set! (-> a0-5 callback) mech-leg-ik-callback)
(logior! (-> a0-5 flags) (joint-mod-ik-flags elbow-trans-neg))
(let ((a0-5 (-> self joint v1-3)))
(set! (-> a0-5 twist x) (the-as float #x2))
(set! (-> a0-5 twist y) 0.0)
(set! (-> a0-5 trans z) (the-as float mech-leg-ik-callback))
(logior! (-> a0-5 mode) (joint-mod-mode look-at))
)
)
(none)
@@ -1540,7 +1537,7 @@
(let ((v1-98 (vector-! (new 'stack-no-clear 'vector) (-> self control wall-contact-pt) (-> self control trans))))
(set! (-> v1-98 y) 0.0)
(when (< (vector-dot v1-98 (-> self control c-R-w vector 2)) 0.0)
(set! (-> self mech back-touch-time) (current-time))
(set-time! (-> self mech back-touch-time))
(set! (-> self mech back-touch-point quad) (-> self control wall-contact-pt quad))
(set! (-> self mech back-touch-trans quad) (-> self control trans quad))
)
@@ -1675,7 +1672,7 @@
(quaternion-copy! (the-as quaternion (-> self mech mech-quat)) (-> self control quat))
(set! (-> self mech mech-scale quad) (-> self control scale quad))
(vector+! (-> self alt-cam-pos) (-> self control camera-pos) (new 'static 'vector :y 4096.0 :w 1.0))
(set! (-> self mech mech-time) (current-time))
(set-time! (-> self mech mech-time))
(target-mech-effect)
0
(none)
+1
View File
@@ -732,6 +732,7 @@
(progress-shadows-normal #x12a1)
(progress-shadows-extended #x12a2)
(progress-error-no-resolutions #x12a3)
(progress-territory-auto #x12a4)
(progress-input-options-auto-hide-cursor #x1300)
(progress-menu-reassign-binds #x1301)
(progress-reassign-binds-controller #x1302)
+25 -20
View File
@@ -795,8 +795,12 @@
(defun dm-territory-pick-func ((bterr int) (msg debug-menu-msg))
(let ((terr (/ bterr 8)))
(when (= msg (debug-menu-msg press))
(set! *debug-territory* terr))
(= *debug-territory* terr)))
(set! (-> *pc-settings* territory) terr))
(= (-> *pc-settings* territory) terr)))
(defun dm-size-pick-func ((size pair))
(set-size! *pc-settings* (/ (the int (car size)) 8) (/ (the int (cadr size)) 8) #t)
)
(when (-> *debug-menu-context* root-menu)
;; (debug-menu-append-item (-> *debug-menu-context* root-menu) (debug-menu-make-load-menu *debug-menu-context*))
@@ -841,24 +845,24 @@
(function "Borderless" #f ,(lambda () (set-display-mode! *pc-settings* 'borderless #t)))
)
(menu "Sizes"
(function "640 x 480" #f ,(lambda () (set-size! *pc-settings* 640 480 #t)))
(function "640 x 360" #f ,(lambda () (set-size! *pc-settings* 640 360 #t)))
(function "720 x 540" #f ,(lambda () (set-size! *pc-settings* 720 540 #t)))
(function "960 x 540" #f ,(lambda () (set-size! *pc-settings* 960 540 #t)))
(function "800 x 600" #f ,(lambda () (set-size! *pc-settings* 800 600 #t)))
(function "960 x 720" #f ,(lambda () (set-size! *pc-settings* 960 720 #t)))
(function "1280 x 720" #f ,(lambda () (set-size! *pc-settings* 1280 720 #t)))
(function "1024 x 768" #f ,(lambda () (set-size! *pc-settings* 1024 768 #t)))
(function "1366 x 768" #f ,(lambda () (set-size! *pc-settings* 1366 768 #t)))
(function "1280 x 960" #f ,(lambda () (set-size! *pc-settings* 1280 960 #t)))
(function "1440 x 1080" #f ,(lambda () (set-size! *pc-settings* 1440 1080 #t)))
(function "1920 x 1080" #f ,(lambda () (set-size! *pc-settings* 1920 1080 #t)))
(function "1920 x 1440" #f ,(lambda () (set-size! *pc-settings* 1920 1440 #t)))
(function "2560 x 1440" #f ,(lambda () (set-size! *pc-settings* 2560 1440 #t)))
(function "2880 x 2160" #f ,(lambda () (set-size! *pc-settings* 2880 2160 #t)))
(function "3840 x 2160" #f ,(lambda () (set-size! *pc-settings* 3840 2160 #t)))
(function "512 x 416" #f ,(lambda () (set-size! *pc-settings* 512 416 #t)))
(function "512 x 208" #f ,(lambda () (set-size! *pc-settings* 512 208 #t)))
(function "640 x 480" (640 480) dm-size-pick-func)
(function "640 x 360" (640 360) dm-size-pick-func)
(function "720 x 540" (720 540) dm-size-pick-func)
(function "960 x 540" (960 540) dm-size-pick-func)
(function "800 x 600" (800 600) dm-size-pick-func)
(function "960 x 720" (960 720) dm-size-pick-func)
(function "1280 x 720" (1280 720) dm-size-pick-func)
(function "1024 x 768" (1024 768) dm-size-pick-func)
(function "1366 x 768" (1366 768) dm-size-pick-func)
(function "1280 x 960" (1280 960) dm-size-pick-func)
(function "1440 x 1080" (1440 1080) dm-size-pick-func)
(function "1920 x 1080" (1920 1080) dm-size-pick-func)
(function "1920 x 1440" (1920 1440) dm-size-pick-func)
(function "2560 x 1440" (2560 1440) dm-size-pick-func)
(function "2880 x 2160" (2880 2160) dm-size-pick-func)
(function "3840 x 2160" (3840 2160) dm-size-pick-func)
(function "512 x 416" (512 416) dm-size-pick-func)
(function "512 x 208" (512 208) dm-size-pick-func)
)
(flag "Letterbox" #f ,(dm-lambda-boolean-flag (-> *pc-settings* letterbox?)))
(flag "Hinttitles" #f ,(dm-lambda-boolean-flag (-> *pc-settings* hinttitles?)))
@@ -935,6 +939,7 @@
(flag "status" #f ,(dm-lambda-boolean-flag (-> *pc-settings* controller-led-status?)))
)
(menu "Territory"
(flag "Automatic" -1 dm-territory-pick-func)
(flag "GAME_TERRITORY_SCEA" (the binteger GAME_TERRITORY_SCEA) dm-territory-pick-func)
(flag "GAME_TERRITORY_SCEE" (the binteger GAME_TERRITORY_SCEE) dm-territory-pick-func)
(flag "GAME_TERRITORY_SCEI" (the binteger GAME_TERRITORY_SCEI) dm-territory-pick-func)
+12 -3
View File
@@ -11,8 +11,8 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; version: 0.1.6.2
(defconstant PC_KERNEL_VERSION (static-pckernel-version 0 1 6 2))
;; version: 0.1.7.0
(defconstant PC_KERNEL_VERSION (static-pckernel-version 0 1 7 0))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; types and enums
@@ -190,6 +190,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define *hires-sky* #t)
(define *debug-region-color-alt* #t)
(define *debug-region-show-bsphere* #f)
@@ -198,6 +199,14 @@
(define *fallback-text-lookup?* #t)
(defun pc-settings-save ()
(commit-to-file *pc-settings*)
)
(defun get-video-params () *video-params*)
;; for debugging
(defenum pc-pat-skip-hack
:bitfield #t
@@ -218,8 +227,8 @@
)
(defun get-video-params () *video-params*)
;; cheat stuff
(defenum pc-cheat-state-flag
:bitfield #t
@@ -253,7 +253,7 @@
:get-value-fn (lambda () ,field)
:on-confirm (lambda ((val symbol))
(set! ,field val)
(commit-to-file *pc-settings*))))
(pc-settings-save))))
(defmacro static-progress-generic-pc-settings-on-off-boolean (name field)
`(new 'static 'menu-generic-boolean-option
@@ -263,7 +263,7 @@
:get-value-fn (lambda () ,field)
:on-confirm (lambda ((val symbol))
(set! ,field val)
(commit-to-file *pc-settings*))))
(pc-settings-save))))
(defmacro static-progress-generic-pc-settings-shadows-normal-extended-boolean (name field)
`(new 'static 'menu-generic-boolean-option
@@ -273,7 +273,7 @@
:get-value-fn (lambda () ,field)
:on-confirm (lambda ((val symbol))
(set! ,field val)
(commit-to-file *pc-settings*))))
(pc-settings-save))))
(define *progress-generic-temp-string* (new 'global 'string 512 (the string #f)))
+62 -59
View File
@@ -98,7 +98,7 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* first-camera-h-inverted?))
:on-confirm (lambda ((val symbol))
(set! (-> *pc-settings* first-camera-h-inverted?) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(new 'static 'menu-generic-boolean-option
:name (text-id progress-camera-options-first-vert)
:truthy-text (text-id progress-normal)
@@ -106,7 +106,7 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* first-camera-v-inverted?))
:on-confirm (lambda ((val symbol))
(set! (-> *pc-settings* first-camera-v-inverted?) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(new 'static 'menu-generic-boolean-option
:name (text-id progress-camera-options-third-horz)
:truthy-text (text-id progress-normal)
@@ -114,7 +114,7 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* third-camera-h-inverted?))
:on-confirm (lambda ((val symbol))
(set! (-> *pc-settings* third-camera-h-inverted?) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(new 'static 'menu-generic-boolean-option
:name (text-id progress-camera-options-third-vert)
:truthy-text (text-id progress-normal)
@@ -122,12 +122,12 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* third-camera-v-inverted?))
:on-confirm (lambda ((val symbol))
(set! (-> *pc-settings* third-camera-v-inverted?) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(new 'static 'menu-generic-confirm-option
:name (text-id progress-restore-defaults)
:on-confirm (lambda ((val symbol))
(reset-camera *pc-settings* #t)
(commit-to-file *pc-settings*))))
(pc-settings-save))))
(progress-new-generic-link-to-scrolling-page (text-id progress-menu-controller-options) :should-disable? (lambda () (<= (pc-get-controller-count) 0))
(new 'static 'menu-generic-carousel-option
:name (text-id progress-controller-options-select-controller)
@@ -153,7 +153,7 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* stick-deadzone))
:on-confirm (lambda ((val float))
(set! (-> *pc-settings* stick-deadzone) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(new 'static 'menu-generic-boolean-option
:name (text-id progress-controller-options-ignore-if-unfocused)
:truthy-text (text-id progress-on)
@@ -161,7 +161,7 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* ignore-controller-win-unfocused?))
:on-confirm (lambda ((val symbol))
(set! (-> *pc-settings* ignore-controller-win-unfocused?) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(new 'static 'menu-generic-boolean-option
:name (text-id progress-controller-options-led-hp)
:should-disable? (lambda () (not (pc-current-controller-has-led?)))
@@ -170,7 +170,7 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* controller-led-hp?))
:on-confirm (lambda ((val symbol))
(set! (-> *pc-settings* controller-led-hp?) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(new 'static 'menu-generic-boolean-option
:name (text-id progress-controller-options-led-state)
:should-disable? (lambda () (not (pc-current-controller-has-led?)))
@@ -179,13 +179,13 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* controller-led-eco?))
:on-confirm (lambda ((val symbol))
(set! (-> *pc-settings* controller-led-eco?) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(new 'static 'menu-generic-confirm-option
:name (text-id progress-restore-defaults)
:on-confirm (lambda ((val symbol))
(reset-input *pc-settings* 'controller #t)
(set-ignore-controller-in-bg! *pc-settings* (-> *pc-settings* ignore-controller-win-unfocused?))
(commit-to-file *pc-settings*))))
(pc-settings-save))))
(new 'static 'menu-generic-boolean-option
:name (text-id progress-input-options-enable-keyboard)
:truthy-text (text-id progress-on)
@@ -193,7 +193,7 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* keyboard-enabled?))
:on-confirm (lambda ((val symbol))
(set! (-> *pc-settings* keyboard-enabled?) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(new 'static 'menu-generic-boolean-option
:name (text-id progress-input-options-enable-mouse)
:truthy-text (text-id progress-on)
@@ -201,7 +201,7 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* mouse-enabled?))
:on-confirm (lambda ((val symbol))
(set! (-> *pc-settings* mouse-enabled?) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(progress-new-generic-link-to-scrolling-page (text-id progress-menu-mouse-options) :should-disable? (lambda () (not (-> *pc-settings* mouse-enabled?)))
(new 'static 'menu-generic-boolean-option
:name (text-id progress-mouse-options-track-camera)
@@ -210,7 +210,7 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* mouse-camera?))
:on-confirm (lambda ((val symbol))
(set! (-> *pc-settings* mouse-camera?) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(new 'static 'menu-generic-slider-option
:name (text-id progress-mouse-options-horz-sens)
:should-disable? (lambda () (not (-> *pc-settings* mouse-camera?)))
@@ -221,7 +221,7 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* mouse-xsens))
:on-confirm (lambda ((val float))
(set! (-> *pc-settings* mouse-xsens) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(new 'static 'menu-generic-slider-option
:name (text-id progress-mouse-options-vert-sens)
:should-disable? (lambda () (not (-> *pc-settings* mouse-camera?)))
@@ -232,7 +232,7 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* mouse-ysens))
:on-confirm (lambda ((val float))
(set! (-> *pc-settings* mouse-ysens) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(new 'static 'menu-generic-boolean-option
:name (text-id progress-mouse-options-player-movement)
:truthy-text (text-id progress-on)
@@ -240,13 +240,13 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* mouse-movement?))
:on-confirm (lambda ((val symbol))
(set! (-> *pc-settings* mouse-movement?) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(new 'static 'menu-generic-confirm-option
:name (text-id progress-restore-defaults)
:on-confirm (lambda ((val symbol))
(reset-input *pc-settings* 'mouse #t)
(update-mouse-controls! *pc-settings*)
(commit-to-file *pc-settings*))))
(pc-settings-save))))
(new 'static 'menu-generic-boolean-option
:name (text-id progress-input-options-auto-hide-cursor)
:truthy-text (text-id progress-on)
@@ -255,7 +255,7 @@ This gives us more freedom to write code how we want.
:on-confirm (lambda ((val symbol))
(set! (-> *pc-settings* auto-hide-cursor?) val)
(update-mouse-controls! *pc-settings*)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(progress-new-generic-keybinds-page-link)
(new 'static 'menu-generic-confirm-option
:name (text-id progress-restore-defaults)
@@ -263,7 +263,7 @@ This gives us more freedom to write code how we want.
(reset-input *pc-settings* 'input #t)
(set-enable-keyboard! *pc-settings* (-> *pc-settings* keyboard-enabled?))
(update-mouse-controls! *pc-settings*)
(commit-to-file *pc-settings*))))
(pc-settings-save))))
(new 'static 'menu-generic-boolean-option
:name (text-id progress-subtitles)
:truthy-text (text-id progress-on)
@@ -313,7 +313,8 @@ This gives us more freedom to write code how we want.
(set! (-> *pc-settings* text-language) (the-as pc-language index))
;; NOTE - this doesn't actually work (naughty dog tried it too in their progress code)
;; fix it eventually
(load-level-text-files (the-as int (-> *setting-control* user-default language)))))
(load-level-text-files (the-as int (-> *pc-settings* text-language)))
(pc-settings-save)))
(progress-new-generic-link-to-scrolling-page (text-id progress-misc-game-options)
(new 'static 'menu-generic-boolean-option
:name (text-id progress-discord-rpc)
@@ -322,7 +323,7 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* discord-rpc?))
:on-confirm (lambda ((val symbol))
(set! (-> *pc-settings* discord-rpc?) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(new 'static 'menu-generic-boolean-option
:name (text-id progress-speedrunner-mode)
:truthy-text (text-id progress-on)
@@ -335,7 +336,7 @@ This gives us more freedom to write code how we want.
(if (-> *pc-settings* speedrunner-mode?)
(set! (-> *pc-settings* cheats-backup) (-> *pc-settings* cheats))
(set! (-> *pc-settings* cheats) (-> *pc-settings* cheats-backup)))
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(new 'static 'menu-generic-boolean-option
:name (text-id progress-fast-progress)
:truthy-text (text-id progress-on)
@@ -343,7 +344,7 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* fast-progress?))
:on-confirm (lambda ((val symbol))
(set! (-> *pc-settings* fast-progress?) val)
(commit-to-file *pc-settings*))))))
(pc-settings-save))))))
(define *game-options-title-pc*
(progress-new-generic-scrolling-page (text-id progress-root-game-options)
@@ -356,7 +357,7 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* first-camera-h-inverted?))
:on-confirm (lambda ((val symbol))
(set! (-> *pc-settings* first-camera-h-inverted?) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(new 'static 'menu-generic-boolean-option
:name (text-id progress-camera-options-first-vert)
:truthy-text (text-id progress-normal)
@@ -364,7 +365,7 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* first-camera-v-inverted?))
:on-confirm (lambda ((val symbol))
(set! (-> *pc-settings* first-camera-v-inverted?) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(new 'static 'menu-generic-boolean-option
:name (text-id progress-camera-options-third-horz)
:truthy-text (text-id progress-normal)
@@ -372,7 +373,7 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* third-camera-h-inverted?))
:on-confirm (lambda ((val symbol))
(set! (-> *pc-settings* third-camera-h-inverted?) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(new 'static 'menu-generic-boolean-option
:name (text-id progress-camera-options-third-vert)
:truthy-text (text-id progress-normal)
@@ -380,12 +381,12 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* third-camera-v-inverted?))
:on-confirm (lambda ((val symbol))
(set! (-> *pc-settings* third-camera-v-inverted?) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(new 'static 'menu-generic-confirm-option
:name (text-id progress-restore-defaults)
:on-confirm (lambda ((val symbol))
(reset-camera *pc-settings* #t)
(commit-to-file *pc-settings*))))
(pc-settings-save))))
(progress-new-generic-link-to-scrolling-page (text-id progress-menu-controller-options) :should-disable? (lambda () (<= (pc-get-controller-count) 0))
(new 'static 'menu-generic-carousel-option
:name (text-id progress-controller-options-select-controller)
@@ -411,7 +412,7 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* stick-deadzone))
:on-confirm (lambda ((val float))
(set! (-> *pc-settings* stick-deadzone) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(new 'static 'menu-generic-boolean-option
:name (text-id progress-controller-options-ignore-if-unfocused)
:truthy-text (text-id progress-on)
@@ -419,7 +420,7 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* ignore-controller-win-unfocused?))
:on-confirm (lambda ((val symbol))
(set! (-> *pc-settings* ignore-controller-win-unfocused?) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(new 'static 'menu-generic-boolean-option
:name (text-id progress-controller-options-led-hp)
:should-disable? (lambda () (not (pc-current-controller-has-led?)))
@@ -428,7 +429,7 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* controller-led-hp?))
:on-confirm (lambda ((val symbol))
(set! (-> *pc-settings* controller-led-hp?) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(new 'static 'menu-generic-boolean-option
:name (text-id progress-controller-options-led-state)
:should-disable? (lambda () (not (pc-current-controller-has-led?)))
@@ -437,13 +438,13 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* controller-led-eco?))
:on-confirm (lambda ((val symbol))
(set! (-> *pc-settings* controller-led-eco?) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(new 'static 'menu-generic-confirm-option
:name (text-id progress-restore-defaults)
:on-confirm (lambda ((val symbol))
(reset-input *pc-settings* 'controller #t)
(set-ignore-controller-in-bg! *pc-settings* (-> *pc-settings* ignore-controller-win-unfocused?))
(commit-to-file *pc-settings*))))
(pc-settings-save))))
(new 'static 'menu-generic-boolean-option
:name (text-id progress-input-options-enable-keyboard)
:truthy-text (text-id progress-on)
@@ -451,7 +452,7 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* keyboard-enabled?))
:on-confirm (lambda ((val symbol))
(set! (-> *pc-settings* keyboard-enabled?) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(new 'static 'menu-generic-boolean-option
:name (text-id progress-input-options-enable-mouse)
:truthy-text (text-id progress-on)
@@ -459,7 +460,7 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* mouse-enabled?))
:on-confirm (lambda ((val symbol))
(set! (-> *pc-settings* mouse-enabled?) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(progress-new-generic-link-to-scrolling-page (text-id progress-menu-mouse-options) :should-disable? (lambda () (not (-> *pc-settings* mouse-enabled?)))
(new 'static 'menu-generic-boolean-option
:name (text-id progress-mouse-options-track-camera)
@@ -468,7 +469,7 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* mouse-camera?))
:on-confirm (lambda ((val symbol))
(set! (-> *pc-settings* mouse-camera?) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(new 'static 'menu-generic-slider-option
:name (text-id progress-mouse-options-horz-sens)
:should-disable? (lambda () (not (-> *pc-settings* mouse-camera?)))
@@ -479,7 +480,7 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* mouse-xsens))
:on-confirm (lambda ((val float))
(set! (-> *pc-settings* mouse-xsens) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(new 'static 'menu-generic-slider-option
:name (text-id progress-mouse-options-vert-sens)
:should-disable? (lambda () (not (-> *pc-settings* mouse-camera?)))
@@ -490,7 +491,7 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* mouse-ysens))
:on-confirm (lambda ((val float))
(set! (-> *pc-settings* mouse-ysens) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(new 'static 'menu-generic-boolean-option
:name (text-id progress-mouse-options-player-movement)
:truthy-text (text-id progress-on)
@@ -498,13 +499,13 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* mouse-movement?))
:on-confirm (lambda ((val symbol))
(set! (-> *pc-settings* mouse-movement?) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(new 'static 'menu-generic-confirm-option
:name (text-id progress-restore-defaults)
:on-confirm (lambda ((val symbol))
(reset-input *pc-settings* 'mouse #t)
(update-mouse-controls! *pc-settings*)
(commit-to-file *pc-settings*))))
(pc-settings-save))))
(new 'static 'menu-generic-boolean-option
:name (text-id progress-input-options-auto-hide-cursor)
:truthy-text (text-id progress-on)
@@ -513,7 +514,7 @@ This gives us more freedom to write code how we want.
:on-confirm (lambda ((val symbol))
(set! (-> *pc-settings* auto-hide-cursor?) val)
(update-mouse-controls! *pc-settings*)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(progress-new-generic-keybinds-page-link)
(new 'static 'menu-generic-confirm-option
:name (text-id progress-restore-defaults)
@@ -521,7 +522,7 @@ This gives us more freedom to write code how we want.
(reset-input *pc-settings* 'input #t)
(set-enable-keyboard! *pc-settings* (-> *pc-settings* keyboard-enabled?))
(update-mouse-controls! *pc-settings*)
(commit-to-file *pc-settings*))))
(pc-settings-save))))
(new 'static 'menu-generic-boolean-option
:name (text-id progress-subtitles)
:truthy-text (text-id progress-on)
@@ -571,16 +572,18 @@ This gives us more freedom to write code how we want.
(set! (-> *pc-settings* text-language) (the-as pc-language index))
;; NOTE - this doesn't actually work (naughty dog tried it too in their progress code)
;; fix it eventually
(load-level-text-files (the-as int (-> *setting-control* user-default language)))))
(load-level-text-files (the-as int (-> *pc-settings* text-language)))
(pc-settings-save)))
(new 'static 'menu-generic-carousel-option
:name (text-id progress-territory)
:items (new 'static 'boxed-array :type text-id
(text-id progress-territory-auto)
(text-id progress-territory-scea)
(text-id progress-territory-scee)
(text-id progress-territory-scei)
(text-id progress-territory-scek))
:get-item-index-fn (lambda () *debug-territory*)
:on-confirm (lambda ((index int) (the-progress progress)) (set! *debug-territory* index)))
:get-item-index-fn (lambda () (1+ (-> *pc-settings* territory)))
:on-confirm (lambda ((index int) (the-progress progress)) (set! (-> *pc-settings* territory) (1- index)) (pc-settings-save)))
(progress-new-generic-link-to-scrolling-page (text-id progress-misc-game-options)
(new 'static 'menu-generic-boolean-option
:name (text-id progress-discord-rpc)
@@ -589,7 +592,7 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* discord-rpc?))
:on-confirm (lambda ((val symbol))
(set! (-> *pc-settings* discord-rpc?) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(new 'static 'menu-generic-boolean-option
:name (text-id progress-speedrunner-mode)
:truthy-text (text-id progress-on)
@@ -597,7 +600,7 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* speedrunner-mode?))
:on-confirm (lambda ((val symbol))
(set! (-> *pc-settings* speedrunner-mode?) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(new 'static 'menu-generic-boolean-option
:name (text-id progress-fast-airlock)
:truthy-text (text-id progress-on)
@@ -605,7 +608,7 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* fast-airlock?))
:on-confirm (lambda ((val symbol))
(set! (-> *pc-settings* fast-airlock?) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(new 'static 'menu-generic-boolean-option
:name (text-id progress-fast-elevator)
:truthy-text (text-id progress-on)
@@ -613,7 +616,7 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* fast-elevator?))
:on-confirm (lambda ((val symbol))
(set! (-> *pc-settings* fast-elevator?) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(new 'static 'menu-generic-boolean-option
:name (text-id progress-fast-progress)
:truthy-text (text-id progress-on)
@@ -621,7 +624,7 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* fast-progress?))
:on-confirm (lambda ((val symbol))
(set! (-> *pc-settings* fast-progress?) val)
(commit-to-file *pc-settings*))))))
(pc-settings-save))))))
(define *msaa-options* (new 'static 'boxed-array :type int16 1 2 4 8 16))
@@ -647,7 +650,7 @@ This gives us more freedom to write code how we want.
)
:on-confirm (lambda ((index int) (the-progress progress))
(set-monitor! *pc-settings* index)
(commit-to-file *pc-settings*)
(pc-settings-save)
)
:should-disable? (lambda () (nmember (the basic (-> *pc-settings* display-mode)) '(windowed #f)))
)
@@ -671,7 +674,7 @@ This gives us more freedom to write code how we want.
((1) (set-display-mode! *pc-settings* 'fullscreen #t))
((2) (set-display-mode! *pc-settings* 'borderless #t))
)
(commit-to-file *pc-settings*)
(pc-settings-save)
)
)
(new 'static 'menu-generic-carousel-option
@@ -702,7 +705,7 @@ This gives us more freedom to write code how we want.
(false! (-> *setting-control* user-current aspect-ratio)))
(set! (-> *setting-control* user-default aspect-ratio) 'aspect4x3)
(true! (-> *pc-settings* use-vis?))
(commit-to-file *pc-settings*)
(pc-settings-save)
)
((1)
(if (not (-> *pc-settings* use-vis?))
@@ -710,13 +713,13 @@ This gives us more freedom to write code how we want.
)
(set! (-> *setting-control* user-default aspect-ratio) 'aspect16x9)
(true! (-> *pc-settings* use-vis?))
(commit-to-file *pc-settings*)
(pc-settings-save)
)
((2)
(set! (-> *setting-control* user-default aspect-ratio) 'aspect4x3)
(true! (-> *pc-settings* aspect-ratio-auto?))
(false! (-> *pc-settings* use-vis?))
(commit-to-file *pc-settings*)
(pc-settings-save)
)
((3)
(push-and-set-state the-progress 'aspect-ratio-custom)
@@ -742,7 +745,7 @@ This gives us more freedom to write code how we want.
(cond
((or (zero? index) (= (-> *frame-rate-options* index) (-> *pc-settings* target-fps)) *frame-rate-disclaimer-seen?*)
(set-frame-rate! *pc-settings* (-> *frame-rate-options* index) #t)
(commit-to-file *pc-settings*)
(pc-settings-save)
)
(else
(defun-extern set-progress-frame-rate-index int int)
@@ -759,7 +762,7 @@ This gives us more freedom to write code how we want.
:get-value-fn (lambda () (-> *pc-settings* vsync?))
:on-confirm (lambda ((val symbol))
(set! (-> *pc-settings* vsync?) val)
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(new 'static 'menu-generic-carousel-option
:name (text-id progress-msaa)
:get-item-index-fn (lambda ()
@@ -779,7 +782,7 @@ This gives us more freedom to write code how we want.
)
:on-confirm (lambda ((index int) (the-progress progress))
(set! (-> *pc-settings* gfx-msaa) (ash 1 index))
(commit-to-file *pc-settings*)
(pc-settings-save)
)
)
(progress-new-generic-link-to-scrolling-page (text-id progress-graphics-ps2)
@@ -798,7 +801,7 @@ This gives us more freedom to write code how we want.
(set! (-> *pc-settings* lod-force-tfrag) 0)
(set! (-> *pc-settings* lod-force-tie) 0)
))
(commit-to-file *pc-settings*)))
(pc-settings-save)))
(static-progress-generic-pc-settings-lod-default-high-boolean (text-id progress-lod-fg) (-> *pc-settings* ps2-lod-dist?))
(static-progress-generic-pc-settings-on-off-boolean (text-id progress-ps2-parts) (-> *pc-settings* ps2-parts?))
(static-progress-generic-pc-settings-shadows-normal-extended-boolean (text-id progress-shadows) (-> *pc-settings* ps2-shadow?))