Tiberian Technologies Scripts Reference Revision: 9000
Loading...
Searching...
No Matches
SaveLoadSystemClass.h
1/* Renegade Scripts.dll
2 Copyright 2013 Tiberian Technologies
3
4 This file is part of the Renegade scripts.dll
5 The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
6 the terms of the GNU General Public License as published by the Free
7 Software Foundation; either version 2, or (at your option) any later
8 version. See the file COPYING for more details.
9 In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
10 Only the source code to the module(s) containing the licenced code has to be released.
11*/
12#ifndef TT_INCLUDE__SAVELOADSYSTEMCLASS_H
13#define TT_INCLUDE__SAVELOADSYSTEMCLASS_H
14#include "PointerRemapClass.h"
15#include "SaveLoadSubSystemClass.h"
16class PersistFactoryClass;
17
18class SaveLoadSystemClass
19{
20
21public:
22
23#if (TDBEDIT) || (DDBEDIT) || (W3DVIEWER)
24 static PointerRemapClass PointerRemapper;
25 static PersistFactoryClass *_FactoryListHead;
26 static SaveLoadSubSystemClass *_SubSystemListHead;
27#else
28 static REF_DECL(PointerRemapClass, PointerRemapper);
29 static REF_DECL(PersistFactoryClass *, _FactoryListHead);
30 static REF_DECL(SaveLoadSubSystemClass *, _SubSystemListHead);
31#endif
32
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 **);
50};
51
52
53#endif