MCPcopy Create free account
hub / github.com/diasurgical/devilution / gmenu_left_mouse

Function gmenu_left_mouse

Source/gmenu.cpp:316–364  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

314}
315
316BOOL gmenu_left_mouse(BOOL isDown)
317{
318 TMenuItem *pItem;
319 DWORD i, w;
320 int dummy;
321
322 if (!isDown) {
323 if (mouseNavigation) {
324 mouseNavigation = FALSE;
325 return TRUE;
326 } else {
327 return FALSE;
328 }
329 }
330
331 if (!sgpCurrentMenu) {
332 return FALSE;
333 }
334 if (MouseY >= PANEL_TOP) {
335 return FALSE;
336 }
337 if (MouseY - 117 < 0) {
338 return TRUE;
339 }
340 i = (MouseY - 117) / 45;
341 if (i >= sgCurrentMenuIdx) {
342 return TRUE;
343 }
344 pItem = &sgpCurrentMenu[i];
345 if (!(sgpCurrentMenu[i].dwFlags & GMENU_ENABLED)) {
346 return TRUE;
347 }
348 w = gmenu_get_lfont(pItem);
349 if (MouseX < SCREEN_WIDTH / 2 - w / 2) {
350 return TRUE;
351 }
352 if (MouseX > SCREEN_WIDTH / 2 + w / 2) {
353 return TRUE;
354 }
355 sgpCurrItem = pItem;
356 PlaySFX(IS_TITLEMOV);
357 if (pItem->dwFlags & GMENU_SLIDER) {
358 mouseNavigation = gmenu_get_mouse_slider(&dummy);
359 gmenu_on_mouse_move();
360 } else {
361 sgpCurrItem->fnMenu(TRUE);
362 }
363 return TRUE;
364}
365
366void gmenu_enable(TMenuItem *pMenuItem, BOOL enable)
367{

Callers 2

LeftMouseDownFunction · 0.85
LeftMouseUpFunction · 0.85

Calls 4

gmenu_get_lfontFunction · 0.85
PlaySFXFunction · 0.85
gmenu_get_mouse_sliderFunction · 0.85
gmenu_on_mouse_moveFunction · 0.85

Tested by

no test coverage detected