1 /* Copyright (C) 2018 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 MESSAGE(PlayerColorChanged) 64 65 // TemplateManager must come before all other (non-test) components, 66 // so that it is the first to be (de)serialized 67 INTERFACE(TemplateManager) 68 COMPONENT(TemplateManager) 69 70 // Special component for script component types with no native interface 71 INTERFACE(UnknownScript) 72 COMPONENT(UnknownScript) 73 74 // In alphabetical order: 75 76 INTERFACE(AIInterface) 77 COMPONENT(AIInterfaceScripted) 78 79 INTERFACE(AIManager) 80 COMPONENT(AIManager) 81 82 INTERFACE(CinemaManager) 83 COMPONENT(CinemaManager) 84 85 INTERFACE(CommandQueue) 86 COMPONENT(CommandQueue) 87 88 INTERFACE(Decay) 89 COMPONENT(Decay) 90 91 INTERFACE(Fogging) 92 COMPONENT(FoggingScripted) 93 94 // Note: The VisualActor component relies on this component being initialized before itself, in order to support using 95 // an entity's footprint shape for the selection boxes. This dependency is not strictly necessary, but it does avoid 96 // some extra plumbing code to set up on-demand initialization. If you find yourself forced to break this dependency, 97 // see VisualActor's Init method for a description of how you can avoid it. 98 INTERFACE(Footprint) 99 COMPONENT(Footprint) 100 101 INTERFACE(GuiInterface) 102 COMPONENT(GuiInterfaceScripted) 103 104 INTERFACE(Identity) 105 COMPONENT(IdentityScripted) 106 107 INTERFACE(Minimap) 108 COMPONENT(Minimap) 109 110 INTERFACE(Mirage) 111 COMPONENT(MirageScripted) 112 113 INTERFACE(Motion) 114 COMPONENT(MotionBall) 115 COMPONENT(MotionScripted) 116 117 INTERFACE(Obstruction) 118 COMPONENT(Obstruction) 119 120 INTERFACE(ObstructionManager) 121 COMPONENT(ObstructionManager) 122 123 INTERFACE(OverlayRenderer) 124 COMPONENT(OverlayRenderer) 125 126 INTERFACE(Ownership) 127 COMPONENT(Ownership) 128 129 INTERFACE(ParticleManager) 130 COMPONENT(ParticleManager) 131 132 INTERFACE(Pathfinder) 133 COMPONENT(Pathfinder) 134 135 INTERFACE(Player) 136 COMPONENT(PlayerScripted) 137 138 INTERFACE(PlayerManager) 139 COMPONENT(PlayerManagerScripted) 140 141 INTERFACE(Position) 142 COMPONENT(Position) // must be before VisualActor 143 144 INTERFACE(ProjectileManager) 145 COMPONENT(ProjectileManager) 146 147 INTERFACE(RallyPoint) 148 COMPONENT(RallyPointScripted) 149 150 INTERFACE(RallyPointRenderer) 151 COMPONENT(RallyPointRenderer) 152 153 INTERFACE(RangeManager) 154 COMPONENT(RangeManager) 155 156 INTERFACE(RangeOverlayRenderer) 157 COMPONENT(RangeOverlayRenderer) 158 159 INTERFACE(Selectable) 160 COMPONENT(Selectable) 161 162 INTERFACE(Settlement) 163 COMPONENT(SettlementScripted) 164 165 INTERFACE(Sound) 166 COMPONENT(SoundScripted) 167 168 INTERFACE(SoundManager) 169 COMPONENT(SoundManager) 170 171 INTERFACE(ValueModificationManager) 172 COMPONENT(ValueModificationManagerScripted) 173 174 INTERFACE(Terrain) 175 COMPONENT(Terrain) 176 177 INTERFACE(TerritoryDecayManager) 178 COMPONENT(TerritoryDecayManagerScripted) 179 180 INTERFACE(TerritoryInfluence) 181 COMPONENT(TerritoryInfluence) 182 183 INTERFACE(TerritoryManager) 184 COMPONENT(TerritoryManager) 185 186 INTERFACE(UnitMotion) 187 COMPONENT(UnitMotion) // must be after Obstruction 188 COMPONENT(UnitMotionScripted) 189 190 INTERFACE(UnitRenderer) 191 COMPONENT(UnitRenderer) 192 193 INTERFACE(Visibility) 194 COMPONENT(VisibilityScripted) 195 196 INTERFACE(Vision) 197 COMPONENT(Vision) 198 199 // Note: this component relies on the Footprint component being initialized before itself. See the comments above for 200 // the Footprint component to find out why. 201 INTERFACE(Visual) 202 COMPONENT(VisualActor) // must be after Ownership (dependency in Deserialize) and Vision (dependency in Init) 203 204 INTERFACE(WaterManager) 205 COMPONENT(WaterManager) 206