12#ifndef TT_INCLUDE_PRESETMGR_H
13#define TT_INCLUDE_PRESETMGR_H
15#include "engine_string.h"
16#include "engine_vector.h"
17#include "SaveLoadSubSystemClass.h"
22class PresetMgrClass :
public SaveLoadSubSystemClass
25 PresetClass *_PresetListHead;
28 virtual ~PresetMgrClass();
29 virtual uint32 Chunk_ID()
const;
30 virtual bool Contains_Data()
const;
31 virtual bool Save(ChunkSaveClass& oSave);
32 virtual bool Load(ChunkLoadClass& oLoad);
33 virtual const char *Name()
const;
34 static PresetClass *Find_Preset(uint32
id);
35 static void Destroy_Presets();
36 static void Add_Preset(PresetClass *preset);
37 static PresetClass *Find_First_Preset(uint32 ClassID,
int MatchType,
bool FollowTwiddlers);
38 static PresetClass *Find_Next_Preset(PresetClass *preset,uint32 ClassID,
int MatchType,
bool FollowTwiddlers);
39 static bool Match_Class_ID(uint32 classid,
int MatchType,
bool FollowTwiddlers, PresetClass *preset);
41class PresetClass :
public PersistClass
43 PresetClass *m_NextPreset;
44 PresetClass *m_PrevPreset;
46 DefinitionClass *definition;
47 DynamicVectorClass<StringClass> dependencies;
52 uint32 m_DefinitionID;
53 DynamicVectorClass<NodeClass *> Nodes;
54 DynamicVectorClass<uint32> ChildIDs;
57 virtual ~PresetClass();
58 virtual void On_Post_Load(
void);
59 virtual const PersistFactoryClass & Get_Factory(
void)
const;
60 virtual bool Save(ChunkSaveClass &csave);
61 virtual bool Load(ChunkLoadClass &cload);
62 void Remove_ID(uint32
id);
63 void Add_ID_To_List(uint32
id);
72 void Set_Next(PresetClass *preset)
74 m_NextPreset = preset;
76 void Set_Prev(PresetClass *preset)
78 m_PrevPreset = preset;
84 PresetClass *Get_Child(
int index)
86 if (index >= 0 && index < ChildIDs.Count())
88 return PresetMgrClass::Find_Preset(ChildIDs[index]);
94 return ChildIDs.Count();
96 DefinitionClass *Get_Definition()
100 PresetClass *Get_Parent()
104 uint32 Get_Definition_ID()
106 return m_DefinitionID;
108 void Set_Definition_ID(uint32
id)
118#if (DDBEDIT) || (TDBEDIT) || (W3DVIEWER)
119extern PresetMgrClass _ThePresetMgr;
121extern REF_DECL(PresetMgrClass, _ThePresetMgr);