diff --git a/goal_src/jak1/pc/features/autosplit.gc b/goal_src/jak1/pc/features/autosplit.gc index 40dc05ecd3..30acf83f1f 100644 --- a/goal_src/jak1/pc/features/autosplit.gc +++ b/goal_src/jak1/pc/features/autosplit.gc @@ -19,40 +19,43 @@ (set! (-> *autosplit-info-jak1* num-scout-flies) (the int (-> *game-info* buzzer-total))) ;; per-level orb/fly counts - (set! (-> *autosplit-info-jak1* training-num-orbs) (-> *game-info* money-per-level (level-task-data-index training))) - (set! (-> *autosplit-info-jak1* village1-num-orbs) (-> *game-info* money-per-level (level-task-data-index village1))) - (set! (-> *autosplit-info-jak1* beach-num-orbs) (-> *game-info* money-per-level (level-task-data-index beach))) - (set! (-> *autosplit-info-jak1* jungle-num-orbs) (-> *game-info* money-per-level (level-task-data-index jungle))) - (set! (-> *autosplit-info-jak1* misty-num-orbs) (-> *game-info* money-per-level (level-task-data-index misty))) - (set! (-> *autosplit-info-jak1* firecanyon-num-orbs) (-> *game-info* money-per-level (level-task-data-index firecanyon))) - (set! (-> *autosplit-info-jak1* village2-num-orbs) (-> *game-info* money-per-level (level-task-data-index village2))) - (set! (-> *autosplit-info-jak1* sunken-num-orbs) (-> *game-info* money-per-level (level-task-data-index sunken))) - (set! (-> *autosplit-info-jak1* swamp-num-orbs) (-> *game-info* money-per-level (level-task-data-index swamp))) - (set! (-> *autosplit-info-jak1* rolling-num-orbs) (-> *game-info* money-per-level (level-task-data-index rolling))) - (set! (-> *autosplit-info-jak1* ogre-num-orbs) (-> *game-info* money-per-level (level-task-data-index ogre))) - (set! (-> *autosplit-info-jak1* village3-num-orbs) (-> *game-info* money-per-level (level-task-data-index village3))) - (set! (-> *autosplit-info-jak1* snow-num-orbs) (-> *game-info* money-per-level (level-task-data-index snow))) - (set! (-> *autosplit-info-jak1* cave-num-orbs) (-> *game-info* money-per-level (level-task-data-index cave))) - (set! (-> *autosplit-info-jak1* lavatube-num-orbs) (-> *game-info* money-per-level (level-task-data-index lavatube))) - (set! (-> *autosplit-info-jak1* citadel-num-orbs) (-> *game-info* money-per-level (level-task-data-index citadel))) - - (set! (-> *autosplit-info-jak1* training-num-scout-flies) (buzzer-count *game-info* (-> *level-task-data* (level-task-data-index training) task-info (-> *level-task-data* (level-task-data-index training) buzzer-task-index) task-id))) - (set! (-> *autosplit-info-jak1* village1-num-scout-flies) (buzzer-count *game-info* (-> *level-task-data* (level-task-data-index village1) task-info (-> *level-task-data* (level-task-data-index village1) buzzer-task-index) task-id))) - (set! (-> *autosplit-info-jak1* beach-num-scout-flies) (buzzer-count *game-info* (-> *level-task-data* (level-task-data-index beach) task-info (-> *level-task-data* (level-task-data-index beach) buzzer-task-index) task-id))) - (set! (-> *autosplit-info-jak1* jungle-num-scout-flies) (buzzer-count *game-info* (-> *level-task-data* (level-task-data-index jungle) task-info (-> *level-task-data* (level-task-data-index jungle) buzzer-task-index) task-id))) - (set! (-> *autosplit-info-jak1* misty-num-scout-flies) (buzzer-count *game-info* (-> *level-task-data* (level-task-data-index misty) task-info (-> *level-task-data* (level-task-data-index misty) buzzer-task-index) task-id))) - (set! (-> *autosplit-info-jak1* firecanyon-num-scout-flies) (buzzer-count *game-info* (-> *level-task-data* (level-task-data-index firecanyon) task-info (-> *level-task-data* (level-task-data-index firecanyon) buzzer-task-index) task-id))) - (set! (-> *autosplit-info-jak1* village2-num-scout-flies) (buzzer-count *game-info* (-> *level-task-data* (level-task-data-index village2) task-info (-> *level-task-data* (level-task-data-index village2) buzzer-task-index) task-id))) - (set! (-> *autosplit-info-jak1* sunken-num-scout-flies) (buzzer-count *game-info* (-> *level-task-data* (level-task-data-index sunken) task-info (-> *level-task-data* (level-task-data-index sunken) buzzer-task-index) task-id))) - (set! (-> *autosplit-info-jak1* swamp-num-scout-flies) (buzzer-count *game-info* (-> *level-task-data* (level-task-data-index swamp) task-info (-> *level-task-data* (level-task-data-index swamp) buzzer-task-index) task-id))) - (set! (-> *autosplit-info-jak1* rolling-num-scout-flies) (buzzer-count *game-info* (-> *level-task-data* (level-task-data-index rolling) task-info (-> *level-task-data* (level-task-data-index rolling) buzzer-task-index) task-id))) - (set! (-> *autosplit-info-jak1* ogre-num-scout-flies) (buzzer-count *game-info* (-> *level-task-data* (level-task-data-index ogre) task-info (-> *level-task-data* (level-task-data-index ogre) buzzer-task-index) task-id))) - (set! (-> *autosplit-info-jak1* village3-num-scout-flies) (buzzer-count *game-info* (-> *level-task-data* (level-task-data-index village3) task-info (-> *level-task-data* (level-task-data-index village3) buzzer-task-index) task-id))) - (set! (-> *autosplit-info-jak1* snow-num-scout-flies) (buzzer-count *game-info* (-> *level-task-data* (level-task-data-index snow) task-info (-> *level-task-data* (level-task-data-index snow) buzzer-task-index) task-id))) - (set! (-> *autosplit-info-jak1* cave-num-scout-flies) (buzzer-count *game-info* (-> *level-task-data* (level-task-data-index cave) task-info (-> *level-task-data* (level-task-data-index cave) buzzer-task-index) task-id))) - (set! (-> *autosplit-info-jak1* lavatube-num-scout-flies) (buzzer-count *game-info* (-> *level-task-data* (level-task-data-index lavatube) task-info (-> *level-task-data* (level-task-data-index lavatube) buzzer-task-index) task-id))) - (set! (-> *autosplit-info-jak1* citadel-num-scout-flies) (buzzer-count *game-info* (-> *level-task-data* (level-task-data-index citadel) task-info (-> *level-task-data* (level-task-data-index citadel) buzzer-task-index) task-id))) + ;; when we are blacked out in loads the value of these are temporarily 0, and that messes with the auto splitter. + (let ((in-blackout? (>= (-> *game-info* blackout-time) (current-time)))) + (when (not in-blackout?) + (set! (-> *autosplit-info-jak1* training-num-orbs) (-> *game-info* money-per-level (level-task-data-index training))) + (set! (-> *autosplit-info-jak1* village1-num-orbs) (-> *game-info* money-per-level (level-task-data-index village1))) + (set! (-> *autosplit-info-jak1* beach-num-orbs) (-> *game-info* money-per-level (level-task-data-index beach))) + (set! (-> *autosplit-info-jak1* jungle-num-orbs) (-> *game-info* money-per-level (level-task-data-index jungle))) + (set! (-> *autosplit-info-jak1* misty-num-orbs) (-> *game-info* money-per-level (level-task-data-index misty))) + (set! (-> *autosplit-info-jak1* firecanyon-num-orbs) (-> *game-info* money-per-level (level-task-data-index firecanyon))) + (set! (-> *autosplit-info-jak1* village2-num-orbs) (-> *game-info* money-per-level (level-task-data-index village2))) + (set! (-> *autosplit-info-jak1* sunken-num-orbs) (-> *game-info* money-per-level (level-task-data-index sunken))) + (set! (-> *autosplit-info-jak1* swamp-num-orbs) (-> *game-info* money-per-level (level-task-data-index swamp))) + (set! (-> *autosplit-info-jak1* rolling-num-orbs) (-> *game-info* money-per-level (level-task-data-index rolling))) + (set! (-> *autosplit-info-jak1* ogre-num-orbs) (-> *game-info* money-per-level (level-task-data-index ogre))) + (set! (-> *autosplit-info-jak1* village3-num-orbs) (-> *game-info* money-per-level (level-task-data-index village3))) + (set! (-> *autosplit-info-jak1* snow-num-orbs) (-> *game-info* money-per-level (level-task-data-index snow))) + (set! (-> *autosplit-info-jak1* cave-num-orbs) (-> *game-info* money-per-level (level-task-data-index cave))) + (set! (-> *autosplit-info-jak1* lavatube-num-orbs) (-> *game-info* money-per-level (level-task-data-index lavatube))) + (set! (-> *autosplit-info-jak1* citadel-num-orbs) (-> *game-info* money-per-level (level-task-data-index citadel))) + (set! (-> *autosplit-info-jak1* training-num-scout-flies) (buzzer-count *game-info* (-> *level-task-data* (level-task-data-index training) task-info (-> *level-task-data* (level-task-data-index training) buzzer-task-index) task-id))) + (set! (-> *autosplit-info-jak1* village1-num-scout-flies) (buzzer-count *game-info* (-> *level-task-data* (level-task-data-index village1) task-info (-> *level-task-data* (level-task-data-index village1) buzzer-task-index) task-id))) + (set! (-> *autosplit-info-jak1* beach-num-scout-flies) (buzzer-count *game-info* (-> *level-task-data* (level-task-data-index beach) task-info (-> *level-task-data* (level-task-data-index beach) buzzer-task-index) task-id))) + (set! (-> *autosplit-info-jak1* jungle-num-scout-flies) (buzzer-count *game-info* (-> *level-task-data* (level-task-data-index jungle) task-info (-> *level-task-data* (level-task-data-index jungle) buzzer-task-index) task-id))) + (set! (-> *autosplit-info-jak1* misty-num-scout-flies) (buzzer-count *game-info* (-> *level-task-data* (level-task-data-index misty) task-info (-> *level-task-data* (level-task-data-index misty) buzzer-task-index) task-id))) + (set! (-> *autosplit-info-jak1* firecanyon-num-scout-flies) (buzzer-count *game-info* (-> *level-task-data* (level-task-data-index firecanyon) task-info (-> *level-task-data* (level-task-data-index firecanyon) buzzer-task-index) task-id))) + (set! (-> *autosplit-info-jak1* village2-num-scout-flies) (buzzer-count *game-info* (-> *level-task-data* (level-task-data-index village2) task-info (-> *level-task-data* (level-task-data-index village2) buzzer-task-index) task-id))) + (set! (-> *autosplit-info-jak1* sunken-num-scout-flies) (buzzer-count *game-info* (-> *level-task-data* (level-task-data-index sunken) task-info (-> *level-task-data* (level-task-data-index sunken) buzzer-task-index) task-id))) + (set! (-> *autosplit-info-jak1* swamp-num-scout-flies) (buzzer-count *game-info* (-> *level-task-data* (level-task-data-index swamp) task-info (-> *level-task-data* (level-task-data-index swamp) buzzer-task-index) task-id))) + (set! (-> *autosplit-info-jak1* rolling-num-scout-flies) (buzzer-count *game-info* (-> *level-task-data* (level-task-data-index rolling) task-info (-> *level-task-data* (level-task-data-index rolling) buzzer-task-index) task-id))) + (set! (-> *autosplit-info-jak1* ogre-num-scout-flies) (buzzer-count *game-info* (-> *level-task-data* (level-task-data-index ogre) task-info (-> *level-task-data* (level-task-data-index ogre) buzzer-task-index) task-id))) + (set! (-> *autosplit-info-jak1* village3-num-scout-flies) (buzzer-count *game-info* (-> *level-task-data* (level-task-data-index village3) task-info (-> *level-task-data* (level-task-data-index village3) buzzer-task-index) task-id))) + (set! (-> *autosplit-info-jak1* snow-num-scout-flies) (buzzer-count *game-info* (-> *level-task-data* (level-task-data-index snow) task-info (-> *level-task-data* (level-task-data-index snow) buzzer-task-index) task-id))) + (set! (-> *autosplit-info-jak1* cave-num-scout-flies) (buzzer-count *game-info* (-> *level-task-data* (level-task-data-index cave) task-info (-> *level-task-data* (level-task-data-index cave) buzzer-task-index) task-id))) + (set! (-> *autosplit-info-jak1* lavatube-num-scout-flies) (buzzer-count *game-info* (-> *level-task-data* (level-task-data-index lavatube) task-info (-> *level-task-data* (level-task-data-index lavatube) buzzer-task-index) task-id))) + (set! (-> *autosplit-info-jak1* citadel-num-scout-flies) (buzzer-count *game-info* (-> *level-task-data* (level-task-data-index citadel) task-info (-> *level-task-data* (level-task-data-index citadel) buzzer-task-index) task-id)))) + ) ;; loading/cutscene related flags (set! (-> *autosplit-info-jak1* in-cutscene?) (real-movie?)) diff --git a/goal_src/jak2/pc/features/autosplit.gc b/goal_src/jak2/pc/features/autosplit.gc index 5d6b6e443f..9fc7a7e7f5 100644 --- a/goal_src/jak2/pc/features/autosplit.gc +++ b/goal_src/jak2/pc/features/autosplit.gc @@ -18,16 +18,20 @@ (defmethod update! ((this autosplit-info)) ;; general statistics - (set! (-> this num-orbs) (the int (-> *game-info* skill-total))) - (set! (-> this num-skullgems) (the int (-> *game-info* gem-total))) - ;; ending conditions - ;; all collectables - ;; - check for all orbs (which require all missions conveniently) - ;; - also check for all darkjak powers - (set! (-> this all-collectables-acquired?) - (if (and (logtest? (-> *game-info* features) (game-feature darkjak-giant)) - (>= (-> this num-orbs) 286)) - 1 0)) + ;; when we are blacked out in loads the value of these are temporarily 0, and that messes with the auto splitter. + (let ((in-blackout? (>= (-> *game-info* blackout-time) (current-time)))) + (when (not in-blackout?) + (set! (-> this num-orbs) (the int (-> *game-info* skill-total))) + (set! (-> this num-skullgems) (the int (-> *game-info* gem-total))) + ;; ending conditions + ;; all collectables + ;; - check for all orbs (which require all missions conveniently) + ;; - also check for all darkjak powers + (set! (-> this all-collectables-acquired?) + (if (and (logtest? (-> *game-info* features) (game-feature darkjak-giant)) + (>= (-> this num-orbs) 286)) + 1 0))) + ) ;; loading/cutscene related flags (set! (-> this in-cutscene?) (if (movie?) 1 0)) ;; need resolution flags