From a7c9151c6ca571f2a7260b0f6b0dec6bb38a3628 Mon Sep 17 00:00:00 2001 From: zakfaulk Date: Fri, 26 Jul 2024 22:12:30 -0500 Subject: [PATCH] Jak1: Add Autosplitting options for tasks completed in one level and turned in in another (#3595) For the FJ Mirrors, Muse, Lightning Moles, and Gambler's race the tasks are completed in one level, then turned in at the hub. This presents a spot of confusion for new players with the autosplitter and requires hacky workarounds for those who want to split on these conditions. This pull request adds in the necessary code to the autosplit-h.gc and autosplit.gc files so that the autosplitter can identify these events, similar to the talk to fisherman and catch fish options in the current autosplitter. --- goal_src/jak1/pc/features/autosplit-h.gc | 10 +++++++--- goal_src/jak1/pc/features/autosplit.gc | 9 +++++++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/goal_src/jak1/pc/features/autosplit-h.gc b/goal_src/jak1/pc/features/autosplit-h.gc index fa7ce0303d..5235c324bc 100644 --- a/goal_src/jak1/pc/features/autosplit-h.gc +++ b/goal_src/jak1/pc/features/autosplit-h.gc @@ -1,7 +1,9 @@ ;;-*-Lisp-*- (in-package goal) + (require "kernel-defs.gc") + ;; LiveSplit ASL requires all settings to initalized _before_ you connect the process ;; Therefore everything has to be laid out in a predictable fashion before hand ;; So this is a lot of hard-coding, but not too bad when just copied from the debug menu code @@ -165,11 +167,13 @@ (int-finalboss-movies uint8) (unk-finalboss-movies uint8) (int-jungle-fishgame uint8) + (com-jungle-lurkerm uint8) + (com-misty-muse uint8) + (com-rolling-moles uint8) + (com-rolling-race uint8) ;; end marker just to make things look nice in a memory view - (end-marker uint8 4))) + (end-marker uint8 4))) (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 bbf33f7010..2e2489f420 100644 --- a/goal_src/jak1/pc/features/autosplit.gc +++ b/goal_src/jak1/pc/features/autosplit.gc @@ -269,6 +269,15 @@ (if (task-closed? (game-task finalboss-movies) (task-status unknown)) 1 0)) (set! (-> *autosplit-info-jak1* int-jungle-fishgame) (if (task-closed? (game-task jungle-fishgame) (task-status need-introduction)) 1 0)) + (set! (-> *autosplit-info-jak1* com-jungle-lurkerm) + (if (task-closed? (game-task jungle-lurkerm) (task-status need-reminder)) 1 0)) + (set! (-> *autosplit-info-jak1* com-misty-muse) + (if (task-closed? (game-task misty-muse) (task-status need-reminder)) 1 0)) + (set! (-> *autosplit-info-jak1* com-rolling-moles) + (if (task-closed? (game-task rolling-moles) (task-status need-reminder)) 1 0)) + (set! (-> *autosplit-info-jak1* com-rolling-race) + (if (task-closed? (game-task rolling-race) (task-status need-reminder)) 1 0)) + ;; end (none))