Contains names, location names, coordinates, and other data specific to cities.
Non-city locations are stored in darkland.loc.
Number of cities.
City definitions.
The order of these is the "definitive" order, since the full name is the best unique identifier.
TODO: is this non-empty ever? (ditto for other two unknowns)
Name of the political center or town square.
TODO: describe what empty values look like
Name of the city fortress or castle.
Name of the marketplace.
Often contains "Munzenplatz". Possibly this is "central square name".
Many places have "Zeughaus", which translates to "armoury";
others end in "-turm" (tower?) or "-tor" (gate?).
Quite possible this is for one of the unused "rebellion" codepath.
Name of the pawnshop.
All pawnshops are named the same; this is either 'Leifhaus' or is empty.
Name of the kloster (church law and administration building).
Size of the city.
Ranges from 3 (small) to 8 (Koln).
City location on the map.
Party coordinates when leaving a city.
When you leave a city, you don't exit at the same point as you entered.
The exit coordinates were (usually) selected so as not to place you in an untenable position (the ocean, trapped by a river loop, etc).
Dock destination cities.
This contains the indices
(in the array)
of the destinations available via the city docks the docks.
0xffff is used for "no destination".
Inland cities have all 0xffffs.
if coastal, side of the river ???[Hamburg] TODO.
Values are: 0xffff (inland), 0 (north of the river), 1 (south of the river)
0 and 1 cities are on or near tidal zones (swamps), and may be subject to flooding.
Pseudo-ordinal.
At first glance, this looks like an ordinal offset running
from 0 to 0x5b, but 0x18 is missing, and 0x3c repeats.
This value is probably not used.
Type of city
0, 1, 2, or 3.
Buildings and locations in the city.
Bits are on iff there is one of that type of building.
Is there a kloster?
Is there a slums?
Is there a cathedral?
Is there no city fortress?
A rare case of a reversed boolean. Possibly it's a "has something else" flag, and fortresses are added if it doesn't have the other?
Is there a town hall?
Is there a political center?
Are there docks?
Is there a liefhaus (pawnshop)?
Is there a university?
Quality of the blacksmith.
This, and the other nine qualities, all seem to work in the same way.
A zero value indicates that the city does not have that particular shop.
Non-zero values do not exactly equal the quality of the items available,
but merely indicate relative qualities!
For example, Nurnberg has a 0x31 (49) listed for the armory, but offers q37 (0x25) armor.
However, if one city has a higher value than another, then that city's items
will be of equal or greater quality.
The quality of the healer is not stored here, but is apparently random. (TODO: verify?)
TODO: comments about Quality of the alchemist, university, pharmacist being the seed thing.
Quality of the merchant.
Quality of the swordsmith.
Quality of the armorer.
Quality of the bowyer.
Quality of the tinker.
Quality of the clothing merchant.
Since the following byte is 0 or 1, this and that might actually be a single word value.
Either zero or one (only a couple of ones).
Type of city (free, ruled, capital)
This controls which message from $CITYE00.msg is given when you are approaching a city.