jak3: airlock speed hacks + make cutscenes skip properly (#3543)

This commit is contained in:
ManDude 2024-06-02 16:03:58 +02:00 committed by GitHub
parent f586cb9af2
commit 39786482a1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 16 additions and 6 deletions

View file

@ -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))

View file

@ -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)
)