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

Function getPreviewColourByTilePos

src/OpenLoco/src/Scenario/Scenario.cpp:525–578  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

523 }
524
525 static PaletteIndex_t getPreviewColourByTilePos(const TilePos2& pos)
526 {
527 PaletteIndex_t colour = PaletteIndex::transparent;
528 auto tile = TileManager::get(pos);
529
530 for (auto& el : tile)
531 {
532 switch (el.type())
533 {
534 case ElementType::surface:
535 {
536 auto* surfaceEl = el.as<SurfaceElement>();
537 if (surfaceEl == nullptr)
538 {
539 continue;
540 }
541
542 if (surfaceEl->water() == 0)
543 {
544 const auto* landObj = ObjectManager::get<LandObject>(surfaceEl->terrain());
545 const auto* landImage = Gfx::getG1Element(landObj->mapPixelImage);
546 auto offset = surfaceEl->baseZ() / kMicroToSmallZStep * 2;
547 colour = landImage->offset[offset];
548 }
549 else
550 {
551 const auto* waterObj = ObjectManager::get<WaterObject>();
552 const auto* waterImage = Gfx::getG1Element(waterObj->mapPixelImage);
553 auto offset = (surfaceEl->water() * kMicroToSmallZStep - surfaceEl->baseZ()) / 2;
554 colour = waterImage->offset[offset - 2];
555 }
556 break;
557 }
558
559 case ElementType::building:
560 case ElementType::road:
561 colour = PaletteIndex::mutedDarkRed7;
562 break;
563
564 case ElementType::industry:
565 colour = PaletteIndex::mutedPurple7;
566 break;
567
568 case ElementType::tree:
569 colour = PaletteIndex::green6;
570 break;
571
572 default:
573 break;
574 }
575 }
576
577 return colour;
578 }
579
580 // 0x0046DB4C
581 void drawScenarioMiniMapImage()

Callers 1

drawScenarioMiniMapImageFunction · 0.85

Calls 6

getG1ElementFunction · 0.85
typeMethod · 0.80
waterMethod · 0.80
terrainMethod · 0.80
baseZMethod · 0.80
getFunction · 0.50

Tested by

no test coverage detected