@@ -136,7 +136,10 @@ bool ActivityMan::SaveCurrentGame(const std::string& fileName) {
136136 writer->NewPropertyWithValue (" PlaceUnitsIfSceneIsRestarted" , g_SceneMan.GetPlaceUnitsOnLoad ());
137137 writer->NewPropertyWithValue (" Scene" , modifiableScene.get ());
138138
139- auto saveWriterData = [&](Writer* writerToSave) {
139+ // Get BITMAPS so save into our zip
140+ std::vector<SceneLayerInfo> sceneLayerInfos = scene->GetCopiedSceneLayerBitmaps ();
141+
142+ auto saveWriterData = [&](Writer* writerToSave, std::vector<SceneLayerInfo>&& sceneLayerInfos) {
140143 std::stringstream* stream = static_cast <std::stringstream*>(writerToSave->GetStream ());
141144 stream->flush ();
142145
@@ -150,13 +153,25 @@ bool ActivityMan::SaveCurrentGame(const std::string& fileName) {
150153 zipWriteInFileInZip (zippedSaveFile, streamAsString.data (), streamAsString.size ());
151154 zipCloseFileInZip (zippedSaveFile);
152155
156+ PALETTE palette;
157+ get_palette (palette);
158+
159+ for (const SceneLayerInfo& layerInfo : sceneLayerInfos)
160+ {
161+ // Allego lacks the fucking ability to save/load png from a byte stream
162+ // AAAAAAAAAAAAAAAAAAAAAAAAAAA
163+ // zipOpenNewFileInZip(zippedSaveFile, (fileName + " " + layerInfo.name + ".png").c_str(), &zfi, nullptr, 0, nullptr, 0, nullptr, Z_DEFLATED, defaultCompression);
164+ // zipWriteInFileInZip(zippedSaveFile, streamAsString.data(), streamAsString.size());
165+ // zipCloseFileInZip(zippedSaveFile);
166+ }
167+
153168 zipClose (zippedSaveFile, fileName.c_str ());
154169
155170 delete writerToSave;
156171 };
157172
158173 // For some reason I can't std::move a unique ptr in, so just releasing and deleting manually...
159- m_SaveGameTask.push_back (g_ThreadMan.GetBackgroundThreadPool ().submit (saveWriterData, writer.release ()));
174+ m_SaveGameTask.push_back (g_ThreadMan.GetBackgroundThreadPool ().submit (saveWriterData, writer.release (), std::move (sceneLayerInfos) ));
160175
161176 // We didn't transfer ownership, so we must be very careful that sceneAltered's deletion doesn't touch the stuff we got from MovableMan.
162177 modifiableScene->ClearPlacedObjectSet (Scene::PlacedObjectSets::PLACEONLOAD, false );
0 commit comments