Richard Boegli's CnC_Generals_Zero_Hour Fork WIP
This is documentation of Richard Boegil's Zero Hour Fork
 
Loading...
Searching...
No Matches
simpledefinitionfactory.h
Go to the documentation of this file.
1/*
2** Command & Conquer Generals Zero Hour(tm)
3** Copyright 2025 Electronic Arts Inc.
4**
5** This program is free software: you can redistribute it and/or modify
6** it under the terms of the GNU General Public License as published by
7** the Free Software Foundation, either version 3 of the License, or
8** (at your option) any later version.
9**
10** This program is distributed in the hope that it will be useful,
11** but WITHOUT ANY WARRANTY; without even the implied warranty of
12** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13** GNU General Public License for more details.
14**
15** You should have received a copy of the GNU General Public License
16** along with this program. If not, see <http://www.gnu.org/licenses/>.
17*/
18
19
20
21#ifndef __SIMPLE_DEFINITION_FACTORY_H
22#define __SIMPLE_DEFINITION_FACTORY_H
23
24#include "definitionfactory.h"
25
27//
28// SimpleDefinitionFactoryClass
29//
30// Template class to automate the creation of simple definition factories.
31//
33template<class T, int class_id, char *name>
35{
36public:
37
39 // Public constructors/destructors
41 SimpleDefinitionFactoryClass (bool is_displayed = true) :
42 IsDisplayed (is_displayed) {}
43
45 // Public methods
47 virtual DefinitionClass * Create (void) const;
48 virtual const char * Get_Name (void) const;
49 virtual uint32 Get_Class_ID (void) const;
50 virtual bool Is_Displayed (void) const { return IsDisplayed; }
51
52protected:
53
55 // Protected member data
58};
59
60template<class T, int class_id, char *name>
61inline DefinitionClass *
66
67template<class T, int class_id, char *name>
68inline const char *
73
74template<class T, int class_id, char *name>
75inline uint32
80
81#define DECLARE_DEFINITION_FACTORY(_class, _id, _name) \
82char _class ## Name[] = _name; \
83SimpleDefinitionFactoryClass<_class, _id, _class ## Name> \
84
85#endif //__SIMPLE_DEFINITION_FACTORY_H
86
#define W3DNEW
Definition always.h:109
unsigned long uint32
Definition bittype.h:46
SimpleDefinitionFactoryClass(bool is_displayed=true)
virtual uint32 Get_Class_ID(void) const
virtual bool Is_Displayed(void) const
virtual const char * Get_Name(void) const
virtual DefinitionClass * Create(void) const