all fields in flags struct are unconditionally present
monst cham field now a short and uses mons[] index
rearrange some monster ordering to follow rule #2 listed at top of monst.c
-
+change region player_flags to more appropriate unsigned int instead of boolean
#define set_heros_fault(r) ((r)->player_flags &= ~REG_NOT_HEROS)
#define clear_heros_fault(r) ((r)->player_flags |= REG_NOT_HEROS)
+/*
+ * Note: if you change the size/type of any of the fields below,
+ * or add any/remove any fields, you must update the
+ * bwrite() calls in save_regions(), and the
+ * mread() calls in rest_regions() in src/region.c
+ * to reflect the changes.
+ */
+
typedef struct {
NhRect bounding_box; /* Bounding box of the region */
NhRect *rects; /* Rectangles composing the region */
bwrite(fd, (genericptr_t) ®ions[i]->can_leave_f, sizeof (short));
bwrite(fd, (genericptr_t) ®ions[i]->leave_f, sizeof (short));
bwrite(fd, (genericptr_t) ®ions[i]->inside_f, sizeof (short));
- bwrite(fd, (genericptr_t) ®ions[i]->player_flags, sizeof (boolean));
+ bwrite(fd, (genericptr_t) ®ions[i]->player_flags, sizeof (unsigned int));
bwrite(fd, (genericptr_t) ®ions[i]->n_monst, sizeof (short));
for (j = 0; j < regions[i]->n_monst; j++)
bwrite(fd, (genericptr_t) ®ions[i]->monsters[j],
mread(fd, (genericptr_t) ®ions[i]->can_leave_f, sizeof (short));
mread(fd, (genericptr_t) ®ions[i]->leave_f, sizeof (short));
mread(fd, (genericptr_t) ®ions[i]->inside_f, sizeof (short));
- mread(fd, (genericptr_t) ®ions[i]->player_flags, sizeof (boolean));
+ mread(fd, (genericptr_t) ®ions[i]->player_flags, sizeof (unsigned int));
if (ghostly) { /* settings pertained to old player */
clear_hero_inside(regions[i]);
clear_heros_fault(regions[i]);