Skip to content
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

too many saves can cause issues #891

Open
4 tasks
Die4Ever opened this issue Aug 5, 2024 · 1 comment
Open
4 tasks

too many saves can cause issues #891

Die4Ever opened this issue Aug 5, 2024 · 1 comment
Labels
vanilla bug bugs from the original game, not our fault!
Milestone

Comments

@Die4Ever
Copy link
Owner

Die4Ever commented Aug 5, 2024

Voukras had 465 saves and making a new hardsave caused an older one to be overwritten (maybe specifically a save of the same map?).

We should:

  • have a warning when starting a new game about having too many saves, offering to delete old saves
  • an in-game button to delete old saves, and even all saves?
  • the installer could maybe have an option to backup old saves into a folder or zip file, similar to keeping dated backups of configs
  • we could maybe fix MenuScreenSaveGame::PerformSave()

function PerformSave()
{
	local DeusExRootWindow localRoot;
	local DeusExPlayer localPlayer;
	local int gameIndex;
	local String saveName;

	// Get the save index if this is an existing savegame
	gameIndex = int(lstGames.GetFieldValue(saveRowID, 4));

	// If gameIndex is -2, this is our New Save Game and we 
	// need to set gameIndex to 0, which is not a valid
	// gameIndex, in which case the DeusExGameEngine::SaveGame()
	// code will be kind and get us a new GameIndex (Really!
	// If you don't believe me, go look at the code!)

	if (gameIndex == -2)
		gameIndex = 0;

	saveName = editName.GetText();

	localPlayer   = player;
	localRoot     = root;

	localRoot.ClearWindowStack();
	localPlayer.SaveGame(gameIndex, saveName);
	localRoot.Show();
}

it uses save slot 0 to ask the game engine for an unused slot, but I think we could just search all the saves and find a slot ourselves in UnrealScript. For an example of looping through all saves see DXRVanilla\DeusEx\Classes\Player.uc::LoadLatestConfirmed()

@Die4Ever Die4Ever added the vanilla bug bugs from the original game, not our fault! label Aug 5, 2024
@Die4Ever Die4Ever modified the milestones: v3.2, v3.5 Aug 5, 2024
@MQDuck
Copy link
Contributor

MQDuck commented Aug 25, 2024

This sounds like a bug I've had a few times, where new saves just overwrite the last one. It doesn't seem related to number of saves. There's always a save that causes it, and deleting that one particular save makes the problem go away. Narrowing down which one it is can be a big pain.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
vanilla bug bugs from the original game, not our fault!
Projects
None yet
Development

No branches or pull requests

2 participants