Enclose savefile format change by STORE_PLNAME_IN_FILE macro.
This commit is contained in:
@@ -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"
|
||||||
|
|||||||
31
src/files.c
31
src/files.c
@@ -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;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user