rnd-19981022-1
[rocksndiamonds.git] / src / main.h
index f1b8671c7b9b1a5e292fefdade0936b3dc72fba0..0d427559c812d71a0b821b87c7d2bdeb2dfd5324 100644 (file)
@@ -217,6 +217,24 @@ struct OptionInfo
   boolean verbose;
 };
 
+struct SetupKeyboardInfo
+{
+  KeySym left;
+  KeySym right;
+  KeySym up;
+  KeySym down;
+  KeySym snap;
+  KeySym bomb;
+};
+
+struct SetupJoystickInfo
+{
+  boolean use_joystick;
+  int joystick_nr;
+  int button_snap;
+  int button_bomb;
+};
+
 struct SetupInfo
 {
   boolean sound_on;
@@ -230,7 +248,8 @@ struct SetupInfo
   boolean fading_on;
   boolean autorecord_on;
   boolean quick_doors;
-  int joystick_nr;
+  struct SetupKeyboardInfo key_input[MAX_PLAYERS];
+  struct SetupJoystickInfo joy_input[MAX_PLAYERS];
 };
 
 struct PlayerInfo
@@ -386,7 +405,9 @@ extern int          lev_fieldx,lev_fieldy, scroll_x,scroll_y;
 
 extern int             FX,FY, ScrollStepSize;
 extern int             ScreenMovDir, ScreenMovPos, ScreenGfxPos;
-extern int             GameFrameDelay, MoveSpeed;
+extern int             GameFrameDelay;
+extern int             FfwdFrameDelay;
+extern int             MoveSpeed;
 extern int             BX1,BY1, BX2,BY2;
 extern int             ZX,ZY, ExitX,ExitY;
 extern int             AllPlayersGone;
@@ -399,14 +420,13 @@ extern int                TestPlayer;
 
 extern struct LevelDirInfo     leveldir[];
 extern struct LevelInfo                level;
-extern struct PlayerInfo       stored_player[];
-extern struct PlayerInfo       *local_player;
+extern struct PlayerInfo       stored_player[], *local_player;
 extern struct HiScore          highscore[];
 extern struct RecordingInfo    tape;
 extern struct SoundInfo                Sound[];
 extern struct JoystickInfo     joystick[];
-struct OptionInfo              options;
-struct SetupInfo               setup;
+extern struct OptionInfo       options;
+extern struct SetupInfo                setup;
 
 extern char            *sound_name[];
 extern int             background_loop[];
@@ -987,6 +1007,13 @@ extern int                num_bg_loops;
                                 (s)==SND_TYGER || (s)==SND_VOYAGER || \
                                 (s)==SND_TWILIGHT)
 
+/* default input keys */
+#define DEFAULT_KEY_LEFT       XK_Left
+#define DEFAULT_KEY_RIGHT      XK_Right
+#define DEFAULT_KEY_UP         XK_Up
+#define DEFAULT_KEY_DOWN       XK_Down
+#define DEFAULT_KEY_SNAP       XK_Shift_L
+#define DEFAULT_KEY_BOMB       XK_Shift_R
 
 /* directions for moving */
 #define MV_NO_MOVING           0
@@ -1015,7 +1042,8 @@ extern int                num_bg_loops;
 #define TYPENAME               5
 #define HALLOFFAME             6
 #define SETUP                  7
-#define EXITGAME               8
+#define SETUPINPUT             8
+#define EXITGAME               9
 
 /* values for game_emulation */
 #define EMU_NONE               0