mirror of
https://github.com/ZDoom/gzdoom.git
synced 2025-02-28 06:41:47 +00:00
- fixed saving and loading of games
Saved game with one map only can be loaded so far
This commit is contained in:
parent
02c9899ed3
commit
731fe67600
1 changed files with 6 additions and 4 deletions
|
@ -1815,10 +1815,11 @@ void G_DoLoadGame ()
|
||||||
// Check whether this savegame actually has been created by a compatible engine.
|
// Check whether this savegame actually has been created by a compatible engine.
|
||||||
// Since there are ZDoom derivates using the exact same savegame format but
|
// Since there are ZDoom derivates using the exact same savegame format but
|
||||||
// with mutual incompatibilities this check simplifies things significantly.
|
// with mutual incompatibilities this check simplifies things significantly.
|
||||||
FString savever, engine, map;
|
FString savever, engine;
|
||||||
arc("Save Version", SaveVersion);
|
arc("Save Version", SaveVersion);
|
||||||
arc("Engine", engine);
|
arc("Engine", engine);
|
||||||
arc("Current Map", map);
|
TArray<FString> maps;
|
||||||
|
arc("Current Maps", maps);
|
||||||
|
|
||||||
if (engine.CompareNoCase(GAMESIG) != 0)
|
if (engine.CompareNoCase(GAMESIG) != 0)
|
||||||
{
|
{
|
||||||
|
@ -1855,7 +1856,7 @@ void G_DoLoadGame ()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (map.IsEmpty())
|
if (maps.Size() == 0)
|
||||||
{
|
{
|
||||||
Printf("Savegame is missing the current map\n");
|
Printf("Savegame is missing the current map\n");
|
||||||
return;
|
return;
|
||||||
|
@ -1912,7 +1913,7 @@ void G_DoLoadGame ()
|
||||||
// load a base level
|
// load a base level
|
||||||
savegamerestore = true; // Use the player actors in the savegame
|
savegamerestore = true; // Use the player actors in the savegame
|
||||||
bool demoplaybacksave = demoplayback;
|
bool demoplaybacksave = demoplayback;
|
||||||
G_InitNew(map, false);
|
G_InitNew(maps[0], false);
|
||||||
demoplayback = demoplaybacksave;
|
demoplayback = demoplaybacksave;
|
||||||
savegamerestore = false;
|
savegamerestore = false;
|
||||||
|
|
||||||
|
@ -2181,6 +2182,7 @@ void G_DoSaveGame (bool okForQuicksave, FString filename, const char *descriptio
|
||||||
ForAllLevels([&](FLevelLocals *Level) {
|
ForAllLevels([&](FLevelLocals *Level) {
|
||||||
savegameinfo.AddString(nullptr, Level->MapName);
|
savegameinfo.AddString(nullptr, Level->MapName);
|
||||||
});
|
});
|
||||||
|
savegameinfo.EndArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue