From 9a28cc5a79c368098fe255ea0f2dc0a241f58042 Mon Sep 17 00:00:00 2001 From: ZedB0T <89345505+Zedb0T@users.noreply.github.com> Date: Tue, 14 Mar 2023 17:56:58 -0400 Subject: [PATCH] Add a `autosplit-flag-task-complete!` macro (#2317) Cuts out a little bit of repetition in the autosplit code. Also adds some labels to the VS configurations. https://github.com/Zedb0T/jak-project/blob/090c4977993dd41546615d3da9dc4937d89ca243/goal_src/jak1/pc/features/autosplit-h.gc#L167-L169 --- .vs/launch.vs.json | 15 +- goal_src/jak1/pc/features/autosplit-h.gc | 4 + goal_src/jak1/pc/features/autosplit.gc | 211 +++++++++++------------ 3 files changed, 120 insertions(+), 110 deletions(-) diff --git a/.vs/launch.vs.json b/.vs/launch.vs.json index e2575cd99..3ed316dce 100644 --- a/.vs/launch.vs.json +++ b/.vs/launch.vs.json @@ -100,15 +100,15 @@ "type": "default", "project": "CMakeLists.txt", "projectTarget": "gk.exe (bin\\gk.exe)", - "name": "Game - Runtime", - "args": ["-v", "--", "-fakeiso", "-debug"] + "name": "Game - Jak 1 - Runtime", + "args": ["-v", "--game", "jak1", "--", "-fakeiso", "-debug"] }, { "type": "default", "project": "CMakeLists.txt", "projectTarget": "gk.exe (bin\\gk.exe)", - "name": "Game - Runtime (boot)", - "args": ["-v", "--", "-boot", "-fakeiso", "-debug"] + "name": "Game - Jak 1 - Runtime (boot)", + "args": ["-v", "--game", "jak1", "--", "-boot", "-fakeiso", "-debug"] }, { "type": "default", @@ -124,6 +124,13 @@ "name": "REPL", "args": ["--user-auto"] }, + { + "type": "default", + "project": "CMakeLists.txt", + "projectTarget": "goalc.exe (bin\\goalc.exe)", + "name": "REPL - Jak 1", + "args": ["--user-auto", "--game", "jak1"] + }, { "type": "default", "project": "CMakeLists.txt", diff --git a/goal_src/jak1/pc/features/autosplit-h.gc b/goal_src/jak1/pc/features/autosplit-h.gc index 8c044f40b..9d9b05e1f 100644 --- a/goal_src/jak1/pc/features/autosplit-h.gc +++ b/goal_src/jak1/pc/features/autosplit-h.gc @@ -164,6 +164,10 @@ ;; end marker just to make things look nice in a memory view (end-marker uint8 4))) +(defmacro autosplit-flag-task-complete! (field-name task-name) + "Given a field name in the autosplitter struct, and a [[game-task]] name to check, sets either a 0 or a 1" + `(set! (-> *autosplit-info-jak1* ,field-name) (if (task-complete? *game-info* (game-task ,task-name)) 1 0))) + (define-extern *autosplit-info-jak1* autosplit-info-jak1) (define-extern update-autosplit-info-jak1 (function none)) (define-extern update-autosplit-jak1-new-game (function none)) diff --git a/goal_src/jak1/pc/features/autosplit.gc b/goal_src/jak1/pc/features/autosplit.gc index 46aa5129c..c4e3e9dcb 100644 --- a/goal_src/jak1/pc/features/autosplit.gc +++ b/goal_src/jak1/pc/features/autosplit.gc @@ -54,112 +54,111 @@ (set! (-> *autosplit-info-jak1* in-cutscene?) (-> *pc-settings* movie?)) ;; need resolution flags - ;; TODO - a macro for this would be nice - (set! (-> *autosplit-info-jak1* res-training-gimmie) (if (task-closed? (game-task training-gimmie) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-training-door) (if (task-closed? (game-task training-door) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-training-climb) (if (task-closed? (game-task training-climb) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-training-buzzer) (if (task-closed? (game-task training-buzzer) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-jungle-eggtop) (if (task-closed? (game-task jungle-eggtop) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-jungle-lurkerm) (if (task-closed? (game-task jungle-lurkerm) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-jungle-tower) (if (task-closed? (game-task jungle-tower) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-jungle-fishgame) (if (task-closed? (game-task jungle-fishgame) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-jungle-plant) (if (task-closed? (game-task jungle-plant) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-jungle-buzzer) (if (task-closed? (game-task jungle-buzzer) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-jungle-canyon-end) (if (task-closed? (game-task jungle-canyon-end) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-jungle-temple-door) (if (task-closed? (game-task jungle-temple-door) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-village1-yakow) (if (task-closed? (game-task village1-yakow) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-village1-mayor-money) (if (task-closed? (game-task village1-mayor-money) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-village1-uncle-money) (if (task-closed? (game-task village1-uncle-money) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-village1-oracle-money1) (if (task-closed? (game-task village1-oracle-money1) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-village1-oracle-money2) (if (task-closed? (game-task village1-oracle-money2) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-village1-buzzer) (if (task-closed? (game-task village1-buzzer) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-beach-ecorocks) (if (task-closed? (game-task beach-ecorocks) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-beach-pelican) (if (task-closed? (game-task beach-pelican) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-beach-flutflut) (if (task-closed? (game-task beach-flutflut) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-beach-seagull) (if (task-closed? (game-task beach-seagull) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-beach-cannon) (if (task-closed? (game-task beach-cannon) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-beach-buzzer) (if (task-closed? (game-task beach-buzzer) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-beach-gimmie) (if (task-closed? (game-task beach-gimmie) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-beach-sentinel) (if (task-closed? (game-task beach-sentinel) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-misty-muse) (if (task-closed? (game-task misty-muse) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-misty-boat) (if (task-closed? (game-task misty-boat) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-misty-warehouse) (if (task-closed? (game-task misty-warehouse) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-misty-cannon) (if (task-closed? (game-task misty-cannon) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-misty-bike) (if (task-closed? (game-task misty-bike) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-misty-buzzer) (if (task-closed? (game-task misty-buzzer) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-misty-bike-jump) (if (task-closed? (game-task misty-bike-jump) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-misty-eco-challenge) (if (task-closed? (game-task misty-eco-challenge) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-village2-gambler-money) (if (task-closed? (game-task village2-gambler-money) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-village2-geologist-money) (if (task-closed? (game-task village2-geologist-money) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-village2-warrior-money) (if (task-closed? (game-task village2-warrior-money) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-village2-oracle-money1) (if (task-closed? (game-task village2-oracle-money1) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-village2-oracle-money2) (if (task-closed? (game-task village2-oracle-money2) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-village2-buzzer) (if (task-closed? (game-task village2-buzzer) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-swamp-billy) (if (task-closed? (game-task swamp-billy) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-swamp-flutflut) (if (task-closed? (game-task swamp-flutflut) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-swamp-battle) (if (task-closed? (game-task swamp-battle) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-swamp-tether-1) (if (task-closed? (game-task swamp-tether-1) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-swamp-tether-2) (if (task-closed? (game-task swamp-tether-2) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-swamp-tether-3) (if (task-closed? (game-task swamp-tether-3) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-swamp-tether-4) (if (task-closed? (game-task swamp-tether-4) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-swamp-buzzer) (if (task-closed? (game-task swamp-buzzer) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-swamp-arm) (if (task-closed? (game-task swamp-arm) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-sunken-platforms) (if (task-closed? (game-task sunken-platforms) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-sunken-pipe) (if (task-closed? (game-task sunken-pipe) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-sunken-slide) (if (task-closed? (game-task sunken-slide) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-sunken-room) (if (task-closed? (game-task sunken-room) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-sunken-sharks) (if (task-closed? (game-task sunken-sharks) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-sunken-buzzer) (if (task-closed? (game-task sunken-buzzer) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-sunken-top-of-helix) (if (task-closed? (game-task sunken-top-of-helix) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-sunken-spinning-room) (if (task-closed? (game-task sunken-spinning-room) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-rolling-race) (if (task-closed? (game-task rolling-race) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-rolling-robbers) (if (task-closed? (game-task rolling-robbers) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-rolling-moles) (if (task-closed? (game-task rolling-moles) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-rolling-plants) (if (task-closed? (game-task rolling-plants) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-rolling-lake) (if (task-closed? (game-task rolling-lake) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-rolling-buzzer) (if (task-closed? (game-task rolling-buzzer) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-rolling-ring-chase-1) (if (task-closed? (game-task rolling-ring-chase-1) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-rolling-ring-chase-2) (if (task-closed? (game-task rolling-ring-chase-2) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-snow-eggtop) (if (task-closed? (game-task snow-eggtop) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-snow-ram) (if (task-closed? (game-task snow-ram) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-snow-fort) (if (task-closed? (game-task snow-fort) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-snow-ball) (if (task-closed? (game-task snow-ball) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-snow-bunnies) (if (task-closed? (game-task snow-bunnies) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-snow-buzzer) (if (task-closed? (game-task snow-buzzer) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-snow-bumpers) (if (task-closed? (game-task snow-bumpers) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-snow-cage) (if (task-closed? (game-task snow-cage) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-red-eggtop) (if (task-closed? (game-task red-eggtop) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-firecanyon-buzzer) (if (task-closed? (game-task firecanyon-buzzer) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-firecanyon-end) (if (task-closed? (game-task firecanyon-end) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-citadel-sage-green) (if (task-closed? (game-task citadel-sage-green) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-citadel-sage-blue) (if (task-closed? (game-task citadel-sage-blue) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-citadel-sage-red) (if (task-closed? (game-task citadel-sage-red) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-citadel-sage-yellow) (if (task-closed? (game-task citadel-sage-yellow) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-citadel-buzzer) (if (task-closed? (game-task citadel-buzzer) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-village3-extra1) (if (task-closed? (game-task village3-extra1) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-village3-buzzer) (if (task-closed? (game-task village3-buzzer) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-village3-miner-money1) (if (task-closed? (game-task village3-miner-money1) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-village3-miner-money2) (if (task-closed? (game-task village3-miner-money2) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-village3-miner-money3) (if (task-closed? (game-task village3-miner-money3) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-village3-miner-money4) (if (task-closed? (game-task village3-miner-money4) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-village3-oracle-money1) (if (task-closed? (game-task village3-oracle-money1) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-village3-oracle-money2) (if (task-closed? (game-task village3-oracle-money2) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-cave-gnawers) (if (task-closed? (game-task cave-gnawers) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-cave-dark-crystals) (if (task-closed? (game-task cave-dark-crystals) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-cave-dark-climb) (if (task-closed? (game-task cave-dark-climb) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-cave-robot-climb) (if (task-closed? (game-task cave-robot-climb) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-cave-swing-poles) (if (task-closed? (game-task cave-swing-poles) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-cave-spider-tunnel) (if (task-closed? (game-task cave-spider-tunnel) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-cave-platforms) (if (task-closed? (game-task cave-platforms) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-cave-buzzer) (if (task-closed? (game-task cave-buzzer) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-ogre-boss) (if (task-closed? (game-task ogre-boss) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-ogre-end) (if (task-closed? (game-task ogre-end) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-ogre-buzzer) (if (task-closed? (game-task ogre-buzzer) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-ogre-secret) (if (task-closed? (game-task ogre-secret) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-lavatube-end) (if (task-closed? (game-task lavatube-end) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-lavatube-buzzer) (if (task-closed? (game-task lavatube-buzzer) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-lavatube-balls) (if (task-closed? (game-task lavatube-balls) (task-status need-resolution)) 1 0)) - (set! (-> *autosplit-info-jak1* res-intro) (if (task-closed? (game-task intro) (task-status need-resolution)) 1 0)) + (autosplit-flag-task-complete! res-training-gimmie training-gimmie) + (autosplit-flag-task-complete! res-training-door training-door) + (autosplit-flag-task-complete! res-training-climb training-climb) + (autosplit-flag-task-complete! res-training-buzzer training-buzzer) + (autosplit-flag-task-complete! res-jungle-eggtop jungle-eggtop) + (autosplit-flag-task-complete! res-jungle-lurkerm jungle-lurkerm) + (autosplit-flag-task-complete! res-jungle-tower jungle-tower) + (autosplit-flag-task-complete! res-jungle-fishgame jungle-fishgame) + (autosplit-flag-task-complete! res-jungle-plant jungle-plant) + (autosplit-flag-task-complete! res-jungle-buzzer jungle-buzzer) + (autosplit-flag-task-complete! res-jungle-canyon-end jungle-canyon-end) + (autosplit-flag-task-complete! res-jungle-temple-door jungle-temple-door) + (autosplit-flag-task-complete! res-village1-yakow village1-yakow) + (autosplit-flag-task-complete! res-village1-mayor-money village1-mayor-money) + (autosplit-flag-task-complete! res-village1-uncle-money village1-uncle-money) + (autosplit-flag-task-complete! res-village1-oracle-money1 village1-oracle-money1) + (autosplit-flag-task-complete! res-village1-oracle-money2 village1-oracle-money2) + (autosplit-flag-task-complete! res-village1-buzzer village1-buzzer) + (autosplit-flag-task-complete! res-beach-ecorocks beach-ecorocks) + (autosplit-flag-task-complete! res-beach-pelican beach-pelican) + (autosplit-flag-task-complete! res-beach-flutflut beach-flutflut) + (autosplit-flag-task-complete! res-beach-seagull beach-seagull) + (autosplit-flag-task-complete! res-beach-cannon beach-cannon) + (autosplit-flag-task-complete! res-beach-buzzer beach-buzzer) + (autosplit-flag-task-complete! res-beach-gimmie beach-gimmie) + (autosplit-flag-task-complete! res-beach-sentinel beach-sentinel) + (autosplit-flag-task-complete! res-misty-muse misty-muse) + (autosplit-flag-task-complete! res-misty-boat misty-boat) + (autosplit-flag-task-complete! res-misty-warehouse misty-warehouse) + (autosplit-flag-task-complete! res-misty-cannon misty-cannon) + (autosplit-flag-task-complete! res-misty-bike misty-bike) + (autosplit-flag-task-complete! res-misty-buzzer misty-buzzer) + (autosplit-flag-task-complete! res-misty-bike-jump misty-bike-jump) + (autosplit-flag-task-complete! res-misty-eco-challenge misty-eco-challenge) + (autosplit-flag-task-complete! res-village2-gambler-money village2-gambler-money) + (autosplit-flag-task-complete! res-village2-geologist-money village2-geologist-money) + (autosplit-flag-task-complete! res-village2-warrior-money village2-warrior-money) + (autosplit-flag-task-complete! res-village2-oracle-money1 village2-oracle-money1) + (autosplit-flag-task-complete! res-village2-oracle-money2 village2-oracle-money2) + (autosplit-flag-task-complete! res-village2-buzzer village2-buzzer) + (autosplit-flag-task-complete! res-swamp-billy swamp-billy) + (autosplit-flag-task-complete! res-swamp-flutflut swamp-flutflut) + (autosplit-flag-task-complete! res-swamp-battle swamp-battle) + (autosplit-flag-task-complete! res-swamp-tether-1 swamp-tether-1) + (autosplit-flag-task-complete! res-swamp-tether-2 swamp-tether-2) + (autosplit-flag-task-complete! res-swamp-tether-3 swamp-tether-3) + (autosplit-flag-task-complete! res-swamp-tether-4 swamp-tether-4) + (autosplit-flag-task-complete! res-swamp-buzzer swamp-buzzer) + (autosplit-flag-task-complete! res-swamp-arm swamp-arm) + (autosplit-flag-task-complete! res-sunken-platforms sunken-platforms) + (autosplit-flag-task-complete! res-sunken-pipe sunken-pipe) + (autosplit-flag-task-complete! res-sunken-slide sunken-slide) + (autosplit-flag-task-complete! res-sunken-room sunken-room) + (autosplit-flag-task-complete! res-sunken-sharks sunken-sharks) + (autosplit-flag-task-complete! res-sunken-buzzer sunken-buzzer) + (autosplit-flag-task-complete! res-sunken-top-of-helix sunken-top-of-helix) + (autosplit-flag-task-complete! res-sunken-spinning-room sunken-spinning-room) + (autosplit-flag-task-complete! res-rolling-race rolling-race) + (autosplit-flag-task-complete! res-rolling-robbers rolling-robbers) + (autosplit-flag-task-complete! res-rolling-moles rolling-moles) + (autosplit-flag-task-complete! res-rolling-plants rolling-plants) + (autosplit-flag-task-complete! res-rolling-lake rolling-lake) + (autosplit-flag-task-complete! res-rolling-buzzer rolling-buzzer) + (autosplit-flag-task-complete! res-rolling-ring-chase-1 rolling-ring-chase-1) + (autosplit-flag-task-complete! res-rolling-ring-chase-2 rolling-ring-chase-2) + (autosplit-flag-task-complete! res-snow-eggtop snow-eggtop) + (autosplit-flag-task-complete! res-snow-ram snow-ram) + (autosplit-flag-task-complete! res-snow-fort snow-fort) + (autosplit-flag-task-complete! res-snow-ball snow-ball) + (autosplit-flag-task-complete! res-snow-bunnies snow-bunnies) + (autosplit-flag-task-complete! res-snow-buzzer snow-buzzer) + (autosplit-flag-task-complete! res-snow-bumpers snow-bumpers) + (autosplit-flag-task-complete! res-snow-cage snow-cage) + (autosplit-flag-task-complete! res-red-eggtop red-eggtop) + (autosplit-flag-task-complete! res-firecanyon-buzzer firecanyon-buzzer) + (autosplit-flag-task-complete! res-firecanyon-end firecanyon-end) + (autosplit-flag-task-complete! res-citadel-sage-green citadel-sage-green) + (autosplit-flag-task-complete! res-citadel-sage-blue citadel-sage-blue) + (autosplit-flag-task-complete! res-citadel-sage-red citadel-sage-red) + (autosplit-flag-task-complete! res-citadel-sage-yellow citadel-sage-yellow) + (autosplit-flag-task-complete! res-citadel-buzzer citadel-buzzer) + (autosplit-flag-task-complete! res-village3-extra1 village3-extra1) + (autosplit-flag-task-complete! res-village3-buzzer village3-buzzer) + (autosplit-flag-task-complete! res-village3-miner-money1 village3-miner-money1) + (autosplit-flag-task-complete! res-village3-miner-money2 village3-miner-money2) + (autosplit-flag-task-complete! res-village3-miner-money3 village3-miner-money3) + (autosplit-flag-task-complete! res-village3-miner-money4 village3-miner-money4) + (autosplit-flag-task-complete! res-village3-oracle-money1 village3-oracle-money1) + (autosplit-flag-task-complete! res-village3-oracle-money2 village3-oracle-money2) + (autosplit-flag-task-complete! res-cave-gnawers cave-gnawers) + (autosplit-flag-task-complete! res-cave-dark-crystals cave-dark-crystals) + (autosplit-flag-task-complete! res-cave-dark-climb cave-dark-climb) + (autosplit-flag-task-complete! res-cave-robot-climb cave-robot-climb) + (autosplit-flag-task-complete! res-cave-swing-poles cave-swing-poles) + (autosplit-flag-task-complete! res-cave-spider-tunnel cave-spider-tunnel) + (autosplit-flag-task-complete! res-cave-platforms cave-platforms) + (autosplit-flag-task-complete! res-cave-buzzer cave-buzzer) + (autosplit-flag-task-complete! res-ogre-boss ogre-boss) + (autosplit-flag-task-complete! res-ogre-end ogre-end) + (autosplit-flag-task-complete! res-ogre-buzzer ogre-buzzer) + (autosplit-flag-task-complete! res-ogre-secret ogre-secret) + (autosplit-flag-task-complete! res-lavatube-end lavatube-end) + (autosplit-flag-task-complete! res-lavatube-buzzer lavatube-buzzer) + (autosplit-flag-task-complete! res-lavatube-balls lavatube-balls) + (autosplit-flag-task-complete! res-intro intro) ;; other misc tasks (set! (-> *autosplit-info-jak1* int-finalboss-movies) (if (task-closed? (game-task finalboss-movies) (task-status need-introduction)) 1 0))