Overview
Comment: | Move the differences of MESH:Hero into a separate document. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
1693d8528c417cb113b6376d23a24ec4 |
User & Date: | user on 2023-08-25 21:54:36 |
Other Links: | manifest | tags |
Context
2023-08-27
| ||
04:31 | Move meshhero.doc to another directory and add more details. check-in: 726126e196 user: user tags: trunk | |
2023-08-25
| ||
21:54 | Move the differences of MESH:Hero into a separate document. check-in: 1693d8528c user: user tags: trunk | |
21:53 | Correct a mistake in edit.c so that it does not mistakenly use RLE if the object's Dir variable is different than the previous object. check-in: 417251f440 user: user tags: trunk | |
Changes
Added meshhero.doc version [e15e5692b3].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | This document is for users of MESH:Hero and explains many of the significant differences of Free Hero Mesh than MESH:Hero. Free Hero Mesh was designed to be compatible with most puzzle sets for MESH:Hero, although many improvements have also been made. === Class editing === The class editing is now done in a text file, so any formatting you do will be preserved and will not be lost, and you can use any functions of your text editor. However, the syntax is different. Some of the significant differences of class codes in Free Hero Mesh compared to MESH:Hero include the following: * Sigils are now used to indicate the kind of name (e.g. $ for classes, and # for user-defined messages, etc). You need not worry about any names you have defined interfering with new features added to future versions, nor do you need to worry about class names interfering with variable names. * It is now case-sensitive. Furthermore, variable names are not limited to seven letters, and some characters are now allowed in names which were not previously allowed. * The syntax is very different. It is now RPN-based; for example, instead of "o.Height = p.Height+1", you will write "%o %p ,Height 1 + =,Height". Also, many instructions no longer need explicitly mentioning "Self"; for example, you can write "%dir Move" instead of "Move(Self, dir)" (you would write "%obj %dir ,Move" if you wanted "Move(obj, dir)"; note the comma to indicate working on an object other than Self). * Some names of existing instructions have been changed (there are also many new instructions). For example, "MsgArg1" is now called "Arg1", "CurImage" is now called "Image", "DirN" is now "N", "MSG_INIT" is now "INIT", etc. * There is now signed arithmetic as well as unsigned arithmetic. (Most instructions are unsigned by default, but many instructions can have a comma in front to make them signed instead.) * A few instructions have been removed, but are not very important anyways. * Local variables and user-defined messages need not be declared; there is no VARS block. * Values now have types. Attempting to use a value of the wrong type will result in a "Type mismatch" error. This is harmless; it will result only in the loss of game, and will not segfault. You can restart or rewind the level or play a different level. * It detects errors with accessing objects that no longer exist. This will display an error message like above, and will not segfault; you can restart or rewind like any other error. * Several other errors are detected and/or prevented too, e.g. you can no longer inadvertently affect the game state with IgnoreKey. * You can now access the attributes of classes without needing to create an object of that class. For example, if Misc1 refers to a class, then you can write "Misc1 ,Temperature" to read the Temperature attribute of that class. * You can name the bits of Misc4-Misc7, if you wish, rather than having to always refer to them by number. (Using the numbers works too.) * There are some differrences in behaviour, including increasing some fields to 32-bits; if you define a class with the "Compatible" flag then this will revert some of the behaviours to be closer to MESH:Hero. * There are now three message arguments instead of two (although most commands will still only use two; use the "Ex" variants if you want three). * The SUBS block is no longer necessary (and is deprecated). You can start a block directly with a label if desired. Furthermore, such subroutines can now have inputs and return values if wanted; they are simply values in the stack, like in Forth, PostScript, etc. * Arrays are now global and can be accessed from any class, and do not need to be defined for one class only. Furthermore, initializing them to zero is not necessary; they are automatically initialized to all zero (it is still possible to reinitialize them with zero or other values). === Pictures === (TODO) === Levels === (TODO) |
Modified tutorial.doc from [ca248fd4af] to [27db209f5d].
1 2 3 4 5 | This document is a tutorial of the use of Free Hero Mesh. (It is provided for the benefit of users who want it; some people have requested it. My own opinion is that the other documentation is better. If you have any concerns about this documentation or how to improve it, please do so.) | < < < | 1 2 3 4 5 6 7 8 9 10 11 12 | This document is a tutorial of the use of Free Hero Mesh. (It is provided for the benefit of users who want it; some people have requested it. My own opinion is that the other documentation is better. If you have any concerns about this documentation or how to improve it, please do so.) (NOTE: This tutorial is incomplete.) === Installation === 1. Compile it (if it is not already compiled). See README file for details about compilation. I will assume it called "heromesh" and is in the PATH. |
︙ | ︙ | |||
268 269 270 271 272 273 274 | A composite puzzle set is read-only. If you want to edit it then you must decompose it. This can be done by typing: cat example.fhm | har x example.xclass example.class example.level example.solution Now it can be used like a noncomposite puzzle set, again. | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 265 266 267 268 269 270 271 | A composite puzzle set is read-only. If you want to edit it then you must decompose it. This can be done by typing: cat example.fhm | har x example.xclass example.class example.level example.solution Now it can be used like a noncomposite puzzle set, again. |