Esempio n. 1
0
static void
rest_room (int fd, struct mkroom *r)
{
        short i;

        mread(fd, (void *) r, sizeof(struct mkroom));
        for(i=0; i<r->nsubrooms; i++) {
                r->sbrooms[i] = &subrooms[nsubroom];
                rest_room(fd, &subrooms[nsubroom]);
                subrooms[nsubroom++].resident = (struct monst *)0;
        }
}
Esempio n. 2
0
void
rest_rooms (int fd)
{
        short i;

        mread(fd, (void *) &nroom, sizeof(nroom));
        nsubroom = 0;
        for(i = 0; i<nroom; i++) {
            rest_room(fd, &rooms[i]);
            rooms[i].resident = (struct monst *)0;
        }
        rooms[nroom].hx = -1;           /* restore ending flags */
        subrooms[nsubroom].hx = -1;
}
Esempio n. 3
0
/*
 * rest_rooms : That's for restoring rooms. Read the rooms structure from
 * the disk.
 */
void
rest_rooms(struct memfile *mf, struct level *lev)
{
    short i;

    mfmagic_check(mf, ROOMS_MAGIC);     /* "RDAT" */
    lev->nroom = mread32(mf);
    lev->nsubroom = 0;
    for (i = 0; i < lev->nroom; i++) {
        rest_room(mf, lev, &lev->rooms[i]);
        lev->rooms[i].resident = NULL;
    }
    lev->rooms[lev->nroom].hx = -1;     /* restore ending flags */
    lev->subrooms[lev->nsubroom].hx = -1;
}
Esempio n. 4
0
static void
rest_room(struct memfile *mf, struct level *lev, struct mkroom *r)
{
    short i;

    r->lx = mread8(mf);
    r->hx = mread8(mf);
    r->ly = mread8(mf);
    r->hy = mread8(mf);
    r->rtype = mread8(mf);
    r->rlit = mread8(mf);
    r->doorct = mread8(mf);
    r->fdoor = mread8(mf);
    r->nsubrooms = mread8(mf);
    r->irregular = mread8(mf);

    for (i = 0; i < r->nsubrooms; i++) {
        r->sbrooms[i] = &lev->subrooms[lev->nsubroom];
        rest_room(mf, lev, &lev->subrooms[lev->nsubroom]);
        lev->subrooms[lev->nsubroom++].resident = NULL;
    }
}