Pyrogenesis  trunk
TypeList.h
Go to the documentation of this file.
1 /* Copyright (C) 2021 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(MotionUpdate)
49 MESSAGE(RangeUpdate)
50 MESSAGE(TerrainChanged)
51 MESSAGE(VisibilityChanged)
52 MESSAGE(WaterChanged)
53 MESSAGE(MovementObstructionChanged)
54 MESSAGE(ObstructionMapShapeChanged)
55 MESSAGE(TerritoriesChanged)
57 MESSAGE(ValueModification)
58 MESSAGE(TemplateModification)
59 MESSAGE(VisionRangeChanged)
60 MESSAGE(VisionSharingChanged)
61 MESSAGE(MinimapPing)
62 MESSAGE(CinemaPathEnded)
63 MESSAGE(CinemaQueueEnded)
64 MESSAGE(PlayerColorChanged)
65 
66 // TemplateManager must come before all other (non-test) components,
67 // so that it is the first to be (de)serialized
68 INTERFACE(TemplateManager)
69 COMPONENT(TemplateManager)
70 
71 // Special component for script component types with no native interface
72 INTERFACE(UnknownScript)
73 COMPONENT(UnknownScript)
74 
75 // In alphabetical order:
76 
77 INTERFACE(AIInterface)
78 COMPONENT(AIInterfaceScripted)
79 
80 INTERFACE(AIManager)
81 COMPONENT(AIManager)
82 
83 INTERFACE(Attack)
84 COMPONENT(AttackScripted)
85 
86 INTERFACE(CinemaManager)
87 COMPONENT(CinemaManager)
88 
89 INTERFACE(CommandQueue)
90 COMPONENT(CommandQueue)
91 
92 INTERFACE(Decay)
93 COMPONENT(Decay)
94 
95 INTERFACE(Fogging)
96 COMPONENT(FoggingScripted)
97 
98 // Note: The VisualActor component relies on this component being initialized before itself, in order to support using
99 // an entity's footprint shape for the selection boxes. This dependency is not strictly necessary, but it does avoid
100 // some extra plumbing code to set up on-demand initialization. If you find yourself forced to break this dependency,
101 // see VisualActor's Init method for a description of how you can avoid it.
102 INTERFACE(Footprint)
103 COMPONENT(Footprint)
104 
105 INTERFACE(GarrisonHolder)
106 COMPONENT(GarrisonHolderScripted)
107 
108 INTERFACE(GuiInterface)
109 COMPONENT(GuiInterfaceScripted)
110 
111 INTERFACE(Identity)
112 COMPONENT(IdentityScripted)
113 
114 INTERFACE(Minimap)
115 COMPONENT(Minimap)
116 
117 INTERFACE(Mirage)
118 COMPONENT(MirageScripted)
119 
120 INTERFACE(Motion)
121 COMPONENT(MotionBall)
122 COMPONENT(MotionScripted)
123 
124 INTERFACE(Obstruction)
125 COMPONENT(Obstruction)
126 
127 INTERFACE(ObstructionManager)
128 COMPONENT(ObstructionManager)
129 
132 
133 INTERFACE(Ownership)
134 COMPONENT(Ownership)
135 
136 INTERFACE(ParticleManager)
137 COMPONENT(ParticleManager)
138 
139 INTERFACE(Pathfinder)
140 COMPONENT(Pathfinder)
141 
142 INTERFACE(Player)
143 COMPONENT(PlayerScripted)
144 
145 INTERFACE(PlayerManager)
146 COMPONENT(PlayerManagerScripted)
147 
148 INTERFACE(Position)
149 COMPONENT(Position) // must be before VisualActor
150 
151 INTERFACE(ProjectileManager)
152 COMPONENT(ProjectileManager)
153 
154 INTERFACE(RallyPoint)
155 COMPONENT(RallyPointScripted)
156 
157 INTERFACE(RallyPointRenderer)
158 COMPONENT(RallyPointRenderer)
159 
160 INTERFACE(RangeManager)
161 COMPONENT(RangeManager)
162 
163 INTERFACE(RangeOverlayRenderer)
164 COMPONENT(RangeOverlayRenderer)
165 
166 INTERFACE(Selectable)
167 COMPONENT(Selectable)
168 
169 INTERFACE(Settlement)
170 COMPONENT(SettlementScripted)
171 
172 INTERFACE(Sound)
173 COMPONENT(SoundScripted)
174 
175 INTERFACE(SoundManager)
176 COMPONENT(SoundManager)
177 
178 INTERFACE(ValueModificationManager)
179 COMPONENT(ValueModificationManagerScripted)
180 
181 INTERFACE(Terrain)
182 COMPONENT(Terrain)
183 
184 INTERFACE(TerritoryDecayManager)
185 COMPONENT(TerritoryDecayManagerScripted)
186 
187 INTERFACE(TerritoryInfluence)
188 COMPONENT(TerritoryInfluence)
189 
190 INTERFACE(TerritoryManager)
191 COMPONENT(TerritoryManager)
192 
193 INTERFACE(TurretHolder)
194 COMPONENT(TurretHolderScripted)
195 
196 INTERFACE(UnitMotion)
197 COMPONENT(UnitMotion) // must be after Obstruction
198 COMPONENT(UnitMotionScripted)
199 
200 INTERFACE(UnitMotionManager)
201 COMPONENT(UnitMotionManager)
202 
203 INTERFACE(UnitRenderer)
204 COMPONENT(UnitRenderer)
205 
206 INTERFACE(Visibility)
207 COMPONENT(VisibilityScripted)
208 
209 INTERFACE(Vision)
210 COMPONENT(Vision)
211 
212 // Note: this component relies on the Footprint component being initialized before itself. See the comments above for
213 // the Footprint component to find out why.
214 INTERFACE(Visual)
215 COMPONENT(VisualActor) // must be after Ownership (dependency in Deserialize) and Vision (dependency in Init)
216 
Definition: ICmpPathfinder.h:36
static int ProgressiveLoad()
Definition: main.cpp:296
Class OverlayRenderer: Render various bits of data that overlay the game world (selection circles...
Definition: OverlayRenderer.h:37
T Interpolate(const T &a, const T &b, float t)
Definition: MathUtil.h:26
#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:47