mirror of
https://github.com/open-goal/jak-project
synced 2026-08-21 23:00:45 -04:00
fix more orb softlocks (#2767)
Fixes orb softlocks during races and other side missions. The side mission tasks will now not count as completed until the precursor orb has been picked up. Races will not let you advance (or even pause the game) until the precursor orb has been picked up.
This commit is contained in:
@@ -1790,6 +1790,7 @@
|
||||
)
|
||||
#f
|
||||
(label cfg-20)
|
||||
;; unnecessary - the task manager can take care of this
|
||||
(task-node-close! (game-task-node city-burning-bush-shuttle-1-resolution))
|
||||
(none)
|
||||
)
|
||||
|
||||
@@ -1681,7 +1681,7 @@
|
||||
:flags #xa
|
||||
:speech #xbc
|
||||
:neg #x1
|
||||
:on-close '(birth-pickup #f skill FACT_SUPER_SKILL_INC flags (suck-in))
|
||||
:on-close #f ;; '(birth-pickup #f skill FACT_SUPER_SKILL_INC flags (suck-in)) ;; patched elsewhere
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "ds163"
|
||||
@@ -2513,7 +2513,7 @@
|
||||
:flags #xa
|
||||
:speech #x14c
|
||||
:neg #x1
|
||||
:on-close '(birth-pickup #f skill FACT_SUPER_SKILL_INC flags (suck-in))
|
||||
:on-close #f ;; '(birth-pickup #f skill FACT_SUPER_SKILL_INC flags (suck-in)) ;; patched elsewhere
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "bb03int"
|
||||
@@ -2537,7 +2537,7 @@
|
||||
:flags #xa
|
||||
:speech #x14f
|
||||
:neg #x1
|
||||
:on-close '(birth-pickup #f skill FACT_SUPER_SKILL_INC flags (suck-in))
|
||||
:on-close #f ;; '(birth-pickup #f skill FACT_SUPER_SKILL_INC flags (suck-in)) ;; patched elsewhere
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "bb05int"
|
||||
@@ -2561,7 +2561,7 @@
|
||||
:flags #xa
|
||||
:speech #x152
|
||||
:neg #x1
|
||||
:on-close '(birth-pickup #f skill FACT_SUPER_SKILL_INC flags (suck-in))
|
||||
:on-close #f ;; '(birth-pickup #f skill FACT_SUPER_SKILL_INC flags (suck-in)) ;; patched elsewhere
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "bb07int"
|
||||
@@ -2585,7 +2585,7 @@
|
||||
:flags #xa
|
||||
:speech #x155
|
||||
:neg #x1
|
||||
:on-close '(birth-pickup #f skill FACT_SUPER_SKILL_INC flags (suck-in))
|
||||
:on-close #f ;; '(birth-pickup #f skill FACT_SUPER_SKILL_INC flags (suck-in)) ;; patched elsewhere
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "bb08int"
|
||||
@@ -2609,7 +2609,7 @@
|
||||
:flags #xa
|
||||
:speech #x158
|
||||
:neg #x1
|
||||
:on-close '(birth-pickup #f skill FACT_SUPER_SKILL_INC flags (suck-in))
|
||||
:on-close #f ;; '(birth-pickup #f skill FACT_SUPER_SKILL_INC flags (suck-in)) ;; patched elsewhere
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "bb10int"
|
||||
@@ -2657,7 +2657,7 @@
|
||||
:flags #xa
|
||||
:speech #x15e
|
||||
:neg #x1
|
||||
:on-close '(birth-pickup #f skill FACT_SUPER_SKILL_INC flags (suck-in))
|
||||
:on-close #f ;; '(birth-pickup #f skill FACT_SUPER_SKILL_INC flags (suck-in)) ;; patched elsewhere
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "bb20int"
|
||||
@@ -2681,7 +2681,7 @@
|
||||
:flags #xa
|
||||
:speech #x161
|
||||
:neg #x1
|
||||
:on-close '(birth-pickup #f skill FACT_SUPER_SKILL_INC flags (suck-in))
|
||||
:on-close #f ;; '(birth-pickup #f skill FACT_SUPER_SKILL_INC flags (suck-in)) ;; patched elsewhere
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "bb21fail"
|
||||
@@ -2801,7 +2801,7 @@
|
||||
:flags #xa
|
||||
:speech #x170
|
||||
:neg #x1
|
||||
:on-close '(birth-pickup #f skill FACT_SUPER_SKILL_INC flags (suck-in))
|
||||
:on-close #f ;; '(birth-pickup #f skill FACT_SUPER_SKILL_INC flags (suck-in)) ;; patched elsewhere
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "cityv153"
|
||||
@@ -3512,7 +3512,7 @@
|
||||
:flags #xa
|
||||
:speech #x1cd
|
||||
:neg #x1
|
||||
:on-close '(birth-pickup #f skill FACT_SUPER_SKILL_INC flags (suck-in))
|
||||
:on-close #f ;; '(birth-pickup #f skill FACT_SUPER_SKILL_INC flags (suck-in)) ;; patched elsewhere
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "krew004"
|
||||
|
||||
@@ -9917,7 +9917,7 @@
|
||||
:event-hook #f
|
||||
:final-node (game-task-node city-burning-bush-ring-1-resolution)
|
||||
:index 1
|
||||
:on-complete '(talker-spawn "bb01win")
|
||||
:on-complete '(begin (talker-spawn "bb01win") (apply ,(lambda () (send-event *target* 'get-pickup (pickup-type skill) (-> *FACT-bank* super-skill-inc))))) ;; patched
|
||||
:on-fail #f
|
||||
)
|
||||
:borrow '((ctywide 0 lbbush display))
|
||||
@@ -10287,7 +10287,7 @@
|
||||
:event-hook #f
|
||||
:final-node (game-task-node city-burning-bush-collection-1-resolution)
|
||||
:index 1
|
||||
:on-complete '(talker-spawn "bb19win")
|
||||
:on-complete '(begin (talker-spawn "bb19win") (apply ,(lambda () (send-event *target* 'get-pickup (pickup-type skill) (-> *FACT-bank* super-skill-inc))))) ;; patched
|
||||
:on-fail #f
|
||||
)
|
||||
:borrow '((ctywide 0 lbbush display))
|
||||
@@ -10363,7 +10363,7 @@
|
||||
:fail-hook #f
|
||||
:event-hook #f
|
||||
:final-node (game-task-node city-burning-bush-racepoint-1-resolution)
|
||||
:on-complete '(talker-spawn "bb14win")
|
||||
:on-complete '(begin (talker-spawn "bb14win") (apply ,(lambda () (send-event *target* 'get-pickup (pickup-type skill) (-> *FACT-bank* super-skill-inc))))) ;; patched
|
||||
:on-fail #f
|
||||
)
|
||||
:borrow '()
|
||||
@@ -10437,7 +10437,7 @@
|
||||
:event-hook #f
|
||||
:final-node (game-task-node city-burning-bush-ring-2-resolution)
|
||||
:index 2
|
||||
:on-complete '(talker-spawn "bb02win")
|
||||
:on-complete '(begin (talker-spawn "bb02win") (apply ,(lambda () (send-event *target* 'get-pickup (pickup-type skill) (-> *FACT-bank* super-skill-inc))))) ;; patched
|
||||
:on-fail #f
|
||||
)
|
||||
:borrow '((ctywide 0 lbbush display))
|
||||
@@ -10664,7 +10664,7 @@
|
||||
:fail-hook #f
|
||||
:event-hook #f
|
||||
:final-node (game-task-node city-burning-bush-shuttle-1-resolution)
|
||||
:on-complete '(talker-spawn "bb07win")
|
||||
:on-complete '(begin (talker-spawn "bb07win") (apply ,(lambda () (send-event *target* 'get-pickup (pickup-type skill) (-> *FACT-bank* super-skill-inc))))) ;; patched
|
||||
:on-fail #f
|
||||
)
|
||||
:borrow '((ctywide 0 lshuttle display))
|
||||
@@ -10959,7 +10959,7 @@
|
||||
:fail-hook #f
|
||||
:event-hook #f
|
||||
:final-node (game-task-node city-burning-bush-collection-2-resolution)
|
||||
:on-complete '(talker-spawn "bb20win")
|
||||
:on-complete '(begin (talker-spawn "bb20win") (apply ,(lambda () (send-event *target* 'get-pickup (pickup-type skill) (-> *FACT-bank* super-skill-inc))))) ;; patched
|
||||
:on-fail #f
|
||||
)
|
||||
:borrow '((ctywide 0 lbbush display))
|
||||
@@ -11180,7 +11180,7 @@
|
||||
:fail-hook #f
|
||||
:event-hook #f
|
||||
:final-node (game-task-node city-burning-bush-ring-3-resolution)
|
||||
:on-complete '(talker-spawn "bb03win")
|
||||
:on-complete '(begin (talker-spawn "bb03win") (apply ,(lambda () (send-event *target* 'get-pickup (pickup-type skill) (-> *FACT-bank* super-skill-inc))))) ;; patched
|
||||
:on-fail #f
|
||||
)
|
||||
:borrow '((ctywide 0 lbbush display))
|
||||
@@ -11326,7 +11326,7 @@
|
||||
:fail-hook #f
|
||||
:event-hook #f
|
||||
:final-node (game-task-node city-burning-bush-bombbot-1-resolution)
|
||||
:on-complete '(talker-spawn "bb05win")
|
||||
:on-complete '(begin (talker-spawn "bb05win") (apply ,(lambda () (send-event *target* 'get-pickup (pickup-type skill) (-> *FACT-bank* super-skill-inc))))) ;; patched
|
||||
:on-fail #f
|
||||
)
|
||||
:borrow '((ctywide 0 lbombbot display))
|
||||
@@ -11622,7 +11622,7 @@
|
||||
:event-hook #f
|
||||
:final-node (game-task-node city-burning-bush-collection-3-resolution)
|
||||
:index 2
|
||||
:on-complete '(talker-spawn "cityv154")
|
||||
:on-complete '(begin (talker-spawn "cityv154") (apply ,(lambda () (send-event *target* 'get-pickup (pickup-type skill) (-> *FACT-bank* super-skill-inc))))) ;; patched
|
||||
:on-fail #f
|
||||
)
|
||||
:borrow '((ctywide 0 lbbush display))
|
||||
|
||||
@@ -820,6 +820,7 @@
|
||||
(while (< (- (current-time) (-> self state-time)) (seconds 2))
|
||||
(suspend)
|
||||
)
|
||||
;; unnecessary - the task manager can take care of this
|
||||
(close! (-> self node-info) 'event)
|
||||
(none)
|
||||
)
|
||||
|
||||
@@ -1519,6 +1519,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
;; this is unnecessary. the task manager can close the task.
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
(game-task-node city-burning-bush-ring-1-resolution)
|
||||
@@ -2684,6 +2685,13 @@ This commonly includes things such as:
|
||||
(lambda :behavior task-manager () (set! (-> self state-time) (current-time)) (none))
|
||||
)
|
||||
|
||||
;; PC PORT NOTE : added complete hook for collection bbush tasks where we wait for the hud to die first
|
||||
(set-subtask-hook! *game-info* (game-task-node city-burning-bush-collection-1-resolution)
|
||||
TASK_MANAGER_COMPLETE_HOOK
|
||||
(lambda :behavior task-manager ()
|
||||
(while (handle->process (-> self hud-counter))
|
||||
(suspend))))
|
||||
|
||||
(copy-hooks!
|
||||
(-> *game-info* sub-task-list (game-task-node city-burning-bush-collection-2-resolution))
|
||||
(-> *game-info* sub-task-list (game-task-node city-burning-bush-collection-1-resolution))
|
||||
|
||||
@@ -1204,16 +1204,23 @@
|
||||
)
|
||||
)
|
||||
(game-info-method-28 *game-info* (the-as game-score s5-0) arg0)
|
||||
(let ((gp-1 (new 'static 'fact-info)))
|
||||
(set! (-> gp-1 options) (actor-option))
|
||||
(logior! (-> gp-1 options) (actor-option suck-in))
|
||||
(birth-pickup-at-point
|
||||
(camera-pos)
|
||||
(pickup-type skill)
|
||||
(* (the float s2-2) (-> *FACT-bank* super-skill-inc))
|
||||
#t
|
||||
*entity-pool*
|
||||
gp-1
|
||||
;; pc port note : just give the skill directly
|
||||
(#cond
|
||||
(PC_PORT
|
||||
(send-event *target* 'get-pickup (pickup-type skill) (* (the float s2-2) (-> *FACT-bank* super-skill-inc))))
|
||||
(#t
|
||||
(let ((gp-1 (new 'static 'fact-info)))
|
||||
(set! (-> gp-1 options) (actor-option))
|
||||
(logior! (-> gp-1 options) (actor-option suck-in))
|
||||
(birth-pickup-at-point
|
||||
(camera-pos)
|
||||
(pickup-type skill)
|
||||
(* (the float s2-2) (-> *FACT-bank* super-skill-inc))
|
||||
#t
|
||||
*entity-pool*
|
||||
gp-1
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -201,7 +201,11 @@ Val* Compiler::compile_error_guard(const goos::Object& code, Env* env) {
|
||||
}
|
||||
|
||||
lg::print(fg(fmt::color::yellow) | fmt::emphasis::bold, "Code:\n");
|
||||
lg::print("{}\n", pretty_print::to_string(code, 120));
|
||||
auto code_str = pretty_print::to_string(code, 120);
|
||||
if (code_str.size() > 120 * 35) {
|
||||
code_str = code_str.substr(0, 120 * 35) + "...";
|
||||
}
|
||||
lg::print("{}\n", code_str);
|
||||
|
||||
if (term) {
|
||||
ce.print_err_stack = false;
|
||||
@@ -224,7 +228,11 @@ Val* Compiler::compile_error_guard(const goos::Object& code, Env* env) {
|
||||
}
|
||||
|
||||
lg::print(fg(fmt::color::yellow) | fmt::emphasis::bold, "Code:\n");
|
||||
lg::print("{}\n", pretty_print::to_string(code, 120));
|
||||
auto code_str = pretty_print::to_string(code, 120);
|
||||
if (code_str.size() > 120 * 35) {
|
||||
code_str = code_str.substr(0, 120 * 35) + "...";
|
||||
}
|
||||
lg::print("{}\n", code_str);
|
||||
|
||||
CompilerException ce("Compiler Exception");
|
||||
if (term) {
|
||||
|
||||
Reference in New Issue
Block a user