rnd-19981025-1
[rocksndiamonds.git] / src / main.h
index 7fa6425715a497943e05c9b05b4c8354bd274928..a43543e54255c737d86964320e8ef158fab8932e 100644 (file)
@@ -217,6 +217,12 @@ struct OptionInfo
   boolean verbose;
 };
 
+struct SetupJoystickInfo
+{
+  int snap;
+  int bomb;
+};
+
 struct SetupKeyboardInfo
 {
   KeySym left;
@@ -227,14 +233,6 @@ struct SetupKeyboardInfo
   KeySym bomb;
 };
 
-struct SetupJoystickInfo
-{
-  boolean use_joystick;
-  int joystick_nr;
-  int button_snap;
-  int button_bomb;
-};
-
 struct SetupInfo
 {
   boolean sound_on;
@@ -248,8 +246,20 @@ struct SetupInfo
   boolean fading_on;
   boolean autorecord_on;
   boolean quick_doors;
-  struct SetupKeyboardInfo key_input[MAX_PLAYERS];
-  struct SetupJoystickInfo joy_input[MAX_PLAYERS];
+  struct
+  {
+    boolean use_joystick;
+    int joystick_nr;
+    struct SetupJoystickInfo joy;
+    struct SetupKeyboardInfo key;
+  } input[MAX_PLAYERS];
+};
+
+struct SetupFileInfo
+{
+  char *token;
+  char *value;
+  struct SetupFileInfo *next;
 };
 
 struct PlayerInfo
@@ -261,6 +271,8 @@ struct PlayerInfo
 
   int index_nr, client_nr, element_nr;
 
+  byte action;
+
   char login_name[MAX_NAMELEN];
   char alias_name[MAX_NAMELEN];
   int handicap;
@@ -414,7 +426,6 @@ extern int          AllPlayersGone;
 extern int             FrameCounter, TimeFrames, TimeLeft;
 extern int             MampferNr, SiebAktiv;
 
-extern byte            network_player_action[];
 extern boolean         network_player_action_received;
 extern int             TestPlayer;
 
@@ -1008,12 +1019,15 @@ extern int              num_bg_loops;
                                 (s)==SND_TWILIGHT)
 
 /* default input keys */
+#define KEY_UNDEFINDED         XK_VoidSymbol
 #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
+#define DEFAULT_KEY_OKAY       XK_Return
+#define DEFAULT_KEY_CANCEL     XK_Escape
 
 /* directions for moving */
 #define MV_NO_MOVING           0
@@ -1042,7 +1056,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
@@ -1075,17 +1090,22 @@ extern int              num_bg_loops;
 #ifndef JOYDAT_PATH
 #define JOYDAT_PATH            GAME_DIR
 #endif
+#ifndef SETUP_PATH
+#define SETUP_PATH             GAME_DIR
+#endif
 
 #ifndef MSDOS
 #define SCORE_FILENAME         "ROCKS.score"
 #define NAMES_FILENAME         "ROCKS.names"
 #define LEVDIR_FILENAME                "ROCKS.levelinfo"
 #define JOYDAT_FILENAME                "ROCKS.joystick"
+#define SETUP_FILENAME         "ROCKS.setup"
 #else
 #define SCORE_FILENAME         "ROCKS.sco"
 #define NAMES_FILENAME         "ROCKS.nam"
 #define LEVDIR_FILENAME                "ROCKS.lev"
 #define JOYDAT_FILENAME                "ROCKS.joy"
+#define SETUP_FILENAME         "ROCKS.set"
 #endif
 
 #define JOYDAT_FILE            JOYDAT_PATH "/" JOYDAT_FILENAME
@@ -1096,6 +1116,7 @@ extern int                num_bg_loops;
 #define LEVDIR_PERMS           LEVEL_PERMS
 #define LEVREC_PERMS           LEVEL_PERMS
 #define JOYDAT_PERMS           LEVEL_PERMS
+#define SETUP_PERMS            LEVEL_PERMS
 
 /* old cookies */
 #define NAMES_COOKIE_10                "ROCKSNDIAMONDS_NAMES_FILE_VERSION_1.0"
@@ -1107,12 +1128,14 @@ extern int              num_bg_loops;
 #define LEVELDIR_COOKIE                "ROCKSNDIAMONDS_LEVELDIR_FILE_VERSION_1.0"
 #define LEVELREC_COOKIE                "ROCKSNDIAMONDS_LEVELREC_FILE_VERSION_1.2"
 #define JOYSTICK_COOKIE                "ROCKSNDIAMONDS_JOYSTICK_FILE_VERSION_1.0"
+#define SETUP_COOKIE           "ROCKSNDIAMONDS_SETUP_FILE_VERSION_1.2"
 #define LEVEL_COOKIE_LEN       (strlen(LEVEL_COOKIE)+1)
 #define SCORE_COOKIE_LEN       (strlen(SCORE_COOKIE)+1)
 #define NAMES_COOKIE_LEN       (strlen(NAMES_COOKIE)+1)
 #define LEVELDIR_COOKIE_LEN    (strlen(LEVELDIR_COOKIE)+1)
 #define LEVELREC_COOKIE_LEN    (strlen(LEVELREC_COOKIE)+1)
 #define JOYSTICK_COOKIE_LEN    (strlen(JOYSTICK_COOKIE)+1)
+#define SETUP_COOKIE_LEN       (strlen(SETUP_COOKIE)+1)
 
 #define VERSION_STRING         "1.2"
 #define GAMETITLE_STRING       "Rocks'n'Diamonds"