Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

The elephant in the room...

edited February 2014 in Chit-Chat
I've been using twine since last spring.  Since then, it's come a long way, especially with the recent updates to 1.4 and 1.4.1.  So I thought I'd point out/suggest something that it seems to me may have been overlooked, development-wise.  Then again, there may be a valid reason my suggestion won't be possible.  I am but a mere mortal; it will be up to the coding gods to determine its feasibility.  And its also possible that I am alone in thinking the following:

It's <<display>>.  <<display 'whatever'>> is super useful.  You can use it to reuse passages, snippets of passages, complex code, etc.  That's all great.  But here's my question: how many times have you used it as a crude fix for conflicting macros tags?  For example, an <<if>><<endif>> statement nested inside another <<if>><<endif>>.  Currently, it's not possible, not without sticking the nested statement in another passage and then using <<display>>.  There are loads more examples of other macros that have similar conflicts.

It's not a huge thing.  Easy enough to use <<display>> as a workaround.  But it is a workaround.  And if that's how it has to be, that'd be fine.  It's minor.

But imagine a world, where you didn't have to.  Where some kind of system was put in place that would let Twine identify which tags went together.  Using the previous example, something like:
<<if stuff>> blah blah (<<if other stuff>> blah <<endif>>) blah blah <<endif>>
 
Wouldn't that be amazing?  I may be alone in this, but I think it would.

Again, I don't know how reasonable it would be to do this.  I'm guessing there's a good chance it isn't, since it wasn't done that way in the beginning.  And again, it's a minor thing.  Slapping <<display>>s in is second nature to me now, but I think having something like that would add another level of polish to Twine's syntax.

Edit: Consider this elephant shot and mounted ;)

Comments

  • Liyamu wrote:

    But imagine a world, where you didn't have to.  Where some kind of system was put in place that would let Twine identify which tags went together.  Using the previous example, something like:
    <<if stuff>> blah blah (<<if other stuff>> blah <<endif>>) blah blah <<endif>>
     
    I don't really know what you're talking about. When I run this:

    <<set $red to 1>>
    <<set $blue to 1>>
    <<if $red is 1>> blah blah (<<if $blue is 1>> blah <<endif>>) blah blah <<endif>>
    It prints "blah blah ( blah ) blah blah".

    When I run this:

    <<set $red to 1>>
    <<set $blue to 0>>
    <<if $red is 1>> blah blah (<<if $blue is 1>> blah <<endif>>) blah blah <<endif>>
    It prints "blah blah () blah blah". Doesn't that make sense?

    When I run this:

    <<set $red to 0>>
    <<set $blue to 1>>
    <<if $red is 1>> blah blah (<<if $blue is 1>> blah <<endif>>) blah blah <<endif>>
    It prints nothing. Isn't that what you want to happen?
  • Liyamu wrote:
    <<if stuff>> blah blah (<<if other stuff>> blah <<endif>>) blah blah <<endif>>
     
    Wouldn't that be amazing?  I may be alone in this, but I think it would.


    I've never had trouble with nested if conditional branches once I learned how to use them correctly. Every combination of nested if I could think to test worked.

    Edit: ninja'ed at midnight by L.
  • L wrote:

    When I run this:

    <<set $red to 1>>
    <<set $blue to 1>>
    <<if $red is 1>> blah blah (<<if $blue is 1>> blah <<endif>>) blah blah <<endif>>
    It prints "blah blah ( blah ) blah blah".

    When I run this:

    <<set $red to 1>>
    <<set $blue to 0>>
    <<if $red is 1>> blah blah (<<if $blue is 1>> blah <<endif>>) blah blah <<endif>>
    It prints "blah blah () blah blah". Doesn't that make sense?

    When I run this:

    <<set $red to 0>>
    <<set $blue to 1>>
    <<if $red is 1>> blah blah (<<if $blue is 1>> blah <<endif>>) blah blah <<endif>>
    It prints nothing. Isn't that what you want to happen?

    :o  :o  :o

    Yes!  Holy crap!  I didn't know you could already do this!  I didn't know you could put parenthesis around << >>, I just wrote that as an example of something I wished we could do.  Don't I feel stupid...  :-[
  • Just to be clear, the parens don't actually do anything - if you leave them off, the effect is the same.
Sign In or Register to comment.