| 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) |
no test coverage detected