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

Function paintConstructionArrow

src/OpenLoco/src/Paint/PaintTile.cpp:66–100  ·  view source on GitHub ↗

0x00461EA7

Source from the content-addressed store, hash-verified

64
65 // 0x00461EA7
66 static void paintConstructionArrow(PaintSession& session, const World::Pos2& loc)
67 {
68 auto& arrow = getConstructionArrow();
69 if (!World::hasMapSelectionFlag(World::MapSelectionFlags::enableConstructionArrow))
70 {
71 return;
72 }
73 if (session.getUnkPosition() != arrow.pos)
74 {
75 return;
76 }
77 session.setEntityPosition(loc);
78 const auto dirIndex = (arrow.direction & 0xFC) | (((arrow.direction & 0x3) + session.getRotation()) & 0x3);
79 constexpr std::array<uint32_t, 16> kConstructionArrowImages = {
80 ImageIds::construction_arrow_north,
81 ImageIds::construction_arrow_east,
82 ImageIds::construction_arrow_south,
83 ImageIds::construction_arrow_west,
84 ImageIds::construction_arrow_north2,
85 ImageIds::construction_arrow_east2,
86 ImageIds::construction_arrow_south2,
87 ImageIds::construction_arrow_west2,
88 ImageIds::construction_arrow_north3,
89 ImageIds::construction_arrow_east3,
90 ImageIds::construction_arrow_south3,
91 ImageIds::construction_arrow_west3,
92 ImageIds::construction_arrow_north_east,
93 ImageIds::construction_arrow_south_east,
94 ImageIds::construction_arrow_south_west,
95 ImageIds::construction_arrow_north_west,
96 };
97 const auto imageId = ImageId{ kConstructionArrowImages[dirIndex], Colour::yellow };
98 session.setItemType(InteractionItem::noInteraction);
99 session.addToPlotListAsParent(imageId, { 0, 0, arrow.pos.z }, World::Pos3(0, 0, arrow.pos.z + 10), { 32, 32, -1 });
100 }
101
102 constexpr std::array<std::array<World::Pos3, 9>, 2> kSupportBoundingBoxOffsets = {
103 std::array<World::Pos3, 9>{

Callers 1

paintTileElementsSetupFunction · 0.85

Calls 6

hasMapSelectionFlagFunction · 0.85
getUnkPositionMethod · 0.80
setEntityPositionMethod · 0.80
setItemTypeMethod · 0.80
addToPlotListAsParentMethod · 0.80
getRotationMethod · 0.45

Tested by

no test coverage detected