Line data Source code
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 245 : INTERFACE(Test1)
25 116 : COMPONENT(Test1A)
26 116 : COMPONENT(Test1B)
27 116 : COMPONENT(Test1Scripted)
28 245 : INTERFACE(Test2)
29 116 : COMPONENT(Test2A)
30 116 : COMPONENT(Test2Scripted)
31 :
32 : // Message types:
33 245 : MESSAGE(TurnStart)
34 248 : MESSAGE(Update)
35 245 : MESSAGE(Update_MotionFormation)
36 245 : MESSAGE(Update_MotionUnit)
37 245 : MESSAGE(Update_Final)
38 245 : MESSAGE(Interpolate) // non-deterministic (use with caution)
39 245 : MESSAGE(RenderSubmit) // non-deterministic (use with caution)
40 245 : MESSAGE(ProgressiveLoad) // non-deterministic (use with caution)
41 245 : MESSAGE(Deserialized) // non-deterministic (use with caution)
42 245 : MESSAGE(Create)
43 245 : MESSAGE(Destroy)
44 245 : MESSAGE(OwnershipChanged)
45 245 : MESSAGE(PositionChanged)
46 245 : MESSAGE(InterpolatedPositionChanged)
47 245 : MESSAGE(TerritoryPositionChanged)
48 245 : MESSAGE(MotionUpdate)
49 245 : MESSAGE(RangeUpdate)
50 245 : MESSAGE(TerrainChanged)
51 245 : MESSAGE(VisibilityChanged)
52 245 : MESSAGE(WaterChanged)
53 245 : MESSAGE(MovementObstructionChanged)
54 245 : MESSAGE(ObstructionMapShapeChanged)
55 245 : MESSAGE(TerritoriesChanged)
56 245 : MESSAGE(PathResult)
57 245 : MESSAGE(ValueModification)
58 245 : MESSAGE(TemplateModification)
59 245 : MESSAGE(VisionRangeChanged)
60 245 : MESSAGE(VisionSharingChanged)
61 245 : MESSAGE(MinimapPing)
62 245 : MESSAGE(CinemaPathEnded)
63 245 : MESSAGE(CinemaQueueEnded)
64 245 : 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 245 : INTERFACE(TemplateManager)
69 116 : COMPONENT(TemplateManager)
70 :
71 : // Special component for script component types with no native interface
72 245 : INTERFACE(UnknownScript)
73 116 : COMPONENT(UnknownScript)
74 :
75 : // In alphabetical order:
76 :
77 245 : INTERFACE(AIInterface)
78 116 : COMPONENT(AIInterfaceScripted)
79 :
80 245 : INTERFACE(AIManager)
81 116 : COMPONENT(AIManager)
82 :
83 245 : INTERFACE(Attack)
84 116 : COMPONENT(AttackScripted)
85 :
86 245 : INTERFACE(CinemaManager)
87 116 : COMPONENT(CinemaManager)
88 :
89 245 : INTERFACE(CommandQueue)
90 116 : COMPONENT(CommandQueue)
91 :
92 245 : INTERFACE(Decay)
93 116 : COMPONENT(Decay)
94 :
95 245 : INTERFACE(Fogging)
96 116 : 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 245 : INTERFACE(Footprint)
103 116 : COMPONENT(Footprint)
104 :
105 245 : INTERFACE(GarrisonHolder)
106 116 : COMPONENT(GarrisonHolderScripted)
107 :
108 245 : INTERFACE(GuiInterface)
109 116 : COMPONENT(GuiInterfaceScripted)
110 :
111 245 : INTERFACE(Identity)
112 116 : COMPONENT(IdentityScripted)
113 :
114 245 : INTERFACE(Minimap)
115 116 : COMPONENT(Minimap)
116 :
117 245 : INTERFACE(Mirage)
118 116 : COMPONENT(MirageScripted)
119 :
120 245 : INTERFACE(Motion)
121 116 : COMPONENT(MotionBall)
122 116 : COMPONENT(MotionScripted)
123 :
124 245 : INTERFACE(Obstruction)
125 116 : COMPONENT(Obstruction)
126 :
127 245 : INTERFACE(ObstructionManager)
128 116 : COMPONENT(ObstructionManager)
129 :
130 245 : INTERFACE(OverlayRenderer)
131 116 : COMPONENT(OverlayRenderer)
132 :
133 245 : INTERFACE(Ownership)
134 116 : COMPONENT(Ownership)
135 :
136 245 : INTERFACE(ParticleManager)
137 116 : COMPONENT(ParticleManager)
138 :
139 245 : INTERFACE(Pathfinder)
140 116 : COMPONENT(Pathfinder)
141 :
142 245 : INTERFACE(Player)
143 116 : COMPONENT(PlayerScripted)
144 :
145 245 : INTERFACE(PlayerManager)
146 116 : COMPONENT(PlayerManagerScripted)
147 :
148 245 : INTERFACE(Position)
149 116 : COMPONENT(Position) // must be before VisualActor
150 :
151 245 : INTERFACE(ProjectileManager)
152 116 : COMPONENT(ProjectileManager)
153 :
154 245 : INTERFACE(RallyPoint)
155 116 : COMPONENT(RallyPointScripted)
156 :
157 245 : INTERFACE(RallyPointRenderer)
158 116 : COMPONENT(RallyPointRenderer)
159 :
160 245 : INTERFACE(RangeManager)
161 116 : COMPONENT(RangeManager)
162 :
163 245 : INTERFACE(RangeOverlayRenderer)
164 116 : COMPONENT(RangeOverlayRenderer)
165 :
166 245 : INTERFACE(Selectable)
167 116 : COMPONENT(Selectable)
168 :
169 245 : INTERFACE(Settlement)
170 116 : COMPONENT(SettlementScripted)
171 :
172 245 : INTERFACE(Sound)
173 116 : COMPONENT(SoundScripted)
174 :
175 245 : INTERFACE(SoundManager)
176 116 : COMPONENT(SoundManager)
177 :
178 245 : INTERFACE(ValueModificationManager)
179 116 : COMPONENT(ValueModificationManagerScripted)
180 :
181 245 : INTERFACE(Terrain)
182 116 : COMPONENT(Terrain)
183 :
184 245 : INTERFACE(TerritoryDecayManager)
185 116 : COMPONENT(TerritoryDecayManagerScripted)
186 :
187 245 : INTERFACE(TerritoryInfluence)
188 116 : COMPONENT(TerritoryInfluence)
189 :
190 245 : INTERFACE(TerritoryManager)
191 116 : COMPONENT(TerritoryManager)
192 :
193 245 : INTERFACE(TurretHolder)
194 116 : COMPONENT(TurretHolderScripted)
195 :
196 245 : INTERFACE(UnitMotion)
197 116 : COMPONENT(UnitMotion) // must be after Obstruction
198 116 : COMPONENT(UnitMotionScripted)
199 :
200 245 : INTERFACE(UnitMotionManager)
201 116 : COMPONENT(UnitMotionManager)
202 :
203 245 : INTERFACE(UnitRenderer)
204 116 : COMPONENT(UnitRenderer)
205 :
206 245 : INTERFACE(Visibility)
207 116 : COMPONENT(VisibilityScripted)
208 :
209 245 : INTERFACE(Vision)
210 116 : 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 245 : INTERFACE(Visual)
215 116 : COMPONENT(VisualActor) // must be after Ownership (dependency in Deserialize) and Vision (dependency in Init)
216 :
217 245 : INTERFACE(WaterManager)
218 116 : COMPONENT(WaterManager)
|