12#ifndef TT_INCLUDE__SAVELOADSYSTEMCLASS_H
13#define TT_INCLUDE__SAVELOADSYSTEMCLASS_H
14#include "PointerRemapClass.h"
15#include "SaveLoadSubSystemClass.h"
16class PersistFactoryClass;
18class SaveLoadSystemClass
23#if (TDBEDIT) || (DDBEDIT) || (W3DVIEWER)
24 static PointerRemapClass PointerRemapper;
25 static PersistFactoryClass *_FactoryListHead;
26 static SaveLoadSubSystemClass *_SubSystemListHead;
28 static REF_DECL(PointerRemapClass, PointerRemapper);
29 static REF_DECL(PersistFactoryClass *, _FactoryListHead);
30 static REF_DECL(SaveLoadSubSystemClass *, _SubSystemListHead);
33 static SaveLoadSubSystemClass* Find_Sub_System (uint32
id);
34 static bool Load (ChunkLoadClass& chunkLoader,
bool);
35 static bool Save (ChunkSaveClass& chunkSaver, SaveLoadSubSystemClass &subSystem);
36 static void Post_Load_Processing (
void(*)());
37 static void Register_Pointer (
void*,
void*);
38 static void Register_Post_Load_Callback (PostLoadableClass*);
39 static void Request_Pointer_Remap (
void**);
40 static void Register_Sub_System (SaveLoadSubSystemClass *);
41 static void Unregister_Sub_System (SaveLoadSubSystemClass *);
42 static void Link_Sub_System (SaveLoadSubSystemClass *);
43 static void Unlink_Sub_System (SaveLoadSubSystemClass *);
44 static void Register_Persist_Factory (PersistFactoryClass *);
45 static void Unregister_Persist_Factory (PersistFactoryClass *);
46 static PersistFactoryClass * Find_Persist_Factory (uint32);
47 static void Link_Factory (PersistFactoryClass *);
48 static void Unlink_Factory (PersistFactoryClass *);
49 static void Request_Ref_Counted_Pointer_Remap (RefCountClass **);