Tiberian Technologies Scripts Reference Revision: 9000
Loading...
Searching...
No Matches
Definition.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_DEFINITION_H
13#define TT_INCLUDE_DEFINITION_H
14#include "Editable.h"
15class FileClass;
16class DefinitionClass : public EditableClass {
17public:
18 DefinitionClass (void);
19 virtual ~DefinitionClass (void);
20 virtual uint32 Get_Class_ID (void) const = 0;
21 virtual uint32 Get_ID (void) const;
22 virtual void Set_ID (uint32 id);
23 virtual PersistClass * Create (void) const = 0;
24 virtual const char * Get_Name (void) const;
25 virtual void Set_Name (const char *new_name);
26 virtual bool Is_Valid_Config (StringClass &message);
27 virtual bool Save (ChunkSaveClass &csave);
28 virtual bool Load (ChunkLoadClass &cload);
29 uint32 Get_User_Data (void) const { return m_GenericUserData; }
30 void Set_User_Data (uint32 data) { m_GenericUserData = data; }
31 bool Is_Save_Enabled (void) const { return m_SaveEnabled; }
32 void Enable_Save (bool onoff) { m_SaveEnabled = onoff; }
33#ifdef DDBEDIT
34 virtual void Dump (FileClass &file);
35 virtual void DumpPhys (FileClass &file);
36#endif
37 DECLARE_EDITABLE(DefinitionClass, EditableClass);
38protected:
39 int m_DefinitionMgrLink; // 0008
40private:
41 bool Save_Variables (ChunkSaveClass &csave);
42 bool Load_Variables (ChunkLoadClass &cload);
43 StringClass m_Name; // 000C
44 uint32 m_ID; // 0010
45 uint32 m_GenericUserData; // 0014
46 bool m_SaveEnabled; // 0018
47 friend class DefinitionMgrClass;
48}; // 001C
49
50inline DefinitionClass::DefinitionClass (void)
51 : m_ID (0),
52 m_SaveEnabled (true),
53 m_DefinitionMgrLink (-1)
54{
55 return ;
56}
57
58inline DefinitionClass::~DefinitionClass (void)
59{
60 return ;
61}
62
63inline const char *DefinitionClass::Get_Name (void) const
64{
65 return m_Name;
66}
67
68inline void DefinitionClass::Set_Name (const char *new_name)
69{
70 m_Name = new_name;
71 return ;
72}
73
74inline uint32 DefinitionClass::Get_ID (void) const
75{
76 return m_ID;
77}
78
79inline bool DefinitionClass::Is_Valid_Config (StringClass &message)
80{
81 return true;
82}
83
84#endif