diff --git a/game/assets/jak1/subtitle/game_subtitle_en-uk.gd b/game/assets/jak1/subtitle/game_subtitle_en-uk.gd index d299c27d32..4ceafe613e 100644 --- a/game/assets/jak1/subtitle/game_subtitle_en-uk.gd +++ b/game/assets/jak1/subtitle/game_subtitle_en-uk.gd @@ -43,8 +43,9 @@ ) ("sagevb25" :hint #x90c - (3 "SAGE" "GOOD WORK, THE BLUE ECO CAUSED THE DOOR TO OPEN. WITH BLUE ECO, YOU CAN BREATHE") - (365 "SAGE" "ENERGY INTO ALL KINDS OF PRECURSOR ARTEFACTS THAT HAVE LAIN DORMANT FOR YEARS.") + (3 "SAGE" "GOOD WORK, THE BLUE ECO CAUSED THE DOOR TO OPEN.") + (250 "SAGE" "WITH BLUE ECO, YOU CAN BREATHE ENERGY INTO ALL KINDS") + (476 "SAGE" "OF PRECURSOR ARTEFACTS THAT HAVE LAIN DORMANT FOR YEARS.") ) ;; ----------------- @@ -56,10 +57,12 @@ ;; ----------------- ("bird-lady-beach-resolution" - (30 "BIRDWATCHER" "OH MY, I HOPE THE POOR DEAR'S OKAY. HERE'S A POWER CELL FOR YOUR VALOUR.") - (243) + (30 "BIRDWATCHER" "OH MY, I HOPE THE POOR DEAR'S OKAY.") + (148) + (157 "BIRDWATCHER" "HERE'S A POWER CELL FOR YOUR VALOUR.") + (237) (306 "FLUT FLUT" "MAMA!") - (354) + (351) (406 "FLUT FLUT" "MAMA!") (430 "DAXTER" "OH NO! NO, NO, NO, NO!") (533) @@ -78,14 +81,18 @@ (245) (251 "DAXTER" "HUH! YOU DON'T LOOK SO GOOD YOURSELF, LADY!") (328) - (331 "BIRDWATCHER" "OH, SORRY. I THOUGHT YOU WERE A SPOTTED ORANGE-BELLIED RAIN FRAY.") - (451) - (454 "BIRDWATCHER" "YOU KNOW, YESTERDAY I SAW SOME TERRIBLY VICIOUS CREATURES") - (578 "BIRDWATCHER" "CAPTURE A MOTHER FLUT FLUT NEAR THE BEACH.") + (331 "BIRDWATCHER" "OH, SORRY. I THOUGHT YOU WERE A SPOTTED") + (408 "BIRDWATCHER" "ORANGE-BELLIED RAIN FRAY.") + (454) + (457 "BIRDWATCHER" "YOU KNOW, YESTERDAY I SAW SOME") + (536 "BIRDWATCHER" "TERRIBLY VICIOUS CREATURES CAPTURE") + (590 "BIRDWATCHER" "A MOTHER FLUT FLUT NEAR THE BEACH.") (648) - (654 :offscreen "BIRDWATCHER" "NOW THERE'S THIS POOR LITTLE ORPHAN EGG SITTING IN A NEST AT THE TOP OF THE CLIFF") - (796 :offscreen "BIRDWATCHER" "AND I CAN'T GET TO IT. IF YOU COULD CLIMB UP THERE AND PUSH IT OFF, I'VE PILED") - (945 :offscreen "BIRDWATCHER" "SOME HAY DOWN AT THE BASE TO CATCH IT SAFELY.") + (654 :offscreen "BIRDWATCHER" "NOW THERE'S THIS POOR LITTLE ORPHAN EGG") + (730 :offscreen "BIRDWATCHER" "SITTING IN A NEST AT THE TOP OF THE CLIFF") + (794 :offscreen "BIRDWATCHER" "AND I CAN'T GET TO IT.") + (854 :offscreen "BIRDWATCHER" "IF YOU COULD CLIMB UP THERE AND PUSH IT OFF, I'VE PILED") + (946 :offscreen "BIRDWATCHER" "SOME HAY DOWN AT THE BASE TO CATCH IT SAFELY.") (1041) (1044 "BIRDWATCHER" "DO AN OLD LADY A FAVOUR, AND I'LL GIVE YOU A POWER CELL.") (1198) @@ -108,7 +115,7 @@ ;; ----------------- ("sage-bluehut-introduction-prec-arm" - (0 "SAGE" "WELL, I HOPE YOU'VE PACKED A LUNCH.'CAUSE WE'RE JUST GETTING STARTED.") + (0 "SAGE" "WELL, I HOPE YOU'VE PACKED A LUNCH. 'CAUSE WE'RE JUST GETTING STARTED.") (130) (140 "SAGE" "ACCORDING TO THE BLUE SAGE'S NOTES,") (208 "SAGE" "LURKERS HAVE INFESTED THE SWAMP ACROSS THE BAY.") @@ -244,10 +251,11 @@ (418) (441 "OLD MAN" "HA HA HA HA HA!") (500) - (528 "OLD MAN" "I'D HARDLY CALL IT \"STRUGGLE.\" WOULD YOU, DEAR SISTER?") + (528 "OLD MAN" "I'D HARDLY CALL IT \"STRUGGLE.\"") + (618 "OLD MAN" "WOULD YOU, DEAR SISTER?") (672 "WOMAN" "CERTAINLY NOT. THE RED SAGE GAVE UP WITH SO LITTLE EFFORT.") - (799) - (806 "WOMAN" "NO FUN AT ALL.") + (800) + (805 "WOMAN" "NO FUN AT ALL.") (860) (884 "SAGE" "GOL? IS THAT YOU?") (965) @@ -265,7 +273,8 @@ (1996 "GOL" "WE'VE LEARNED ITS SECRETS, AND NOW WE CAN RESHAPE THE WORLD TO OUR LIKING.") (2212) (2223 "SAGE" "YOU CAN'T CONTROL DARK ECO BY ITSELF! EVEN THE PRECURSORS COULDN'T-") - (2357 "MAIA" "UNTIL NOW, WE'VE HAD TO SCRAPE BY WITH WHAT LITTLE DARK ECO WE COULD FIND NEAR THE SURFACE.") + (2357 "MAIA" "UNTIL NOW, WE'VE HAD TO SCRAPE BY WITH WHAT LITTLE DARK ECO") + (2452 "MAIA" "WE COULD FIND NEAR THE SURFACE.") (2508) (2520 "MAIA" "BUT SOON, WE WILL HAVE ACCESS TO THE VAST STORES") (2611 "MAIA" "OF DARK ECO HIDDEN DEEP UNDERGROUND.") @@ -275,9 +284,10 @@ (2841 "GOL" "THEY WILL BE OPENED, AND ALL THE DARK ECO IN THE WORLD WILL BE OURS!") (3028) (3034 "SAGE" "BUT THAT'S IMPOSSIBLE! ONLY A PRECURSOR ROBOT-") - (3128 "MAIA" "OH, DON'T LOOK SO UPSET, SAMOS. WE'VE GOT BIG PLANS FOR YOU.") + (3128 "MAIA" "OH, DON'T LOOK SO UPSET, SAMOS.") + (3210 "MAIA" "WE'VE GOT BIG PLANS FOR YOU.") (3300) - (3303 :offscreen "MAIA" "AH HA HA HA HA HA HA! AH...") + (3303 :offscreen "MAIA" "AH HA HA HA HA HA HA! AHH...") (3460) (3495 "DAXTER" "WAIT A MINUTE!") (3538) @@ -290,13 +300,15 @@ (3822) (3828 "SAGE" "WE MAY ALL BE DOOMED.") (3897) - (3903 "SAGE" "IF THEY OPEN THE SILOS, THE DARK ECO WILL TWIST AND DESTROY EVERYTHING IT TOUCHES!") + (3903 "SAGE" "IF THEY OPEN THE SILOS, THE DARK ECO WILL") + (3995 "SAGE" "TWIST AND DESTROY EVERYTHING IT TOUCHES!") (4080 "SAGE" "WE SIMPLY MUST GET TO THEIR CITADEL, TO STOP THEM!") (4189) - (4192 "KEIRA" "THE FASTEST WAY THERE IS THROUGH THE LAVA TUBE AT THE BOTTOM OF THIS CRATER.") + (4192 "KEIRA" "THE FASTEST WAY THERE IS THROUGH THE LAVA TUBE") + (4276 "KEIRA" "AT THE BOTTOM OF THIS CRATER.") (4316) (4324 "KEIRA" "A FEW MORE POWER CELLS, AND YOUR ZOOMER'S HEAT SHIELD") - (4400 "KEIRA" "SHOULD GET YOU ACROSS THE LAVA SAFELY.") + (4398 "KEIRA" "SHOULD GET YOU ACROSS THE LAVA SAFELY.") (4460) (4464 "SAGE" "ALL RIGHT, MY BOY. YOU KNOW WHAT TO DO.") (4545 "SAGE" "TAKE THE FLEABAG AND GO ROUND UP MORE POWER CELLS.") @@ -327,18 +339,21 @@ ;; ----------------- ("green-sagecage-introduction" - (130 "SAGE" "IT'S ABOUT TIME YOU TWO DECIDED TO SHOW UP!") - (207 "DAXTER" "NICE TO SEE YOU TOO! DO THEY HAVE YOU MOPPING THE FLOORS NOW?") + (128 "SAGE" "IT'S ABOUT TIME YOU TWO DECIDED TO SHOW UP!") + (207 "DAXTER" "NICE TO SEE YOU TOO!") + (269) + (275 "DAXTER" "DO THEY HAVE YOU MOPPING THE FLOORS NOW?") (343 "SAGE" "THERE'S NO TIME FOR JOKES, DAXTER. GOL AND MAIA KIDNAPPED US") (477 "SAGE" "TO SAP OUR ENERGIES TO POWER THEIR ABOMINABLE MACHINE.") (574) - (584 :offscreen "SAGE" "IT APPEARS THEY HAVE COMBINED THE FUNCTIONAL REMAINS OF A PRECURSOR ROBOT") - (710 :offscreen "SAGE" "WITH SCAVENGED ARTEFACTS FROM ACROSS THE LAND.") + (583 :offscreen "SAGE" "IT APPEARS THEY HAVE COMBINED THE FUNCTIONAL REMAINS OF A PRECURSOR ROBOT") + (709 :offscreen "SAGE" "WITH SCAVENGED ARTEFACTS FROM ACROSS THE LAND.") (800) (816 :offscreen "SAGE" "THEN THEY ADDED A FEW DIABOLICAL ADDITIONS OF THEIR OWN,") (926 :offscreen "SAGE" "CREATING THE ONE THING CAPABLE OF OPENING THE DARK ECO SILOS.") (1060 "SAGE" "IF YOU CAN FREE THE FOUR OF US, WE CAN USE OUR COMBINED POWERS") - (1180 "SAGE" "TO BREAK THE FORCE SHIELD SURROUNDING THE ROBOT, BEFORE THEY USE IT TO DESTROY THE WORLD.") + (1180 "SAGE" "TO BREAK THE FORCE SHIELD SURROUNDING THE ROBOT") + (1265 "SAGE" "BEFORE THEY USE IT TO DESTROY THE WORLD.") ) ;; ----------------- diff --git a/game/assets/jak1/subtitle/game_subtitle_en.gd b/game/assets/jak1/subtitle/game_subtitle_en.gd index aa78cb1d20..f91d6c0f5f 100644 --- a/game/assets/jak1/subtitle/game_subtitle_en.gd +++ b/game/assets/jak1/subtitle/game_subtitle_en.gd @@ -379,16 +379,21 @@ (640 "SAGE" "ARTIFACTS WHEN YOU GET NEAR THEM.") ) -("sagevb23" :hint #x90a (0 "SAGE" "NOTICE HOW EACH BLUE ECO CLUSTER YOU PICK UP INCREASES THE TIME YOU CAN USE ITS POWER.")) +("sagevb23" :hint #x90a + (0 "SAGE" "NOTICE HOW EACH BLUE ECO CLUSTER YOU PICK UP") + (199 "SAGE" "INCREASES THE TIME YOU CAN USE ITS POWER.") + ) ("sagevb24" :hint #x90b - (3 "SAGE" "THIS IS A PRECURSOR DOOR. IT CAN ONLY BE OPENED BY APPROACHING THE DOOR") + (3 "SAGE" "THIS IS A PRECURSOR DOOR.") + (169 "SAGE" "IT CAN ONLY BE OPENED BY APPROACHING THE DOOR") (357 "SAGE" "WHILE CHANNELLING BLUE ECO THROUGH YOUR BODY.") ) ("sagevb25" :hint #x90c - (3 "SAGE" "GOOD WORK, THE BLUE ECO CAUSED THE DOOR TO OPEN. WITH BLUE ECO, YOU CAN BREATHE") - (365 "SAGE" "ENERGY INTO ALL KINDS OF PRECURSOR ARTIFACTS THAT HAVE LAIN DORMANT FOR YEARS.") + (3 "SAGE" "GOOD WORK, THE BLUE ECO CAUSED THE DOOR TO OPEN.") + (250 "SAGE" "WITH BLUE ECO, YOU CAN BREATHE ENERGY INTO ALL KINDS") + (476 "SAGE" "OF PRECURSOR ARTIFACTS THAT HAVE LAIN DORMANT FOR YEARS.") ) ("sagevb26" :hint #x90d (0 "SAGE" "USE YOUR GOGGLES TO VIEW YOUR PROGRESS DURING THE ADVENTURE.")) @@ -1456,7 +1461,7 @@ ) ("sage-bluehut-introduction-prec-arm" - (0 "SAGE" "WELL, I HOPE YOU'VE PACKED A LUNCH.'CAUSE WE'RE JUST GETTING STARTED.") + (0 "SAGE" "WELL, I HOPE YOU'VE PACKED A LUNCH. 'CAUSE WE'RE JUST GETTING STARTED.") (130) (140 "SAGE" "ACCORDING TO THE BLUE SAGE'S NOTES,") (208 "SAGE" "LURKERS HAVE INFESTED THE SWAMP ACROSS THE BAY.") diff --git a/goal_src/jak1/engine/common-obs/process-taskable.gc b/goal_src/jak1/engine/common-obs/process-taskable.gc index c5b27ed117..f10e702ed7 100644 --- a/goal_src/jak1/engine/common-obs/process-taskable.gc +++ b/goal_src/jak1/engine/common-obs/process-taskable.gc @@ -432,7 +432,11 @@ (if (-> self blend-on-exit) (set! (-> self blend-on-exit) arg0) ) - (if (and *debug-segment* *cheat-mode*) + ;; allow cutscene skipping on pc port + ;; save a sort of timestamp just so we know whether it took at least 1 frame + (#when PC_PORT + (define *play-anim-time* (current-time))) + (if (#if PC_PORT #t (and *debug-segment* *cheat-mode*)) (ja-play-spooled-anim (the-as spool-anim arg1) arg0 @@ -446,6 +450,8 @@ (the-as (function process-drawable symbol) false-func) ) ) + (#when PC_PORT + (if (= (current-time) *play-anim-time*) (suspend))) (remove-setting! 'music-volume) (remove-setting! 'sfx-volume) (remove-setting! 'ambient-volume) diff --git a/goal_src/jak1/engine/ui/progress/progress.gc b/goal_src/jak1/engine/ui/progress/progress.gc index df1e55b552..57f3c8757d 100644 --- a/goal_src/jak1/engine/ui/progress/progress.gc +++ b/goal_src/jak1/engine/ui/progress/progress.gc @@ -1728,19 +1728,20 @@ (sound-volume-off) (set! (-> *game-info* mode) 'play) ;; Start a new game differently if speedrunning mode is active - (cond ((= (-> *pc-settings* speedrunner-mode?) #t) - ;; spawn at the warp gate - (initialize! *game-info* 'game (the-as game-save #f) "game-start") - ;; disable hints (this seems to be overriden by your slot 1 save though) - (set! (-> *setting-control* default play-hints) #f) - ;; skip intro cutscene - (close-specific-task! (game-task intro) (task-status need-resolution)) - ;; enable auto saving by default - (set! (-> *setting-control* default auto-save) #t)) - ;; start the game normally - (else - (initialize! *game-info* 'game (the-as game-save #f) "intro-start") - (set! (-> *setting-control* default auto-save) gp-1)))) + (cond + ((= (-> *pc-settings* speedrunner-mode?) #t) + ;; spawn at the warp gate + (initialize! *game-info* 'game (the-as game-save #f) "game-start") + ;; disable hints (this seems to be overriden by your slot 1 save though) + (set! (-> *setting-control* default play-hints) #f) + ;; skip intro cutscene + (close-specific-task! (game-task intro) (task-status need-resolution)) + ;; enable auto saving by default + (set! (-> *setting-control* default auto-save) #t)) + ;; start the game normally + (else + (initialize! *game-info* 'game (the-as game-save #f) "intro-start") + (set! (-> *setting-control* default auto-save) gp-1)))) (set-master-mode 'game)) (else (set! v0-0 (the-as none -1)) diff --git a/goal_src/jak1/game.gp b/goal_src/jak1/game.gp index d8ef1ef291..f9b07cda01 100644 --- a/goal_src/jak1/game.gp +++ b/goal_src/jak1/game.gp @@ -1599,7 +1599,9 @@ (goal-src-sequence "levels/title/" :deps ;; no idea what these depend on, make it depend on the whole engine - ("$OUT/obj/ticky.o") + ("$OUT/obj/ticky.o" + "$OUT/obj/progress-pc.o" + ) "title-obs.gc" ) diff --git a/goal_src/jak1/levels/citadel/citadel-sages.gc b/goal_src/jak1/levels/citadel/citadel-sages.gc index baf146e07b..88d18f1ffb 100644 --- a/goal_src/jak1/levels/citadel/citadel-sages.gc +++ b/goal_src/jak1/levels/citadel/citadel-sages.gc @@ -1066,6 +1066,15 @@ ) ) ) + (#when PC_PORT + (when (and (= (get-response (-> self query)) 'no) (or (not (= *cheat-mode* 'debug)) (not (cpad-hold? 0 r1))) (= (-> self which-movie) 1)) + (format #t "skipped green-sagecage~%") + (start 'play (get-continue-by-name *game-info* "citadel-elevator")) + (set! (-> self draw bounds w) 10240.0) + ((-> (method-of-type process-taskable play-anim) exit)) + (set! (-> self which-movie) 2) + (return #f) + )) (cond ((= (-> self which-movie) 1) (set-blackout-frames (seconds 100)) diff --git a/goal_src/jak1/levels/finalboss/robotboss.gc b/goal_src/jak1/levels/finalboss/robotboss.gc index e93493b335..04e80110a6 100644 --- a/goal_src/jak1/levels/finalboss/robotboss.gc +++ b/goal_src/jak1/levels/finalboss/robotboss.gc @@ -804,6 +804,10 @@ (while (movie?) (suspend) ) + (#when PC_PORT + (-! (-> self state-time) (seconds 0.95)) + ((-> self state trans)) + ) (let ((a0-18 (handle->process gp-1))) (if a0-18 (deactivate a0-18) diff --git a/goal_src/jak1/levels/finalboss/sage-finalboss.gc b/goal_src/jak1/levels/finalboss/sage-finalboss.gc index 65b6aefae2..7618a852ed 100644 --- a/goal_src/jak1/levels/finalboss/sage-finalboss.gc +++ b/goal_src/jak1/levels/finalboss/sage-finalboss.gc @@ -600,6 +600,16 @@ (none) ) :exit (behavior () + (#when PC_PORT + (when (and (= (get-response (-> self query)) 'no) (or (not (= *cheat-mode* 'debug)) (not (cpad-hold? 0 r1)))) + (case (current-status (-> self tasks)) + (((task-status need-reminder-a)) + (format #t "sage finalboss exit in status ~S~%" (task-status->string (current-status (-> self tasks)))) + (close-specific-task! (game-task finalboss-movies) (task-status need-reminder-a)) + (set! (-> self kick-the-credits) #t) + ) + )) + ) (when (= (current-status (-> self tasks)) (task-status invalid)) (cond ((not (-> self credits-played)) diff --git a/goal_src/jak1/levels/jungle/fisher.gc b/goal_src/jak1/levels/jungle/fisher.gc index c9e625998d..1d698af5da 100644 --- a/goal_src/jak1/levels/jungle/fisher.gc +++ b/goal_src/jak1/levels/jungle/fisher.gc @@ -1636,6 +1636,43 @@ ) ) +(#when PC_PORT +;; pc port needs its own implementation of play-anim for cutscene skipping +(define *fisher-camera-backup-fov* (degrees 46.2356)) +(define *fisher-camera-backup-trans* (new 'static 'vector :x 1095664.2500 :y 15926.4003 :z -945203.3750 :w 1.0000)) +(define *fisher-camera-backup-matrix* (new 'static 'matrix :vector (new 'static 'inline-array vector 4 + (new 'static 'vector :x -0.8677 :y -0.0000 :z 0.4969) + (new 'static 'vector :x -0.0081 :y 0.9998 :z -0.0141) + (new 'static 'vector :x -0.4968 :y -0.0163 :z -0.8676) + (new 'static 'vector :w 1.0) + ))) +(define *fisher-camera-use-backup* #f) + +(defstate play-anim (fisher) + :virtual #t + + :enter (behavior () + (set! *fisher-camera-use-backup* #f) + ((-> (method-of-type process-taskable play-anim) enter)) + 0 + (none)) + + :exit (behavior () + (set! *fisher-camera-use-backup* (and (= (get-response (-> self query)) 'no) (or (not (= *cheat-mode* 'debug)) (not (cpad-hold? 0 r1))) + (-> self training))) + (set! (-> self cur-trans-hook) (lambda () (when *fisher-camera-use-backup* + (set! (-> *camera-other-fov* data) *fisher-camera-backup-fov*) + (vector-copy! *camera-other-trans* *fisher-camera-backup-trans*) + (matrix-copy! *camera-other-matrix* *fisher-camera-backup-matrix*) + ) + (none))) + ((-> (method-of-type process-taskable play-anim) exit)) + 0 + (none)) + + ) +) + (defstate query (fisher) :virtual #t :enter (behavior () @@ -1650,6 +1687,12 @@ ) (none) ) + :exit (behavior () + (#when PC_PORT + ;; needed for cutscene skipping + (set! (-> self cur-trans-hook) nothing) + ) + ((-> (method-of-type process-taskable play-anim) exit))) ) (defmethod TODO-RENAME-43 fisher ((obj fisher)) diff --git a/goal_src/jak1/levels/misty/sidekick-human.gc b/goal_src/jak1/levels/misty/sidekick-human.gc index 3c27187cd5..97bf827da5 100644 --- a/goal_src/jak1/levels/misty/sidekick-human.gc +++ b/goal_src/jak1/levels/misty/sidekick-human.gc @@ -1485,6 +1485,15 @@ ) ) ((-> (method-of-type process-taskable play-anim) exit)) + (#when PC_PORT + ;; extra stuff when skipping cutscene + (when (and (= (get-response (-> self query)) 'no) (or (not (= *cheat-mode* 'debug)) (not (cpad-hold? 0 r1)))) + (close-specific-task! (game-task intro) (task-status need-resolution)) + (start 'play (get-continue-by-name *game-info* "game-start")) + (set-blackout-frames (seconds 0.1)) + (return #f) + ) + ) (let ((gp-1 (entity-by-name "sequenceC-1"))) (set-blackout-frames (seconds 20)) (send-event *camera* 'clear-entity) @@ -1666,6 +1675,15 @@ ) ) ((-> (method-of-type process-taskable play-anim) exit)) + (#when PC_PORT + ;; extra stuff when skipping cutscene + (when (and (= (get-response (-> self query)) 'no) (or (not (= *cheat-mode* 'debug)) (not (cpad-hold? 0 r1)))) + (close-specific-task! (game-task intro) (task-status need-resolution)) + (start 'play (get-continue-by-name *game-info* "game-start")) + (set-blackout-frames (seconds 0.1)) + (return #f) + ) + ) (start 'play (get-continue-by-name *game-info* "village1-intro")) (none) ) diff --git a/goal_src/jak1/levels/title/title-obs.gc b/goal_src/jak1/levels/title/title-obs.gc index c88fb2c5d2..ae4f65fd7f 100644 --- a/goal_src/jak1/levels/title/title-obs.gc +++ b/goal_src/jak1/levels/title/title-obs.gc @@ -490,15 +490,16 @@ ) :trans (behavior () ((-> (method-of-type logo startup) trans)) - (if (and (or *debug-segment* PC_PORT) - (cpad-pressed? 0 start circle x) - (member (level-status *level* 'village1) '(loaded active)) - ) + (if (and *debug-segment* + (cpad-pressed? 0 start circle x) + (member (level-status *level* 'village1) '(loaded active)) + ) (set-setting! 'bg-a 'abs 1.0 0) ) (when (and (= (-> *setting-control* current bg-a) 1.0) (and (member (level-status *level* 'village1) '(active loaded)) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) + ;; i think we can forgo the time check here... + (#if PC_PORT #t (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3))) (let ((gp-2 (level-get *level* 'village1))) (when gp-2 (load-state-want-levels 'title 'village1) @@ -556,12 +557,27 @@ (send-event (handle->process (-> self sidekick)) 'origin-joint-index 6) (set! (-> self anim) (-> self next-anim)) (set! (-> self next-anim) (new 'static 'spool-anim :name "logo-intro" :index 5 :parts 3 :command-list '())) - (ja-play-spooled-anim - (-> self anim) - (the-as art-joint-anim #f) - (the-as art-joint-anim #f) - (the-as (function process-drawable symbol) false-func) - ) + (#cond + (PC_PORT + (cond + (*quit-to-title* + (set! *quit-to-title* #f)) + (else + (ja-play-spooled-anim + (-> self anim) + (the-as art-joint-anim #f) + (the-as art-joint-anim #f) + (the-as (function process-drawable symbol) false-func) + )) + )) + (#t + (ja-play-spooled-anim + (-> self anim) + (the-as art-joint-anim #f) + (the-as art-joint-anim #f) + (the-as (function process-drawable symbol) false-func) + ) + )) (set! (-> self done?) #t) (set-setting! 'bg-a 'abs 1.0 0) (anim-loop) diff --git a/goal_src/jak1/levels/village1/sage.gc b/goal_src/jak1/levels/village1/sage.gc index cf8be68b9e..bb371eb984 100644 --- a/goal_src/jak1/levels/village1/sage.gc +++ b/goal_src/jak1/levels/village1/sage.gc @@ -506,6 +506,16 @@ ) ) ((-> (method-of-type process-taskable play-anim) exit)) + (#when PC_PORT + ;; extra stuff when skipping cutscene + (when (and (= (get-response (-> self query)) 'no) (or (not (= *cheat-mode* 'debug)) (not (cpad-hold? 0 r1))) + (= (current-task (-> self tasks)) (game-task intro))) + (close-specific-task! (game-task intro) (task-status need-resolution)) + (start 'play (get-continue-by-name *game-info* "game-start")) + (set-blackout-frames (seconds 0.1)) + (return #f) + ) + ) (case (get-task-status (game-task intro)) (((task-status need-resolution)) (remove-setting! 'music-volume-movie) diff --git a/goal_src/jak1/levels/village1/sequence-a-village1.gc b/goal_src/jak1/levels/village1/sequence-a-village1.gc index 5f3a346a1b..cb63f64211 100644 --- a/goal_src/jak1/levels/village1/sequence-a-village1.gc +++ b/goal_src/jak1/levels/village1/sequence-a-village1.gc @@ -301,6 +301,18 @@ ) ) ((-> (method-of-type process-taskable play-anim) exit)) + (#when PC_PORT + ;; extra stuff when skipping cutscene + (when (and (= (get-response (-> self query)) 'no) (or (not (= *cheat-mode* 'debug)) (not (cpad-hold? 0 r1)))) + (close-specific-task! (game-task intro) (task-status need-resolution)) + (start 'play (get-continue-by-name *game-info* "game-start")) + (set-blackout-frames (seconds 0.1)) + (if (nonzero? (-> self part)) + (kill-and-free-particles (-> self part)) + ) + (return #f) + ) + ) (let ((gp-0 (entity-by-name "sequenceB-1"))) (set-blackout-frames (seconds 20)) (send-event *camera* 'clear-entity) @@ -315,7 +327,11 @@ (none) ) :trans (behavior () - (spool-push *art-control* "sage-intro-sequence-b" 0 self -1.0) + ;; yeah they messed up a little bit here + (#if PC_PORT + (spool-push *art-control* "sidekick-human-intro-sequence-b" 0 self -1.0) + (spool-push *art-control* "sage-intro-sequence-b" 0 self -1.0) + ) ((-> (method-of-type process-taskable play-anim) trans)) (none) ) diff --git a/goal_src/jak1/pc/progress-pc.gc b/goal_src/jak1/pc/progress-pc.gc index 3a59269c7a..e7134b63be 100644 --- a/goal_src/jak1/pc/progress-pc.gc +++ b/goal_src/jak1/pc/progress-pc.gc @@ -52,6 +52,10 @@ (1+! (-> *progress-scroll* start-index)))) +;; used in title logo +(define *quit-to-title* #f) + + ;; ############################ ;; CAROUSELL STUFF ;; ############################ @@ -1630,6 +1634,7 @@ (((progress-screen quit)) (cond ((-> *progress-state* yes-no-choice) + (set! *quit-to-title* #t) (sound-play "start-options") (sound-volume-off) (set! (-> *game-info* mode) 'play)