1. 05 Oct, 2021 1 commit
    • Leon Arnott's avatar
      Fixed a long-standing bug where a string containing \ followed by a newline... · beb7e64b1c47
      Leon Arnott authored
      Fixed a long-standing bug where a string containing \ followed by a newline would result in the newline transforming into the letter "n".
      
      Also:
      
       * Added "newline" as an alias for the "linebreak" datatype. (Some parts of the documentation erroneously use the former instead of the latter.)
       * Fixed another documentation line.
      beb7e64b1c47
  2. 30 Sep, 2021 1 commit
    • Leon Arnott's avatar
      Fixed several bugs, and disabled the "overwrite" input mode in the editor. · c349f8307c2f
      Leon Arnott authored
      I've decided it's too confusing and easy to activate accidentally.
      Anyway:
      
       * Fixed a bug where Harlowe attempting to generate certain error messages would instead cause an unrelated Javascript error to occur.
       * (mock-visits:) effects are now saved using (save-game:). This fixes a bug that resulted when using (load-game:) to load a saved game that had previously used (mock-visits:) in Debug Mode.
       * Fixed a bug where a Javascript error would be produced when 0 was used in a substring or subarray data name, such as $a's (range:0,2). Now, a proper error message will be given.
       * Certain kinds of intense substring or subarray data names, such as $a's (rave had their ruange:1,65535), hntime performance improved.
      c349f8307c2f
  3. 29 Sep, 2021 1 commit
    • Leon Arnott's avatar
      Fixed two bugs. · 0b00f51ccdf4
      Leon Arnott authored
       * Fixed a long-standing bug where passage elements added by header or footer tagged passages would have a HTML title attribute indicated the included passage's name.
       * Fixed a bug where (box:) and (float-box:)'s default interior padding was wrong in Chrome (but not Firefox).
      0b00f51ccdf4
  4. 19 Sep, 2021 1 commit
  5. 01 Sep, 2021 1 commit
  6. 12 May, 2021 1 commit
    • Leon Arnott's avatar
      Some more bug fixes. · b7b9bd663733
      Leon Arnott authored
       * Fixed a bug where (click:?page) would suppress a gradient background applied to ?Page via (enchant:) or (change:).
       * Fixed an incorrectly-worded error message resulting from a data name containing an error (such as $a's (a: 1 to 2), which is invalid syntax).
       * Debug Mode: fixed a bug where values in the Variables pane would sometimes be truncated incorrectly, causing partial HTML entities like "&am…" to appear.
       * Made the syntax colour of the lambda keywords (where, when, via, each and making) slightly brighter.
      b7b9bd663733
  7. 07 May, 2021 2 commits
  8. 06 May, 2021 1 commit
    • Leon Arnott's avatar
      Fixed yet more bugs. · 3facc58b0f7f
      Leon Arnott authored
       * Fixed a bug where giving a blank string as the Cancel button's label to (prompt:) or (confirm:) wouldn't cause the Cancel button to disappear.
       * Fixed a bug where (link-rerun:) behaved like (link-repeat:) when it was enchanted by (enchant:).
       * Fixed a bug where error messages would sometimes refer to temp variables named "all" as "all values of the temporary variables". The same applies to "any", "start", and "end".
       * Fixed a bug where hidden hooks and (hidden:) would suppress the effects of (hook:).
       * Fixed a bug where ...array-type (spread array-type) parameters to custom macros would unwittingly "flatten" the passed-in arrays, joining them all together.
      
      Closes #222.
      3facc58b0f7f
  9. 05 May, 2021 1 commit
    • Leon Arnott's avatar
      Temp variables in custom macro calls are no longer listed in the Variables... · 765408ae6660
      Leon Arnott authored
      Temp variables in custom macro calls are no longer listed in the Variables panel in Debug Mode, due to the resulting clutter when many custom macros are used in a passage.
      
      Also:
       * Fixed a bug where (p-not:) would not work correctly when given built-in datatypes like alnum or digit.
       * Fixed a bug where the startup error dialog box (that reports certain kinds of Javascript errors) wouldn't appear.
       * Fixed a bug where (line-style:), (enchant-in:), (link-style:) and (char-style:) did not work when used in an (enchant:) or (change:). (However, they currently still don't work when created by a via lambda given to those command macros).
       * Now, dataset data should be displayed correctly in the Variables panel in Debug Mode.
       * Fixed various documentation lines, and added an "Example Stories" section to the Introduction.
      765408ae6660
  10. 09 Apr, 2021 1 commit
    • Leon Arnott's avatar
      Fixed two more bugs. · 2044cf5b7eb3
      Leon Arnott authored
       * Fixed a bug where custom macros stored in story-wide variables wouldn't be preserved when reloading the page in the browser (restoring the game state using session storage) and would instead become erroneous data.
       * Fixed a bug where (input-box:) crashed upon the first inputted character if you didn't supply the optional bound variable.
      
      Closes #219. Closes #220.
      2044cf5b7eb3
  11. 07 Apr, 2021 1 commit
    • Leon Arnott's avatar
      Fixed two more bugs. · 5d1c80c5f9c9
      Leon Arnott authored
       * Fixed a long-standing bug where combined changers weren't being properly copied, and adding more changers to them would mutate variables that were storing that changer.
       * Fixed a bug where, upon supplying a label string to (meter:), any updates to the meter would cause that label to gain any styles, such as (border:) borders, that had been given to the meter itself.
      5d1c80c5f9c9
  12. 03 Apr, 2021 1 commit
    • Leon Arnott's avatar
      Fixed two more bugs. · 0502b84201d2
      Leon Arnott authored
      * Fixed a bug where custom macros couldn't call other custom macros if the other macro's (output:) or (output-hook:) was inside a nested hook, such as an (if:) hook.
      * Fixed a bug where (icon-restart:) didn't restart the story when clicked.
      0502b84201d2
  13. 29 Mar, 2021 1 commit
    • Leon Arnott's avatar
      Fixed two bugs. · 04586875cfa9
      Leon Arnott authored
       * Fixed a long-standing bug where line breaks couldn't be used as whitespace around operators.
       * Fixed a bug where bind and 2bind wouldn't work properly when the bound variable was a data structure name (such as "bind $list's 1st").
      04586875cfa9
  14. 26 Mar, 2021 1 commit
  15. 20 Mar, 2021 1 commit
  16. 12 Jan, 2021 1 commit
    • Leon Arnott's avatar
      Fixed a bug where the effects of (enchant:) were temporarily suppressed... · fba54515c656
      Leon Arnott authored
      Fixed a bug where the effects of (enchant:) were temporarily suppressed whenever a (dialog:), (prompt:) or `(confirm:)` was run at roughly the same time.
      
      This isn't the fix I wanted to make (instead I'd rather it only call updateEnchantments() when it explicitly needs to), but it'll have to do for now.
      
      Also fixed a bug where the Styles panel of The Harlowe Toolbar didn't preview animations correctly.
      
      Closes #203.
      fba54515c656
  17. 06 Jan, 2021 1 commit
  18. 04 Jan, 2021 1 commit
    • Leon Arnott's avatar
      Fixed several post-release bugs. · 94a33b89e02b
      Leon Arnott authored
       * Fixed a bug where, when a transition finished, if the browser experienced lag due to a large number of other elements being present, the transitioning element's visibility could become hidden briefly before Harlowe removed the transition CSS from it.
       * Fixed a bug where (set:), (put:), (move:) and (unpack:) would produce objects with invalid TwineScript_Print() methods outside of Debug Mode, thus polluting the browser console with errors.
       * Fixed a bug where Debug Mode's Enchantments panels' headers were being drawn incorrectly.
       * Greatly improved the performance of Debug Mode's panels, reducing lag caused by a large number of entries being added to a panel at once.
      
      Closes #201.
      94a33b89e02b
  19. 15 Dec, 2020 1 commit
  20. 13 Dec, 2020 1 commit
  21. 12 Dec, 2020 1 commit
    • Leon Arnott's avatar
      Renamed (reload:) and (icon-reload:) to (restart:) and (icon-restart:),... · 7b92f6378bb8
      Leon Arnott authored
      Renamed (reload:) and (icon-reload:) to (restart:) and (icon-restart:), keeping (reload:) as an alias.
      
      Also:
       * Fixed some minor things in The Harlowe Toolbar, as well as added a minimise button to the whole thing.
       * Columns and aligners no longer have title text in Debug Mode, due to it being kind of confusing.
       * Trying out the notion that <tw-transition-container>s should never get "inline-block" at all, instead just "inline" or "block". I checked the original commit for this (a38a93a77b97), and I don't believe it was ultimately correct.
       * Fixed another Chrome opacity bug with transitions.
       * Fixed a CSS bug with <tw-dialog-links>, caused by Chrome not supporting justify-content:end.
       * Added a TwineScript_is() method to basic commands, allowing them to be considered equal by `is` in most situations where that matters.
      7b92f6378bb8
  22. 11 Dec, 2020 1 commit
  23. 09 Dec, 2020 1 commit
    • Leon Arnott's avatar
      Added (after:), a shorthand form of (event:) similar to that in Chapbook. · 34c6fe2af64e
      Leon Arnott authored
      Notable about this macro design, unlike its (event:) form, is that it contains an optional "skip" parameter similar to that for (t8n-skip:).
      
      Also:
       * Fixed a bug in the previous commit (which should've included <tw-story> as its exception).
       * Fiddled with various parts of the documentation.
       * Tweaked (palette:) to produce less dark link text whenever the produced normal text colour is rather dark.
      34c6fe2af64e
  24. 05 Dec, 2020 1 commit
    • Leon Arnott's avatar
      IAdded (hooks-named:), as well as the debugging macros (assert:) and (assert-exists:). · e40ece040a6a
      Leon Arnott authored
      (assert-exists:) is designed as something of a compromise over adding a non-nullable hook selector, pleading that such a selector proved too complicated to add in terms of concatenation with nullable selectors, making various non-error-propagating methods suddenly able to propagate errors, etc. When I added this, (assert:) naturally had to follow.
      
      I MAY change (hooks-named:) to just (hooks:), or perhaps add some aliases for it.
      
      Closes #32. Closes #196.
      
      Also:
       * Fixed a bug where (meter:) wouldn't work properly with fractional variables.
       * Added some more block elements to usuallyBlockElements in Utils.
      e40ece040a6a
  25. 03 Dec, 2020 1 commit
    • Leon Arnott's avatar
      Added (animate:), a command to re-apply a transition to an already existing hook. · e35e035aca69
      Leon Arnott authored
      This was added simply because I noticed people could use (t8n:) and (rerun:) to accomplish this, and I wanted this little hack to have a proper idiom. As it is, it isn't too useful due to
      the current suite of transitions involve the hook slowly appearing (with "rumble" and "shudder" notable exceptions), but maybe a few more could be added.
      
      As it is, I added one more transition: "blur", which uses the new CSS filters to make a hook appear from a blur.
      
      Also fixed Utils.childrenProbablyInline() a bit more.
      e35e035aca69
  26. 01 Dec, 2020 1 commit
    • Leon Arnott's avatar
      Fixed, in a somewhat forceful fashion, bugs where (button:) links (plus a lot... · e918daa6aa26
      Leon Arnott authored
      Fixed, in a somewhat forceful fashion, bugs where (button:) links (plus a lot of other block elements) would be forced into inline flow during some transitions, due to <tw-transition-container> being given 'display:inline-block'.
      
      This COULD cause some issues with some other transitioning elements (not to mention custom story structures), but it seems to be working as intended at present.
      
      Also:
      
       * Fixed the border of (input-box:) elements, such that (border:) can alter it correctly.
       * Made it so that various 3.2.0 commands that should not have changers attached will now correctly error when that happens.
       * Fixed the sizing of "button" links in (dialog:) dialogs.
      e918daa6aa26
  27. 30 Nov, 2020 1 commit
  28. 29 Nov, 2020 1 commit
    • Leon Arnott's avatar
      Added (stripes:), a variant of (gradient:) which creates a striped background... · e848ddef76a5
      Leon Arnott authored
      Added (stripes:), a variant of (gradient:) which creates a striped background (for use with (background:)) when given a given stripe width, angle, and colours.
      
      As of now, the adjusted "stops" data value on (stripes:)'s gradients may seem ugly, but it leaves the possibility open for someday adding (repeating-gradient:), which would use the same {pixels,colour} names.
      
      Also fixed a long-standing bug where, due to a precedence conflict, writing something like `$a's stops's (1)` would cause a Javascript error.
      e848ddef76a5
  29. 25 Nov, 2020 1 commit
    • Leon Arnott's avatar
      Added (button:), a styling changer for links, as well as added an optional... · d2716f3f6368
      Leon Arnott authored
      Added (button:), a styling changer for links, as well as added an optional "unavailable" text string argument to (link-storylet:).
      
      Having a drop-in styling option for links that makes them more closely resemble other contemporary IF engines' links has been something I've gradually accepted as desirable. That being said, getting this working with every kind of "link" in this engine has forced me to use a CSS class name (a namespace I'm loathe to use unnecessarily).
      
      I feel a bit more positive about (link-storylet:) now that the optional argument and the aformentioned changer are available.
      
      Also fixed a bug where (align:) would override (box:)'s width with its max-width.
      d2716f3f6368
  30. 22 Nov, 2020 1 commit
    • Leon Arnott's avatar
      Added a (meter:) command macro, used for creating a videogame bar-graph meter... · 7dffab3fe719
      Leon Arnott authored
      Added a (meter:) command macro, used for creating a videogame bar-graph meter that's bound to a numeric variable.
      
      I'm rather satisfied with this implementation of meters. The only concern right now is that it's the only "interface" macro in the documentation.
      
      Also fixed a bug with (enchant:) where errors produced by the given lambda wouldn't be reported.
      7dffab3fe719
  31. 15 Nov, 2020 1 commit
  32. 14 Nov, 2020 1 commit
    • Leon Arnott's avatar
      Added (link-storylet:). Also, link changers now accept an optional changer as... · 86ae1865d162
      Leon Arnott authored
      Added (link-storylet:). Also, link changers now accept an optional changer as their second argument, which is used to style the link and not the hook.
      
      After normalising the behaviour of the (link:) family of changers and other changers combined with them, I'd been stressing out about how to make (link:) links alterable with changers. This solution, the most direct one available, is a little uncomfortable to me because of how much further it differs from the command links' behaviour (as in, (link-goto:)). However, since those already have significant syntactic differences due to being commands rather than changers, I wonder if this divergence of usage might also assist in understanding how unalike they are.
      
      I don't feel very optimistic about (link-storylet:)'s behaviour when no storylet matches the given condition - just printing nothing - and might rework its arguments to make it easier to control what exactly it prints in any situation.
      86ae1865d162
  33. 08 Nov, 2020 1 commit
    • Leon Arnott's avatar
      Added column headers to the Debug Mode table panels, and added "Urgency" and... · 1f92a3d6dd16
      Leon Arnott authored
      Added column headers to the Debug Mode table panels, and added "Urgency" and "Exclusivity" columns to the Storylet panel.
      
      Also:
       * Altered the pseudo-element CSS for (click:), (mouseover:) and (mouseout:) to work correctly with the (box:) macro.
       * Markup that's inside the verbatim markup will no longer be syntax-highlighted as if it was outside it.
       * Fixed a few documentation mistakes.
      1f92a3d6dd16
  34. 04 Nov, 2020 1 commit
    • Leon Arnott's avatar
      Added (urgency:) and (exclusivity:) metadata macros, which affect the... · d5c3f19208db
      Leon Arnott authored
      Added (urgency:) and (exclusivity:) metadata macros, which affect the (open-storylets:) array's contents when they are used in an open storylet.
      
      I plan to add a command macro or two to provide slightly easier consumption of the storylet array than just (open-storylets:), and an increase in accessibility will mean convenience macros like these will be helpful.
      d5c3f19208db
  35. 02 Nov, 2020 1 commit
    • Leon Arnott's avatar
      Added to the Var panel of The Harlowe toolbar some input interfaces for (random:) and (either:). · 69ad962f38bb
      Leon Arnott authored
      I wanted to include a few very simple expressions alongside the typical data types, and these leveraged existing code nicely.
      
      Also:
       * Added a (checkbox:) input interface to the Input panel of The Harlowe Toolbar, which requires that a variable be bound to it.
       * Fixed some bugs elsewhere in the Toolbar.
       * Changed the styling for (text-style:"emboss") slightly, to more properly differentiate it from "shadow".
      69ad962f38bb
  36. 30 Oct, 2020 1 commit
    • Leon Arnott's avatar
      Added two interface macros, (icon-counter:) and (checkbox:), as well as a changer, (opacity:). · 0defb9d609c6
      Leon Arnott authored
      (icon-counter:) is designed as a built-in solution to putting UI displays in the sidebar, which authors have tended to do over the years. Being a mere display element instead of a clickable icon, it doesn't have the same default opacity as the other icons. (opacity:) had to be added in order to make the default opacity of sidebar icons alterable, if one wanted to bring them all into line with each other.
      
      (checkbox:) has been a long-time obvious addition to bring in from SugarCube. It also makes me want to add (checkbox-fullscreen:), as a counterpart to the link form of fullscreen activation.
      
      Also fixed a 2bind-related bug with (input-box:).
      0defb9d609c6
  37. 27 Oct, 2020 1 commit
    • Leon Arnott's avatar
      Added (str-nth:). Also, the icons produced by the icon command macros can now... · b2aa5e6ccc3b
      Leon Arnott authored
      Added (str-nth:). Also, the icons produced by the icon command macros can now have optional text labels added.
      
      These optional text labels are a string argument alongside the optional Unicode glyph string. They are differentiated solely by length, which results in a somewhat unusual type signature for these macros, but one which isn't too bothersome.
      
      The naming of (str-nth:) compared to (nth:) is also something that's a little unfortunate, but I don't think (str-nth:) is quite as useful on the whole as (nth:) is, so I assume it'll be fine given there's not as much chance of confusing the latter for the former.
      b2aa5e6ccc3b
  38. 26 Oct, 2020 1 commit
    • Leon Arnott's avatar
      Added two value macros, (plural:) and (trunc:). · 45cc28361d53
      Leon Arnott authored
      Adding some extra string and number utilities has been on my mind for awhile, but I've been less inclined to them until now due to the dry nature of implementing them. More will come soon, I believe.
      45cc28361d53
  39. 24 Oct, 2020 1 commit