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

Function paintTileElementsEndLoop

src/OpenLoco/src/Paint/PaintTile.cpp:256–292  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

254 }
255
256 static void paintTileElementsEndLoop(PaintSession& session, const World::TileElement& el)
257 {
258 if (el.isLast() || el.baseZ() != ((&el) + 1)->baseZ())
259 {
260 if (session.getRoadExits() != 0)
261 {
262 finalisePaintRoad(session);
263 }
264 if (session.getAdditionSupportHeight() != 0)
265 {
266 paintSupports(session);
267 }
268
269 session.finaliseTrackRoadOrdering();
270 session.finaliseTrackRoadAdditionsOrdering();
271 session.setOccupiedAdditionSupportSegments(SegmentFlags::none);
272 auto& bridgeEntry = session.getBridgeEntry();
273 if (!bridgeEntry.isEmpty())
274 {
275 if (paintBridge(session))
276 {
277 session.setSegmentsSupportHeight(SegmentFlags::all, 0xFFFF, 0);
278 }
279 if (session.getGeneralSupportHeight().height >= bridgeEntry.height)
280 {
281 session.setGeneralSupportHeight(bridgeEntry.height, 0x20);
282 }
283 session.setBridgeEntry(kNullBridgeEntry);
284 }
285
286 if (session.get525CF8() != SegmentFlags::none)
287 {
288 session.setSegmentsSupportHeight(session.get525CF8(), 0xFFFF, 0);
289 session.set525CF8(SegmentFlags::none);
290 }
291 }
292 }
293
294 // 0x00461CF8
295 void paintTileElements(PaintSession& session, const World::Pos2& loc)

Callers 2

paintTileElementsFunction · 0.85
paintTileElements2Function · 0.85

Calls 15

finalisePaintRoadFunction · 0.85
paintSupportsFunction · 0.85
paintBridgeFunction · 0.85
baseZMethod · 0.80
getRoadExitsMethod · 0.80
setBridgeEntryMethod · 0.80

Tested by

no test coverage detected