XYPLAN.HST - Planet coordinates

500 records of 6 bytes each:
 +0     WORD    X coordinate (1000..3000, 1000=left)
 +2     WORD    Y coordinate (1000..3000, 1000=bottom)
 +4     WORD    Owner. In the .DAT file which is also used by the Planets
                program, this field is 0. MASTER makes a copy with the
                name XYPLAN.HST.

PLANETS.EXE checks if XYPLAN.DAT has changed by adding up all X coordinates. The result must be exactly 998681. Otherwise, it refuses to run with the message "ERROR: Data file XYPLAN.DAT has been tampered with. Program terminated to avoid a security breach." There is a patch available, since "custom universes" are quite popular.

According to Roger Burton West there is also an Y checksum with the value 1002633, but I could not confirm this. My copies of PLANETS.EXE and Winplan had no problems with this.

If you roll your own map, you have two alternatives for making the checksums right:
- as long as your map checksum differs by more than 500 from the required value, move it to the left or right until it is in range. To correct the rest, move some single planets;
- use less than 500 planets, and use some hidden ones to compensate the checksum (see below). Or, ignore all this and require your players to use 3rd-party front-ends.

XYPLAN.HST is used (and updated) by the Wisseman host only. PHost only uses XYPLAN.DAT, and never modifies it. In contrast, the Wisseman host only uses XYPLAN.HST: the copy of XYPLAN.DAT created by MASTER.

Maps with less than 500 planets

In Explore Map games, planets which were not yet scanned usually have "impossible" coordinates (e.g., zero, or 9000 and greater). Considering all planets with either or both coordinates outside the range 1..8999 as non-existent seems to work well. This is also used on "static" maps with less than 500 planets.

An add-on providing Explore Map features or things like moving planets can use these hidden planets to adjust the coordinate checksums: if the Y coordinate is zero, the X coordinate can be anything that fits your needs (...and the checksum).

If a wraparound map (Sphere/PWrap) is used, PHost considers all planets outside the wrap rectangle non-existent. On a non-wrapped map, these planets are not strictly non-existing. Players with sufficiently much time can still reach them and colonize them. Hence it makes sense to put them *far* away (Y=9000), and distributed well (i.e. not all at in the same sector).