<h2>Improved Features</h2>

Free Hero Mesh can have many improvements from EKS. Here is a list of the intention so far:

  *  Maximum grid size is up to 64 by 64. The level still stores the maximum size for that level which may be less than that; objects cannot be created or move outside of the maximum area defined by the level (29 by 21 for all converted levels).
  *  Many attributes are now signed 32-bit numbers. This means you can for example define objects with a negative Weight.
  *  All values now include a type. This avoids some of the problems with improper puzzles, and prevents segfaults, since pointers to objects are stored with the generation number.
  *  AltImage and GlobalBool and ExplainDeath are no longer available.

A compatibility mode is available to disable many things in order to make it more compatible in many ways.

<h2>Bug Fixes</h2>

There are also several bugs that Free Hero Mesh would correct.

Bugs that would be fixed:
  *  If you select a class without the dialog box and then activate the class selection dialog box again and image 0 is not available in the editor, it will mistakenly select image 0 anyways.
  *  Restarting a puzzle (by pushing escape) while an object is busy will improperly cause triggers to occur that aren't supposed to occur.
  *  Bombs exploding in Hero Defiant sometimes cause a GPF. I believe this is due to things that improperly depend animation timing, and this is corrected as mentioned in the section above.

A few are handled during conversion in order to retain compatibility:
  *  Move(Self,constant) increases Inertia by Strength instead of setting Inertia equal to Strength. For compatibility with puzzles that depend on this, it is handled in a special way during conversion (see mbtofhm.c for details).

<h2>Footnotes</h2>

<sup>1</sup> "Improper puzzles" means that the operation of the puzzle can be affected by things that it is not supposed to be affected by, such as: randomness, timing, internal numbers assigned to level reordering, animations, etc.