Allow level changing during Valerian PDA conversations (new game required)#168
Allow level changing during Valerian PDA conversations (new game required)#168SurDno wants to merge 3 commits intoDecane:masterfrom
Conversation
Why wouldn’t it be? The information about previous level is in the save file directly, so an autosave would have the previous location in it, and it does not matter if you travelled directly or closed the game and started a new session. A save file made after an autosave will indeed not have the
I looked into it but couldn’t get it to work — can’t say if it’s me or if the function does not work as advertised. The solution I provided has been tested, however (although on vanilla, not SRP). |
|
I redacted my original review comment a few minutes after posting it upon realizing I was mistaken. For future reference, there is no need to reply to such comments - the misunderstanding had already been clarified. |
|
I've pushed a second commit to address the following minor issues:
|
|
I assumed it was a GitHub issue, my apologies. I prefer inheritance when reusing the same code piece throughout the logic file to make it easier to edit in a single place instead of every section where it is used, but your reasoning is valid — it can introduce new issues with conditions potentially being overwritten if one is unattentive. Inheritance is rarely used in logic in CS (I can only recall alternative Sakharov meet scheme in vanilla inheriting from his regular scheme to enable a different dialogue), but it is common in CoP and imo it makes the logic files easier to read (while agreeably being potentially harder to maintain). I totally forgot about the existence of optional addons in SRP, and yeah, the other changes seem reasonable as well. One minor thing if this is going to get implemented into the main branch — the strings previously used for level changer blockage should get removed from the localization files. |
Unfortunately, Note to self: This PR is not safe to merge without a new game requirement. That's because if someone has a save where e.g. |
If the goal is to stop the rest of the conversation from playing when the player goes to another location and then comes back, I believe a better way to handle it would be to track game loading (through
device().precache_frame) and whether we're loading from a different level (which is already tracked by bind_stalker.script for emission starting purposes, but not exposed to other scripts), and if both conditions are met, stop the sound and skip the conversation entirely.