g/j2: do the same, just have to set the global values from the progress menus

This commit is contained in:
Tyler Wilding
2024-07-25 00:05:39 -04:00
parent fc6b0693c8
commit df9e7aa4d2
9 changed files with 87 additions and 69 deletions
+2 -9
View File
@@ -551,8 +551,7 @@
(("memcard-volume-sfx") (set! (-> obj memcard-volume-sfx) (file-stream-read-float file)))
(("memcard-volume-music") (set! (-> obj memcard-volume-music) (file-stream-read-float file)))
(("memcard-volume-dialog") (set! (-> obj memcard-volume-dialog) (file-stream-read-float file)))
(("memcard-vibration") (set! (-> obj memcard-vibration) (file-stream-read-symbol file)))
(("memcard-play-hints") (set! (-> obj memcard-play-hints) (file-stream-read-symbol file)))
(("memcard-vibration?") (set! (-> obj memcard-vibration?) (file-stream-read-symbol file)))
;; debug
(("debug-font-scale") (set! (-> obj debug-font-scale) (file-stream-read-float file)))
(("debug-font-scale-auto?") (set! (-> obj debug-font-scale-auto?) (file-stream-read-symbol file)))
@@ -630,8 +629,7 @@
(format file " (memcard-volume-sfx ~f)~%" (-> obj memcard-volume-sfx))
(format file " (memcard-volume-music ~f)~%" (-> obj memcard-volume-music))
(format file " (memcard-volume-dialog ~f)~%" (-> obj memcard-volume-dialog))
(format file " (memcard-vibration ~A)~%" (-> obj memcard-vibration))
(format file " (memcard-play-hints ~A)~%" (-> obj memcard-play-hints))
(format file " (memcard-vibration? ~A)~%" (-> obj memcard-vibration?))
0)
(defmethod write-to-file ((obj pc-settings) (filename string))
@@ -667,11 +665,6 @@
;; any post-operations that need to be done after loading
(set! (-> obj keyboard-enabled?) (pc-get-keyboard-enabled?))
(update-mouse-controls! obj)
(set! (-> *setting-control* default sfx-volume) (-> obj memcard-volume-sfx))
(set! (-> *setting-control* default music-volume) (-> obj memcard-volume-music))
(set! (-> *setting-control* default dialog-volume) (-> obj memcard-volume-dialog))
(set! (-> *setting-control* default vibration) (-> obj memcard-vibration))
(set! (-> *setting-control* default play-hints) (-> obj memcard-play-hints))
obj)
(defmethod new pc-settings ((allocation symbol) (type-to-make type))
+1 -8
View File
@@ -198,8 +198,7 @@
(memcard-volume-sfx float)
(memcard-volume-music float)
(memcard-volume-dialog float)
(memcard-vibration symbol)
(memcard-play-hints symbol)
(memcard-vibration? symbol)
)
(:methods
(new (symbol type) _type_)
@@ -397,12 +396,6 @@
(set! (-> obj subtitle-speaker?) 'auto)
(reset-camera obj call-handlers)
(set! (-> obj territory) -1) ;; auto
;; original settings, minus 25 to be a bit more conservative
(set! (-> obj memcard-volume-sfx) 50.0)
(set! (-> obj memcard-volume-music) 40.0)
(set! (-> obj memcard-volume-dialog) 75.0)
(set! (-> obj memcard-vibration) #t)
(set! (-> obj memcard-play-hints) #t)
0)
(defmethod reset-camera ((obj pc-settings) (call-handlers symbol))
+17 -10
View File
@@ -67,16 +67,17 @@
;; The Jak 1 version of the pc-settings object.
(deftype pc-settings-jak1 (pc-settings)
((cheats pc-cheats)
(cheats-known pc-cheats)
(skip-movies? symbol) ;; if on, enable cutscene skipping
(subtitles? symbol) ;; if on, cutscene subtitles will show up
(text-language pc-language) ;; language for game text
(subtitle-language pc-language) ;; language for subtitles
(money-starburst? symbol) ;; add a starburst to the money
(extra-hud? symbol) ;; extra hud elements.
(secrets pc-game-secrets :inline) ;; hidden goodies and additional secrets!
(scenes-seen uint8 PC_SPOOL_LOG_LENGTH) ;; cutscenes that have been seen, by spool-anim (maybe use 8-char name or bits instead?)
((cheats pc-cheats)
(cheats-known pc-cheats)
(skip-movies? symbol) ;; if on, enable cutscene skipping
(subtitles? symbol) ;; if on, cutscene subtitles will show up
(text-language pc-language) ;; language for game text
(subtitle-language pc-language) ;; language for subtitles
(money-starburst? symbol) ;; add a starburst to the money
(extra-hud? symbol) ;; extra hud elements.
(secrets pc-game-secrets :inline) ;; hidden goodies and additional secrets!
(scenes-seen uint8 PC_SPOOL_LOG_LENGTH) ;; cutscenes that have been seen, by spool-anim (maybe use 8-char name or bits instead?)
(memcard-play-hints? symbol)
))
(define *pc-settings* (the pc-settings-jak1 #f))
@@ -131,6 +132,12 @@
(else))
(set! (-> obj money-starburst?) #f)
(set! (-> obj extra-hud?) #f)
;; original settings, minus 25 to be a bit more conservative
(set! (-> obj memcard-volume-sfx) 50.0)
(set! (-> obj memcard-volume-music) 40.0)
(set! (-> obj memcard-volume-dialog) 75.0)
(set! (-> obj memcard-vibration?) #t)
(set! (-> obj memcard-play-hints?) #t)
0)
(defmethod reset-extra ((obj pc-settings-jak1) (call-handlers symbol))
+12
View File
@@ -14,6 +14,16 @@
;;;; methods
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defmethod initialize ((obj pc-settings-jak1))
"initial initialize method to be run after allocating"
((method-of-type pc-settings initialize) obj)
(set! (-> *setting-control* default sfx-volume) (-> obj memcard-volume-sfx))
(set! (-> *setting-control* default music-volume) (-> obj memcard-volume-music))
(set! (-> *setting-control* default dialog-volume) (-> obj memcard-volume-dialog))
(set! (-> *setting-control* default vibration) (-> obj memcard-vibration?))
(set! (-> *setting-control* default play-hints) (-> obj memcard-play-hints?))
obj)
(defmethod set-game-setting! ((obj pc-settings-jak1) (setting symbol) (value symbol))
(case setting
(('video-mode)
@@ -433,6 +443,7 @@
(("subtitle-language") (set! (-> obj subtitle-language) (the-as pc-language (file-stream-read-int file))))
(("text-language") (set! (-> obj text-language) (the-as pc-language (file-stream-read-int file))))
(("scenes-seen") (dotimes (i PC_SPOOL_LOG_LENGTH) (set! (-> obj scenes-seen i) (file-stream-read-int file))))
(("memcard-play-hints?") (set! (-> obj memcard-play-hints?) (file-stream-read-symbol file)))
(("secrets")
(dosettings (file)
(case-str *pc-temp-string*
@@ -466,6 +477,7 @@
(format file " (subtitles? ~A)~%" (-> obj subtitles?))
(format file " (subtitle-language ~D)~%" (-> obj subtitle-language))
(format file " (text-language ~D)~%" (-> obj text-language))
(format file " (memcard-play-hints? ~A)~%" (-> obj memcard-play-hints?))
#|
(format file " (scenes-seen")
(dotimes (i PC_SPOOL_LOG_LENGTH)
+7 -7
View File
@@ -1473,19 +1473,19 @@
(set! (-> *progress-state* video-mode-choice) (get-video-mode))
(set! (-> *progress-state* yes-no-choice) #f)
;; set variable pointers
(set! (-> *game-options* 1 value-to-modify) (&-> *pc-settings* memcard-play-hints))
(set! (-> *game-options* 1 value-to-modify) (&-> *pc-settings* memcard-play-hints?))
(set! (-> *game-options* 2 value-to-modify) (&-> *setting-control* default language))
(set! (-> *game-options-japan* 0 value-to-modify) (&-> *pc-settings* memcard-vibration))
(set! (-> *game-options-japan* 1 value-to-modify) (&-> *pc-settings* memcard-play-hints))
(set! (-> *game-options-demo* 0 value-to-modify) (&-> *pc-settings* memcard-vibration))
(set! (-> *game-options-demo* 1 value-to-modify) (&-> *pc-settings* memcard-play-hints))
(set! (-> *game-options-japan* 0 value-to-modify) (&-> *pc-settings* memcard-vibration?))
(set! (-> *game-options-japan* 1 value-to-modify) (&-> *pc-settings* memcard-play-hints?))
(set! (-> *game-options-demo* 0 value-to-modify) (&-> *pc-settings* memcard-vibration?))
(set! (-> *game-options-demo* 1 value-to-modify) (&-> *pc-settings* memcard-play-hints?))
(set! (-> *graphic-options* 1 value-to-modify) (&-> *progress-state* aspect-ratio-choice))
(set! (-> *sound-options* 0 value-to-modify) (&-> *setting-control* default sfx-volume))
(set! (-> *sound-options* 1 value-to-modify) (&-> *setting-control* default music-volume))
(set! (-> *sound-options* 2 value-to-modify) (&-> *setting-control* default dialog-volume))
(set! (-> *yes-no-options* 0 value-to-modify) (&-> *progress-state* yes-no-choice))
;; our options!
(set! (-> *game-options-pc* 1 value-to-modify) (&-> *pc-settings* memcard-play-hints))
(set! (-> *game-options-pc* 1 value-to-modify) (&-> *pc-settings* memcard-play-hints?))
(set! (-> *game-options-pc* 2 value-to-modify) (&-> *pc-settings* subtitles?))
(set! (-> *game-options-pc* 3 value-to-modify) (&-> *pc-settings* hinttitles?))
(set! (-> *game-options-pc* 4 value-to-modify) (&-> *setting-control* default language))
@@ -1506,7 +1506,7 @@
(set! (-> *camera-options* 2 value-to-modify) (&-> *pc-settings* third-camera-h-inverted?))
(set! (-> *camera-options* 3 value-to-modify) (&-> *pc-settings* third-camera-v-inverted?))
;; input options
(set! (-> *controller-options* 1 value-to-modify) (&-> *pc-settings* memcard-vibration))
(set! (-> *controller-options* 1 value-to-modify) (&-> *pc-settings* memcard-vibration?))
(set! (-> *controller-options* 2 value-to-modify) (&-> *pc-settings* stick-deadzone))
(set! (-> *controller-options* 3 value-to-modify) (&-> *pc-settings* ignore-controller-win-unfocused?))
(set! (-> *controller-options* 4 value-to-modify) (&-> *pc-settings* controller-led-hp?))
+27 -25
View File
@@ -1103,21 +1103,22 @@
(let ((v1-0 (the-as object (-> arg0 tag))))
(while (< (the-as int v1-0) (the-as int (&-> arg0 tag 0 user-int8 (-> arg0 length))))
(case (-> (the-as (inline-array game-save-tag) v1-0) 0 elt-type)
(((game-save-elt sfx-volume))
(set! (-> *setting-control* user-default sfx-volume)
(-> (the-as (inline-array game-save-tag) v1-0) 0 user-float0)
)
)
(((game-save-elt music-volume))
(set! (-> *setting-control* user-default music-volume)
(-> (the-as (inline-array game-save-tag) v1-0) 0 user-float0)
)
)
(((game-save-elt dialog-volume))
(set! (-> *setting-control* user-default dialog-volume)
(-> (the-as (inline-array game-save-tag) v1-0) 0 user-float0)
)
)
;; og:preserve-this Moved saving these settings to pc-settings
;; (((game-save-elt sfx-volume))
;; (set! (-> *setting-control* user-default sfx-volume)
;; (-> (the-as (inline-array game-save-tag) v1-0) 0 user-float0)
;; )
;; )
;; (((game-save-elt music-volume))
;; (set! (-> *setting-control* user-default music-volume)
;; (-> (the-as (inline-array game-save-tag) v1-0) 0 user-float0)
;; )
;; )
;; (((game-save-elt dialog-volume))
;; (set! (-> *setting-control* user-default dialog-volume)
;; (-> (the-as (inline-array game-save-tag) v1-0) 0 user-float0)
;; )
;; )
(((game-save-elt language))
(set! (-> *setting-control* user-default language)
(the-as language-enum (-> (the-as (inline-array game-save-tag) v1-0) 0 user-uint64))
@@ -1133,16 +1134,16 @@
(the-as int (-> (the-as (inline-array game-save-tag) v1-0) 0 user-uint64))
)
)
(((game-save-elt vibration))
(set! (-> *setting-control* user-default vibration)
(= (-> (the-as (inline-array game-save-tag) v1-0) 0 user-uint64) 1)
)
)
(((game-save-elt subtitle))
(set! (-> *setting-control* user-default subtitle)
(= (-> (the-as (inline-array game-save-tag) v1-0) 0 user-uint64) 1)
)
)
;; (((game-save-elt vibration))
;; (set! (-> *setting-control* user-default vibration)
;; (= (-> (the-as (inline-array game-save-tag) v1-0) 0 user-uint64) 1)
;; )
;; )
;; (((game-save-elt subtitle))
;; (set! (-> *setting-control* user-default subtitle)
;; (= (-> (the-as (inline-array game-save-tag) v1-0) 0 user-uint64) 1)
;; )
;; )
(((game-save-elt camera-stick-dir))
(set! (-> *setting-control* user-default camera-stick-dir)
(= (-> (the-as (inline-array game-save-tag) v1-0) 0 user-uint64) 1)
@@ -1163,6 +1164,7 @@
(the int (-> (the-as (inline-array game-save-tag) v1-0) 0 user-float0))
)
)
(else (format 0 "PC PORT: Skipping setting from game save, its stored in the pc-settings now"))
)
(set! v1-0 (&+
(the-as pointer v1-0)
+7
View File
@@ -101,6 +101,7 @@
;; other
(controller-led-status? symbol)
(speedrunner-mode-custom-bind uint32)
(memcard-subtitles? symbol)
(text-language pc-language) ;; language for game text
)
@@ -161,6 +162,12 @@
)
(else
))
(set! (-> obj memcard-volume-sfx) 0.5)
(set! (-> obj memcard-volume-music) 0.4)
(set! (-> obj memcard-volume-dialog) 0.75)
(set! (-> obj memcard-vibration?) #t)
(set! (-> obj memcard-subtitles?) #f)
0)
(defmethod reset-extra ((obj pc-settings-jak2) (call-handlers symbol))
+6 -2
View File
@@ -314,12 +314,14 @@
;;;; methods
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defmethod initialize ((obj pc-settings-jak2))
"initial initialize method to be run after allocating"
(set! (-> obj music-unlocked) (new 'global 'bit-array (-> *music-player-tracks* length)))
((method-of-type pc-settings initialize) obj)
(set! (-> *setting-control* user-default sfx-volume) (-> obj memcard-volume-sfx))
(set! (-> *setting-control* user-default music-volume) (-> obj memcard-volume-music))
(set! (-> *setting-control* user-default dialog-volume) (-> obj memcard-volume-dialog))
(set! (-> *setting-control* user-default vibration) (-> obj memcard-vibration?))
obj)
(defmethod set-game-setting! ((obj pc-settings-jak2) (setting symbol) (value symbol))
@@ -756,6 +758,7 @@
(("cheats-purchased") (set! (-> obj cheats-purchased) (the-as pc-cheats (file-stream-read-int file))))
(("cheats-unlocked") (set! (-> obj cheats-unlocked) (the-as pc-cheats (file-stream-read-int file))))
(("cheats-backup") (file-stream-read-int file)) ;; TODO - Don't remove this, parsing code can't handle unexpected keys
(("memcard-subtitles?") (set! (-> obj memcard-subtitles?) (file-stream-read-symbol file)))
(("music-unlocked")
(dotimes (i (/ (align64 (-> obj music-unlocked length)) 64))
(bit-array<-int64 (-> obj music-unlocked) (* i 64) (file-stream-read-int file))
@@ -807,6 +810,7 @@
(format file " (cheats-revealed #x~x)~%" (-> obj cheats-revealed))
(format file " (cheats-purchased #x~x)~%" (-> obj cheats-purchased))
(format file " (cheats-unlocked #x~x)~%" (-> obj cheats-unlocked))
(format file " (memcard-subtitles? ~A)~%" (-> obj memcard-subtitles?))
(format file " (music-unlocked")
(dotimes (i (/ (align64 (-> obj music-unlocked length)) 64))
+8 -8
View File
@@ -57,8 +57,8 @@
(set! (-> *progress-state* color-flash-counter) 0)
(set! (-> *progress-state* game-options-item-selected) 0)
(set! (-> *progress-state* game-options-item-picked) #f)
(set! (-> *progress-state* game-options-vibrations) (-> *setting-control* user-default vibration))
(set! (-> *progress-state* game-options-subtitles) (-> *setting-control* user-default subtitle))
(set! (-> *progress-state* game-options-vibrations) (-> *pc-settings* memcard-vibration?))
(set! (-> *progress-state* game-options-subtitles) (-> *pc-settings* memcard-subtitles?))
(set! (-> *progress-state* game-options-language-index)
(the-as int (-> *setting-control* user-default language))
)
@@ -81,7 +81,7 @@
(set! (-> obj sliding-off) 1.0)
(set! (-> obj scanlines-alpha) 0.0)
(set! (-> (the-as menu-on-off-game-vibrations-option (-> *game-options* options 0)) value-to-modify)
(&-> *setting-control* user-default vibration)
(&-> *pc-settings* memcard-vibration?)
)
(set! (-> (the-as menu-on-off-game-subtitles-option (-> *game-options* options 1)) value-to-modify)
(&-> *setting-control* user-default subtitle)
@@ -93,10 +93,10 @@
(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)
(&-> *pc-settings* memcard-vibration?)
)
(set! (-> (the-as menu-on-off-option (-> *game-options-demo* options 0)) value-to-modify)
(&-> *setting-control* user-default vibration)
(&-> *pc-settings* memcard-vibration?)
)
(set! (-> (the-as menu-on-off-option (-> *graphic-options* options 2)) value-to-modify)
(&-> *setting-control* user-default use-progressive-scan)
@@ -105,13 +105,13 @@
(&-> *setting-control* user-default use-progressive-scan)
)
(set! (-> (the-as menu-slider-option (-> *sound-options* options 0)) value-to-modify)
(&-> *setting-control* user-default sfx-volume)
(&-> *pc-settings* memcard-volume-sfx)
)
(set! (-> (the-as menu-slider-option (-> *sound-options* options 1)) value-to-modify)
(&-> *setting-control* user-default music-volume)
(&-> *pc-settings* memcard-volume-music)
)
(set! (-> (the-as menu-slider-option (-> *sound-options* options 2)) value-to-modify)
(&-> *setting-control* user-default dialog-volume)
(&-> *pc-settings* memcard-volume-dialog)
)
(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)