]> granicus.if.org Git - nethack/commitdiff
Merge branch 'NetHack-3.6'
authornhmall <nhmall@nethack.org>
Wed, 29 May 2019 01:36:52 +0000 (21:36 -0400)
committernhmall <nhmall@nethack.org>
Wed, 29 May 2019 01:36:52 +0000 (21:36 -0400)
1  2 
src/do.c
src/mkmaze.c

diff --cc src/do.c
index 629028c1d3a1774189a307c30fe76c96de15d09d,9c887c037b6ce8b95489a680e5bdfdd0b72dcbcb..6d6953f9da600e3d00266cabc900f7cb58dfc1ed
+++ b/src/do.c
@@@ -1421,9 -1438,10 +1431,10 @@@ boolean at_stairs, falling, portal
          oinit(); /* reassign level dependent obj probabilities */
      }
      reglyph_darkroom();
+     u.uinwater = 0;
      /* do this prior to level-change pline messages */
      vision_reset();         /* clear old level's line-of-sight */
 -    vision_full_recalc = 0; /* don't let that reenable vision yet */
 +    g.vision_full_recalc = 0; /* don't let that reenable vision yet */
      flush_screen(-1);       /* ensure all map flushes are postponed */
  
      if (portal && !In_endgame(&u.uz)) {
diff --cc src/mkmaze.c
index f835d5ca137d04961f3c0ec82e06ebbf972ad6c4,7bea6485e8306d4d951a2d62a21a933b232a9909..afcff00278e1d553af71cfa1ce433abe13c49a79
@@@ -464,14 -470,8 +464,8 @@@ fixup_special(
      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();
@@@ -1560,15 -1565,15 +1555,15 @@@ int fd, mode
  
      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();
@@@ -1585,16 -1590,16 +1580,16 @@@ int fd
          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 *
@@@ -1728,24 -1732,24 +1722,24 @@@ int x, y, n
      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;