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

Function drawTabs

src/OpenLoco/src/Ui/Windows/MapWindow.cpp:1221–1321  ·  view source on GitHub ↗

0x0046D0E0

Source from the content-addressed store, hash-verified

1219
1220 // 0x0046D0E0
1221 static void drawTabs(Window& self, Gfx::DrawingContext& drawingCtx)
1222 {
1223 auto skin = ObjectManager::get<InterfaceSkinObject>();
1224
1225 // tabOverall
1226 {
1227 // TODO: use same list as top toolbar and time panel
1228 static constexpr uint32_t kMapSpritesByRotation[] = {
1229 InterfaceSkin::ImageIds::toolbar_menu_map_north,
1230 InterfaceSkin::ImageIds::toolbar_menu_map_west,
1231 InterfaceSkin::ImageIds::toolbar_menu_map_south,
1232 InterfaceSkin::ImageIds::toolbar_menu_map_east,
1233 };
1234 uint32_t mapSprite = skin->img + kMapSpritesByRotation[WindowManager::getCurrentRotation()];
1235
1236 Widget::drawTab(self, drawingCtx, mapSprite, widx::tabOverall);
1237 }
1238
1239 // tabVehicles,
1240 {
1241 if (!(self.disabledWidgets & (1 << widx::tabVehicles)))
1242 {
1243 static constexpr uint32_t vehicleImageIds[] = {
1244 InterfaceSkin::ImageIds::vehicle_train_frame_0,
1245 InterfaceSkin::ImageIds::vehicle_train_frame_1,
1246 InterfaceSkin::ImageIds::vehicle_train_frame_2,
1247 InterfaceSkin::ImageIds::vehicle_train_frame_3,
1248 InterfaceSkin::ImageIds::vehicle_train_frame_4,
1249 InterfaceSkin::ImageIds::vehicle_train_frame_5,
1250 InterfaceSkin::ImageIds::vehicle_train_frame_6,
1251 InterfaceSkin::ImageIds::vehicle_train_frame_7,
1252 };
1253
1254 uint32_t imageId = skin->img;
1255 if (self.currentTab == widx::tabVehicles - widx::tabOverall)
1256 {
1257 imageId += vehicleImageIds[(self.frameNo / 2) % std::size(vehicleImageIds)];
1258 }
1259 else
1260 {
1261 imageId += vehicleImageIds[0];
1262 }
1263
1264 auto colour = Colour::black;
1265
1266 if (!SceneManager::isEditorMode() && !SceneManager::isSandboxMode())
1267 {
1268 auto company = CompanyManager::getPlayerCompany();
1269 colour = company->mainColours.primary;
1270 }
1271
1272 imageId = Gfx::recolour(imageId, colour);
1273
1274 Widget::drawTab(self, drawingCtx, imageId, widx::tabVehicles);
1275 }
1276 }
1277
1278 // tabIndustries,

Callers 1

drawFunction · 0.70

Calls 5

getCurrentRotationFunction · 0.85
isEditorModeFunction · 0.85
isSandboxModeFunction · 0.85
getPlayerCompanyFunction · 0.85
recolourFunction · 0.85

Tested by

no test coverage detected