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

Function shouldShowTab

src/OpenLoco/src/Ui/Windows/ObjectSelectionWindow.cpp:312–356  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

310
311 template<typename TTabInfo>
312 static bool shouldShowTab(TTabInfo& tabInfo, FilterLevel filterLevel)
313 {
314 const ObjectTabFlags tabFlags = tabInfo.flags;
315
316 if (filterLevel == FilterLevel::expert)
317 {
318 return true;
319 }
320
321 if ((tabFlags & ObjectTabFlags::alwaysHidden) != ObjectTabFlags::none)
322 {
323 return false;
324 }
325
326 // Skip all types that don't have any objects
327 auto numObjectsForType = ObjectManager::getNumAvailableObjectsByType(tabInfo.objectType);
328 if (numObjectsForType == 0)
329 {
330 return false;
331 }
332
333 // Skip certain object types that only have one entry in game
334 if ((tabFlags & ObjectTabFlags::showEvenIfSingular) == ObjectTabFlags::none && numObjectsForType == 1)
335 {
336 return false;
337 }
338
339 // Hide advanced object types in beginner mode
340 if (filterLevel == FilterLevel::beginner && (tabFlags & ObjectTabFlags::advanced) != ObjectTabFlags::none)
341 {
342 return false;
343 }
344
345 if (SceneManager::isEditorMode() && (tabFlags & ObjectTabFlags::hideInEditor) != ObjectTabFlags::none)
346 {
347 return false;
348 }
349
350 if (!SceneManager::isEditorMode() && (tabFlags & ObjectTabFlags::hideInGame) != ObjectTabFlags::none)
351 {
352 return false;
353 }
354
355 return true;
356 }
357
358 static bool shouldShowPrimaryTab(uint8_t index, FilterLevel filterLevel)
359 {

Callers 3

shouldShowPrimaryTabFunction · 0.85
shouldShowSubTabFunction · 0.85
switchTabByObjectTypeFunction · 0.85

Calls 2

isEditorModeFunction · 0.85

Tested by

no test coverage detected