X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fmain.h;h=ef8ee9cd6027b7e1793f94eb52cd82884c1c02ce;hp=955cf84acdac28b1f2956ceccb7b433a03fa0718;hb=e8bffba310b8b33e441a952335273665c07eb4a5;hpb=ef86a9fafe44eeffdda3a301ca4a2f586602f481 diff --git a/src/main.h b/src/main.h index 955cf84a..ef8ee9cd 100644 --- a/src/main.h +++ b/src/main.h @@ -33,12 +33,17 @@ #include #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; @@ -190,12 +195,12 @@ typedef unsigned char byte; #define MAX_LEVNAMLEN 32 #define MAX_LEVSCORE_ENTRIES 16 #define NUM_FREE_LVHD_BYTES 18 -#define MAX_TAPELEN 10000 +#define MAX_TAPELEN (1000 * 50) /* max. time * framerate */ #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 @@ -213,6 +218,8 @@ struct OptionInfo char *display_name; char *server_host; int server_port; + char *base_directory; + char *level_directory; boolean serveronly; boolean network; boolean verbose; @@ -220,7 +227,7 @@ struct OptionInfo struct SetupJoystickInfo { - char device_name[MAX_FILENAME_LEN]; + char *device_name; int xleft, xmiddle, xright; int yupper, ymiddle, ylower; int snap; @@ -246,6 +253,8 @@ struct SetupInputInfo struct SetupInfo { + char *player_name; + boolean sound; boolean sound_loops; boolean sound_music; @@ -260,9 +269,6 @@ struct SetupInfo boolean quick_doors; boolean team_mode; - char login_name[MAX_NAMELEN]; - char alias_name[MAX_NAMELEN]; - struct SetupInputInfo input[MAX_PLAYERS]; }; @@ -333,10 +339,12 @@ struct LevelInfo 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 @@ -367,7 +375,7 @@ extern GC gc, clip_gc[], tile_clip_gc; extern Pixmap pix[]; extern Pixmap clipmask[], tile_clipmask[]; -#ifdef XPM_INCLUDE_FILE +#ifdef USE_XPM_LIBRARY extern XpmAttributes xpm_att[]; #endif @@ -379,7 +387,6 @@ extern int sound_device; 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; @@ -1068,55 +1075,39 @@ extern int num_bg_loops; #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 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 USERDATA_DIRECTORY ".rocksndiamonds" +#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 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 USERDATA_DIRECTORY "userdata" +#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 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 @@ -1125,27 +1116,26 @@ extern int num_bg_loops; #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" +#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"