Overview
Artifact ID: | a22ce7e658b1939d96600874276081cdaa773018 |
---|---|
Page Name: | Features |
Date: | 2018-03-18 20:18:52 |
Original User: | zzo38 |
Next | e2e2972a5136aaa54f0329debc3aa685e758c053 |
Content
Improved Features
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.
Bug Fixes
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).
Footnotes
1 "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 classes/messages/objects, level reordering, animations, etc.