-
Notifications
You must be signed in to change notification settings - Fork 136
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
Update loadsave.cc to 100 slots #470
base: main
Are you sure you want to change the base?
Conversation
Increases Load/Save slots to 100 Adds pagination and controls to move between slots - previous scrolling/key functions work as normal, and move between pages
Good work. But before merging this, I would make sure that it is
|
Maybe, but aren't there just too many cfg setting to start with? ddraw.ini, fallout.cfg, f2_res.ini.... it is all a mess. This is coming from someone who was not involved in Fallout for 20 years. It just seems insanely messy. How many hundreds of messages have I seen on various forums and posts, of people trying to wend their way through the morass. I would lean into integrating it as innocuously as possible. I do see your point here though. As for sFall, someone else would have to do that. I'm macOS only, no idea what sfall extended saves entails. |
I agree, it's a mess. But most settings live in ddraw.ini nowadays (mostly under Misc section, which is bloated beyond reason). CE is probably a good opportunity to sort this out. But the point that this should be optional, for the sake of vanilla feel, still stands. I guess this is one of those controversial things, like symbol naming conventions. Someone has to step up and make a decision. Should CE have as much options as possible to revert the game to look/feel as vanilla as possible. @alexbatalov - thoughts? |
Tweaked the buttons to 'Back' and 'More' to reflect other on-screen navigation buttons in the pipboy. Adding missing 'blit's to fix alexbatalov#472
I rewrote the code to use global variable, which can be set to 10, 100, or 1000. At 10 the save/load interface reverts to default. 100 or 1000 increase the save game slots to those numbers, and enable the pagination. So it can easily be hooked into a cfg setting. I'll update the PR if this is the way to go. |
src/loadsave.cc
Outdated
@@ -2234,11 +2267,17 @@ static void _ShowSlotList(int windowType) | |||
} | |||
|
|||
// Pagination navigation | |||
if (_currentSlotPage == 0) { | |||
fontDrawText(gLoadSaveWindowBuffer + LS_WINDOW_WIDTH * (y + 0) + 95, "BACK", LS_WINDOW_WIDTH, LS_WINDOW_WIDTH, _colorTable[8804]); |
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.
What about localization? Sfall had it's own ini file with translated strings.. But for CE I would think about adding entirely new MSG strings. That would mean editing msg files which are usually inside dat archives..
As a solution, I suggest to introduce a new msg file like "game/ce_interface.msg" (don't worry about the 8 char limit, we're not in 1994 anymore). Add it to the repository as well (English only, for now). Then put all new strings for in-engine UI there.
Maybe this can be done is a separate pull request.
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.
Hm, I thought I could load in the strings from pipboy, so no new strings would be needed. Maybe easier said than done.
I wonder how many new strings we would need in the end? Working on the pipboy/interface is something I can handle, do you see any other areas that need some work?
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.
Sfall has a bunch of text messages related to it's features and tweaks, plus the Appearance Mod (the one that adds different races and hair styles) needs a few strings. Now they use an ini file, but this was done back when people were struggling to use what the engine has to offer. Nowadays sfall comes with it's own extra dat files which contains any new art and other resources for built-in features. CE could just follow this approach and a new MSG file as well.
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.
What about 'misc.msg'? - this message file is loaded at and accessible at all times, and is freed on game exit. Couldn't new interface text be stored there? It is already a grab-all for text messages throughout the game.
Whether we load in a new ce_interface.msg or reuse misc.msg, localization would have to be handled by mod makers. I suppose with our own ce_interface we could pre-translate for a number of languages. English, Spanish, French, German, Russian etc.
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.
The problem with using vanilla msg files is they are already used by mods and localized. So better to have a new file for CE I think. Although if you pretend that no Fallout mods or localizations exist, then it's better to add strings to existing msg... But I think this is not a very useful approach, so long as CE is scoped as engine source port and not a complete game (with all resources included in repo).
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.
Are we ever going to reach such a state? I.e. a state where numerous messages are needed to be combined into a Fallout_CE specific file? I wonder. If we are, great, let's do that, but if not, then I should utilize the messages in pipboy.msg for the interface, as I can pull those in easily enough. And they would be updated by mods/localizations with no input from me/us. However, I think until @alexbatalov weighs in on certain things, we are kind of in limbo.
Sounds like a great solution. Good job! |
Modified to use global variable 'saveLoadPages' which can be set to 10, 100 or 1000 - at more than 10 pagination turns on. At 10 Load/Save screen is default. Also added left right arrow key navigation for flipping between pages when more than 10 save slots (saveLoadPages at 100 or 1000)
Increases Load/Save slots to 100 - sFall?
Adds pagination and controls to move between slots - previous scrolling/key functions work as normal, and move between pages