#ifdef XPM_INCLUDE_FILE
#include XPM_INCLUDE_FILE
#endif
-#else
+#else /* MSDOS */
#include "msdos.h"
-#endif /* #ifndef MSDOS */
+#endif /* MSDOS */
typedef unsigned char boolean;
typedef unsigned char byte;
#ifndef MSDOS
#define WIN_XPOS 0
#define WIN_YPOS 0
-#else
+#else /* MSDOS */
#define WIN_XPOS ((XRES - WIN_XSIZE) / 2)
#define WIN_YPOS ((YRES - WIN_YSIZE) / 2)
-#endif
+#endif /* MSDOS */
#define SCR_FIELDX 17
#define SCR_FIELDY 17
#define MAX_BUF_XSIZE (SCR_FIELDX + 2)
#ifndef SIGN
#define SIGN(a) ((a) < 0 ? -1 : ((a)>0 ? 1 : 0))
#endif
+
#define SCREENX(a) ((a) - scroll_x)
#define SCREENY(a) ((a) - scroll_y)
#define LEVELX(a) ((a) + scroll_x)
struct SetupJoystickInfo
{
+ char device_name[MAX_FILENAME_LEN];
+ int xleft, xmiddle, xright;
+ int yupper, ymiddle, ylower;
int snap;
int bomb;
};
KeySym bomb;
};
+struct SetupInputInfo
+{
+ boolean use_joystick;
+ struct SetupJoystickInfo joy;
+ struct SetupKeyboardInfo key;
+};
+
struct SetupInfo
{
- boolean sound_on;
- boolean sound_loops_on;
- boolean sound_music_on;
- boolean sound_simple_on;
- boolean toons_on;
- boolean direct_draw_on;
- boolean scroll_delay_on;
- boolean soft_scrolling_on;
- boolean fading_on;
- boolean autorecord_on;
+ boolean sound;
+ boolean sound_loops;
+ boolean sound_music;
+ boolean sound_simple;
+ boolean toons;
+ boolean double_buffering;
+ boolean direct_draw; /* !double_buffering (redundant!) */
+ boolean scroll_delay;
+ boolean soft_scrolling;
+ boolean fading;
+ boolean autorecord;
boolean quick_doors;
- struct
- {
- boolean use_joystick;
- int joystick_nr;
- struct SetupJoystickInfo joy;
- struct SetupKeyboardInfo key;
- } input[MAX_PLAYERS];
+ boolean team_mode;
+
+ char login_name[MAX_NAMELEN];
+ char alias_name[MAX_NAMELEN];
+
+ struct SetupInputInfo input[MAX_PLAYERS];
};
struct SetupFileList
struct PlayerInfo
{
boolean present; /* player present in level playfield */
- boolean connected; /* player connected locally or via network */
- boolean local; /* player connected locally */
+ boolean connected; /* player connected (locally or via network) */
boolean active; /* player (present && connected) */
int index_nr, client_nr, element_nr;
- byte action;
-
- char login_name[MAX_NAMELEN];
- char alias_name[MAX_NAMELEN];
-
-
-#if 0
- int handicap;
- unsigned int setup;
-#endif
+ byte action; /* action from local input device */
+ byte effective_action; /* action aknowledged from network server
+ or summarized over all configured input
+ devices when in single player mode */
-
- int leveldir_nr;
- int level_nr;
+ int joystick_fd; /* file descriptor of player's joystick */
int jx,jy, last_jx,last_jy;
int MovDir, MovPos, GfxPos;
} pos[MAX_TAPELEN];
};
-struct JoystickInfo
-{
- int xleft, xright, xmiddle;
- int yupper, ylower, ymiddle;
-};
-
extern Display *display;
extern Visual *visual;
extern int screen;
extern int sound_device;
extern char *sound_device_name;
extern int joystick_device;
-extern char *joystick_device_name[2];
+extern char *joystick_device_name[];
extern char *level_directory;
extern int width, height;
#endif
#ifndef MSDOS
+#define USERDATA_DIRECTORY ".rocksndiamonds"
+#define TAPEDATA_DIRECTORY "tapes"
#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"
-#define LEVELSETUP_FILENAME "ROCKS.levelsetup"
+#define SETUP_FILENAME "setup"
+#define LEVELSETUP_FILENAME "setup.level"
+#define TAPEFILE_EXTENSION "tape"
#else
+#define USERDATA_DIRECTORY "userdata"
+#define TAPEDATA_DIRECTORY "tapes"
#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"
-#define LEVELSETUP_FILENAME "ROCKS.lvs"
+#define SETUP_FILENAME "setup"
+#define LEVELSETUP_FILENAME "setup.lev"
+#define TAPEFILE_EXTENSION "rec"
#endif
#define JOYDAT_FILE JOYDAT_PATH "/" JOYDAT_FILENAME
-#define LEVEL_PERMS (S_IRUSR|S_IWUSR | S_IRGRP|S_IWGRP | S_IROTH|S_IWOTH)
+#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 USERDATA_DIR_MODE (MODE_R_ALL | MODE_X_ALL | S_IWUSR)
+#define LEVEL_PERMS (MODE_R_ALL | MODE_W_ALL)
#define SCORE_PERMS LEVEL_PERMS
#define NAMES_PERMS LEVEL_PERMS
#define LEVDIR_PERMS LEVEL_PERMS
#define SETUP_COOKIE_LEN (strlen(SETUP_COOKIE)+1)
#define LEVELSETUP_COOKIE_LEN (strlen(LEVELSETUP_COOKIE)+1)
-#define VERSION_STRING "1.2"
+#define VERSION_STRING "1.2 preview 1"
#define GAMETITLE_STRING "Rocks'n'Diamonds"
#define WINDOWTITLE_STRING GAMETITLE_STRING " " VERSION_STRING
#define COPYRIGHT_STRING "Copyright ^1995-98 by Holger Schemel"
#define ANIM_OSCILLATE 1
#define ANIM_REVERSE 2
-#endif
+#endif /* MAIN_H */