From: Holger Schemel Date: Wed, 19 Oct 2016 20:21:55 +0000 (+0200) Subject: added starting game by clicking level preview on main screen X-Git-Tag: 4.0.0.0~35 X-Git-Url: https://git.artsoft.org/?a=commitdiff_plain;h=6a4e096460bdde9baf30f95a4da109355ceb849f;p=rocksndiamonds.git added starting game by clicking level preview on main screen --- diff --git a/src/screens.c b/src/screens.c index 4802015c..23636186 100644 --- a/src/screens.c +++ b/src/screens.c @@ -1184,6 +1184,17 @@ static boolean insideTextPosRect(struct TextPosInfo *rect, int x, int y) y >= rect_y && y < rect_y + rect->height); } +static boolean insidePreviewRect(struct PreviewInfo *preview, int x, int y) +{ + int rect_width = preview->xsize * preview->tile_size; + int rect_height = preview->ysize * preview->tile_size; + int rect_x = ALIGNED_XPOS(preview->x, rect_width, preview->align); + int rect_y = ALIGNED_YPOS(preview->y, rect_height, preview->valign); + + return (x >= rect_x && x < rect_x + rect_width && + y >= rect_y && y < rect_y + rect_height); +} + static void AdjustScrollbar(int id, int items_max, int items_visible, int item_position) { @@ -1807,6 +1818,10 @@ void HandleMainMenu(int mx, int my, int dx, int dy, int button) } } + /* check if level preview was clicked */ + if (insidePreviewRect(&preview, mx - SX, my - SY)) + pos = MAIN_CONTROL_GAME; + // handle pressed/unpressed state for active/inactive menu buttons // (if pos != -1, "i" contains index position corresponding to "pos") if (button &&