Pyrogenesis  13997
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
TypeList.h
Go to the documentation of this file.
1 /* Copyright (C) 2013 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)
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(Create)
42 MESSAGE(Destroy)
43 MESSAGE(OwnershipChanged)
44 MESSAGE(PositionChanged)
45 MESSAGE(MotionChanged)
46 MESSAGE(RangeUpdate)
47 MESSAGE(TerrainChanged)
48 MESSAGE(TerritoriesChanged)
49 MESSAGE(PathResult)
50 MESSAGE(TechnologyModification)
51 MESSAGE(VisionRangeChanged)
52 MESSAGE(MinimapPing)
53 
54 // TemplateManager must come before all other (non-test) components,
55 // so that it is the first to be (de)serialized
56 INTERFACE(TemplateManager)
57 COMPONENT(TemplateManager)
58 
59 // Special component for script component types with no native interface
60 INTERFACE(UnknownScript)
61 COMPONENT(UnknownScript)
62 
63 // In alphabetical order:
64 
65 INTERFACE(AIInterface)
66 COMPONENT(AIInterfaceScripted)
67 
68 INTERFACE(AIManager)
69 COMPONENT(AIManager)
70 
71 INTERFACE(CommandQueue)
72 COMPONENT(CommandQueue)
73 
74 INTERFACE(Decay)
75 COMPONENT(Decay)
76 
77 // Note: The VisualActor component relies on this component being initialized before itself, in order to support using
78 // an entity's footprint shape for the selection boxes. This dependency is not strictly necessary, but it does avoid
79 // some extra plumbing code to set up on-demand initialization. If you find yourself forced to break this dependency,
80 // see VisualActor's Init method for a description of how you can avoid it.
81 INTERFACE(Footprint)
82 COMPONENT(Footprint)
83 
84 INTERFACE(GuiInterface)
85 COMPONENT(GuiInterfaceScripted)
86 
87 INTERFACE(Identity)
88 COMPONENT(IdentityScripted)
89 
90 INTERFACE(Minimap)
91 COMPONENT(Minimap)
92 
93 INTERFACE(Motion)
94 COMPONENT(MotionBall)
95 COMPONENT(MotionScripted)
96 
97 INTERFACE(Obstruction)
98 COMPONENT(Obstruction)
99 
100 INTERFACE(ObstructionManager)
101 COMPONENT(ObstructionManager)
102 
105 
106 INTERFACE(Ownership)
107 COMPONENT(Ownership)
108 
109 INTERFACE(ParticleManager)
110 COMPONENT(ParticleManager)
111 
112 INTERFACE(Pathfinder)
113 COMPONENT(Pathfinder)
114 
115 INTERFACE(Player)
116 COMPONENT(PlayerScripted)
117 
118 INTERFACE(PlayerManager)
119 COMPONENT(PlayerManagerScripted)
120 
121 INTERFACE(Position)
122 COMPONENT(Position) // must be before VisualActor
123 
124 INTERFACE(ProjectileManager)
125 COMPONENT(ProjectileManager)
126 
127 INTERFACE(RallyPointRenderer)
128 COMPONENT(RallyPointRenderer)
129 
130 INTERFACE(RangeManager)
131 COMPONENT(RangeManager)
132 
133 INTERFACE(Selectable)
134 COMPONENT(Selectable)
135 
136 INTERFACE(Settlement)
137 COMPONENT(SettlementScripted)
138 
139 INTERFACE(SoundManager)
140 COMPONENT(SoundManager)
141 
142 INTERFACE(TechnologyManager)
143 COMPONENT(TechnologyManagerScripted)
144 
145 INTERFACE(TechnologyTemplateManager)
146 COMPONENT(TechnologyTemplateManagerScripted)
147 
148 INTERFACE(Terrain)
149 COMPONENT(Terrain)
150 
151 INTERFACE(TerritoryInfluence)
152 COMPONENT(TerritoryInfluence)
153 
154 INTERFACE(TerritoryManager)
155 COMPONENT(TerritoryManager)
156 
157 INTERFACE(UnitMotion)
158 COMPONENT(UnitMotion) // must be after Obstruction
159 COMPONENT(UnitMotionScripted)
160 
161 INTERFACE(Vision)
162 COMPONENT(Vision)
163 
164 // Note: this component relies on the Footprint component being initialized before itself. See the comments above for
165 // the Footprint component to find out why.
166 INTERFACE(Visual)
167 COMPONENT(VisualActor) // must be after Ownership (dependency in Deserialize) and Vision (dependency in Init)
168 
T Interpolate(const T &a, const T &b, float l)
Definition: MathUtil.h:26
static int ProgressiveLoad()
Definition: main.cpp:229
Class OverlayRenderer: Render various bits of data that overlay the game world (selection circles...
void Update(int turnLength, const std::vector< SimulationCommand > &commands)
#define COMPONENT(name)
#define MESSAGE(name)
#define INTERFACE(name)
Class WaterManager: Maintain water settings and textures.
Definition: WaterManager.h:49