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

Method drawStringStructs

src/OpenLoco/src/Paint/Paint.cpp:1074–1110  ·  view source on GitHub ↗

0x0045A60E

Source from the content-addressed store, hash-verified

1072
1073 // 0x0045A60E
1074 void PaintSession::drawStringStructs(Gfx::DrawingContext& drawingCtx)
1075 {
1076 PaintStringStruct* psString = _paintStringHead;
1077 if (psString == nullptr)
1078 {
1079 return;
1080 }
1081
1082 Gfx::RenderTarget unZoomedRt = drawingCtx.currentRenderTarget();
1083 const auto zoom = unZoomedRt.zoomLevel;
1084
1085 unZoomedRt.zoomLevel = 0;
1086 unZoomedRt.x >>= zoom;
1087 unZoomedRt.y >>= zoom;
1088 unZoomedRt.width >>= zoom;
1089 unZoomedRt.height >>= zoom;
1090
1091 drawingCtx.pushRenderTarget(unZoomedRt);
1092
1093 auto tr = Gfx::TextRenderer(drawingCtx);
1094 tr.setCurrentFont(zoom == 0 ? Gfx::Font::medium_bold : Gfx::Font::small);
1095
1096 char buffer[512]{};
1097
1098 for (; psString != nullptr; psString = psString->next)
1099 {
1100 Ui::Point loc(psString->vpPos.x >> zoom, psString->vpPos.y >> zoom);
1101 StringManager::formatString(buffer, psString->stringId, psString->argsBuf);
1102
1103 Ui::WindowManager::setWindowColours(Ui::WindowColour::primary, AdvancedColour(static_cast<Colour>(psString->colour)));
1104 Ui::WindowManager::setWindowColours(Ui::WindowColour::secondary, AdvancedColour(static_cast<Colour>(psString->colour)));
1105
1106 tr.drawStringYOffsets(loc, Colour::black, buffer, psString->yOffsets);
1107 }
1108
1109 drawingCtx.popRenderTarget();
1110 }
1111
1112 // 0x00447C21
1113 static bool isPixelPresentBMP(

Callers 1

paintMethod · 0.80

Calls 8

TextRendererClass · 0.85
formatStringFunction · 0.85
setWindowColoursFunction · 0.85
pushRenderTargetMethod · 0.80
setCurrentFontMethod · 0.80
drawStringYOffsetsMethod · 0.80
popRenderTargetMethod · 0.80
AdvancedColourClass · 0.50

Tested by

no test coverage detected