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

Function zoomMenuMouseDown

src/OpenLoco/src/Ui/Windows/ToolbarTopCommon.cpp:95–132  ·  view source on GitHub ↗

0x0043A78E

Source from the content-addressed store, hash-verified

93
94 // 0x0043A78E
95 void zoomMenuMouseDown(Window* window, WidgetIndex_t widgetIndex)
96 {
97 auto interface = ObjectManager::get<InterfaceSkinObject>();
98
99 Dropdown::add(0, StringIds::menu_sprite_stringid, { interface->img + InterfaceSkin::ImageIds::toolbar_menu_zoom_in, StringIds::menu_zoom_in });
100 Dropdown::add(1, StringIds::menu_sprite_stringid, { interface->img + InterfaceSkin::ImageIds::toolbar_menu_zoom_out, StringIds::menu_zoom_out });
101
102 static constexpr uint32_t kMapSpritesByRotation[] = {
103 InterfaceSkin::ImageIds::toolbar_menu_map_north,
104 InterfaceSkin::ImageIds::toolbar_menu_map_west,
105 InterfaceSkin::ImageIds::toolbar_menu_map_south,
106 InterfaceSkin::ImageIds::toolbar_menu_map_east,
107 };
108
109 uint32_t mapSprite = kMapSpritesByRotation[WindowManager::getCurrentRotation()];
110
111 Dropdown::add(2, StringIds::menu_sprite_stringid, { interface->img + mapSprite, StringIds::menu_map });
112 Dropdown::showBelow(window, widgetIndex, 3, 25, (1 << 6));
113 Dropdown::setHighlightedItem(0);
114
115 auto mainWindow = WindowManager::getMainWindow();
116 if (mainWindow->viewports[0]->zoom == 0)
117 {
118 Dropdown::setItemDisabled(0);
119 Dropdown::setHighlightedItem(1);
120 }
121
122 if (mainWindow->viewports[0]->zoom == 3)
123 {
124 Dropdown::setItemDisabled(1);
125 _zoomTicks = 1000;
126 }
127
128 if (mainWindow->viewports[0]->zoom != 3 && _zoomTicks <= 32)
129 {
130 Dropdown::setHighlightedItem(1);
131 }
132 }
133
134 // 0x0043A5C5
135 void rotateMenuMouseDown(Window* window, WidgetIndex_t widgetIndex)

Callers 1

onMouseDownFunction · 0.85

Calls 6

getCurrentRotationFunction · 0.85
showBelowFunction · 0.85
setHighlightedItemFunction · 0.85
getMainWindowFunction · 0.85
setItemDisabledFunction · 0.85
addFunction · 0.50

Tested by

no test coverage detected