+/*
+ * Width of the body of a map using @persec characters per sector.
+ *
+ * One row shows WORLD_X/2 sectors, separated by one space. Requires
+ * WORLD_X/2 * (@persec+1) - 1 characters.
+ *
+ * Every other row is indented so that the center of the first sector
+ * is aligned with the space separating the first two sectors in the
+ * adjacent rows. For odd @persec, that's (@persec+1)/2 additional
+ * characters. For even @persec, it's either @persec/2 or @persec/2 + 1,
+ * depending on whether we align the character left or right of the
+ * center with the space (the map will look rather odd either way).
+ *
+ * We need one more character for the terminating zero.
+ */
+#define MAPWIDTH(persec) (WORLD_X/2 * ((persec) + 1) + ((persec) + 2) / 2)