Skip to content

Locations (DARKLAND.LOC)

All named locations on the Darklands wilderness map: cities, villages, castles, monasteries, dungeons, caves, shrines, etc. This data is copied into each save file at game creation and updated there during play.

Extension
DARKLAND.LOC
Location
Game root
Byte order
Little-endian (16-bit)
Size
24,334 B — 2-byte count (0x019E = 414) + 414 × 58-byte location records
Compression
None
Magic
None — num_locations word = 0x019E at 0x00
Status
Partial
Source
Wendigo — darkland.loc.xml; partially correlated against save file copies
Partial. Several fields in the 58-byte location record are unknown: +0x02 (non-zero for non-cities), +0x08 (1–10 range, possibly site strength), +0x0A (1–5; pagan altars = 0x63), +0x0E (usually 0x62; Raubritter castles use 0x92), +0x14 (ruins/destroyed markers), +0x1C (Nürnberg exception). Runtime fields (local_rep, inn_cache_idx) are zero in the static file and live in save copies.

Canonical source: darkland.loc.xml (Wendigo’s Darklands repo)

File Layout

Offset 0x00:  word          num_locations = 0x19e (414)
Offset 0x02:  location[414] locations

location struct (58 bytes)

OffsetSizeFieldDescription
+0x002iconMap image type (see enum below)
+0x022(unknown)Zero for cities; other locations usually range from 0x08 to 0x0E
+0x044coordsMap coordinates (x word + y word)
+0x082(unknown)Ranges from 1–10; may relate to site state/strength
+0x0a2(unknown)Usually 1–5; pagan altars use 0x63
+0x0c2menuCard/menu displayed on entering the location
+0x0e2(unknown)Usually 0x62; castles occupied by Raubritters use 0x92
+0x101(constant)Always 0xFF
+0x111city_sizeCity size: 3=small to 8=Köln; non-cities always 1
+0x122local_repLocal reputation (0 in this file; non-zero in save copies)
+0x141(unknown)Zero for active sites; ruins/destroyed sites use other values such as 0x04, 0x20, or 0x24
+0x153(constant)Always 19 19 19
+0x182inn_cache_idxInn item cache index (0xffff in this file; set in save)
+0x1a2(constant)Usually 0x0000
+0x1c2(unknown)Zero for almost all sites; Nürnberg uses 0x00C0
+0x1e8(constant)Zero-filled block
+0x2620nameLocation name string

location_icon enum

ValueLocation type
0x00City
0x01Castle (lord or evil lord)
0x02Castle (Raubritter)
0x03Monastery
0x04Possibly tomb or pagan altar
0x05Cave (subtype unresolved)
0x06Mines
0x08Village
0x09Ruins of a village
0x0aVillage (square variant; apparently unused)
0x0dTomb
0x0fDragon’s lair (invisible)
0x10Spring
0x11Lake
0x12Shrine
0x13Cave (subtype unresolved)
0x14Pagan altar
0x15Witch sabbat
0x16Templar castle (black-topped variant)
0x17Hochkönig / Baphomet castle
0x18Alpine cave
0x19Lady of the lake (magician/astrologer)
0x1aRuins of a Raubritter’s castle

Any unlisted icon values display as the standard castle-style image.

Validation Notes

  • Raw DARKLAND.LOC bytes confirm the shifted tail-half layout used by the current KB parser
  • 0x15..0x17 is the constant byte sequence 19 19 19
  • 0x18..0x19 is inn_cache_idx
  • 0x1a..0x1b is a constant zero word
  • 0x1c..0x1d is an unknown word
  • 0x1e..0x25 is an 8-byte zero block
  • 0x26..0x39 is the name string

Confidence

Medium-high. Confirmed by darkland.loc.xml; partially correlated against save file copies.