-/***********************************************************
-* Artsoft Retro-Game Library *
-*----------------------------------------------------------*
-* (c) 1995-2006 Artsoft Entertainment *
-* Holger Schemel *
-* Detmolder Strasse 189 *
-* 33604 Bielefeld *
-* Germany *
-* e-mail: info@artsoft.org *
-*----------------------------------------------------------*
-* snapshot.h *
-***********************************************************/
+// ============================================================================
+// Artsoft Retro-Game Library
+// ----------------------------------------------------------------------------
+// (c) 1995-2014 by Artsoft Entertainment
+// Holger Schemel
+// info@artsoft.org
+// http://www.artsoft.org/
+// ----------------------------------------------------------------------------
+// snapshot.h
+// ============================================================================
#ifndef SNAPSHOT_H
#define SNAPSHOT_H
#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