stairway save/restore bit
The logic surrounding stairway saves and restores should not be within a block reserved for deliminating external file structure.
This commit is contained in:
@@ -923,15 +923,14 @@ NHFILE *nhfp;
|
||||
if (buflen == -1)
|
||||
break;
|
||||
|
||||
len += (int) sizeof (stairway);
|
||||
if (nhfp->structlevel) {
|
||||
len += (int) sizeof (stairway);
|
||||
mread(nhfp->fd, (genericptr_t) &stway, sizeof (stairway));
|
||||
if (stway.tolev.dnum == u.uz.dnum) {
|
||||
/* stairway dlevel is relative, make it absolute */
|
||||
stway.tolev.dlevel += u.uz.dlevel;
|
||||
}
|
||||
}
|
||||
|
||||
if (stway.tolev.dnum == u.uz.dnum) {
|
||||
/* stairway dlevel is relative, make it absolute */
|
||||
stway.tolev.dlevel += u.uz.dlevel;
|
||||
}
|
||||
stairway_add(stway.sx, stway.sy, stway.up, stway.isladder,
|
||||
&(stway.tolev));
|
||||
}
|
||||
|
||||
18
src/save.c
18
src/save.c
@@ -668,24 +668,24 @@ NHFILE *nhfp;
|
||||
|
||||
while (stway) {
|
||||
if (perform_bwrite(nhfp)) {
|
||||
if (stway->tolev.dnum == u.uz.dnum) {
|
||||
/* make dlevel relative to current level */
|
||||
stway->tolev.dlevel -= u.uz.dlevel;
|
||||
}
|
||||
if (nhfp->structlevel) {
|
||||
if (stway->tolev.dnum == u.uz.dnum) {
|
||||
/* make dlevel relative to current level */
|
||||
stway->tolev.dlevel -= u.uz.dlevel;
|
||||
}
|
||||
bwrite(nhfp->fd, (genericptr_t) &buflen, sizeof buflen);
|
||||
bwrite(nhfp->fd, (genericptr_t) stway, sizeof *stway);
|
||||
if (stway->tolev.dnum == u.uz.dnum) {
|
||||
/* reset staiway dlevel back to absolute */
|
||||
stway->tolev.dlevel += u.uz.dlevel;
|
||||
}
|
||||
}
|
||||
if (stway->tolev.dnum == u.uz.dnum) {
|
||||
/* reset staiway dlevel back to absolute */
|
||||
stway->tolev.dlevel += u.uz.dlevel;
|
||||
}
|
||||
}
|
||||
stway = stway->next;
|
||||
}
|
||||
if (perform_bwrite(nhfp)) {
|
||||
buflen = -1;
|
||||
if (nhfp->structlevel) {
|
||||
buflen = -1;
|
||||
bwrite(nhfp->fd, (genericptr_t) &buflen, sizeof buflen);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user