**(else-if: // [[harlowe:Boolean|boolean]]//) -> //[[harlowe:Changer|changer]]//** This macro's result changes depending on whether the previous hook in the passage was shown or hidden. If the previous hook was shown, then this [[harlowe:command|command]] hides the attached hook. Otherwise, it acts like [[harlowe:if|(if:)]], showing the attached hook if it's true, and hiding it if it's false. If there was no preceding hook before this, then an error message will be printed. === Example usage: === Your stomach makes { (if: $size is 'giant')[     an intimidating rumble! ](else-if: $size is 'big')[     a loud growl ](else:​)[     a faint gurgle ]}. === Rationale: === If you use the [[harlowe:if|(if:)]] macro, you may find you commonly use it in forked branches of source: places where only one of a set of hooks should be displayed. In order to make this so, you would have to phrase your [[harlowe:if|(if:)]] expressions as "if A happened", "if A didn't happen and B happened", "if A and B didn't happen and C happened", and so forth, in that order. The (else-if:) and [[harlowe:else|(else:)]] macros are convenient variants of [[harlowe:if|(if:)]] designed to make this easier: you can merely say "if A happened", "else, if B happened", "else, if C happened" in your code. === Details: === Just like the [[harlowe:if|(if:)]] macro, (else-if:) only checks its condition once, when the passage or hook contaning it is rendered. The (else-if:) and [[harlowe:else|(else:)]] macros do not need to only be paired with [[harlowe:if|(if:)]]! You can use (else-if:) and [[harlowe:else|(else:)]] in conjunction with [[harlowe:boolean|boolean]] variables, like so: $married[You hope this warrior will someday find the sort of love you know.] (else-if: not $date)[You hope this warrior isn't doing anything this Sunday (because you've got overtime on Saturday.)] If you attach (else-if:) to a named hook, and the (else-if:) hides the hook, you can reveal the hook later in the passage by using the [[harlowe:show|(show:)]] macro to target the hook. === See also: === [[harlowe:if|(if:)]], [[harlowe:unless|(unless:)]], [[harlowe:else|(else:)]], [[harlowe:hidden|(hidden:)]]