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

Function draw

src/OpenLoco/src/Ui/Windows/TitleMenu.cpp:201–291  ·  view source on GitHub ↗

0x00438EC7

Source from the content-addressed store, hash-verified

199
200 // 0x00438EC7
201 static void draw(Ui::Window& window, Gfx::DrawingContext& drawingCtx)
202 {
203 auto tr = Gfx::TextRenderer(drawingCtx);
204
205 // Draw widgets.
206 window.draw(drawingCtx);
207
208 if (!window.widgets[Widx::scenario_list_btn].hidden)
209 {
210 int16_t x = window.widgets[Widx::scenario_list_btn].left + window.x;
211 int16_t y = window.widgets[Widx::scenario_list_btn].top + window.y;
212
213 uint32_t image_id = ImageIds::title_menu_globe_spin_0;
214 if (Input::isHovering(WindowType::titleMenu, 0, Widx::scenario_list_btn))
215 {
216 image_id = kGlobeSpin[((window.var_846 / 2) % kGlobeSpin.size())];
217 }
218
219 drawingCtx.drawImage(x, y, image_id);
220 drawingCtx.drawImage(x, y, ImageIds::title_menu_sparkle);
221 }
222
223 if (!window.widgets[Widx::load_game_btn].hidden)
224 {
225 int16_t x = window.widgets[Widx::load_game_btn].left + window.x;
226 int16_t y = window.widgets[Widx::load_game_btn].top + window.y;
227
228 uint32_t image_id = ImageIds::title_menu_globe_spin_0;
229 if (Input::isHovering(WindowType::titleMenu, 0, Widx::load_game_btn))
230 {
231 image_id = kGlobeSpin[((window.var_846 / 2) % kGlobeSpin.size())];
232 }
233
234 drawingCtx.drawImage(x, y, image_id);
235 drawingCtx.drawImage(x, y, ImageIds::title_menu_save);
236 }
237
238 if (!window.widgets[Widx::tutorial_btn].hidden)
239 {
240 int16_t x = window.widgets[Widx::tutorial_btn].left + window.x;
241 int16_t y = window.widgets[Widx::tutorial_btn].top + window.y;
242
243 uint32_t image_id = ImageIds::title_menu_globe_spin_0;
244 if (Input::isHovering(WindowType::titleMenu, 0, Widx::tutorial_btn))
245 {
246 image_id = kGlobeSpin[((window.var_846 / 2) % kGlobeSpin.size())];
247 }
248
249 drawingCtx.drawImage(x, y, image_id);
250
251 // TODO: base lesson overlay on language
252 drawingCtx.drawImage(x, y, ImageIds::title_menu_lesson_l);
253 }
254
255 if (!window.widgets[Widx::scenario_editor_btn].hidden)
256 {
257 int16_t x = window.widgets[Widx::scenario_editor_btn].left + window.x;
258 int16_t y = window.widgets[Widx::scenario_editor_btn].top + window.y;

Callers

nothing calls this directly

Calls 9

TextRendererClass · 0.85
isHoveringFunction · 0.85
isNetworkedFunction · 0.85
getStringFunction · 0.85
drawMethod · 0.45
sizeMethod · 0.45
drawImageMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected