Files
ordoor/doc/formats/sets.md

1.7 KiB

Set format information

*.set files seem to act as a palette of objects for a .map file. The map file loads a set, and can then reference objects by a small number.

Since a maximally-filled map file seems to be able to reference 91,000 * 4 objects, this is a necessary optimization for 1998-era hardware.

Structure

These files are plain-text.

We handily have a template.set, which looks like:

set template

Defs

40 40 40 80


dirt
h_dirt
rocks
blank
blank
blank
blank
blank
blank
blank #
blank
blank
blank
blank
blank
blank
blank
blank
blank
# ...

The files are of varying lengths. template.set is 220 lines, map10.set only 83.

So it's a line-based format that goes:

  • Set description
  • Blank line (optional, missing in GEN_JUN.set, GEN_WAS.set, others)
  • Defs
  • Blank line
  • 4 space-separated numbers, variable between sets
  • At least one blank line, sometimes 2
  • A list of object names, sometimes with # comments on the right hand side
  • They all seem to end with a comment of some sort, e.g. # meaningless comment

Questions:

What are the Defs for? Is it Defaults or Definitions? The values are quite variable between files.

Is whitespace significant in the list of objects? First assumption is no.

Is it a simple 0-indexed palette or do maps embed an absolute line number?

Do positions in the palette have special meaning? e.g. is a particular range always reserved for walls?

Are there any special values that don't appear as files in the Obj/ directory? blank.obj exists, so I expect not.

Once the map format is fleshed out a little more, can investigate by creating a map with a single object from the set in it and seeing what line that works out to be.