projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added optional main menu button to directly show level set info
[rocksndiamonds.git]
/
src
/
screens.c
diff --git
a/src/screens.c
b/src/screens.c
index 021dfcdc3fc046691115548736f33eff5a07d4d8..8a471ecb4050795009cfef99b7dfa6e5447e998f 100644
(file)
--- a/
src/screens.c
+++ b/
src/screens.c
@@
-203,20
+203,21
@@
#define SCREEN_CTRL_ID_NEXT_PLAYER 11
#define SCREEN_CTRL_ID_INSERT_SOLUTION 12
#define SCREEN_CTRL_ID_PLAY_SOLUTION 13
#define SCREEN_CTRL_ID_NEXT_PLAYER 11
#define SCREEN_CTRL_ID_INSERT_SOLUTION 12
#define SCREEN_CTRL_ID_PLAY_SOLUTION 13
-#define SCREEN_CTRL_ID_SWITCH_ECS_AGA 14
-#define SCREEN_CTRL_ID_TOUCH_PREV_PAGE 15
-#define SCREEN_CTRL_ID_TOUCH_NEXT_PAGE 16
-#define SCREEN_CTRL_ID_TOUCH_PREV_PAGE2 17
-#define SCREEN_CTRL_ID_TOUCH_NEXT_PAGE2 18
+#define SCREEN_CTRL_ID_LEVELSET_INFO 14
+#define SCREEN_CTRL_ID_SWITCH_ECS_AGA 15
+#define SCREEN_CTRL_ID_TOUCH_PREV_PAGE 16
+#define SCREEN_CTRL_ID_TOUCH_NEXT_PAGE 17
+#define SCREEN_CTRL_ID_TOUCH_PREV_PAGE2 18
+#define SCREEN_CTRL_ID_TOUCH_NEXT_PAGE2 19
-#define NUM_SCREEN_MENUBUTTONS
19
+#define NUM_SCREEN_MENUBUTTONS
20
-#define SCREEN_CTRL_ID_SCROLL_UP
19
-#define SCREEN_CTRL_ID_SCROLL_DOWN 2
0
-#define SCREEN_CTRL_ID_SCROLL_VERTICAL 2
1
-#define SCREEN_CTRL_ID_NETWORK_SERVER 2
2
+#define SCREEN_CTRL_ID_SCROLL_UP
20
+#define SCREEN_CTRL_ID_SCROLL_DOWN 2
1
+#define SCREEN_CTRL_ID_SCROLL_VERTICAL 2
2
+#define SCREEN_CTRL_ID_NETWORK_SERVER 2
3
-#define NUM_SCREEN_GADGETS 2
3
+#define NUM_SCREEN_GADGETS 2
4
#define NUM_SCREEN_SCROLLBUTTONS 2
#define NUM_SCREEN_SCROLLBARS 1
#define NUM_SCREEN_SCROLLBUTTONS 2
#define NUM_SCREEN_SCROLLBARS 1
@@
-224,11
+225,12
@@
#define SCREEN_MASK_MAIN (1 << 0)
#define SCREEN_MASK_MAIN_HAS_SOLUTION (1 << 1)
#define SCREEN_MASK_MAIN (1 << 0)
#define SCREEN_MASK_MAIN_HAS_SOLUTION (1 << 1)
-#define SCREEN_MASK_INPUT (1 << 2)
-#define SCREEN_MASK_TOUCH (1 << 3)
-#define SCREEN_MASK_TOUCH2 (1 << 4)
-#define SCREEN_MASK_SCORES (1 << 5)
-#define SCREEN_MASK_SCORES_INFO (1 << 6)
+#define SCREEN_MASK_MAIN_HAS_SET_INFO (1 << 2)
+#define SCREEN_MASK_INPUT (1 << 3)
+#define SCREEN_MASK_TOUCH (1 << 4)
+#define SCREEN_MASK_TOUCH2 (1 << 5)
+#define SCREEN_MASK_SCORES (1 << 6)
+#define SCREEN_MASK_SCORES_INFO (1 << 7)
// graphic position and size values for buttons and scrollbars
#define SC_MENUBUTTON_XSIZE TILEX
// graphic position and size values for buttons and scrollbars
#define SC_MENUBUTTON_XSIZE TILEX
@@
-923,6
+925,11
@@
static struct MainControlInfo main_controls[] =
};
};
+static boolean hasLevelSetInfo(void)
+{
+ return (getLevelSetInfoFilename(0) != NULL);
+}
+
static int getTitleScreenGraphic(int nr, boolean initial)
{
return (initial ? IMG_TITLESCREEN_INITIAL_1 : IMG_TITLESCREEN_1) + nr;
static int getTitleScreenGraphic(int nr, boolean initial)
{
return (initial ? IMG_TITLESCREEN_INITIAL_1 : IMG_TITLESCREEN_1) + nr;
@@
-1809,6
+1816,7
@@
void DrawMainMenu(void)
MapTapeButtons();
MapScreenMenuGadgets(SCREEN_MASK_MAIN);
UpdateScreenMenuGadgets(SCREEN_MASK_MAIN_HAS_SOLUTION, hasSolutionTape());
MapTapeButtons();
MapScreenMenuGadgets(SCREEN_MASK_MAIN);
UpdateScreenMenuGadgets(SCREEN_MASK_MAIN_HAS_SOLUTION, hasSolutionTape());
+ UpdateScreenMenuGadgets(SCREEN_MASK_MAIN_HAS_SET_INFO, hasLevelSetInfo());
// copy actual game door content to door double buffer for OpenDoor()
BlitBitmap(drawto, bitmap_db_door_1, DX, DY, DXSIZE, DYSIZE, 0, 0);
// copy actual game door content to door double buffer for OpenDoor()
BlitBitmap(drawto, bitmap_db_door_1, DX, DY, DXSIZE, DYSIZE, 0, 0);
@@
-9562,6
+9570,14
@@
static struct
GD_EVENT_RELEASED,
FALSE, "play solution tape"
},
GD_EVENT_RELEASED,
FALSE, "play solution tape"
},
+ {
+ IMG_MENU_BUTTON_LEVELSET_INFO, IMG_MENU_BUTTON_LEVELSET_INFO_ACTIVE,
+ &menu.main.button.levelset_info, NULL,
+ SCREEN_CTRL_ID_LEVELSET_INFO,
+ SCREEN_MASK_MAIN_HAS_SET_INFO,
+ GD_EVENT_RELEASED,
+ FALSE, "show level set info"
+ },
{
IMG_MENU_BUTTON_SWITCH_ECS_AGA, IMG_MENU_BUTTON_SWITCH_ECS_AGA_ACTIVE,
&menu.main.button.switch_ecs_aga, &setup.prefer_aga_graphics,
{
IMG_MENU_BUTTON_SWITCH_ECS_AGA, IMG_MENU_BUTTON_SWITCH_ECS_AGA_ACTIVE,
&menu.main.button.switch_ecs_aga, &setup.prefer_aga_graphics,
@@
-10170,6
+10186,10
@@
static void HandleScreenGadgets(struct GadgetInfo *gi)
PlaySolutionTape();
break;
PlaySolutionTape();
break;
+ case SCREEN_CTRL_ID_LEVELSET_INFO:
+ DrawInfoScreen_FromMainMenu(INFO_MODE_LEVELSET);
+ break;
+
case SCREEN_CTRL_ID_SWITCH_ECS_AGA:
setup.prefer_aga_graphics = !setup.prefer_aga_graphics;
DrawMainMenu();
case SCREEN_CTRL_ID_SWITCH_ECS_AGA:
setup.prefer_aga_graphics = !setup.prefer_aga_graphics;
DrawMainMenu();