FirmWeave 2.7 is now stable!


No changes to FirmWeave 2.7, but it's stable enough that I feel comfortable promoting it out of beta.

Just for funsies, here is a complete list of all the changes between 2.6 and 2.7:


  • 8/17/2022: FirmWeave 2.7n
    • Improvements:
    • * You can now define the character for the following elements:
    •    * pusher.char
    •    * spinninggun.char
    •    * object.char
    •    * line.char
    •    * transporter.char
    •    * counter.char
    •    * clockwise.char
    •    * star.char
    •    * duplicator.char
  • 8/12/2022: FirmWeave 2.7m
    • Improvements:
    • * Elements that previously became E_EMPTY on touch now become the element of their .param3 value (still defaulting to E_EMPTY). These are:
    •    * ammo.param3
    •    * torch.param3
    •    * gem.param3
    •    * key.param3
    •    * door.param3
    •    * energizer.param3
    •    * forest.param3
  • 8/9/2022: FirmWeave 2.7l
    • Bugs Fixed:
    • * #DUPLICATE was adding the object's X and Y position twice, confounding the result.
    • * #DIE would cause the wrong color to appear underneath the object
    • Improvements:
    • * #PUT I no longer causes an error; instead, it places the given element and color underneath the object in question. (This will not cause a stat to be created.)
  • 7/21/2022: FirmWeave 2.7k
    • Added:
    • * TICKSPEED builtin counter that returns the current tick speed, from 1 (fastest) to 5 (normal) to 9 (slowest).
    • * Faster tick speeds (speed 3 and faster) will cycle bottom text every 2 ticks instead of every tick, matching normal speed cycling.
    • * Loading the same file, or running the same function, multiple times in a row (or recursively) will not cause a file read each time; instead it will be stored in and load from conventional memory.
    • * FirmWeave now reads accessibility rules and starting world from WEAVEZZT.CFG in order to eliminate conflicts with ZZT.CFG.
    • * You can now pre-select game speed through WEAVEZZT.CFG by adding "SPEED #" after the "ACCESSIBLE" line in the CFG file.
  • 7/2/2022: FirmWeave 2.7i
    • Bugs Fixed:
    • * Raising the flag limit caused some flags to be set with incorrect names.
    • * Using #TAKE to reduce a counter by ARRAY would cause the counter to increase instead of decrease.
    • * Using #BOARD would cause PlayerX, PlayerY, ThisX, and ThisY to be incorrect for the remainder of the cycle.
  • 6/22/2022: FirmWeave 2.7g
    • Added:
    • * other.flaglength configuration option that lets you set a shorter maximum flag length, giving you a higher flag limit.
  • 6/20/2022: FirmWeave 2.7f
    • Fixed bugs:
    • * Identifying text by char via #if color was not working.
  • 6/12/2022: FirmWeave 2.7e
    • Modified:
    • * Numbers in labels no longer behave any differently than letters in labels. 
  • 6/8/2022: FirmWeave 2.7d
    • Improved:
    • * The /FIND direction is now substantially better at reaching its target, at the expense of being a little more chaotic.
    • New Features:
    • * You can now use SPACE to select or close text boxes.
  • 6/8/2022: FirmWeave 2.7c
    • Fixed Bugs:
    • * The /FIND direction would struggle with wide open areas.
  • 6/2/2022: FirmWeave 2.7b
    • Fixed bugs:
    • * Tiny hotfix for Weave. In rare circumstances, #set <counter> ARRAY would result in a large negative value. 
  • 5/29/2022: FirmWeave 2.7
    • New Commands:
    • * #AND, the exact opposite of #ELSE - runs when the last IF statement was TRUE.
    • * #RUN <function>, runs the code in <function>.OBJ nonstop until the object either moves (#IDLE and /i count as movement) dies, or reaches an #END <response> command. #RUN functions can be called from within other #RUN functions, as a substitute for counter or other value, or as a conditional. Some examples:
    • #RUN DEMO
    • This will run the contents of DEMO.OBJ.
    • #GIVE AMMO RUN DEMO
    • This will run the contents of DEMO.OBJ and give ammo equal to the response value, passed by #END <value>.
    • #IF RUN DEMO PUT N WATER
    • This will run the contents of DEMO.OBJ and #PUT N WATER if it reaches an #END TRUE command or an #END <value> with any positive value. It will do nothing if it reaches an #END FALSE, an #END <value> with a 0 or negative value, or if it reaches any other stopping point, such as a /i.
    • New Counters:
    • * BOARDID is a read-only counter that delivers the current board id.
    • * ARRAY is an object counter (like OBJ1, OBJ2 etc.) with a range of 0-127. It works in conjunction with the ^ character. If ^ is added to a #SEND label, the name of a counter, or the name of a file to be #LOAD-ed or #RUN, it will replace the ^ with whatever value is currently held in ARRAY.  Some examples:
    • #SET ARRAY 5
    • #SET LOCAL^ 15
    • This will set the LOCAL5 board counter to 15.
    • #SET ARRAY 17
    • #SEND OPTION^
    • This will send the object to the :OPTION17 label, if it has one.
    • #SET ARRAY 106
    • #LOAD I EVENT^
    • This will replace the object's code with the contents of EVENT106.OBJ.
    • Improvements:
    • * Keys and Doors now have a "param2" parameter, which will offset each key/door character by that number. It occurred to me that people may want accessibility or key variety without the heavy-handed approach taken in the .CFG file, so this replicates that functionality with a bit more control.
    • * PSET can now set the object counters (obj1, obj2) of a given object, as well as set the CYCLE of any stat.

Get Weave 3

Leave a comment

Log in with itch.io to leave a comment.