MAXY
for (j = 0; j < MAXY; j++)
for (i = 0; i < MAXY; i++)
item[33][MAXY - 1] = 0; /* exit from dungeon */
my = rnd(MAXY - 2);
if (yy >= MAXY - 3)
for (i = 0; i < MAXY; i++) {
ty = rnd(MAXY - 9) + 1; /* upper left corner of room */
y = rnd(MAXY - 2);
playery = rnd(MAXY - 2);
if (y > MAXY - 2)
y = MAXY - 2;
y = rnd(MAXY - 2);
for (i = 0; i < MAXY; i++)
for (y = 0; y < MAXY; y++)
for (i = 0; i < MAXY; i++)
short hitp[MAXX][MAXY]; /* monster hp on level */
short iarg[MAXX][MAXY]; /* arg for the item array */
u_char item[MAXX][MAXY]; /* objects in maze if any */
u_char know[MAXX][MAXY]; /* 1 or 0 if here before */
u_char mitem[MAXX][MAXY]; /* monster item array */
u_char moved[MAXX][MAXY]; /* monster movement flags */
u_char stealth[MAXX][MAXY]; /* 0=sleeping 1=awake monst */
for (j = 0; j < MAXY; j++)
if (cell[p * MAXX * MAXY + i * MAXY + j].item == l)
for (i = 0; i < MAXY; i++)
lwrite((char *) &cell[k * MAXX * MAXY], sizeof(struct cel) * MAXY * MAXX);
lrfill((char *) &cell[k * MAXX * MAXY], sizeof(struct cel) * MAXY * MAXX);
static int d_xmin = 0, d_xmax = MAXX, d_ymin = 0, d_ymax = MAXY;
u_char screen[MAXX][MAXY]; /* template for the screen */
if (d_xmin == 0 && d_xmax == MAXX && d_ymin == 0 && d_ymax == MAXY) {
d_xmin = 0, d_xmax = MAXX, d_ymin = 0, d_ymax = MAXY; /* for limited screen
if (maxy > MAXY - 1)
maxy = MAXY - 1;
if (kk < 0 || kk >= MAXX || mm < 0 || mm >= MAXY) {
if (kk == 33 && mm == MAXY - 1 && level == 1) {
for (mm = 0; mm < MAXY; mm++)
if (++playery >= MAXY - 1) {
if (playery == MAXY - 1 && playerx == 33)
extern u_char item[MAXX][MAXY], iven[], know[MAXX][MAXY];
extern u_char *lpnt, moved[MAXX][MAXY], mitem[MAXX][MAXY], monstlevel[];
extern u_char screen[MAXX][MAXY], sex;
extern u_char splev[], stealth[MAXX][MAXY], wizard;
extern short diroffx[], diroffy[], hitflag, hit2flag, hit3flag, hitp[MAXX][MAXY];
extern short iarg[MAXX][MAXY], ivenarg[], lasthx, lasthy, lastnum, lastpx,
cell = (struct cel *) malloc(sizeof(struct cel) * (MAXLEVEL + MAXVLEVEL) * MAXX * MAXY);
draws(0, MAXX, 0, (count > MAXY) ? MAXY : count);
if (j >= MAXY)
for (i = 0; i < MAXY; i++)
for (i = 1; i < MAXY; i++) {
for (i = MAXY; i < MAXY + MAXX; i++) {
item[i - MAXY][MAXY - 1] = i;
iarg[i - MAXY][MAXY - 1] = 0;
for (i = MAXX + MAXY; i < MAXX + MAXY + MAXY; i++) {
item[MAXX - 1][i - MAXX - MAXY] = i;
iarg[MAXX - 1][i - MAXX - MAXY] = 0;
if (*y >= MAXY) {
*y = MAXY - 1;
if (y >= MAXY - 1)
y = MAXY - 2;
for (i = max(1, y - 2); i < min(y + 3, MAXY - 1); i++) {
draws(0, MAXX, 0, MAXY);
if ((y >= 0) && (y <= MAXY - 1) && (x >= 0) && (x <= MAXX - 1))
(y != MAXY - 1))
yh = min(playery + 1, MAXY - 2);
save = (struct isave *) malloc(sizeof(struct isave) * MAXX * MAXY * 2);
for (j = 0; j < MAXY; j++)
item[33][MAXY - 1] = 0;
for (j = rnd(MAXY - 2), i = 1; i < MAXX - 1; i++)
for (trys = 100, i = j = 1; --trys > 0 && item[i][j]; i = rnd(MAXX - 1), j = rnd(MAXY - 1));
for (trys = 100, i = j = 1; --trys > 0 && (item[i][j] == OWALL || mitem[i][j]); i = rnd(MAXX - 1), j = rnd(MAXY - 1));
draws(0, MAXX, 0, MAXY);
if ((x > MAXX - 1) || (y > MAXY - 1) || (x < 0) || (y < 0)) {
if ((x < MAXX - 1) && (y < MAXY - 1) && (x) && (y)) {
if (yl >= MAXY)
yl = MAXY - 1;
if (tmp2 > MAXY)
tmp2 = MAXY;
if (tmp2 > MAXY - 1)
tmp2 = MAXY - 1;
for (i = 0; i < MAXY; i++)
for (i = 0; i < MAXY; i++)
draws(0, MAXX, 0, MAXY);
draws(0, MAXX, 0, MAXY);
playery = MAXY - 2;
item[33][MAXY - 1] = know[33][MAXY - 1] = mitem[33][MAXY - 1] = 0;
draws(0, MAXX, 0, MAXY);
for (i = 0; i < MAXY; i++)
i = MAXY;
draws(0, MAXX, 0, MAXY);
for (i = 0; i < MAXY; i++)
i = MAXY;
draws(0, MAXX, 0, MAXY);
draws(0, MAXX, 0, MAXY);
draws(0, MAXX, 0, MAXY);
draws(0, MAXX, 0, MAXY);
playery = rnd(MAXY - 2);
draws(0, MAXX, 0, MAXY);
for (i = 0; i < MAXY; i++)
for (i = 0; i < MAXY; i++)
for (i = 0; i < MAXY; i++)
for (i = 0; i < MAXY; i++)
draws(0, MAXX, 0, MAXY); /* potion of forgetfulness */
yh = min(playery + 7, MAXY);
pcel = &cell[level * MAXX * MAXY]; /* pointer to this level's
pecel = pcel + MAXX * MAXY; /* pointer to past end of this
pcel = &cell[level * MAXX * MAXY]; /* pointer to this level's
pecel = pcel + MAXX * MAXY; /* pointer to past end of this