MCPcopy Create free account
hub / github.com/OpenLoco/OpenLoco / visitObject

Function visitObject

src/OpenLoco/src/Objects/ObjectManager.cpp:257–335  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

255
256 template<typename TVisitor>
257 static auto visitObject(const ObjectType type, Object& obj, TVisitor&& visitor)
258 {
259 switch (type)
260 {
261 case ObjectType::interfaceSkin:
262 return visitor(reinterpret_cast<InterfaceSkinObject*>(&obj));
263 case ObjectType::sound:
264 return visitor(reinterpret_cast<SoundObject*>(&obj));
265 case ObjectType::currency:
266 return visitor(reinterpret_cast<CurrencyObject*>(&obj));
267 case ObjectType::steam:
268 return visitor(reinterpret_cast<SteamObject*>(&obj));
269 case ObjectType::cliffEdge:
270 return visitor(reinterpret_cast<CliffEdgeObject*>(&obj));
271 case ObjectType::water:
272 return visitor(reinterpret_cast<WaterObject*>(&obj));
273 case ObjectType::land:
274 return visitor(reinterpret_cast<LandObject*>(&obj));
275 case ObjectType::townNames:
276 return visitor(reinterpret_cast<TownNamesObject*>(&obj));
277 case ObjectType::cargo:
278 return visitor(reinterpret_cast<CargoObject*>(&obj));
279 case ObjectType::wall:
280 return visitor(reinterpret_cast<WallObject*>(&obj));
281 case ObjectType::trackSignal:
282 return visitor(reinterpret_cast<TrainSignalObject*>(&obj));
283 case ObjectType::levelCrossing:
284 return visitor(reinterpret_cast<LevelCrossingObject*>(&obj));
285 case ObjectType::streetLight:
286 return visitor(reinterpret_cast<StreetLightObject*>(&obj));
287 case ObjectType::tunnel:
288 return visitor(reinterpret_cast<TunnelObject*>(&obj));
289 case ObjectType::bridge:
290 return visitor(reinterpret_cast<BridgeObject*>(&obj));
291 case ObjectType::trainStation:
292 return visitor(reinterpret_cast<TrainStationObject*>(&obj));
293 case ObjectType::trackExtra:
294 return visitor(reinterpret_cast<TrackExtraObject*>(&obj));
295 case ObjectType::track:
296 return visitor(reinterpret_cast<TrackObject*>(&obj));
297 case ObjectType::roadStation:
298 return visitor(reinterpret_cast<RoadStationObject*>(&obj));
299 case ObjectType::roadExtra:
300 return visitor(reinterpret_cast<RoadExtraObject*>(&obj));
301 case ObjectType::road:
302 return visitor(reinterpret_cast<RoadObject*>(&obj));
303 case ObjectType::airport:
304 return visitor(reinterpret_cast<AirportObject*>(&obj));
305 case ObjectType::dock:
306 return visitor(reinterpret_cast<DockObject*>(&obj));
307 case ObjectType::vehicle:
308 return visitor(reinterpret_cast<VehicleObject*>(&obj));
309 case ObjectType::tree:
310 return visitor(reinterpret_cast<TreeObject*>(&obj));
311 case ObjectType::snow:
312 return visitor(reinterpret_cast<SnowObject*>(&obj));
313 case ObjectType::climate:
314 return visitor(reinterpret_cast<ClimateObject*>(&obj));

Callers 3

callObjectValidateFunction · 0.85
callObjectUnloadFunction · 0.85
callObjectLoadFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected