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
//
33
template
<
class
T,
int
class
_
id
,
char
*name>
34
class
SimpleDefinitionFactoryClass
:
public
DefinitionFactoryClass
35
{
36
public
:
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
52
protected
:
53
55
// Protected member data
57
bool
IsDisplayed
;
58
};
59
60
template
<
class
T,
int
class
_
id
,
char
*name>
61
inline
DefinitionClass
*
62
SimpleDefinitionFactoryClass<T, class_id, name>::Create
(
void
)
const
63
{
64
return
W3DNEW
T;
65
}
66
67
template
<
class
T,
int
class
_
id
,
char
*name>
68
inline
const
char
*
69
SimpleDefinitionFactoryClass<T, class_id, name>::Get_Name
(
void
)
const
70
{
71
return
name;
72
}
73
74
template
<
class
T,
int
class
_
id
,
char
*name>
75
inline
uint32
76
SimpleDefinitionFactoryClass<T, class_id, name>::Get_Class_ID
(
void
)
const
77
{
78
return
class_id;
79
}
80
81
#define DECLARE_DEFINITION_FACTORY(_class, _id, _name) \
82
char _class ## Name[] = _name; \
83
SimpleDefinitionFactoryClass<_class, _id, _class ## Name> \
84
85
#endif
//__SIMPLE_DEFINITION_FACTORY_H
86
W3DNEW
#define W3DNEW
Definition
always.h:109
uint32
unsigned long uint32
Definition
bittype.h:46
DefinitionClass
Definition
definition.h:62
DefinitionFactoryClass::DefinitionFactoryClass
DefinitionFactoryClass(void)
Definition
definitionfactory.cpp:46
SimpleDefinitionFactoryClass::SimpleDefinitionFactoryClass
SimpleDefinitionFactoryClass(bool is_displayed=true)
Definition
simpledefinitionfactory.h:41
SimpleDefinitionFactoryClass::Get_Class_ID
virtual uint32 Get_Class_ID(void) const
Definition
simpledefinitionfactory.h:76
SimpleDefinitionFactoryClass::Is_Displayed
virtual bool Is_Displayed(void) const
Definition
simpledefinitionfactory.h:50
SimpleDefinitionFactoryClass::IsDisplayed
bool IsDisplayed
Definition
simpledefinitionfactory.h:57
SimpleDefinitionFactoryClass::Get_Name
virtual const char * Get_Name(void) const
Definition
simpledefinitionfactory.h:69
SimpleDefinitionFactoryClass::Create
virtual DefinitionClass * Create(void) const
Definition
simpledefinitionfactory.h:62
definitionfactory.h
Code
Libraries
Source
WWVegas
WWSaveLoad
simpledefinitionfactory.h
Generated by
1.13.2