NCR: wire up Sheriff Dumont's post-Jack-surrender scene - #395
Draft
dweltvauller wants to merge 1 commit into
Draft
NCR: wire up Sheriff Dumont's post-Jack-surrender scene#395dweltvauller wants to merge 1 commit into
dweltvauller wants to merge 1 commit into
Conversation
scofjack.ssl declares the import for i_do_jack_surr's consumer but never
sets the flag: Node016 (talking Officer Jack into surrendering) calls
set_jack_state(JACK_SURRENDER) but leaves i_do_jack_surr at 0.
As a result three pieces of scsherif.ssl were unreachable:
- talk_p_proc's `if (i_do_jack_surr)` branch, so Node020 was never called
- Node020 ("damn fine piece of work you did with old Jack") and Node021
(the reward request), Node021 being reachable only from Node020
- Node001's `else if (i_do_jack_surr) then Reply(106)` ("Well, spit it
out."), reachable only via Node021 -> Node001 with the flag still set
Set i_do_jack_surr := 1 in Node016 alongside the JACK_SURRENDER state so
the one-time "I'll take it from here" scene fires when the player next
talks to Dumont. talk_p_proc already clears the flag after the scene, so
it stays a single showing; ongoing acknowledgement of the surrender still
runs through jack_state as before.
i_do_jack_surr is a transient ncr1 map export (re-inits to 0 on map
reload), matching its original vanilla scope; the intended flow is the
immediate walk from the power plant to the sheriff on the same map.
Author
|
I have not tested this. It was flagged by Claude as I was going through the Sheriff Dumont scripts. I need to check if it makes sense to have it or not. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
scsherif.ssl(Sheriff Dumont) consumes thei_do_jack_surrmap variable, but nothing ever sets it to 1. It isexported inmaps/ncr1.ssl(init0),imported and checked inscsherif.ssl, and set back to0there — butscofjack.ssl(Officer Jack), whoseNode016handles talking Jack into surrendering, callsset_jack_state(JACK_SURRENDER)and never touchesi_do_jack_surr(it doesn't even import it).Because the flag is permanently
0, three pieces ofscsherif.sslare dead code:talk_p_proc'sif (i_do_jack_surr)branch →call Node020never fires.Node020— "That's a damn fine piece of work you did with old Jack, stranger. As the sheriff, I'll take it from here." (msg 165) — andNode021, the reward-request follow-up (msg 168).Node021is reachable only fromNode020's option 167.Node001'selse if (i_do_jack_surr) then Reply(106)— "Well, spit it out." (msg 106) — reachable only viaNode021 → Node001while the flag is still set.This is unfinished vanilla content: the one-time "nice work with Jack" scene whose trigger was never implemented.
Fix
Set
i_do_jack_surr := 1inscofjack.sslNode016, right next to theJACK_SURRENDERstate change, and add the correspondingimport.Now, after talking Jack down, the next conversation with Dumont plays
Node020→ optionalNode021(reward) → optional return to the question hub (Node001, greeting msg 106).scsherif.ssl'stalk_p_procalready clearsi_do_jack_surrafter the scene, so it shows once; ongoing acknowledgement of the surrender continues to run throughjack_state(Node005msg 123/124) as before. No change toscsherif.sslis needed.Notes / limitations
i_do_jack_surris a transientncr1map export — it re-initialises to0on every map load. If the player makes Jack surrender, leaves NCR, and returns before speaking to Dumont, the one-time scene is missed. This matches the variable's original vanilla scope; persisting it would need anMVAR_/GVAR_and a larger change. In the intended flow Jack warps to the NCR police station on the same map and the sheriff is a few tiles away, so the scene normally plays on the same visit.Reply(106)("Well, spit it out.") insideNode001also requiresLVAR_Herebefore != 0(the player has spoken to Dumont at least once before). On a first-ever conversation that happens to be the post-surrender one,Node020still plays; only the hub greeting reached viaNode021 → Node001falls back to msg 103/104. This is pre-existingNode001logic, left untouched.Testing
scofjack.sslandscsherif.sslcompile cleanly withsslc(sfall 4.5) after the change (.intdiff is a single added assignment).