Free Hero Mesh

Changes To Level file format
Login
This is a mirror of the main repository for Free Hero Mesh. New tickets and changes will not be accepted at this mirror.

Changes to "Level file format" between 2018-08-18 06:14:28 and 2018-08-19 20:40:18

13
14
15
16
17
18
19
20

21
22
23
24
25
26
27
13
14
15
16
17
18
19

20
21
22
23
24
25
26
27







-
+







The lump name starts with the zero-based ID number (instead of an asterisk), which must be from 0 to 65535.

The header of this lump consists of:
  *  Level version (16-bits): Used to invalidate solutions when the level is altered.
  *  Level code (16-bits): The <tt>Level</tt> command in class codes read this parameter.
  *  Playfield width (8-bits): This is a number from 0 to 63, which is one less than the playfield width for this level.
  *  Playfield height (8-bits): This is a number from 0 to 63, which is one less than the playfield height for this level.
  *  Title (var): A null-terminated level title text, which may include formatting controls.
  *  Title (var): A null-terminated level title text, which may include [formatting controls].

After that comes the objects. They should be in order starting at (1,1) and going right, going to the next line after that; within each cell, they go bottom (most density) to top (least density). Each object record consists of:
  *  Flag byte: Described below.
  *  X coordinate (1 byte): Only present if bit5 of flag byte is set. Coordinates are 1-based.
  *  Y coordinate (1 byte): Only present if bit4 of flag byte is set. Coordinates are 1-based.
  *  Class number (2 bytes): The high bit is not part of the class number; if the high bit is set, use the default image number instead of the one in the next byte. The class and image number are not present if bit7 of the flag byte is set.
  *  Image number (1 byte): See above.