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

Function drawRoutingNumbers

src/OpenLoco/src/Viewport.cpp:111–159  ·  view source on GitHub ↗

0x00470A62

Source from the content-addressed store, hash-verified

109
110 // 0x00470A62
111 static void drawRoutingNumbers(Gfx::DrawingContext& drawingCtx)
112 {
113 if (!World::hasMapSelectionFlag(World::MapSelectionFlags::unk_04))
114 {
115 return;
116 }
117
118 const auto& rt = drawingCtx.currentRenderTarget();
119
120 Gfx::RenderTarget unZoomedRt = rt;
121 unZoomedRt.zoomLevel = 0;
122 unZoomedRt.x >>= rt.zoomLevel;
123 unZoomedRt.y >>= rt.zoomLevel;
124 unZoomedRt.width >>= rt.zoomLevel;
125 unZoomedRt.height >>= rt.zoomLevel;
126
127 drawingCtx.pushRenderTarget(unZoomedRt);
128
129 auto tr = Gfx::TextRenderer(drawingCtx);
130
131 auto orderNum = 0;
132 for (auto& orderFrame : Vehicles::OrderManager::displayFrames())
133 {
134 auto orderRing = Vehicles::OrderRingView(orderFrame.orderOffset);
135 auto* order = orderRing.atIndex(0);
136 if (!order || !order->hasFlags(Vehicles::OrderFlags::HasNumber))
137 {
138 continue;
139 }
140 orderNum++;
141 if (!orderFrame.frame.contains(rt.getDrawableRect(), rt.zoomLevel))
142 {
143 continue;
144 }
145 auto res = Vehicles::OrderManager::generateOrderUiStringAndLoc(orderFrame.orderOffset, orderNum);
146 auto& orderString = res.second;
147 if (orderString.empty())
148 {
149 continue;
150 }
151
152 tr.setCurrentFont(Gfx::Font::medium_normal);
153
154 auto point = Point(orderFrame.frame.left[rt.zoomLevel] + 1, orderFrame.frame.top[rt.zoomLevel]);
155 tr.drawString(point, AdvancedColour(Colour::white).outline(), const_cast<char*>(orderString.c_str()));
156 }
157
158 drawingCtx.popRenderTarget();
159 }
160
161 // 0x0045A1A4
162 void Viewport::paint(Gfx::DrawingContext& drawingCtx, const Rect& rect)

Callers 1

paintMethod · 0.85

Calls 15

hasMapSelectionFlagFunction · 0.85
TextRendererClass · 0.85
displayFramesFunction · 0.85
pushRenderTargetMethod · 0.80
atIndexMethod · 0.80
getDrawableRectMethod · 0.80
setCurrentFontMethod · 0.80
drawStringMethod · 0.80
outlineMethod · 0.80
popRenderTargetMethod · 0.80
OrderRingViewClass · 0.50

Tested by

no test coverage detected