#include "misc.h"
-/* needed for comfortably saving engine snapshot buffers */
-#define ARGS_ADDRESS_AND_SIZEOF(x) (&(x)), (sizeof(x))
+#define SNAPSHOT_MEMORY_DEFAULT (512 * 1024 * 1024)
-struct EngineSnapshotNodeInfo
+// needed for comfortably saving engine snapshot buffers
+#define ARGS_ADDRESS_AND_SIZEOF(x) (&(x)), (sizeof(x))
+
+struct SnapshotNodeInfo
{
void *buffer_orig;
void *buffer_copy;
};
-void SaveEngineSnapshotBuffer(void *buffer, int size);
-void LoadEngineSnapshotBuffers();
-void FreeEngineSnapshotBuffers();
+void SaveSnapshotBuffer(ListNode **, void *, int);
+void LoadSnapshotBuffers(ListNode *);
+void FreeSnapshotBuffers(ListNode *);
+
+void SaveSnapshotSingle(ListNode *);
+void SaveSnapshotToList(ListNode *);
+boolean LoadSnapshotSingle(void);
+boolean LoadSnapshotFromList_Older(int);
+boolean LoadSnapshotFromList_Newer(int);
+boolean CheckSnapshotList(void);
+void FreeSnapshotSingle(void);
+void FreeSnapshotList(void);
-#endif /* SNAPSHOT_H */
+#endif // SNAPSHOT_H