diff --git a/goal_src/jak3/engine/common-obs/airlock.gc b/goal_src/jak3/engine/common-obs/airlock.gc index f855e3984..cc2779338 100644 --- a/goal_src/jak3/engine/common-obs/airlock.gc +++ b/goal_src/jak3/engine/common-obs/airlock.gc @@ -720,7 +720,8 @@ (goto cfg-42) ) (suspend) - (ja :num! (seek! 0.0 (-> self close-speed-multiplier))) + ;; og:preserve-this added speed modifier + (ja :num! (seek! 0.0 (* (get-airlock-close-speed *pc-settings*) (-> self close-speed-multiplier)))) (transform-post) ) (label cfg-42) @@ -887,7 +888,8 @@ ) (rotate-gear! self 65536.0) (suspend) - (ja :num! (seek! (ja-aframe (-> self lock-frame) 0) (-> self pre-open-speed))) + ;; og:preserve-this added speed modifier + (ja :num! (seek! (ja-aframe (-> self lock-frame) 0) (* (get-airlock-speed *pc-settings*) (-> self pre-open-speed)))) (transform-post) ) (when (nonzero? (-> self sound-id)) @@ -917,7 +919,8 @@ ) (rotate-gear! self 65536.0) (suspend) - (ja :num! (seek! (ja-aframe (-> self open-frame) 0) 2.0)) + ;; og:preserve-this added speed modifier + (ja :num! (seek! (ja-aframe (-> self open-frame) 0) (* (get-airlock-speed *pc-settings*) 2.0))) (transform-post) ) (when (nonzero? (-> self sound-id)) @@ -970,7 +973,8 @@ (while (not (ja-max? 0)) (rotate-gear! self 65536.0) (suspend) - (ja :num! (seek!)) + ;; og:preserve-this added speed modifier + (ja :num! (seek! max (get-airlock-speed *pc-settings*))) (transform-post) ) (when (nonzero? (-> self sound-id)) diff --git a/goal_src/jak3/engine/scene/scene.gc b/goal_src/jak3/engine/scene/scene.gc index 8c8682a14..4f3437b25 100644 --- a/goal_src/jak3/engine/scene/scene.gc +++ b/goal_src/jak3/engine/scene/scene.gc @@ -906,7 +906,7 @@ :virtual #t :enter (behavior ((arg0 symbol)) (format 0 "scene-player: skipping scene~%") - (go-virtual release) + (set! (-> self aborted?) #t) (set-time! (-> self state-time)) (if (= (-> *game-info* demo-state) 101) (set-setting! 'audio-language #f 0.0 5) @@ -1158,6 +1158,7 @@ ) ) ) + (not (-> self aborted?)) ) (set-blackout-frames (seconds 0.1)) (suspend) @@ -1234,7 +1235,8 @@ (disable *screen-filter*) (deactivate self) ) - (when (< (-> self scene-index) (+ (-> self scene-list length) -1)) + ;; og:preserve-this there is a bug here. scene-index has already been advanced by this point, so we need to backtrack when checking things + (when (< (#if PC_PORT (1- (-> self scene-index)) (-> self scene-index)) (+ (-> self scene-list length) -1)) (set! (-> self scene-index) (+ (-> self scene-list length) -1)) (scene-player-method-24 self (-> self scene-list (-> self scene-index)) #t) ) @@ -1575,6 +1577,10 @@ ) ) ) + (#when PC_PORT ;; og:preserve-this until overlord2 is done + (backup-load-state-and-set-cmds *load-state* (-> self anim command-list)) + (restore-load-state-and-cleanup *load-state*) + ) (if (and (-> self wait) *target* (focus-test? *target* grabbed)) (go-virtual release) )