0x004617C6
| 375 | |
| 376 | // 0x004617C6 |
| 377 | void paintTileElements2(PaintSession& session, const World::Pos2& loc) |
| 378 | { |
| 379 | if (!World::drawableCoords(loc)) |
| 380 | { |
| 381 | return; |
| 382 | } |
| 383 | |
| 384 | const auto vpPos = paintTileElementsSetup(session, loc); |
| 385 | if (!vpPos) |
| 386 | { |
| 387 | return; |
| 388 | } |
| 389 | |
| 390 | auto tile = TileManager::get(loc); |
| 391 | for (auto& el : tile) |
| 392 | { |
| 393 | session.setUnkVpY(vpPos->y - el.baseHeight()); |
| 394 | session.setCurrentItem(&el); |
| 395 | switch (el.type()) |
| 396 | { |
| 397 | case World::ElementType::surface: |
| 398 | case World::ElementType::track: |
| 399 | case World::ElementType::signal: |
| 400 | case World::ElementType::wall: |
| 401 | case World::ElementType::road: |
| 402 | continue; |
| 403 | |
| 404 | case World::ElementType::station: |
| 405 | { |
| 406 | auto& elStation = el.get<StationElement>(); |
| 407 | switch (elStation.stationType()) |
| 408 | { |
| 409 | case StationType::airport: |
| 410 | case StationType::docks: |
| 411 | paintStation(session, elStation); |
| 412 | break; |
| 413 | default: |
| 414 | case StationType::roadStation: |
| 415 | case StationType::trainStation: |
| 416 | continue; |
| 417 | } |
| 418 | break; |
| 419 | } |
| 420 | case World::ElementType::building: |
| 421 | { |
| 422 | auto& elBuilding = el.get<BuildingElement>(); |
| 423 | paintBuilding(session, elBuilding); |
| 424 | break; |
| 425 | } |
| 426 | case World::ElementType::tree: |
| 427 | { |
| 428 | auto& elTree = el.get<TreeElement>(); |
| 429 | paintTree(session, elTree); |
| 430 | break; |
| 431 | } |
| 432 | case World::ElementType::industry: |
| 433 | { |
| 434 | auto& elIndustry = el.get<IndustryElement>(); |
no test coverage detected