#include <X11/keysymdef.h>
#ifdef XPM_INCLUDE_FILE
+#define USE_XPM_LIBRARY
#include XPM_INCLUDE_FILE
#endif
#else /* MSDOS */
#include "msdos.h"
#endif /* MSDOS */
+#ifdef DEBUG
+#define DEBUG_TIMING 0
+#endif
+
typedef unsigned char boolean;
typedef unsigned char byte;
#define MAX_LEVDIR_FILENAME (64+1)
#define MAX_LEVDIR_NAME (16+1)
#define MAX_LEVDIR_ENTRIES 15
-#define MAX_SCORE_ENTRIES 15
+#define MAX_SCORE_ENTRIES 100
#define MAX_OPTION_LEN 256
#define MAX_FILENAME_LEN 256
char *display_name;
char *server_host;
int server_port;
+ char *base_directory;
+ char *level_directory;
boolean serveronly;
boolean network;
boolean verbose;
struct SetupJoystickInfo
{
- char device_name[MAX_FILENAME_LEN];
+ char *device_name;
int xleft, xmiddle, xright;
int yupper, ymiddle, ylower;
int snap;
struct SetupInfo
{
+ char *player_name;
+
boolean sound;
boolean sound_loops;
boolean sound_music;
boolean quick_doors;
boolean team_mode;
- char login_name[MAX_NAMELEN];
- char alias_name[MAX_NAMELEN];
-
struct SetupInputInfo input[MAX_PLAYERS];
};
struct LevelDirInfo
{
- char filename[MAX_LEVDIR_FILENAME];
- char name[MAX_LEVDIR_NAME];
+ char *filename;
+ char *name;
int levels;
- int readonly;
+ int sort_priority;
+ boolean user_defined;
+ boolean readonly;
};
struct RecordingInfo
extern Pixmap pix[];
extern Pixmap clipmask[], tile_clipmask[];
-#ifdef XPM_INCLUDE_FILE
+#ifdef USE_XPM_LIBRARY
extern XpmAttributes xpm_att[];
#endif
extern char *sound_device_name;
extern int joystick_device;
extern char *joystick_device_name[];
-extern char *level_directory;
extern int width, height;
extern char *program_name;
#define EMU_BOULDERDASH 1
#define EMU_SOKOBAN 2
-
#ifndef GAME_DIR
#define GAME_DIR "."
#endif
-#ifndef GFX_PATH
-#define GFX_PATH GAME_DIR "/graphics"
-#endif
-#ifndef SND_PATH
-#define SND_PATH GAME_DIR "/sounds"
-#endif
-#ifndef LEVEL_PATH
-#define LEVEL_PATH GAME_DIR "/levels"
-#endif
-#ifndef SCORE_PATH
-#define SCORE_PATH LEVEL_PATH
-#endif
-#ifndef NAMES_PATH
-#define NAMES_PATH LEVEL_PATH
-#endif
-#ifndef CONFIG_PATH
-#define CONFIG_PATH GAME_DIR
-#endif
-#ifndef JOYDAT_PATH
-#define JOYDAT_PATH GAME_DIR
-#endif
-#ifndef SETUP_PATH
-#define SETUP_PATH GAME_DIR
-#endif
+#define BASE_PATH GAME_DIR
+
+#define GRAPHICS_DIRECTORY "graphics"
+#define SOUNDS_DIRECTORY "sounds"
+#define LEVELS_DIRECTORY "levels"
+#define TAPES_DIRECTORY "tapes"
+#define SCORES_DIRECTORY "scores"
#ifndef MSDOS
#define USERDATA_DIRECTORY ".rocksndiamonds"
-#define TAPEDATA_DIRECTORY "tapes"
-#define SCORE_FILENAME "ROCKS.score"
-#define LEVDIR_FILENAME "ROCKS.levelinfo"
-#define JOYDAT_FILENAME "ROCKS.joystick"
-#define SETUP_FILENAME "setup"
-#define LEVELSETUP_FILENAME "setup.level"
+#define SETUP_FILENAME "setup.conf"
+#define LEVELSETUP_FILENAME "levelsetup.conf"
+#define LEVELINFO_FILENAME "levelinfo.conf"
#define TAPEFILE_EXTENSION "tape"
+#define SCOREFILE_EXTENSION "score"
#else
#define USERDATA_DIRECTORY "userdata"
-#define TAPEDATA_DIRECTORY "tapes"
-#define SCORE_FILENAME "ROCKS.sco"
-#define LEVDIR_FILENAME "ROCKS.lev"
-#define JOYDAT_FILENAME "ROCKS.joy"
-#define SETUP_FILENAME "setup"
-#define LEVELSETUP_FILENAME "setup.lev"
+#define SETUP_FILENAME "setup.cnf"
+#define LEVELSETUP_FILENAME "lvlsetup.cnf"
+#define LEVELINFO_FILENAME "lvlinfo.cnf"
#define TAPEFILE_EXTENSION "rec"
+#define SCOREFILE_EXTENSION "sco"
#endif
-#define JOYDAT_FILE JOYDAT_PATH "/" JOYDAT_FILENAME
-
#define MODE_R_ALL (S_IRUSR | S_IRGRP | S_IROTH)
#define MODE_W_ALL (S_IWUSR | S_IWGRP | S_IWOTH)
#define MODE_X_ALL (S_IXUSR | S_IXGRP | S_IXOTH)
#define SETUP_PERMS LEVEL_PERMS
/* old cookies */
-#define NAMES_COOKIE_10 "ROCKSNDIAMONDS_NAMES_FILE_VERSION_1.0"
#define LEVELREC_COOKIE_10 "ROCKSNDIAMONDS_LEVELREC_FILE_VERSION_1.0"
#define LEVEL_COOKIE "ROCKSNDIAMONDS_LEVEL_FILE_VERSION_1.0"
-#define SCORE_COOKIE "ROCKSNDIAMONDS_SCORE_FILE_VERSION_1.0"
-#define NAMES_COOKIE "ROCKSNDIAMONDS_NAMES_FILE_VERSION_1.1"
+#define SCORE_COOKIE "ROCKSNDIAMONDS_SCORE_FILE_VERSION_1.2"
#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 LEVELSETUP_COOKIE "ROCKSNDIAMONDS_LEVELSETUP_FILE_VERSION_1.2"
+#define LEVELINFO_COOKIE "ROCKSNDIAMONDS_LEVELINFO_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 LEVELSETUP_COOKIE_LEN (strlen(LEVELSETUP_COOKIE)+1)
+#define LEVELINFO_COOKIE_LEN (strlen(LEVELINFO_COOKIE)+1)
#define VERSION_STRING "1.2 preview 1"
#define GAMETITLE_STRING "Rocks'n'Diamonds"