X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ffiles.c;h=99397151884ed3a7525128638c91e8aac91f4252;hb=681721dddc91bcdaef50002d1e861cc8d484e938;hp=37210cd7ecc37b2631f1d21ad805375e2dc3eb95;hpb=f7b1cff56121f72c25e1da08f53958ddab27ce75;p=rocksndiamonds.git diff --git a/src/files.c b/src/files.c index 37210cd7..99397151 100644 --- a/src/files.c +++ b/src/files.c @@ -1,23 +1,24 @@ /*********************************************************** -* Rocks'n'Diamonds -- McDuffin Strikes Back! * +* Rocks'n'Diamonds -- McDuffin Strikes Back! * *----------------------------------------------------------* -* (c) 1995-98 Artsoft Entertainment * -* Holger Schemel * -* Oststrasse 11a * -* 33604 Bielefeld * -* phone: ++49 +521 290471 * -* email: aeglos@valinor.owl.de * +* (c) 1995-2001 Artsoft Entertainment * +* Holger Schemel * +* Detmolder Strasse 189 * +* 33604 Bielefeld * +* Germany * +* e-mail: info@artsoft.org * *----------------------------------------------------------* -* files.h * +* files.c * ***********************************************************/ #include #include #include +#include "libgame/libgame.h" + #include "files.h" #include "tools.h" -#include "misc.h" #include "tape.h" #include "joystick.h" @@ -45,8 +46,7 @@ #define TAPE_COOKIE_10 "ROCKSNDIAMONDS_LEVELREC_FILE_VERSION_1.0" /* file names and filename extensions */ -#ifndef MSDOS -#define USERDATA_DIRECTORY ".rocksndiamonds" +#if !defined(PLATFORM_MSDOS) #define LEVELSETUP_DIRECTORY "levelsetup" #define SETUP_FILENAME "setup.conf" #define LEVELSETUP_FILENAME "levelsetup.conf" @@ -55,7 +55,6 @@ #define TAPEFILE_EXTENSION "tape" #define SCOREFILE_EXTENSION "score" #else -#define USERDATA_DIRECTORY "userdata" #define LEVELSETUP_DIRECTORY "lvlsetup" #define SETUP_FILENAME "setup.cnf" #define LEVELSETUP_FILENAME "lvlsetup.cnf" @@ -65,11 +64,7 @@ #define SCOREFILE_EXTENSION "sco" #endif -#if defined(MSDOS) || defined(WIN32) -#define ERROR_FILENAME "error.out" -#endif - -#ifdef WIN32 +#if defined(PLATFORM_WIN32) #ifndef S_IRGRP #define S_IRGRP S_IRUSR #endif @@ -88,13 +83,12 @@ #ifndef S_IXOTH #define S_IXOTH S_IXUSR #endif -#endif +#endif /* PLATFORM_WIN32 */ /* file permissions for newly written files */ #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 TAPE_PERMS LEVEL_PERMS @@ -210,21 +204,6 @@ char *getLevelClassDescription(struct LevelDirInfo *ldi) static void SaveUserLevelInfo(); /* for 'InitUserLevelDir()' */ static char *getSetupLine(char *, int); /* for 'SaveUserLevelInfo()' */ -char *getUserDataDir() -{ - static char *userdata_dir = NULL; - - if (!userdata_dir) - { - char *home_dir = getHomeDir(); - char *data_dir = USERDATA_DIRECTORY; - - userdata_dir = getPath2(home_dir, data_dir); - } - - return userdata_dir; -} - static char *getSetupDir() { return getUserDataDir(); @@ -344,22 +323,6 @@ static char *getScoreFilename(int nr) return filename; } -static void createDirectory(char *dir, char *text) -{ - if (access(dir, F_OK) != 0) -#ifdef WIN32 - if (mkdir(dir) != 0) -#else - if (mkdir(dir, USERDATA_DIR_MODE) != 0) -#endif - Error(ERR_WARN, "cannot create %s directory '%s'", text, dir); -} - -static void InitUserDataDirectory() -{ - createDirectory(getUserDataDir(), "user data"); -} - static void InitTapeDirectory(char *level_subdir) { createDirectory(getUserDataDir(), "user data"); @@ -493,7 +456,7 @@ void LoadLevel(int level_nr) /* always start with reliable default values */ setLevelInfoToDefaults(); - if (!(file = fopen(filename, "r"))) + if (!(file = fopen(filename, MODE_READ))) { Error(ERR_WARN, "cannot read level '%s' - creating new level", filename); return; @@ -657,7 +620,7 @@ void SaveLevel(int level_nr) char *oldest_possible_cookie; FILE *file; - if (!(file = fopen(filename, "w"))) + if (!(file = fopen(filename, MODE_WRITE))) { Error(ERR_WARN, "cannot save level file '%s'", filename); return; @@ -767,7 +730,7 @@ void LoadTape(int level_nr) /* at least one (default: the first) player participates in every tape */ num_participating_players = 1; - if (!(file = fopen(filename, "r"))) + if (!(file = fopen(filename, MODE_READ))) return; /* check file identifier */ @@ -929,7 +892,7 @@ void SaveTape(int level_nr) } } - if (!(file = fopen(filename, "w"))) + if (!(file = fopen(filename, MODE_WRITE))) { Error(ERR_WARN, "cannot save level recording file '%s'", filename); return; @@ -989,7 +952,7 @@ void LoadScore(int level_nr) highscore[i].Score = 0; } - if (!(file = fopen(filename, "r"))) + if (!(file = fopen(filename, MODE_READ))) return; /* check file identifier */ @@ -1034,7 +997,7 @@ void SaveScore(int level_nr) InitScoreDirectory(leveldir_current->filename); - if (!(file = fopen(filename, "w"))) + if (!(file = fopen(filename, MODE_WRITE))) { Error(ERR_WARN, "cannot save score for level %d", level_nr); return; @@ -1341,7 +1304,7 @@ static struct SetupFileList *loadSetupFileList(char *filename) FILE *file; - if (!(file = fopen(filename, "r"))) + if (!(file = fopen(filename, MODE_READ))) { Error(ERR_WARN, "cannot open configuration file '%s'", filename); return NULL; @@ -1543,12 +1506,12 @@ static void setSetupInfoToDefaults(struct SetupInfo *si) si->input[i].joy.ylower = JOYSTICK_YLOWER; si->input[i].joy.snap = (i == 0 ? JOY_BUTTON_1 : 0); si->input[i].joy.bomb = (i == 0 ? JOY_BUTTON_2 : 0); - si->input[i].key.left = (i == 0 ? DEFAULT_KEY_LEFT : KEY_UNDEFINED); - si->input[i].key.right = (i == 0 ? DEFAULT_KEY_RIGHT : KEY_UNDEFINED); - si->input[i].key.up = (i == 0 ? DEFAULT_KEY_UP : KEY_UNDEFINED); - si->input[i].key.down = (i == 0 ? DEFAULT_KEY_DOWN : KEY_UNDEFINED); - si->input[i].key.snap = (i == 0 ? DEFAULT_KEY_SNAP : KEY_UNDEFINED); - si->input[i].key.bomb = (i == 0 ? DEFAULT_KEY_BOMB : KEY_UNDEFINED); + si->input[i].key.left = (i == 0 ? DEFAULT_KEY_LEFT : KSYM_UNDEFINED); + si->input[i].key.right = (i == 0 ? DEFAULT_KEY_RIGHT : KSYM_UNDEFINED); + si->input[i].key.up = (i == 0 ? DEFAULT_KEY_UP : KSYM_UNDEFINED); + si->input[i].key.down = (i == 0 ? DEFAULT_KEY_DOWN : KSYM_UNDEFINED); + si->input[i].key.snap = (i == 0 ? DEFAULT_KEY_SNAP : KSYM_UNDEFINED); + si->input[i].key.bomb = (i == 0 ? DEFAULT_KEY_BOMB : KSYM_UNDEFINED); } } @@ -1819,7 +1782,7 @@ static void SaveUserLevelInfo() filename = getPath2(getUserLevelDir(getLoginName()), LEVELINFO_FILENAME); - if (!(file = fopen(filename, "w"))) + if (!(file = fopen(filename, MODE_WRITE))) { Error(ERR_WARN, "cannot write level info file '%s'", filename); free(filename); @@ -1963,7 +1926,7 @@ void SaveSetup() filename = getPath2(getSetupDir(), SETUP_FILENAME); - if (!(file = fopen(filename, "w"))) + if (!(file = fopen(filename, MODE_WRITE))) { Error(ERR_WARN, "cannot write setup file '%s'", filename); free(filename); @@ -2051,7 +2014,7 @@ void SaveLevelSetup_LastSeries() filename = getPath2(getSetupDir(), LEVELSETUP_FILENAME); - if (!(file = fopen(filename, "w"))) + if (!(file = fopen(filename, MODE_WRITE))) { Error(ERR_WARN, "cannot write setup file '%s'", filename); free(filename); @@ -2196,7 +2159,7 @@ void SaveLevelSetup_SeriesInfo() filename = getPath2(getLevelSetupDir(level_subdir), LEVELSETUP_FILENAME); - if (!(file = fopen(filename, "w"))) + if (!(file = fopen(filename, MODE_WRITE))) { Error(ERR_WARN, "cannot write setup file '%s'", filename); free(filename); @@ -2215,46 +2178,5 @@ void SaveLevelSetup_SeriesInfo() chmod(filename, SETUP_PERMS); } - -#if defined(MSDOS) || defined(WIN32) -void initErrorFile() -{ - char *filename; - - InitUserDataDirectory(); - - filename = getPath2(getUserDataDir(), ERROR_FILENAME); - unlink(filename); - free(filename); -} - -FILE *openErrorFile() -{ - char *filename; - FILE *error_file; - - filename = getPath2(getUserDataDir(), ERROR_FILENAME); - error_file = fopen(filename, "a"); - free(filename); - - return error_file; -} - -void dumpErrorFile() -{ - char *filename; - FILE *error_file; - - filename = getPath2(getUserDataDir(), ERROR_FILENAME); - error_file = fopen(filename, "r"); - free(filename); - - if (error_file != NULL) - { - while (!feof(error_file)) - fputc(fgetc(error_file), stderr); - - fclose(error_file); - } -} -#endif +/* LocalWords: Rocks'n + */