Enclose savefile format change by STORE_PLNAME_IN_FILE macro.

This commit is contained in:
warwick
2002-07-22 09:13:04 +00:00
parent 7174e31024
commit 7b5618e03c
4 changed files with 36 additions and 5 deletions

View File

@@ -13,7 +13,7 @@
* Incrementing EDITLEVEL can be used to force invalidation of old bones * Incrementing EDITLEVEL can be used to force invalidation of old bones
* and save files. * and save files.
*/ */
#define EDITLEVEL 1 #define EDITLEVEL 0
#define COPYRIGHT_BANNER_A \ #define COPYRIGHT_BANNER_A \
"NetHack, Copyright 1985-2002" "NetHack, Copyright 1985-2002"

View File

@@ -19,7 +19,7 @@
#include <errno.h> #include <errno.h>
#endif #endif
#if defined(UNIX) #if defined(UNIX) && defined(QT_GRAPHICS)
#include <dirent.h> #include <dirent.h>
#endif #endif
@@ -812,6 +812,7 @@ static char*
plname_from_file(filename) plname_from_file(filename)
const char* filename; const char* filename;
{ {
#ifdef STORE_PLNAME_IN_FILE
int fd; int fd;
char* result = 0; char* result = 0;
@@ -831,12 +832,35 @@ const char* filename;
compress(SAVEF); compress(SAVEF);
return result; return result;
#else
/* Name not stored in save file, so we have to extract it from
the filename, which loses information
(eg. "/", "_", and "." characters are lost. */
int k;
int uid;
char name[NAME_MAX];
#ifdef COMPRESS_EXTENSION
#define EXTSTR COMPRESS_EXTENSION
#else
#define EXTSTR ""
#endif
if ( sscanf( filename, "%*[^/]/%d%[^.]" EXTSTR, &uid, name ) == 2 ) {
#undef EXTSTR
/* "_" most likely means " ", which certainly looks nicer */
for (k=0; name[k]; k++)
if ( name[k]=='_' )
name[k]=' ';
return strdup(name);
} else {
return 0;
}
#endif
} }
char** char**
get_saved_games() get_saved_games()
{ {
#ifdef UNIX #if defined(UNIX) && defined(QT_GRAPHICS)
int myuid=getuid(); int myuid=getuid();
struct dirent **namelist; struct dirent **namelist;
int n = scandir("save", &namelist, 0, alphasort);; int n = scandir("save", &namelist, 0, alphasort);;
@@ -852,9 +876,8 @@ get_saved_games()
char* r; char* r;
Sprintf(filename,"save/%d%s",uid,name); Sprintf(filename,"save/%d%s",uid,name);
r = plname_from_file(filename); r = plname_from_file(filename);
if ( r ) { if ( r )
result[j++] = r; result[j++] = r;
}
} }
} }
} }

View File

@@ -542,7 +542,9 @@ register int fd;
int rtmp; int rtmp;
struct obj *otmp; struct obj *otmp;
#ifdef STORE_PLNAME_IN_FILE
mread(fd, (genericptr_t) plname, PL_NSIZ); mread(fd, (genericptr_t) plname, PL_NSIZ);
#endif
restoring = TRUE; restoring = TRUE;
getlev(fd, 0, (xchar)0, FALSE); getlev(fd, 0, (xchar)0, FALSE);
@@ -623,7 +625,9 @@ register int fd;
(void) lseek(fd, (off_t)0, 0); (void) lseek(fd, (off_t)0, 0);
#endif #endif
(void) uptodate(fd, (char *)0); /* skip version info */ (void) uptodate(fd, (char *)0); /* skip version info */
#ifdef STORE_PLNAME_IN_FILE
mread(fd, (genericptr_t) plname, PL_NSIZ); mread(fd, (genericptr_t) plname, PL_NSIZ);
#endif
getlev(fd, 0, (xchar)0, FALSE); getlev(fd, 0, (xchar)0, FALSE);
(void) close(fd); (void) close(fd);

View File

@@ -204,7 +204,9 @@ dosave0()
#endif /* MFLOPPY */ #endif /* MFLOPPY */
store_version(fd); store_version(fd);
#ifdef STORE_PLNAME_IN_FILE
bwrite(fd, (genericptr_t) plname, PL_NSIZ); bwrite(fd, (genericptr_t) plname, PL_NSIZ);
#endif
ustuck_id = (u.ustuck ? u.ustuck->m_id : 0); ustuck_id = (u.ustuck ? u.ustuck->m_id : 0);
#ifdef STEED #ifdef STEED
usteed_id = (u.usteed ? u.usteed->m_id : 0); usteed_id = (u.usteed ? u.usteed->m_id : 0);
@@ -373,7 +375,9 @@ savestateinlock()
(void) write(fd, (genericptr_t) &currlev, sizeof(currlev)); (void) write(fd, (genericptr_t) &currlev, sizeof(currlev));
save_savefile_name(fd); save_savefile_name(fd);
store_version(fd); store_version(fd);
#ifdef STORE_PLNAME_IN_FILE
bwrite(fd, (genericptr_t) plname, PL_NSIZ); bwrite(fd, (genericptr_t) plname, PL_NSIZ);
#endif
ustuck_id = (u.ustuck ? u.ustuck->m_id : 0); ustuck_id = (u.ustuck ? u.ustuck->m_id : 0);
#ifdef STEED #ifdef STEED
usteed_id = (u.usteed ? u.usteed->m_id : 0); usteed_id = (u.usteed ? u.usteed->m_id : 0);