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

Function switchTab

src/OpenLoco/src/Ui/Windows/TownWindow.cpp:743–775  ·  view source on GitHub ↗

0x004991BC

Source from the content-addressed store, hash-verified

741
742 // 0x004991BC
743 static void switchTab(Window& self, WidgetIndex_t widgetIndex)
744 {
745 if (ToolManager::isToolActive(self.type, self.number))
746 {
747 ToolManager::toolCancel();
748 }
749
750 TextInput::sub_4CE6C9(self.type, self.number);
751
752 self.currentTab = widgetIndex - widx::tab_town;
753 self.frameNo = 0;
754 self.flags &= ~(WindowFlags::maximised);
755 self.var_85C = -1;
756
757 self.viewportRemove(0);
758
759 auto tabInfo = tabInformationByTabOffset[widgetIndex - widx::tab_town];
760
761 self.holdableWidgets = 0;
762 self.eventHandlers = &tabInfo.events;
763 self.activatedWidgets = 0;
764 self.setWidgets(tabInfo.widgets);
765 self.disabledWidgets = 0;
766
767 self.invalidate();
768
769 self.setSize(kWindowSize);
770 self.callOnResize();
771 self.callPrepareDraw();
772 self.initScrollWidgets();
773 self.invalidate();
774 self.moveInsideScreenEdges();
775 }
776
777 // 0x004999E1
778 void drawTabs(Window& self, Gfx::DrawingContext& drawingCtx)

Callers 1

onMouseUpFunction · 0.70

Calls 11

isToolActiveFunction · 0.85
sub_4CE6C9Function · 0.85
viewportRemoveMethod · 0.80
setWidgetsMethod · 0.80
setSizeMethod · 0.80
callOnResizeMethod · 0.80
callPrepareDrawMethod · 0.80
initScrollWidgetsMethod · 0.80
moveInsideScreenEdgesMethod · 0.80
toolCancelFunction · 0.70
invalidateMethod · 0.45

Tested by

no test coverage detected