struct mkroom *croom;
boolean added_branch = FALSE;
- if (g.was_waterlevel) {
- g.was_waterlevel = FALSE;
- u.uinwater = 0;
- unsetup_waterlevel();
- }
if (Is_waterlevel(&u.uz) || Is_airlevel(&u.uz)) {
- level.flags.hero_memory = 0;
+ g.level.flags.hero_memory = 0;
- g.was_waterlevel = TRUE;
/* water level is an odd beast - it has to be set up
before calling place_lregions etc. */
setup_waterlevel();
if (perform_bwrite(mode)) {
int n = 0;
- for (b = bbubbles; b; b = b->next)
+ for (b = g.bbubbles; b; b = b->next)
++n;
- bwrite(fd, (genericptr_t) &n, sizeof(int));
- bwrite(fd, (genericptr_t) &g.xmin, sizeof(int));
- bwrite(fd, (genericptr_t) &g.ymin, sizeof(int));
- bwrite(fd, (genericptr_t) &g.xmax, sizeof(int));
- bwrite(fd, (genericptr_t) &g.ymax, sizeof(int));
+ bwrite(fd, (genericptr_t) &n, sizeof n);
- bwrite(fd, (genericptr_t) &xmin, sizeof xmin);
- bwrite(fd, (genericptr_t) &ymin, sizeof ymin);
- bwrite(fd, (genericptr_t) &xmax, sizeof xmax);
- bwrite(fd, (genericptr_t) &ymax, sizeof ymax);
- for (b = bbubbles; b; b = b->next)
++ bwrite(fd, (genericptr_t) &g.xmin, sizeof g.xmin);
++ bwrite(fd, (genericptr_t) &g.ymin, sizeof g.ymin);
++ bwrite(fd, (genericptr_t) &g.xmax, sizeof g.xmax);
++ bwrite(fd, (genericptr_t) &g.ymax, sizeof g.ymax);
+ for (b = g.bbubbles; b; b = b->next)
- bwrite(fd, (genericptr_t) b, sizeof(struct bubble));
+ bwrite(fd, (genericptr_t) b, sizeof *b);
}
if (release_data(mode))
unsetup_waterlevel();
return;
set_wportal();
- mread(fd, (genericptr_t) &n, sizeof(int));
- mread(fd, (genericptr_t) &g.xmin, sizeof(int));
- mread(fd, (genericptr_t) &g.ymin, sizeof(int));
- mread(fd, (genericptr_t) &g.xmax, sizeof(int));
- mread(fd, (genericptr_t) &g.ymax, sizeof(int));
+ mread(fd, (genericptr_t) &n, sizeof n);
- mread(fd, (genericptr_t) &xmin, sizeof xmin);
- mread(fd, (genericptr_t) &ymin, sizeof ymin);
- mread(fd, (genericptr_t) &xmax, sizeof xmax);
- mread(fd, (genericptr_t) &ymax, sizeof ymax);
++ mread(fd, (genericptr_t) &g.xmin, sizeof g.xmin);
++ mread(fd, (genericptr_t) &g.ymin, sizeof g.ymin);
++ mread(fd, (genericptr_t) &g.xmax, sizeof g.xmax);
++ mread(fd, (genericptr_t) &g.ymax, sizeof g.ymax);
for (i = 0; i < n; i++) {
btmp = b;
- b = (struct bubble *) alloc(sizeof(struct bubble));
- mread(fd, (genericptr_t) b, sizeof(struct bubble));
+ b = (struct bubble *) alloc(sizeof *b);
+ mread(fd, (genericptr_t) b, sizeof *b);
- if (bbubbles) {
+ if (g.bbubbles) {
btmp->next = b;
b->prev = btmp;
} else {
}
mv_bubble(b, 0, 0, TRUE);
}
- ebubbles = b;
+ g.ebubbles = b;
b->next = (struct bubble *) 0;
- g.was_waterlevel = TRUE;
}
const char *
if (bmask[n][1] > MAX_BMASK) {
panic("bmask size is larger than MAX_BMASK");
}
- b = (struct bubble *) alloc(sizeof(struct bubble));
+ b = (struct bubble *) alloc(sizeof *b);
- if ((x + (int) bmask[n][0] - 1) > bxmax)
- x = bxmax - bmask[n][0] + 1;
- if ((y + (int) bmask[n][1] - 1) > bymax)
- y = bymax - bmask[n][1] + 1;
+ if ((x + (int) bmask[n][0] - 1) > gbxmax)
+ x = gbxmax - bmask[n][0] + 1;
+ if ((y + (int) bmask[n][1] - 1) > gbymax)
+ y = gbymax - bmask[n][1] + 1;
b->x = x;
b->y = y;
b->dx = 1 - rn2(3);
b->dy = 1 - rn2(3);
/* y dimension is the length of bitmap data - see bmask above */
(void) memcpy((genericptr_t) b->bm, (genericptr_t) bmask[n],
- (bmask[n][1] + 2) * sizeof(b->bm[0]));
+ (bmask[n][1] + 2) * sizeof (b->bm[0]));
b->cons = 0;
- if (!bbubbles)
- bbubbles = b;
- if (ebubbles) {
- ebubbles->next = b;
- b->prev = ebubbles;
+ if (!g.bbubbles)
+ g.bbubbles = b;
+ if (g.ebubbles) {
+ g.ebubbles->next = b;
+ b->prev = g.ebubbles;
} else
b->prev = (struct bubble *) 0;
b->next = (struct bubble *) 0;