rnd-20100616-1-src
[rocksndiamonds.git] / src / screens.c
index 493e9984018ac836575dd459ebe1346de072a4d8..fb511433864592ff21d8d9ae107f18e6db38ac07 100644 (file)
 #define SETUP_MODE_SHORTCUTS_2         9
 #define SETUP_MODE_SHORTCUTS_3         10
 #define SETUP_MODE_SHORTCUTS_4         11
+#define SETUP_MODE_SHORTCUTS_5         12
 
 /* sub-screens on the setup screen (generic) */
-#define SETUP_MODE_CHOOSE_ARTWORK      12
-#define SETUP_MODE_CHOOSE_OTHER                13
+#define SETUP_MODE_CHOOSE_ARTWORK      13
+#define SETUP_MODE_CHOOSE_OTHER                14
 
 /* sub-screens on the setup screen (specific) */
-#define SETUP_MODE_CHOOSE_GAME_SPEED   14
-#define SETUP_MODE_CHOOSE_SCREEN_MODE  15
-#define SETUP_MODE_CHOOSE_SCROLL_DELAY 16
-#define SETUP_MODE_CHOOSE_GRAPHICS     17
-#define SETUP_MODE_CHOOSE_SOUNDS       18
-#define SETUP_MODE_CHOOSE_MUSIC                19
+#define SETUP_MODE_CHOOSE_GAME_SPEED   15
+#define SETUP_MODE_CHOOSE_SCREEN_MODE  16
+#define SETUP_MODE_CHOOSE_SCROLL_DELAY 17
+#define SETUP_MODE_CHOOSE_GRAPHICS     18
+#define SETUP_MODE_CHOOSE_SOUNDS       19
+#define SETUP_MODE_CHOOSE_MUSIC                20
 
-#define MAX_SETUP_MODES                        20
+#define MAX_SETUP_MODES                        21
 
 /* for input setup functions */
 #define SETUPINPUT_SCREEN_POS_START    0
@@ -235,7 +236,7 @@ static struct
                                 INFO_MODE_MAIN)
 
 #define DRAW_MODE_SETUP(i)     ((i) >= SETUP_MODE_MAIN &&              \
-                                (i) <= SETUP_MODE_SHORTCUTS_4 ? (i) :  \
+                                (i) <= SETUP_MODE_SHORTCUTS_5 ? (i) :  \
                                 (i) >= SETUP_MODE_CHOOSE_GRAPHICS &&   \
                                 (i) <= SETUP_MODE_CHOOSE_MUSIC ?       \
                                 SETUP_MODE_CHOOSE_ARTWORK :            \
@@ -1391,7 +1392,7 @@ void DrawMainMenu()
   DrawMainMenuExt(REDRAW_ALL, FALSE);
 }
 
-#if 0
+#if defined(CREATE_SPECIAL_EDITION_RND_JUE)
 static void gotoTopLevelDir()
 {
   /* move upwards to top level directory */
@@ -1758,7 +1759,7 @@ void HandleMainMenu(int mx, int my, int dx, int dy, int button)
          SaveLevelSetup_LastSeries();
          SaveLevelSetup_SeriesInfo();
 
-#if 0
+#if defined(CREATE_SPECIAL_EDITION_RND_JUE)
          gotoTopLevelDir();
 #endif
 
@@ -4135,6 +4136,13 @@ static void execSetupShortcuts4()
   DrawSetupScreen();
 }
 
+static void execSetupShortcuts5()
+{
+  setup_mode = SETUP_MODE_SHORTCUTS_5;
+
+  DrawSetupScreen();
+}
+
 static void execExitSetup()
 {
   game_status = GAME_MODE_MAIN;
@@ -4304,10 +4312,11 @@ static struct TokenInfo setup_info_input[] =
 
 static struct TokenInfo setup_info_shortcuts[] =
 {
-  { TYPE_ENTER_MENU,   execSetupShortcuts1,    "Various Keys"  },
-  { TYPE_ENTER_MENU,   execSetupShortcuts2,    "Player Focus"  },
-  { TYPE_ENTER_MENU,   execSetupShortcuts3,    "Tape Buttons"  },
-  { TYPE_ENTER_MENU,   execSetupShortcuts4,    "Sound & Music" },
+  { TYPE_ENTER_MENU,   execSetupShortcuts1,    "Various Keys"          },
+  { TYPE_ENTER_MENU,   execSetupShortcuts2,    "Player Focus"          },
+  { TYPE_ENTER_MENU,   execSetupShortcuts3,    "Tape Buttons"          },
+  { TYPE_ENTER_MENU,   execSetupShortcuts4,    "Sound & Music"         },
+  { TYPE_ENTER_MENU,   execSetupShortcuts5,    "TAS Snap Keys"         },
   { TYPE_EMPTY,                NULL,                   ""                      },
   { TYPE_LEAVE_MENU,   execSetupMain,          "Back"                  },
 
@@ -4351,15 +4360,17 @@ static struct TokenInfo setup_info_shortcuts_2[] =
 
 static struct TokenInfo setup_info_shortcuts_3[] =
 {
-  { TYPE_KEYTEXT,      NULL,                   "Tape Eject:",          },
+  { TYPE_KEYTEXT,      NULL,                   "Eject Tape:",          },
   { TYPE_KEY,          &setup.shortcut.tape_eject, ""                  },
-  { TYPE_KEYTEXT,      NULL,                   "Tape Stop:",           },
+  { TYPE_KEYTEXT,      NULL,                   "Warp / Single Step:",  },
+  { TYPE_KEY,          &setup.shortcut.tape_extra, ""                  },
+  { TYPE_KEYTEXT,      NULL,                   "Stop Tape:",           },
   { TYPE_KEY,          &setup.shortcut.tape_stop, ""                   },
-  { TYPE_KEYTEXT,      NULL,                   "Tape Pause:",          },
+  { TYPE_KEYTEXT,      NULL,                   "Pause / Unpause Tape:",},
   { TYPE_KEY,          &setup.shortcut.tape_pause, ""                  },
-  { TYPE_KEYTEXT,      NULL,                   "Tape Record:",         },
+  { TYPE_KEYTEXT,      NULL,                   "Record Tape:",         },
   { TYPE_KEY,          &setup.shortcut.tape_record, ""                 },
-  { TYPE_KEYTEXT,      NULL,                   "Tape Play:",           },
+  { TYPE_KEYTEXT,      NULL,                   "Play Tape:",           },
   { TYPE_KEY,          &setup.shortcut.tape_play, ""                   },
   { TYPE_EMPTY,                NULL,                   ""                      },
   { TYPE_LEAVE_MENU,   execSetupShortcuts,     "Back"                  },
@@ -4369,11 +4380,11 @@ static struct TokenInfo setup_info_shortcuts_3[] =
 
 static struct TokenInfo setup_info_shortcuts_4[] =
 {
-  { TYPE_KEYTEXT,      NULL,           "Sound Effects (Normal):",      },
+  { TYPE_KEYTEXT,      NULL,           "Toggle Sound Effects (Normal):", },
   { TYPE_KEY,          &setup.shortcut.sound_simple, ""                },
-  { TYPE_KEYTEXT,      NULL,           "Sound Effects (Looping):",     },
+  { TYPE_KEYTEXT,      NULL,           "Toggle Sound Effects (Looping):", },
   { TYPE_KEY,          &setup.shortcut.sound_loops, ""                 },
-  { TYPE_KEYTEXT,      NULL,           "Music:",                       },
+  { TYPE_KEYTEXT,      NULL,           "Toggle Music:",                },
   { TYPE_KEY,          &setup.shortcut.sound_music, ""                 },
   { TYPE_EMPTY,                NULL,                   ""                      },
   { TYPE_LEAVE_MENU,   execSetupShortcuts,     "Back"                  },
@@ -4381,6 +4392,22 @@ static struct TokenInfo setup_info_shortcuts_4[] =
   { 0,                 NULL,                   NULL                    }
 };
 
+static struct TokenInfo setup_info_shortcuts_5[] =
+{
+  { TYPE_KEYTEXT,      NULL,                   "Snap Left:",           },
+  { TYPE_KEY,          &setup.shortcut.snap_left, ""                   },
+  { TYPE_KEYTEXT,      NULL,                   "Snap Right:",          },
+  { TYPE_KEY,          &setup.shortcut.snap_right, ""                  },
+  { TYPE_KEYTEXT,      NULL,                   "Snap Up:",             },
+  { TYPE_KEY,          &setup.shortcut.snap_up, ""                     },
+  { TYPE_KEYTEXT,      NULL,                   "Snap Down:",           },
+  { TYPE_KEY,          &setup.shortcut.snap_down, ""                   },
+  { TYPE_EMPTY,                NULL,                   ""                      },
+  { TYPE_LEAVE_MENU,   execSetupShortcuts,     "Back"                  },
+
+  { 0,                 NULL,                   NULL                    }
+};
+
 static Key getSetupKey()
 {
   Key key = KSYM_UNDEFINED;
@@ -4684,6 +4711,11 @@ static void DrawSetupScreen_Generic()
     setup_info = setup_info_shortcuts_4;
     title_string = "Setup Shortcuts";
   }
+  else if (setup_mode == SETUP_MODE_SHORTCUTS_5)
+  {
+    setup_info = setup_info_shortcuts_5;
+    title_string = "Setup Shortcuts";
+  }
 
   DrawTextSCentered(mSY - SY + 16, FONT_TITLE_1, title_string);