diff --git a/goal_src/engine/ambient/ambient.gc b/goal_src/engine/ambient/ambient.gc index 706ebe3892..97e0c5e9a5 100644 --- a/goal_src/engine/ambient/ambient.gc +++ b/goal_src/engine/ambient/ambient.gc @@ -514,8 +514,30 @@ (add-setting! 'music-volume 'rel (-> *setting-control* current music-volume-movie) 0) (add-setting! 'sfx-volume 'rel (-> *setting-control* current sfx-volume-movie) 0) (add-setting! 'dialog-volume 'rel (-> *setting-control* current dialog-volume-hint) 0) - (while (= (current-str-id) s5-2) - (suspend) + ;; PAL patch here + (let ((s5-1 -1) + (s3-1 (-> *display* base-frame-counter)) + (s4-4 (-> *display* base-frame-counter)) + ) + (label cfg-27) + (let ((v1-36 (current-str-pos gp-2))) + (when (< s5-1 v1-36) + (if (> v1-36 0) + (set! s5-1 v1-36) + ) + (set! s3-1 (-> *display* base-frame-counter)) + ) + (when (not (and (or (< v1-36 0) + (>= (- (-> *display* base-frame-counter) s3-1) (seconds 3)) + (>= (- (-> *display* base-frame-counter) s4-4) (seconds 60)) + ) + *sound-player-enable* + ) + ) + (suspend) + (goto cfg-27) + ) + ) ) ) (else @@ -578,8 +600,30 @@ (add-setting! 'music-volume 'rel (-> *setting-control* current music-volume-movie) 0) (add-setting! 'sfx-volume 'rel (-> *setting-control* current sfx-volume-movie) 0) ) - (while (= (current-str-id) (-> self sound-id)) - (suspend) + ;; PAL patch here + (let ((gp-1 -1) + (s4-4 (-> *display* base-frame-counter)) + (s5-4 (-> *display* base-frame-counter)) + ) + (label cfg-19) + (let ((v1-24 (current-str-pos (-> self sound-id)))) + (when (< gp-1 v1-24) + (if (> v1-24 0) + (set! gp-1 v1-24) + ) + (set! s4-4 (-> *display* base-frame-counter)) + ) + (when (not (and (or (< v1-24 0) + (>= (- (-> *display* base-frame-counter) s4-4) (seconds 3)) + (>= (- (-> *display* base-frame-counter) s5-4) (seconds 60)) + ) + *sound-player-enable* + ) + ) + (suspend) + (goto cfg-19) + ) + ) ) ) (else