MCPcopy Create free account
hub / github.com/ZDoom/Raze / ReadSavegame

Function ReadSavegame

source/core/savegamehelp.cpp:135–181  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

133//=============================================================================
134
135bool ReadSavegame(const char* name)
136{
137 auto savereader = FileSys::FResourceFile::OpenResourceFile(name, true);
138
139 if (savereader != nullptr)
140 {
141 auto lump = savereader->FindEntry("info.json");
142 if (lump < 0)
143 {
144 delete savereader;
145 return false;
146 }
147 auto file = savereader->GetEntryReader(lump);
148 if (G_ValidateSavegame(file, nullptr, false) <= 0)
149 {
150 delete savereader;
151 return false;
152 }
153 file.Close();
154
155 auto info = savereader->FindEntry("session.json");
156 if (info < 0)
157 {
158 delete savereader;
159 return false;
160 }
161
162 auto data = savereader->Read(info);
163 FRazeSerializer arc;
164 if (!arc.OpenReader(data.string(), data.size()))
165 {
166 delete savereader;
167 return false;
168 }
169
170 // Load the savegame.
171 loadMapBackup(currentLevel->fileName.GetChars());
172 SerializeSession(arc);
173 g_nextskill = gi->GetCurrentSkill();
174 arc.Close();
175 delete savereader;
176
177 ResetStatusBar();
178 return true;
179 }
180 return false;
181}
182
183CVAR(Bool, save_formatted, false, 0) // should be set to false once the conversion is done
184

Callers 1

DoLoadGameFunction · 0.85

Calls 13

G_ValidateSavegameFunction · 0.85
loadMapBackupFunction · 0.85
SerializeSessionFunction · 0.85
ResetStatusBarFunction · 0.85
OpenReaderMethod · 0.80
stringMethod · 0.80
FindEntryMethod · 0.45
GetEntryReaderMethod · 0.45
CloseMethod · 0.45
ReadMethod · 0.45
sizeMethod · 0.45
GetCharsMethod · 0.45

Tested by

no test coverage detected