MCPcopy Create free account
hub / github.com/TheForceEngine/TheForceEngine / loadHeader

Function loadHeader

TheForceEngine/TFE_Game/saveSystem.cpp:125–191  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

123 }
124
125 void loadHeader(Stream* stream, SaveHeader* header, const char* fileName)
126 {
127 // Master version.
128 u32 version;
129 stream->read(&version);
130 header->saveVersion = version;
131
132 // Save Name.
133 u8 len;
134 stream->read(&len);
135 stream->readBuffer(header->saveName, len);
136 header->saveName[len] = 0;
137 // Fix existing invalid save names.
138 header->saveName[SAVE_MAX_NAME_LEN - 1] = 0;
139
140 // Handle the case when there is no save name.
141 if (header->saveName[0] == 0 || header->saveName[0] == ' ')
142 {
143 FileUtil::getFileNameFromPath(fileName, header->saveName);
144 }
145
146 // Time and Date of Save.
147 stream->read(&len);
148 stream->readBuffer(header->dateTime, len);
149 header->dateTime[len] = 0;
150
151 // Level Name
152 stream->read(&len);
153 stream->readBuffer(header->levelName, len);
154 header->levelName[len] = 0;
155
156 if (version >= SVER_REPLAY)
157 {
158 // Level ID
159 stream->read(&len);
160 stream->readBuffer(header->levelId, len);
161 header->levelId[len] = 0;
162
163 // Counter
164 stream->read(&len);
165 stream->readBuffer(&header->replayCounter, len);
166 }
167
168 // Mod List
169 stream->read(&len);
170 stream->readBuffer(header->modNames, len);
171 header->modNames[len] = 0;
172
173 // Image, re-use buffer 0 for the PNG.
174 u32 pngSize;
175 stream->read(&pngSize);
176 if (pngSize > s_imageBufferSize[0])
177 {
178 s_imageBuffer[0] = (u32*)realloc(s_imageBuffer[0], pngSize);
179 s_imageBufferSize[0] = pngSize;
180 }
181 stream->readBuffer(s_imageBuffer[0], pngSize);
182

Callers 4

loadReplayHeaderFunction · 0.85
serializeHeaderAgentInfoFunction · 0.85
loadGameFunction · 0.85
loadGameHeaderFunction · 0.85

Calls 5

readImageFromMemoryFunction · 0.85
getFileNameFromPathFunction · 0.50
freeFunction · 0.50
readMethod · 0.45
readBufferMethod · 0.45

Tested by

no test coverage detected