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

Function scrollMouseDown

src/OpenLoco/src/Ui/Windows/MessageWindow.cpp:147–180  ·  view source on GitHub ↗

0x0042A8B9

Source from the content-addressed store, hash-verified

145
146 // 0x0042A8B9
147 static void scrollMouseDown(Ui::Window& self, [[maybe_unused]] int16_t x, int16_t y, [[maybe_unused]] uint8_t scrollIndex)
148 {
149 auto messageIndex = y / messageHeight;
150
151 if (messageIndex >= MessageManager::getNumMessages())
152 {
153 return;
154 }
155
156 if (MessageManager::getActiveIndex() != MessageId::null)
157 {
158 auto message = MessageManager::get(MessageManager::getActiveIndex());
159 if (message->isActive())
160 {
161 // If the current active message was user selected then remove from queue of active messages
162 if (message->isUserSelected())
163 {
164 message->setActive(false);
165 }
166 }
167 }
168
169 MessageManager::setActiveIndex(MessageId::null);
170 WindowManager::close(WindowType::news, 0);
171
172 auto message = MessageManager::get(MessageId(messageIndex));
173 message->setUserSelected();
174 message->timeActive++;
175
176 NewsWindow::open(MessageId(messageIndex));
177
178 int32_t pan = self.width / 2 + self.x;
179 Audio::playSound(Audio::SoundId::clickDown, Audio::ChannelId::ui, pan);
180 }
181
182 // 0x0042A87C
183 static void scrollMouseOver(Ui::Window& self, [[maybe_unused]] int16_t x, int16_t y, [[maybe_unused]] uint8_t scrollIndex)

Callers

nothing calls this directly

Calls 12

getNumMessagesFunction · 0.85
getActiveIndexFunction · 0.85
setActiveIndexFunction · 0.85
MessageIdEnum · 0.85
playSoundFunction · 0.85
isActiveMethod · 0.80
isUserSelectedMethod · 0.80
setActiveMethod · 0.80
setUserSelectedMethod · 0.80
closeFunction · 0.70
openFunction · 0.70
getFunction · 0.50

Tested by

no test coverage detected