Pyrogenesis  trunk
TypeList.h
Go to the documentation of this file.
1 /* Copyright (C) 2017 Wildfire Games.
2  * This file is part of 0 A.D.
3  *
4  * 0 A.D. is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation, either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * 0 A.D. is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with 0 A.D. If not, see <http://www.gnu.org/licenses/>.
16  */
17 
18 // MESSAGE: message types
19 // INTERFACE: component interface types
20 // COMPONENT: component types
21 
22 // Components intended only for use in test cases:
23 // (The tests rely on the enum IDs, so don't change the order of these)
24 INTERFACE(Test1)
25 COMPONENT(Test1A)
26 COMPONENT(Test1B)
27 COMPONENT(Test1Scripted)
28 INTERFACE(Test2)
29 COMPONENT(Test2A)
30 COMPONENT(Test2Scripted)
31 
32 // Message types:
33 MESSAGE(TurnStart)
34 MESSAGE(Update)
35 MESSAGE(Update_MotionFormation)
36 MESSAGE(Update_MotionUnit)
37 MESSAGE(Update_Final)
38 MESSAGE(Interpolate) // non-deterministic (use with caution)
39 MESSAGE(RenderSubmit) // non-deterministic (use with caution)
40 MESSAGE(ProgressiveLoad) // non-deterministic (use with caution)
41 MESSAGE(Deserialized) // non-deterministic (use with caution)
42 MESSAGE(Create)
43 MESSAGE(Destroy)
44 MESSAGE(OwnershipChanged)
45 MESSAGE(PositionChanged)
46 MESSAGE(InterpolatedPositionChanged)
47 MESSAGE(TerritoryPositionChanged)
48 MESSAGE(MotionChanged)
49 MESSAGE(RangeUpdate)
50 MESSAGE(TerrainChanged)
51 MESSAGE(VisibilityChanged)
52 MESSAGE(WaterChanged)
53 MESSAGE(ObstructionMapShapeChanged)
54 MESSAGE(TerritoriesChanged)
55 MESSAGE(PathResult)
56 MESSAGE(ValueModification)
57 MESSAGE(TemplateModification)
58 MESSAGE(VisionRangeChanged)
59 MESSAGE(VisionSharingChanged)
60 MESSAGE(MinimapPing)
61 MESSAGE(CinemaPathEnded)
62 MESSAGE(CinemaQueueEnded)
63 
64 // TemplateManager must come before all other (non-test) components,
65 // so that it is the first to be (de)serialized
66 INTERFACE(TemplateManager)
67 COMPONENT(TemplateManager)
68 
69 // Special component for script component types with no native interface
70 INTERFACE(UnknownScript)
71 COMPONENT(UnknownScript)
72 
73 // In alphabetical order:
74 
75 INTERFACE(AIInterface)
76 COMPONENT(AIInterfaceScripted)
77 
78 INTERFACE(AIManager)
79 COMPONENT(AIManager)
80 
81 INTERFACE(CinemaManager)
82 COMPONENT(CinemaManager)
83 
84 INTERFACE(CommandQueue)
85 COMPONENT(CommandQueue)
86 
87 INTERFACE(Decay)
88 COMPONENT(Decay)
89 
90 INTERFACE(Fogging)
91 COMPONENT(FoggingScripted)
92 
93 // Note: The VisualActor component relies on this component being initialized before itself, in order to support using
94 // an entity's footprint shape for the selection boxes. This dependency is not strictly necessary, but it does avoid
95 // some extra plumbing code to set up on-demand initialization. If you find yourself forced to break this dependency,
96 // see VisualActor's Init method for a description of how you can avoid it.
97 INTERFACE(Footprint)
98 COMPONENT(Footprint)
99 
100 INTERFACE(GuiInterface)
101 COMPONENT(GuiInterfaceScripted)
102 
103 INTERFACE(Identity)
104 COMPONENT(IdentityScripted)
105 
106 INTERFACE(Minimap)
107 COMPONENT(Minimap)
108 
109 INTERFACE(Mirage)
110 COMPONENT(MirageScripted)
111 
112 INTERFACE(Motion)
113 COMPONENT(MotionBall)
114 COMPONENT(MotionScripted)
115 
116 INTERFACE(Obstruction)
117 COMPONENT(Obstruction)
118 
119 INTERFACE(ObstructionManager)
120 COMPONENT(ObstructionManager)
121 
124 
125 INTERFACE(Ownership)
126 COMPONENT(Ownership)
127 
128 INTERFACE(ParticleManager)
129 COMPONENT(ParticleManager)
130 
131 INTERFACE(Pathfinder)
132 COMPONENT(Pathfinder)
133 
134 INTERFACE(Player)
135 COMPONENT(PlayerScripted)
136 
137 INTERFACE(PlayerManager)
138 COMPONENT(PlayerManagerScripted)
139 
140 INTERFACE(Position)
141 COMPONENT(Position) // must be before VisualActor
142 
143 INTERFACE(ProjectileManager)
144 COMPONENT(ProjectileManager)
145 
146 INTERFACE(RallyPointRenderer)
147 COMPONENT(RallyPointRenderer)
148 
149 INTERFACE(RangeManager)
150 COMPONENT(RangeManager)
151 
152 INTERFACE(Selectable)
153 COMPONENT(Selectable)
154 
155 INTERFACE(Settlement)
156 COMPONENT(SettlementScripted)
157 
158 INTERFACE(SoundManager)
159 COMPONENT(SoundManager)
160 
161 INTERFACE(ValueModificationManager)
162 COMPONENT(ValueModificationManagerScripted)
163 
164 INTERFACE(DataTemplateManager)
165 COMPONENT(DataTemplateManagerScripted)
166 
167 INTERFACE(Terrain)
168 COMPONENT(Terrain)
169 
170 INTERFACE(TerritoryInfluence)
171 COMPONENT(TerritoryInfluence)
172 
173 INTERFACE(TerritoryManager)
174 COMPONENT(TerritoryManager)
175 
176 INTERFACE(UnitMotion)
177 COMPONENT(UnitMotion) // must be after Obstruction
178 COMPONENT(UnitMotionScripted)
179 
180 INTERFACE(UnitRenderer)
181 COMPONENT(UnitRenderer)
182 
183 INTERFACE(Visibility)
184 COMPONENT(VisibilityScripted)
185 
186 INTERFACE(Vision)
187 COMPONENT(Vision)
188 
189 // Note: this component relies on the Footprint component being initialized before itself. See the comments above for
190 // the Footprint component to find out why.
191 INTERFACE(Visual)
192 COMPONENT(VisualActor) // must be after Ownership (dependency in Deserialize) and Vision (dependency in Init)
193 
T Interpolate(const T &a, const T &b, float l)
Definition: MathUtil.h:26
static int ProgressiveLoad()
Definition: main.cpp:182
Class OverlayRenderer: Render various bits of data that overlay the game world (selection circles...
Definition: OverlayRenderer.h:36
#define COMPONENT(name)
#define MESSAGE(name)
#define INTERFACE(name)
Class WaterManager: Maintain rendering-related water settings and textures Anything that affects game...
Definition: WaterManager.h:43