mirror of
https://github.com/open-goal/jak-project
synced 2026-07-31 00:14:38 -04:00
[game] cutscene skipping (#1779)
* split some subtitles * allow cutscene skipping in retail and fix softlock * formatting * make intro skipping work? * citadel sagecage skipping * finalboss sage skipping * quicker quit to title * uk text fixes * fisher cutscene skipping * fix test
This commit is contained in:
@@ -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.")
|
||||
)
|
||||
|
||||
;; -----------------
|
||||
|
||||
@@ -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.")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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"
|
||||
)
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
)
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user