-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
NANCY: ScummVM save/load menus and Nancy 8 fixes #6599
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Shall "Use original save/load screens" be enabled by default? |
Minigame stub: there are many, many other unimplemented things in the game which behave the same way; I wonder if it's worth it to add stubs. (For example, enable power on the circuit board puzzle, or try to play Squid Toss at the midway.) CAR is still WIP, and within a broken scene there are at least console commands and tools which can give useful info about the scene; for a game like CAR which is in development, I wonder if it's better to remain on the broken scene instead of jumping away from it. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pardon my intrusion, not familiar with github, hope this is the right action
ScummVM load/save screens offer an enhanced experience over the original ones, so the idea is to use them by default, as we do in other engines |
The idea is to prevent the game from crashing/locking in unimplemented screens, plus have a list of which mini-games are actually missing |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A couple of things for the save/load changes, no objections to the rest.
|
||
if (!ConfMan.getBool("originalsaveload")) { | ||
if (Nancy::State::Scene::hasInstance()) { | ||
GUI::MessageDialog saveOrLoad(_("Would you like to load or save a game?"), _("Load"), _("Save")); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just noticed this - when exiting the game through the main menu, the engine shows a "Would you like to save your game before exiting?". Clicking yes still leads to this code path, and asks the player whether they want to load or save. But since they said yes to that question, they'll want to save.
To solve this, I'd add a transient ConfMan bool in savegame.cpp, stop() case 6, and then check for it (and clear it) on this line.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not exactly. What happens now is that after the user has saved in this scenario, they get thrown back into the Scene state, which resets the _hasJustSaved flag, and they get prompted again. You should either:
- Return to the main menu after a save (in this scenario only); or
- Just always return to the main menu after the save or load dialog is closed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@fracturehill Fixed in 7d2655c.
I've modified the ScummVM save dialog to return to the main menu, like the original dialog does.
The original load dialog takes the user back to the scene upon load, so I've kept that behavior the same in the ScummVM load dialog.
Is Carousel really completable? Even with the commits in this PR (currently 68f13e8), I can't flip the power switch on the circuit board, which I think is necessary to proceed (to enter the roller coaster area). Maybe I'm missing how to skip that or how to complete it successfully. (I humbly and respectfully suggest removing "final", "last" etc. from commit names, since I guess we don't know what we don't know and there may be more stubbable things lurking that we have not encountered yet.) |
Yes, Carousel is completable. Nothing else should be missing, other than the already identified missing puzzles. |
The solutions in the forum you linked all say to flip the power switch. As I wrote, flipping the power switch does not work in ScummVM. Maybe there is some bug specific to my builds? There are no warnings, errors, or debug lines in the console when this happens. The latest console lines with
capture.mp4.mp4 |
Solder the top cables of the board, not the bottom ones |
Ah! I knew I had a wrong solution in the video (I really just clicked whichever solders I felt like clicking); in earlier testing a couple months ago, I thought I had the correct solution but still experienced the same bug so assumed it happened no matter what. I guess I actually had the wrong solution then. |
|
||
if (!ConfMan.getBool("originalsaveload")) { | ||
if (Nancy::State::Scene::hasInstance()) { | ||
GUI::MessageDialog saveOrLoad(_("Would you like to load or save a game?"), _("Load"), _("Save")); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not exactly. What happens now is that after the user has saved in this scenario, they get thrown back into the Scene state, which resets the _hasJustSaved flag, and they get prompted again. You should either:
- Return to the main menu after a save (in this scenario only); or
- Just always return to the main menu after the save or load dialog is closed.
Committed the revised Nancy 6 fix, after talking with @fracturehill as 2facc4d. Will clean up the commits in this PR |
We have the following benefits: - All games can now benefit from 999 save slots, instead of only the newer ones, which feature more enhanced save/load menus - It's possible to delete saved games - The ScummVM menus can be used in newer games (Nancy 8 and later), where the original save/load dialogs aren't implemented yet Note: Since the original save/load menus aren't implemented for Nancy 8 and newer games, we always use the ScummVM ones there
These stubs skip the unimplemented puzzles, and will help us progress further on in the game. Unimplemented puzzle stubs: - Laptop - flag puzzle (MatchPuzzle - optional) - Squid Toss arcade (AngleTossPuzzle) - Barnacle Blast arcade (ArcadePuzzle / Arkanoid) - Art studio lathe puzzle (CuttingPuzzle) - Stenography tutorials (QuizPuzzle - optional)
Needed for Nancy 8 and newer games. Fixes the Swimmer's Itch puzzle in Nancy 8. Changes for this puzzle introduced in Nancy 8 have been implemented with commit 3a6e256. However, since _puzzleStartTime wasn't initialized, the puzzle timer ended prematurely, resulting in immediate loss when starting the game
The helper text animation would overwrite the actual phone numbers displayed, rendering the new phone interface useless
c1435e7
to
544fe79
Compare
I've pushed some minor commits with no functional changes to master, to remove noise from this PR. |
This follows the behavior of the original save screen, and fixes the issue where the user would get a superfluous save confirmation dialog when exiting the game, after saving
Check if no active records were found for the current frame. This will lead to an infinite loop without anything happening, so we reset the _recordsWereExecuted flag, to fall back to the kDefaultAR dependency. This is needed for some scenes in Nancy 8, where SetVolume() is called, but no other action records are active.
This PR aims to add support for ScummVM save/load menus for Nancy games and fix issues with Nancy 8. With these changes, Nancy 8 is completable, with the following puzzles missing (added as stubs):
With ScummVM save/load menus, we have the following benefits:
newer ones, which feature more enhanced save/load menus
where the original save/load dialogs aren't implemented yet
Note: Since the original save/load menus aren't implemented for Nancy 8
and newer games, we always use the ScummVM ones there
Status update: I've played through Nancy 6,7,8 (6 and 8 with the ScummVM save/load menus, 7 with the original save/load menus), and they're all completable.
Detailed status:
one fix is needed for the Zip disk hypertext entriesfixed in 2facc4d)in some cases the game freezes when you talk to someone that has nothing to sayhopefully fixed in 4c375b3