* Incrementing EDITLEVEL can be used to force invalidation of old bones
* and save files.
*/
-#define EDITLEVEL 1
+#define EDITLEVEL 0
#define COPYRIGHT_BANNER_A \
"NetHack, Copyright 1985-2002"
#include <errno.h>
#endif
-#if defined(UNIX)
+#if defined(UNIX) && defined(QT_GRAPHICS)
#include <dirent.h>
#endif
plname_from_file(filename)
const char* filename;
{
+#ifdef STORE_PLNAME_IN_FILE
int fd;
char* result = 0;
compress(SAVEF);
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**
get_saved_games()
{
-#ifdef UNIX
+#if defined(UNIX) && defined(QT_GRAPHICS)
int myuid=getuid();
struct dirent **namelist;
int n = scandir("save", &namelist, 0, alphasort);;
char* r;
Sprintf(filename,"save/%d%s",uid,name);
r = plname_from_file(filename);
- if ( r ) {
+ if ( r )
result[j++] = r;
- }
}
}
}
int rtmp;
struct obj *otmp;
+#ifdef STORE_PLNAME_IN_FILE
mread(fd, (genericptr_t) plname, PL_NSIZ);
+#endif
restoring = TRUE;
getlev(fd, 0, (xchar)0, FALSE);
(void) lseek(fd, (off_t)0, 0);
#endif
(void) uptodate(fd, (char *)0); /* skip version info */
+#ifdef STORE_PLNAME_IN_FILE
mread(fd, (genericptr_t) plname, PL_NSIZ);
+#endif
getlev(fd, 0, (xchar)0, FALSE);
(void) close(fd);
#endif /* MFLOPPY */
store_version(fd);
+#ifdef STORE_PLNAME_IN_FILE
bwrite(fd, (genericptr_t) plname, PL_NSIZ);
+#endif
ustuck_id = (u.ustuck ? u.ustuck->m_id : 0);
#ifdef STEED
usteed_id = (u.usteed ? u.usteed->m_id : 0);
(void) write(fd, (genericptr_t) &currlev, sizeof(currlev));
save_savefile_name(fd);
store_version(fd);
+#ifdef STORE_PLNAME_IN_FILE
bwrite(fd, (genericptr_t) plname, PL_NSIZ);
+#endif
ustuck_id = (u.ustuck ? u.ustuck->m_id : 0);
#ifdef STEED
usteed_id = (u.usteed ? u.usteed->m_id : 0);