1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-06-30 22:14:58 +03:00

Reduced use of original references

This commit is contained in:
Graham Nelson 2021-06-22 10:53:56 +01:00
parent 9a8db049b9
commit df0f26c502
19 changed files with 327 additions and 333 deletions

View file

@ -1,6 +1,6 @@
# Inform 7
v10.1.0-alpha.1+6S48 'Krypton' (21 June 2021)
v10.1.0-alpha.1+6S49 'Krypton' (22 June 2021)
## About Inform 7

View file

@ -1,3 +1,3 @@
Prerelease: alpha.1
Build Date: 21 June 2021
Build Number: 6S48
Build Date: 22 June 2021
Build Number: 6S49

View file

@ -128,13 +128,13 @@ state of being boolean, and the given certainty levels:
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">f</span><span class="plain-syntax">) { </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&lt;i&gt;%s&lt;/i&gt; "</span><span class="plain-syntax">, </span><span class="identifier-syntax">cert</span><span class="plain-syntax">); </span><span class="identifier-syntax">f</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">; }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">", "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-prp.html#SP3" class="function-link"><span class="function-syntax">IXProperties::set_indexed_already_flag</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Properties::is_either_or</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prnbar</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EitherOrProperties::get_negation</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">prnbar</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" &lt;i&gt;not&lt;/i&gt; %+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">prnbar</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" &lt;i&gt;not&lt;/i&gt; %+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">prnbar</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-prp.html#SP3" class="function-link"><span class="function-syntax">IXProperties::set_indexed_already_flag</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prnbar</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
@ -169,7 +169,7 @@ state of being boolean, and the given certainty levels:
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">k</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><span class="identifier-syntax">HTML::open_indented_p</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="string-syntax">"hanging"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"; "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">S</span><span class="plain-syntax"> &lt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"not "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">) </span><span class="identifier-syntax">Index::link</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">)));</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
@ -183,7 +183,7 @@ state of being boolean, and the given certainty levels:
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PropertyInferences::value_and_where_without_inheritance</span><span class="plain-syntax">(</span><span class="identifier-syntax">infs</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">S</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">)))) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::open_indented_p</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="string-syntax">"hanging"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W: "</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W: "</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::begin_colour</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"000080"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::end_colour</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>

View file

@ -21,6 +21,7 @@ function togglePopup(material_id) {
<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Preform-Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
</head>
<body class="commentary-font">
@ -72,7 +73,7 @@ function togglePopup(material_id) {
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">index</a></li><li><a href="index.html#2">Chapter 2: Indexing</a></li><li><b>Instances</b></li></ul></div>
<p class="purpose">To index instances.</p>
<ul class="toc"><li><a href="2-ins.html#SP3">&#167;3. Naming</a></li><li><a href="2-ins.html#SP4">&#167;4. Noun usage</a></li></ul><hr class="tocbar">
<ul class="toc"><li><a href="2-ins.html#SP4">&#167;4. Naming</a></li><li><a href="2-ins.html#SP5">&#167;5. Noun usage</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </b></p>
@ -94,6 +95,8 @@ function togglePopup(material_id) {
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">index_appearances</span><span class="plain-syntax">; </span><span class="comment-syntax"> how many times have I appeared thus far in the World index?</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">abbrev</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">original</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">is_a_thing</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">is_a_supporter</span><span class="plain-syntax">;</span>
@ -151,7 +154,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">exits_set_at</span><span class="plain-syntax">[</span><span class="identifier-syntax">MAX_DIRECTIONS</span><span class="plain-syntax">];</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">fi_map_data</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">fi_map_data</span><span class="plain-syntax"> </span><span class="function-syntax">IXInstances::new_fimd</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">IXInstances::new_fimd</span></span>:<br/><a href="2-ins.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">FI</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">fi_map_data</span><span class="plain-syntax"> </span><span class="function-syntax">IXInstances::new_fimd</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">IXInstances::new_fimd</span></span>:<br/><a href="2-ins.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">FI</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">fi_map_data</span><span class="plain-syntax"> </span><span class="identifier-syntax">fimd</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">submap</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">position</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Zero_vector</span><span class="plain-syntax">;</span>
@ -174,8 +177,48 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">fimd</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<ul class="endnotetexts"><li>The structure faux_instance is accessed in 2/me, 3/spt, 3/bck, 3/rgn, 4/sm, 4/hm, 4/rem and here.</li><li>The structure fi_map_data is accessed in 4/sm, 4/hm, 4/rem and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. </b></p>
<ul class="endnotetexts"><li>The structure faux_instance is accessed in 2/me, 2/prp, 2/inf, 3/spt, 3/bck, 3/rgn, 4/sm, 4/hm, 4/rem and here.</li><li>The structure fi_map_data is accessed in 4/sm, 4/hm, 4/rem and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. </b>When names are abbreviated for use on the World Index map (for instance,
"Marble Hallway" becomes "MH") each word is tested against the following
nonterminal; those which match are omitted. So, for instance, "Queen Of The
South" comes out as "QS".
</p>
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">ABBREV_ROOMS_TO</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span>
</pre>
<pre class="Preform-displayed-code all-displayed-code code-font">
<span class="Preform-function-syntax">&lt;map-name-abbreviation-omission-words&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">in</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">of</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;article&gt;</span>
</pre>
<ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
<p class="commentary firstcommentary"><a id="SP_1" class="paragraph-anchor"></a><b>&#167;.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compose the abbreviated name</span><span class="named-paragraph-number">.1</span></span><span class="Preform-comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::get_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_THROUGH_WORDING</span><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">i</span><span class="plain-syntax"> &gt; </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) &amp;&amp; (</span><span class="identifier-syntax">i</span><span class="plain-syntax"> &lt; </span><span class="identifier-syntax">Wordings::last_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="function-syntax">&lt;map-name-abbreviation-omission-words&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::one_word</span><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">)))) </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Lexer::word_raw_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">c</span><span class="plain-syntax">++ &lt; </span><span class="constant-syntax">ABBREV_ROOMS_TO</span><span class="plain-syntax">) </span><span class="identifier-syntax">PUT_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">abbrev</span><span class="plain-syntax">, </span><span class="identifier-syntax">Characters::toupper</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">[0]));</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_THROUGH_WORDING</span><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">i</span><span class="plain-syntax"> &gt; </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) &amp;&amp; (</span><span class="identifier-syntax">i</span><span class="plain-syntax"> &lt; </span><span class="identifier-syntax">Wordings::last_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="function-syntax">&lt;map-name-abbreviation-omission-words&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::one_word</span><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">)))) </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Lexer::word_raw_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">j</span><span class="plain-syntax">=1; </span><span class="identifier-syntax">p</span><span class="plain-syntax">[</span><span class="identifier-syntax">j</span><span class="plain-syntax">]; </span><span class="identifier-syntax">j</span><span class="plain-syntax">++)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Characters::vowel</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">[</span><span class="identifier-syntax">j</span><span class="plain-syntax">]) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">c</span><span class="plain-syntax">++ &lt; </span><span class="constant-syntax">ABBREV_ROOMS_TO</span><span class="plain-syntax">) </span><span class="identifier-syntax">PUT_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">abbrev</span><span class="plain-syntax">, </span><span class="identifier-syntax">p</span><span class="plain-syntax">[</span><span class="identifier-syntax">j</span><span class="plain-syntax">]);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">c</span><span class="plain-syntax">++ &lt; </span><span class="constant-syntax">ABBREV_ROOMS_TO</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">p</span><span class="plain-syntax">[1])) </span><span class="identifier-syntax">PUT_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">abbrev</span><span class="plain-syntax">, </span><span class="identifier-syntax">p</span><span class="plain-syntax">[1]);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-ins.html#SP3">&#167;3</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">start_faux_instance</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
@ -187,6 +230,11 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_INSTANCES</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">FI</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">index_appearances</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::new</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Instances::write_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">abbrev</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::new</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-ins.html#SP_1" class="named-paragraph-link"><span class="named-paragraph">Compose the abbreviated name</span><span class="named-paragraph-number">.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">original</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">is_a_thing</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_thing</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">is_a_supporter</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_supporter</span><span class="plain-syntax">);</span>
@ -274,7 +322,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">inference</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inf</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">POSITIVE_KNOWLEDGE_LOOP</span><span class="plain-syntax">(</span><span class="identifier-syntax">inf</span><span class="plain-syntax">, </span><span class="identifier-syntax">Instances::as_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">B</span><span class="plain-syntax">), </span><span class="identifier-syntax">found_in_inf</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Backdrops::get_inferred_location</span><span class="plain-syntax">(</span><span class="identifier-syntax">inf</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">FL</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::fi</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">FL</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::fi</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">FB</span><span class="plain-syntax">, </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax">, </span><span class="identifier-syntax">FL</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">backdrop_presences</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">POSITIVE_KNOWLEDGE_LOOP</span><span class="plain-syntax">(</span><span class="identifier-syntax">inf</span><span class="plain-syntax">, </span><span class="identifier-syntax">Instances::as_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">B</span><span class="plain-syntax">), </span><span class="identifier-syntax">found_everywhere_inf</span><span class="plain-syntax">) {</span>
@ -282,30 +330,30 @@ function togglePopup(material_id) {
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">MAX_DIRECTIONS</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FB</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">exits</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">] = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::fi</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">MAP_EXIT</span><span class="plain-syntax">(</span><span class="identifier-syntax">FB</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">original</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FB</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">exits</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">] = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::fi</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">MAP_EXIT</span><span class="plain-syntax">(</span><span class="identifier-syntax">FB</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">original</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">FB</span><span class="plain-syntax">, </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FB</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">region_enclosing</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::fi</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Regions::enclosing</span><span class="plain-syntax">(</span><span class="identifier-syntax">FB</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">original</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FB</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">object_tree_sibling</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::fi</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">SPATIAL_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">FB</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">original</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">object_tree_sibling</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FB</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">object_tree_child</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::fi</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">SPATIAL_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">FB</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">original</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">object_tree_child</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FB</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">progenitor</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::fi</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Spatial::progenitor</span><span class="plain-syntax">(</span><span class="identifier-syntax">FB</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">original</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FB</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">incorp_tree_sibling</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::fi</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">SPATIAL_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">FB</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">original</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">incorp_tree_sibling</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FB</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">incorp_tree_child</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::fi</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">SPATIAL_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">FB</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">original</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">incorp_tree_child</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FB</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">region_enclosing</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::fi</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Regions::enclosing</span><span class="plain-syntax">(</span><span class="identifier-syntax">FB</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">original</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FB</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">object_tree_sibling</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::fi</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">SPATIAL_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">FB</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">original</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">object_tree_sibling</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FB</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">object_tree_child</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::fi</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">SPATIAL_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">FB</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">original</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">object_tree_child</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FB</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">progenitor</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::fi</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Spatial::progenitor</span><span class="plain-syntax">(</span><span class="identifier-syntax">FB</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">original</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FB</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">incorp_tree_sibling</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::fi</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">SPATIAL_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">FB</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">original</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">incorp_tree_sibling</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FB</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">incorp_tree_child</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::fi</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">SPATIAL_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">FB</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">original</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">incorp_tree_child</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">FR</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">FR</span><span class="plain-syntax">, </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">FR</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">is_a_direction</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FR</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">map_connection_a</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::fi</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">FR</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">original</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">map_connection_a</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FR</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">map_connection_b</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::fi</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">FR</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">original</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">map_connection_b</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FR</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">opposite_direction</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::fi</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Map::get_value_of_opposite_property</span><span class="plain-syntax">(</span><span class="identifier-syntax">FR</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">original</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FR</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">opposite_direction</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::fi</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Map::get_value_of_opposite_property</span><span class="plain-syntax">(</span><span class="identifier-syntax">FR</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">original</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">FD</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">FD</span><span class="plain-syntax">, </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">FD</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">is_a_door</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PropertyInferences::value_of</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Instances::as_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">P_other_side</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FD</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">other_side</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::fi</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Rvalues::to_object_instance</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FD</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">other_side</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::fi</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Rvalues::to_object_instance</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FD</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">map_connection_a</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::fi</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">FD</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">original</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">map_connection_a</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FD</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">map_connection_b</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::fi</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">FD</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">original</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">map_connection_b</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
@ -318,32 +366,32 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">faux_yourself</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. Naming. </b></p>
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>&#167;4. Naming. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXInstances::write_name</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">IXInstances::write_name</span></span>:<br/>Map Element - <a href="2-me.html#SP2_3_1">&#167;2.3.1</a>, <a href="2-me.html#SP2_8">&#167;2.8</a><br/>Spatial - <a href="3-spt.html#SP4">&#167;4</a><br/>The Map - <a href="3-tm.html#SP1">&#167;1</a><br/>Spatial Map - <a href="4-sm.html#SP44">&#167;44</a>, <a href="4-sm.html#SP45">&#167;45</a><br/>HTML Map - <a href="4-hm.html#SP10_2_2">&#167;10.2.2</a>, <a href="4-hm.html#SP12">&#167;12</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Instances::write_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">original</span><span class="plain-syntax">);</span>
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">IXInstances::get_name</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">IXInstances::get_name</span></span>:<br/>Map Element - <a href="2-me.html#SP1_2_1">&#167;1.2.1</a><br/>Spatial Map - <a href="4-sm.html#SP42_1">&#167;42.1</a>, <a href="4-sm.html#SP42_2">&#167;42.2</a>, <a href="4-sm.html#SP42_3">&#167;42.3</a>, <a href="4-sm.html#SP44">&#167;44</a><br/>HTML Map - <a href="4-hm.html#SP6_3_4">&#167;6.3.4</a>, <a href="4-hm.html#SP11">&#167;11</a>, <a href="4-hm.html#SP13">&#167;13</a>, <a href="4-hm.html#SP13_1">&#167;13.1</a><br/>Render EPS Map - <a href="4-rem.html#SP3_2">&#167;3.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">name</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXInstances::write_kind</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">IXInstances::write_kind</span></span>:<br/>Map Element - <a href="2-me.html#SP2_3_1">&#167;2.3.1</a>, <a href="2-me.html#SP2_3_1_1">&#167;2.3.1.1</a>, <a href="2-me.html#SP2_4">&#167;2.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXInstances::write_name</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">IXInstances::write_name</span></span>:<br/>Map Element - <a href="2-me.html#SP2_3_1">&#167;2.3.1</a>, <a href="2-me.html#SP2_8">&#167;2.8</a><br/>Spatial - <a href="3-spt.html#SP4">&#167;4</a><br/>The Map - <a href="3-tm.html#SP1">&#167;1</a><br/>Spatial Map - <a href="4-sm.html#SP44">&#167;44</a>, <a href="4-sm.html#SP45">&#167;45</a><br/>HTML Map - <a href="4-hm.html#SP10_2_2">&#167;10.2.2</a>, <a href="4-hm.html#SP12">&#167;12</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">));</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXInstances::write_kind</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">IXInstances::write_kind</span></span>:<br/>Map Element - <a href="2-me.html#SP2_3_1">&#167;2.3.1</a>, <a href="2-me.html#SP2_3_1_1">&#167;2.3.1.1</a>, <a href="2-me.html#SP2_4">&#167;2.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kind_text</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXInstances::write_kind_chain</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">IXInstances::write_kind_chain</span></span>:<br/>Map Element - <a href="2-me.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXInstances::write_kind_chain</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">IXInstances::write_kind_chain</span></span>:<br/>Map Element - <a href="2-me.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kind_chain</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="function-syntax">IXInstances::get_name</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">IXInstances::get_name</span></span>:<br/>Map Element - <a href="2-me.html#SP1_2_1">&#167;1.2.1</a><br/>Spatial Map - <a href="4-sm.html#SP42_1">&#167;42.1</a>, <a href="4-sm.html#SP42_2">&#167;42.2</a>, <a href="4-sm.html#SP42_3">&#167;42.3</a>, <a href="4-sm.html#SP44">&#167;44</a><br/>HTML Map - <a href="4-hm.html#SP6_3_4">&#167;6.3.4</a>, <a href="4-hm.html#SP11">&#167;11</a>, <a href="4-hm.html#SP11_1_2">&#167;11.1.2</a>, <a href="4-hm.html#SP13">&#167;13</a>, <a href="4-hm.html#SP13_1">&#167;13.1</a><br/>Render EPS Map - <a href="4-rem.html#SP3_2">&#167;3.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">FI</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">FI</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">Instances::get_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">original</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="function-syntax">IXInstances::as_subject</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">IXInstances::as_subject</span></span>:<br/>Map Element - <a href="2-me.html#SP2_7">&#167;2.7</a>, <a href="2-me.html#SP2_9">&#167;2.9</a><br/>Render EPS Map - <a href="4-rem.html#SP3_1">&#167;3.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">FI</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">FI</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">Instances::as_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">original</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="function-syntax">IXInstances::fi</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">IXInstances::fi</span></span>:<br/><a href="2-ins.html#SP2">&#167;2</a><br/>Render EPS Map - <a href="4-rem.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="function-syntax">IXInstances::fi</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">IXInstances::fi</span></span>:<br/><a href="2-ins.html#SP3">&#167;3</a><br/>Render EPS Map - <a href="4-rem.html#SP2_8">&#167;2.8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">FI</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">FI</span><span class="plain-syntax">, </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">original</span><span class="plain-syntax"> == </span><span class="identifier-syntax">I</span><span class="plain-syntax">)</span>
@ -436,7 +484,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> &amp;(</span><span class="identifier-syntax">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">original</span><span class="plain-syntax">)-&gt;</span><span class="identifier-syntax">local_map_parameters</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>&#167;4. Noun usage. </b>This simply avoids repetitions in the World index:
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>&#167;5. Noun usage. </b>This simply avoids repetitions in the World index:
</p>
<pre class="displayed-code all-displayed-code code-font">

View file

@ -81,7 +81,7 @@ function togglePopup(material_id) {
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXPhysicalWorld::render</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">test_only</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Task::wraps_existing_storyfile</span><span class="plain-syntax">()) </span><span class="reserved-syntax">return</span><span class="plain-syntax">; </span><span class="comment-syntax"> in this case there is no model world</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">PluginManager::active</span><span class="plain-syntax">(</span><span class="identifier-syntax">map_plugin</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">; </span><span class="comment-syntax"> in this case there is no model world</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP2" class="function-link"><span class="function-syntax">IXInstances::make_faux</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::make_faux</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">EPSMap::traverse_for_map_parameters</span><span class="plain-syntax">(1);</span>
<span class="plain-syntax"> </span><a href="4-sm.html#SP7" class="function-link"><span class="function-syntax">PL::SpatialMap::establish_spatial_coordinates</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">test_only</span><span class="plain-syntax">) {</span>
@ -109,8 +109,8 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_OBJECTS</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="3-spt.html#SP2" class="function-link"><span class="function-syntax">IXSpatial::no_detail_index</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> || (</span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::is_a_direction</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)))</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::increment_indexing_count</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> || (</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::is_a_direction</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)))</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP5" class="function-link"><span class="function-syntax">IXInstances::increment_indexing_count</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-me.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_2" class="paragraph-anchor"></a><b>&#167;1.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Give room details within each region in turn in the World index</span><span class="named-paragraph-number">1.2</span></span><span class="comment-syntax"> =</span>
@ -119,12 +119,12 @@ function togglePopup(material_id) {
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">reg</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_OBJECTS</span><span class="plain-syntax">(</span><span class="identifier-syntax">reg</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::is_a_region</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">reg</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::is_a_region</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">reg</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">subheaded</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::increment_indexing_count</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">reg</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP5" class="function-link"><span class="function-syntax">IXInstances::increment_indexing_count</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">reg</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rm</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_ROOMS</span><span class="plain-syntax">(</span><span class="identifier-syntax">rm</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::region_of</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">rm</span><span class="plain-syntax">) == </span><span class="identifier-syntax">reg</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::region_of</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">rm</span><span class="plain-syntax">) == </span><span class="identifier-syntax">reg</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">subheaded</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-me.html#SP1_2_2" class="named-paragraph-link"><span class="named-paragraph">Start a new details panel on the World index</span><span class="named-paragraph-number">1.2.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-me.html#SP1_2_1" class="named-paragraph-link"><span class="named-paragraph">Index the name and super-region of the region</span><span class="named-paragraph-number">1.2.1</span></a></span><span class="plain-syntax">;</span>
@ -133,7 +133,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">subheaded</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><a href="4-hm.html#SP8" class="function-link"><span class="function-syntax">PL::HTMLMap::render_single_room_as_HTML</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">rm</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::increment_indexing_count</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">rm</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP5" class="function-link"><span class="function-syntax">IXInstances::increment_indexing_count</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">rm</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
</pre>
@ -142,9 +142,9 @@ function togglePopup(material_id) {
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&lt;b&gt;The &lt;i&gt;%+W&lt;/i&gt; region"</span><span class="plain-syntax">, </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">reg</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">within</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::region_of</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">reg</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">within</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" within the &lt;i&gt;%+W&lt;/i&gt; region"</span><span class="plain-syntax">, </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">within</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&lt;b&gt;The &lt;i&gt;%S&lt;/i&gt; region"</span><span class="plain-syntax">, </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">reg</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">within</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::region_of</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">reg</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">within</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" within the &lt;i&gt;%S&lt;/i&gt; region"</span><span class="plain-syntax">, </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">within</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&lt;/b&gt;"</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-me.html#SP1_2">&#167;1.2</a>.</li></ul>
@ -154,7 +154,7 @@ function togglePopup(material_id) {
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_ROOMS</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::indexed_yet</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP5" class="function-link"><span class="function-syntax">IXInstances::indexed_yet</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-me.html#SP1_2_2" class="named-paragraph-link"><span class="named-paragraph">Start a new details panel on the World index</span><span class="named-paragraph-number">1.2.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="4-hm.html#SP8" class="function-link"><span class="function-syntax">PL::HTMLMap::render_single_room_as_HTML</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
@ -173,8 +173,8 @@ will be things which are offstage (and their contents and any parts thereof):
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">out_of_play_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_OBJECTS</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::indexed_yet</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::progenitor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">) == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="2-ins.html#SP5" class="function-link"><span class="function-syntax">IXInstances::indexed_yet</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::progenitor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">) == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-me.html#SP1_2_2" class="named-paragraph-link"><span class="named-paragraph">Start a new details panel on the World index</span><span class="named-paragraph-number">1.2.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (++</span><span class="identifier-syntax">out_of_play_count</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">suppress_panel_changes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
@ -214,8 +214,8 @@ will be things which are offstage (and their contents and any parts thereof):
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">depth</span><span class="plain-syntax"> == </span><span class="constant-syntax">MAX_OBJECT_INDEX_DEPTH</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"MAX_OBJECT_INDEX_DEPTH exceeded"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">depth</span><span class="plain-syntax"> &gt; </span><span class="identifier-syntax">NUMBER_CREATED</span><span class="plain-syntax">(</span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax">) + </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">; </span><span class="comment-syntax"> to recover from errors</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::increment_indexing_count</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)) </span><span class="identifier-syntax">indexing_room</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP5" class="function-link"><span class="function-syntax">IXInstances::increment_indexing_count</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)) </span><span class="identifier-syntax">indexing_room</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-me.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Begin the object citation line</span><span class="named-paragraph-number">2.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">xtra</span><span class="plain-syntax"> = -1;</span>
@ -270,13 +270,13 @@ will be things which are offstage (and their contents and any parts thereof):
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">I</span><span class="plain-syntax">)) </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::write_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">I</span><span class="plain-syntax">)) </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::write_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"nameless"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">embolden</span><span class="plain-syntax"> = </span><span class="identifier-syntax">details</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)) </span><span class="identifier-syntax">embolden</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)) </span><span class="identifier-syntax">embolden</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">embolden</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&lt;b&gt;"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">embolden</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&lt;/b&gt;"</span><span class="plain-syntax">);</span>
@ -290,7 +290,7 @@ will be things which are offstage (and their contents and any parts thereof):
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">", a kind of "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::write_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::write_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-me.html#SP2_3_1">&#167;2.3.1</a>.</li></ul>
@ -301,7 +301,7 @@ will be things which are offstage (and their contents and any parts thereof):
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">PluginCalls::annotate_in_World_index</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">specify_kind</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" - &lt;i&gt;"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::write_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::write_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&lt;/i&gt;"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
@ -331,7 +331,7 @@ will be things which are offstage (and their contents and any parts thereof):
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::open_indented_p</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">depth</span><span class="plain-syntax">, </span><span class="string-syntax">"tight"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-inf.html#SP1" class="function-link"><span class="function-syntax">IXInferences::index</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::as_subject</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-inf.html#SP1" class="function-link"><span class="function-syntax">IXInferences::index</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::as_subject</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-me.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_8" class="paragraph-anchor"></a><b>&#167;2.8. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Add the chain of kinds</span><span class="named-paragraph-number">2.8</span></span><span class="comment-syntax"> =</span>
@ -339,10 +339,10 @@ will be things which are offstage (and their contents and any parts thereof):
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::open_indented_p</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="string-syntax">"tight"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::write_kind_chain</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::write_kind_chain</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">kind_set_at</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">Index::link</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kind_set_at</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" &amp;gt; &lt;b&gt;"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&lt;/b&gt;"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
</pre>
@ -351,7 +351,7 @@ will be things which are offstage (and their contents and any parts thereof):
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="2-inf.html#SP3" class="function-link"><span class="function-syntax">IXInferences::index_specific</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::as_subject</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-inf.html#SP3" class="function-link"><span class="function-syntax">IXInferences::index_specific</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::as_subject</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">));</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-me.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. </b></p>

View file

@ -120,7 +120,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">neg</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">Properties::get_permissions</span><span class="plain-syntax">(</span><span class="identifier-syntax">neg</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" of "</span><span class="plain-syntax">); </span><a href="2-prp.html#SP4" class="function-link"><span class="function-syntax">IXProperties::index_permissions</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">neg</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">neg</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">", opposite of &lt;/i&gt;%+W&lt;i&gt;"</span><span class="plain-syntax">, </span><span class="identifier-syntax">neg</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">neg</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">", opposite of &lt;/i&gt;%+W&lt;i&gt;"</span><span class="plain-syntax">, </span><span class="identifier-syntax">neg</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">name</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXProperties::index_permissions</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">) {</span>

View file

@ -68,8 +68,8 @@
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">IXRegions::add_to_World_index</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">O</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">O</span><span class="plain-syntax">) &amp;&amp; (</span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">O</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::region_of</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">O</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">O</span><span class="plain-syntax">) &amp;&amp; (</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">O</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::region_of</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">O</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">R</span><span class="plain-syntax">) </span><a href="4-hm.html#SP12" class="function-link"><span class="function-syntax">PL::HTMLMap::colour_chip</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">O</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">O</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">region_set_at</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>

View file

@ -77,11 +77,11 @@ function togglePopup(material_id) {
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXSpatial::index_spatial_relationship</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">IXSpatial::index_spatial_relationship</span></span>:<br/>Map Element - <a href="2-me.html#SP2_1">&#167;2.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rel</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::progenitor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::progenitor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="comment-syntax"> we could set </span><span class="extract"><span class="extract-syntax">rel</span></span><span class="comment-syntax"> to "in" here, but the index omits that for clarity</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::is_a_supporter</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">)) </span><span class="identifier-syntax">rel</span><span class="plain-syntax"> = </span><span class="string-syntax">"on"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::is_a_person</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">)) </span><span class="identifier-syntax">rel</span><span class="plain-syntax"> = </span><span class="string-syntax">"carried"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::is_a_supporter</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">)) </span><span class="identifier-syntax">rel</span><span class="plain-syntax"> = </span><span class="string-syntax">"on"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::is_a_person</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">)) </span><span class="identifier-syntax">rel</span><span class="plain-syntax"> = </span><span class="string-syntax">"carried"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">is_a_part</span><span class="plain-syntax">) </span><span class="identifier-syntax">rel</span><span class="plain-syntax"> = </span><span class="string-syntax">"part"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">is_worn</span><span class="plain-syntax">) </span><span class="identifier-syntax">rel</span><span class="plain-syntax"> = </span><span class="string-syntax">"worn"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
@ -104,22 +104,22 @@ it already turns up under its owner.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXSpatial::index_object_further</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">IXSpatial::index_object_further</span></span>:<br/>Map Element - <a href="2-me.html#SP2_6">&#167;2.6</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">depth</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">details</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">depth</span><span class="plain-syntax"> &gt; </span><span class="identifier-syntax">NUMBER_CREATED</span><span class="plain-syntax">(</span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax">) + </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">; </span><span class="comment-syntax"> to recover from errors</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::incorp_child</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I2</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::incorp_child</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::incorp_child</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I2</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::incorp_child</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I2</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-me.html#SP2" class="function-link"><span class="function-syntax">IXPhysicalWorld::index</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I2</span><span class="plain-syntax">, </span><span class="identifier-syntax">depth</span><span class="plain-syntax">+1, </span><span class="identifier-syntax">details</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">I2</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::incorp_sibling</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I2</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">I2</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::incorp_sibling</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I2</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::child</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><a href="2-me.html#SP2" class="function-link"><span class="function-syntax">IXPhysicalWorld::index</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::child</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">depth</span><span class="plain-syntax">+1, </span><span class="identifier-syntax">details</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::is_a_door</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::child</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><a href="2-me.html#SP2" class="function-link"><span class="function-syntax">IXPhysicalWorld::index</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::child</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">depth</span><span class="plain-syntax">+1, </span><span class="identifier-syntax">details</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::is_a_door</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I2</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_OBJECTS</span><span class="plain-syntax">(</span><span class="identifier-syntax">I2</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::is_a_door</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I2</span><span class="plain-syntax">)) &amp;&amp; (</span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::progenitor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I2</span><span class="plain-syntax">) != </span><span class="identifier-syntax">I</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::is_a_door</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I2</span><span class="plain-syntax">)) &amp;&amp; (</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::progenitor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I2</span><span class="plain-syntax">) != </span><span class="identifier-syntax">I</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">A</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, *</span><span class="identifier-syntax">B</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::get_door_data</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I2</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">A</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">B</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::get_door_data</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I2</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">A</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">B</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">A</span><span class="plain-syntax"> == </span><span class="identifier-syntax">I</span><span class="plain-syntax">) </span><a href="2-me.html#SP2" class="function-link"><span class="function-syntax">IXPhysicalWorld::index</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I2</span><span class="plain-syntax">, </span><span class="identifier-syntax">depth</span><span class="plain-syntax">+1, </span><span class="identifier-syntax">details</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">B</span><span class="plain-syntax"> == </span><span class="identifier-syntax">I</span><span class="plain-syntax">) </span><a href="2-me.html#SP2" class="function-link"><span class="function-syntax">IXPhysicalWorld::index</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I2</span><span class="plain-syntax">, </span><span class="identifier-syntax">depth</span><span class="plain-syntax">+1, </span><span class="identifier-syntax">details</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
@ -128,8 +128,8 @@ it already turns up under its owner.
<span class="plain-syntax"> </span><a href="3-tp.html#SP1" class="function-link"><span class="function-syntax">IXPlayer::index_object_further</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">depth</span><span class="plain-syntax">, </span><span class="identifier-syntax">details</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-bck.html#SP1" class="function-link"><span class="function-syntax">IXBackdrops::index_object_further</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">depth</span><span class="plain-syntax">, </span><span class="identifier-syntax">details</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::sibling</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><a href="2-me.html#SP2" class="function-link"><span class="function-syntax">IXPhysicalWorld::index</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::sibling</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">depth</span><span class="plain-syntax">, </span><span class="identifier-syntax">details</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::sibling</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><a href="2-me.html#SP2" class="function-link"><span class="function-syntax">IXPhysicalWorld::index</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::sibling</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">depth</span><span class="plain-syntax">, </span><span class="identifier-syntax">details</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>&#167;4. </b>And also:
@ -137,18 +137,18 @@ it already turns up under its owner.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">IXSpatial::add_to_World_index</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">O</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">O</span><span class="plain-syntax">) &amp;&amp; (</span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::is_a_thing</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">O</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">O</span><span class="plain-syntax">) &amp;&amp; (</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::is_a_thing</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">O</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::open_indented_p</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="string-syntax">"tight"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::progenitor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">O</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::progenitor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">O</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&lt;i&gt;initial location:&lt;/i&gt; "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rel</span><span class="plain-syntax"> = </span><span class="string-syntax">"in"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::is_a_supporter</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">)) </span><span class="identifier-syntax">rel</span><span class="plain-syntax"> = </span><span class="string-syntax">"on"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::is_a_person</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">)) </span><span class="identifier-syntax">rel</span><span class="plain-syntax"> = </span><span class="string-syntax">"carried by"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::is_a_supporter</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">)) </span><span class="identifier-syntax">rel</span><span class="plain-syntax"> = </span><span class="string-syntax">"on"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::is_a_person</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">)) </span><span class="identifier-syntax">rel</span><span class="plain-syntax"> = </span><span class="string-syntax">"carried by"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">O</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">is_a_part</span><span class="plain-syntax">) </span><span class="identifier-syntax">rel</span><span class="plain-syntax"> = </span><span class="string-syntax">"part of"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">O</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">is_worn</span><span class="plain-syntax">) </span><span class="identifier-syntax">rel</span><span class="plain-syntax"> = </span><span class="string-syntax">"worn by"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%s "</span><span class="plain-syntax">, </span><span class="identifier-syntax">rel</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> = </span><span class="identifier-syntax">O</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">progenitor_set_at</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">at</span><span class="plain-syntax">) </span><span class="identifier-syntax">Index::link</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">at</span><span class="plain-syntax">);</span>

View file

@ -68,23 +68,23 @@
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">IXMap::add_to_World_index</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">O</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">O</span><span class="plain-syntax">) &amp;&amp; (</span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">O</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">O</span><span class="plain-syntax">) &amp;&amp; (</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">O</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><a href="4-sm.html#SP44" class="function-link"><span class="function-syntax">PL::SpatialMap::index_room_connections</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">O</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">IXMap::annotate_in_World_index</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">O</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">O</span><span class="plain-syntax">) &amp;&amp; (</span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::is_a_door</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">O</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">O</span><span class="plain-syntax">) &amp;&amp; (</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::is_a_door</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">O</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">A</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, *</span><span class="identifier-syntax">B</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::get_door_data</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">O</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">A</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">B</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::get_door_data</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">O</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">A</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">B</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">A</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">B</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" - &lt;i&gt;door to "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" - &lt;i&gt;one-sided door to "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">X</span><span class="plain-syntax"> = </span><span class="identifier-syntax">A</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">A</span><span class="plain-syntax"> == </span><a href="2-me.html#SP2" class="function-link"><span class="function-syntax">IXPhysicalWorld::room_being_indexed</span></a><span class="plain-syntax">()) </span><span class="identifier-syntax">X</span><span class="plain-syntax"> = </span><span class="identifier-syntax">B</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">X</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">X</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::other_side_of_door</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">O</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">X</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">X</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::other_side_of_door</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">O</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">X</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"nowhere"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">X</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">X</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&lt;/i&gt;"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>

View file

@ -78,14 +78,14 @@ usually appear anywhere.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXPlayer::index_object_further</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">IXPlayer::index_object_further</span></span>:<br/>Spatial - <a href="3-spt.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">depth</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">details</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">yourself</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP2" class="function-link"><span class="function-syntax">IXInstances::yourself</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">I</span><span class="plain-syntax"> == </span><a href="2-ins.html#SP2" class="function-link"><span class="function-syntax">IXInstances::start_room</span></a><span class="plain-syntax">()) &amp;&amp; (</span><span class="identifier-syntax">yourself</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::indexed_yet</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">yourself</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">yourself</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::yourself</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">I</span><span class="plain-syntax"> == </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::start_room</span></a><span class="plain-syntax">()) &amp;&amp; (</span><span class="identifier-syntax">yourself</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="2-ins.html#SP5" class="function-link"><span class="function-syntax">IXInstances::indexed_yet</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">yourself</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><a href="2-me.html#SP2" class="function-link"><span class="function-syntax">IXPhysicalWorld::index</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">yourself</span><span class="plain-syntax">, </span><span class="identifier-syntax">depth</span><span class="plain-syntax">+1, </span><span class="identifier-syntax">details</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">IXPlayer::annotate_in_World_index</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax"> == </span><a href="2-ins.html#SP2" class="function-link"><span class="function-syntax">IXInstances::start_room</span></a><span class="plain-syntax">()) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax"> == </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::start_room</span></a><span class="plain-syntax">()) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" - &lt;i&gt;room where play begins&lt;/i&gt;"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Index::DocReferences::link</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ROOMPLAYBEGINS"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>

View file

@ -35,7 +35,6 @@ function togglePopup(material_id) {
<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Preform-Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
</head>
<body class="commentary-font">
@ -607,7 +606,7 @@ from each other.)
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_ROOMS</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">R</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">colour</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">reg</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::region_of</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">reg</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::region_of</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">reg</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">R</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">colour</span><span class="plain-syntax"> = </span><span class="identifier-syntax">reg</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">colour</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
@ -687,9 +686,7 @@ from each other.)
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">k</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">); </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&lt;i&gt;Mapping "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"; "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">DW</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">); </span><span class="comment-syntax"> name of the direction</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">AW</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">A</span><span class="plain-syntax">); </span><span class="comment-syntax"> name of the as-direction</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W as %+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">DW</span><span class="plain-syntax">, </span><span class="identifier-syntax">AW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%S as %S"</span><span class="plain-syntax">, </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">), </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">A</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">k</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) { </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&lt;/i&gt;"</span><span class="plain-syntax">); </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">); }</span>
@ -1156,18 +1153,18 @@ of the cell. First, the eight cells around the outside:
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_OBJECTS</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">direction_number</span><span class="plain-syntax"> == </span><span class="identifier-syntax">exit</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tool_tip</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tool_tip</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">D</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I3</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">tool_tip</span><span class="plain-syntax">, </span><span class="string-syntax">" exit blocked by "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">tool_tip</span><span class="plain-syntax">, </span><span class="string-syntax">" through "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tool_tip</span><span class="plain-syntax">, </span><span class="identifier-syntax">D</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tool_tip</span><span class="plain-syntax">, </span><span class="identifier-syntax">D</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I3</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">tool_tip</span><span class="plain-syntax">, </span><span class="string-syntax">" to "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tool_tip</span><span class="plain-syntax">, </span><span class="identifier-syntax">I3</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tool_tip</span><span class="plain-syntax">, </span><span class="identifier-syntax">I3</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">tool_tip</span><span class="plain-syntax">, </span><span class="string-syntax">"\""</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
@ -1190,8 +1187,8 @@ which are bordered and coloured single-cell tables.
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"table"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"border=\"%d\" cellpadding=\"0\" cellspacing=\"0\" "</span>
<span class="plain-syntax"> </span><span class="string-syntax">"bordercolor=\"#%s\" width=\"%d\" height=\"%d\" "</span>
<span class="plain-syntax"> </span><span class="string-syntax">"title=\"%+W\""</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">b</span><span class="plain-syntax">, </span><span class="constant-syntax">ROOM_BORDER_COLOUR</span><span class="plain-syntax">, </span><span class="constant-syntax">MAP_CELL_INNER_SIZE</span><span class="plain-syntax">, </span><span class="constant-syntax">MAP_CELL_INNER_SIZE</span><span class="plain-syntax">, </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="string-syntax">"title=\"%S\""</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">b</span><span class="plain-syntax">, </span><span class="constant-syntax">ROOM_BORDER_COLOUR</span><span class="plain-syntax">, </span><span class="constant-syntax">MAP_CELL_INNER_SIZE</span><span class="plain-syntax">, </span><span class="constant-syntax">MAP_CELL_INNER_SIZE</span><span class="plain-syntax">, </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"tr"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">, </span><span class="string-syntax">"valign=\"middle\" align=\"center\" bgcolor=\"#%w\""</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">colour</span><span class="plain-syntax">);</span>
@ -1211,11 +1208,7 @@ which are bordered and coloured single-cell tables.
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP11_1" class="paragraph-anchor"></a><b>&#167;11.1. </b></p>
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">ABBREV_ROOMS_TO</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Write the text of the abbreviated name of the room</span><span class="named-paragraph-number">11.1</span></span><span class="comment-syntax"> =</span>
<p class="commentary firstcommentary"><a id="SP11_1" class="paragraph-anchor"></a><b>&#167;11.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Write the text of the abbreviated name of the room</span><span class="named-paragraph-number">11.1</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -1226,7 +1219,7 @@ which are bordered and coloured single-cell tables.
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">pass</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">I</span><span class="plain-syntax"> == </span><span class="identifier-syntax">faux_benchmark</span><span class="plain-syntax">)) </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"b"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">abbrev</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-hm.html#SP11_1_2" class="named-paragraph-link"><span class="named-paragraph">Work out the abbreviation for this room's name</span><span class="named-paragraph-number">11.1.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">abbrev</span><span class="plain-syntax">, </span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">abbrev</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">HTML_MAP_FONT_SIZE</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"span"</span><span class="plain-syntax">, </span><span class="string-syntax">"style=\"font-size:%dpx;\""</span><span class="plain-syntax">, </span><span class="identifier-syntax">HTML_MAP_FONT_SIZE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
@ -1240,44 +1233,6 @@ which are bordered and coloured single-cell tables.
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">abbrev</span><span class="plain-syntax">)</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-hm.html#SP11">&#167;11</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP11_1_1" class="paragraph-anchor"></a><b>&#167;11.1.1. </b>When names are abbreviated for use on the World Index map (for faux_instance,
"Marble Hallway" becomes "MH") each word is tested against the following
nonterminal; those which match are omitted. So, for faux_instance, "Queen Of The
South" comes out as "QS".
</p>
<pre class="Preform-displayed-code all-displayed-code code-font">
<span class="Preform-function-syntax">&lt;map-name-abbreviation-omission-words&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">in</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">of</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;article&gt;</span>
</pre>
<ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
<p class="commentary firstcommentary"><a id="SP11_1_2" class="paragraph-anchor"></a><b>&#167;11.1.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Work out the abbreviation for this room's name</span><span class="named-paragraph-number">11.1.2</span></span><span class="Preform-comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_THROUGH_WORDING</span><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">i</span><span class="plain-syntax"> &gt; </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) &amp;&amp; (</span><span class="identifier-syntax">i</span><span class="plain-syntax"> &lt; </span><span class="identifier-syntax">Wordings::last_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="function-syntax">&lt;map-name-abbreviation-omission-words&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::one_word</span><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">)))) </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Lexer::word_raw_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">c</span><span class="plain-syntax">++ &lt; </span><span class="constant-syntax">ABBREV_ROOMS_TO</span><span class="plain-syntax">) </span><span class="identifier-syntax">PUT_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">abbrev</span><span class="plain-syntax">, </span><span class="identifier-syntax">Characters::toupper</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">[0]));</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_THROUGH_WORDING</span><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">i</span><span class="plain-syntax"> &gt; </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) &amp;&amp; (</span><span class="identifier-syntax">i</span><span class="plain-syntax"> &lt; </span><span class="identifier-syntax">Wordings::last_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="function-syntax">&lt;map-name-abbreviation-omission-words&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::one_word</span><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">)))) </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Lexer::word_raw_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">j</span><span class="plain-syntax">=1; </span><span class="identifier-syntax">p</span><span class="plain-syntax">[</span><span class="identifier-syntax">j</span><span class="plain-syntax">]; </span><span class="identifier-syntax">j</span><span class="plain-syntax">++)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Characters::vowel</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">[</span><span class="identifier-syntax">j</span><span class="plain-syntax">]) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">c</span><span class="plain-syntax">++ &lt; </span><span class="constant-syntax">ABBREV_ROOMS_TO</span><span class="plain-syntax">) </span><span class="identifier-syntax">PUT_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">abbrev</span><span class="plain-syntax">, </span><span class="identifier-syntax">p</span><span class="plain-syntax">[</span><span class="identifier-syntax">j</span><span class="plain-syntax">]);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">c</span><span class="plain-syntax">++ &lt; </span><span class="constant-syntax">ABBREV_ROOMS_TO</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">p</span><span class="plain-syntax">[1])) </span><span class="identifier-syntax">PUT_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">abbrev</span><span class="plain-syntax">, </span><span class="identifier-syntax">p</span><span class="plain-syntax">[1]);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-hm.html#SP11_1">&#167;11.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>&#167;12. The colour chip. </b>The first of two extras, which aren't strictly speaking part of the HTML map.
This is the chip shown on the "details" box for a room in the World Index.
</p>
@ -1292,7 +1247,7 @@ This is the chip shown on the "details" box for a room in the World Index.
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">, </span><span class="string-syntax">"valign=\"middle\" align=\"center\" bgcolor=\"#%w\""</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Reg</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">colour</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&amp;nbsp;"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Reg</span><span class="plain-syntax">); </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" region"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Reg</span><span class="plain-syntax">); </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" region"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">at</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">Index::link</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">at</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&amp;nbsp;"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">);</span>
@ -1318,13 +1273,13 @@ that nothing is shown if all of the rooms are outside of regions.
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">count</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_ROOMS</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::region_of</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">) == </span><span class="identifier-syntax">reg</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::region_of</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">) == </span><span class="identifier-syntax">reg</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">count</span><span class="plain-syntax">++ == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-hm.html#SP13_1" class="named-paragraph-link"><span class="named-paragraph">Start the region key table for this region</span><span class="named-paragraph-number">13.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">", "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">count</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="4-hm.html#SP13_2" class="named-paragraph-link"><span class="named-paragraph">End the region key table for this region</span><span class="named-paragraph-number">13.2</span></a></span><span class="plain-syntax">;</span>
@ -1343,8 +1298,7 @@ that nothing is shown if all of the rooms are outside of regions.
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">); </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\n"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">, </span><span class="string-syntax">"valign=\"middle\" align=\"left\""</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&lt;b&gt;"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">reg</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">reg</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">reg</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">reg</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&lt;i&gt;Not in any region&lt;/i&gt;"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&lt;/b&gt;: "</span><span class="plain-syntax">);</span>
</pre>

View file

@ -148,7 +148,7 @@ MathJax = {
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_ROOMS</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Room_position</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">).</span><span class="identifier-syntax">z</span><span class="plain-syntax"> == </span><span class="identifier-syntax">z</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::get_parameters</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">)-&gt;</span><span class="identifier-syntax">wider_scope</span><span class="plain-syntax"> = &amp;(</span><span class="identifier-syntax">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">map_parameters</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::get_parameters</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">)-&gt;</span><span class="identifier-syntax">wider_scope</span><span class="plain-syntax"> = &amp;(</span><span class="identifier-syntax">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">map_parameters</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-rem.html#SP1">&#167;1</a>.</li></ul>
@ -158,7 +158,7 @@ MathJax = {
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_ROOMS</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">EPSMap::put_string_mp</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="string-syntax">"room-colour"</span><span class="plain-syntax">, </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::get_parameters</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">EPSMap::put_string_mp</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="string-syntax">"room-colour"</span><span class="plain-syntax">, </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::get_parameters</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">R</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">colour</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-rem.html#SP1">&#167;1</a>.</li></ul>
@ -301,7 +301,7 @@ rectangle around the whole thing...
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">map_parameter_scope</span><span class="plain-syntax"> *</span><span class="identifier-syntax">room_scope</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::get_parameters</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">map_parameter_scope</span><span class="plain-syntax"> *</span><span class="identifier-syntax">room_scope</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::get_parameters</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">bx</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Room_position</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">).</span><span class="identifier-syntax">x</span><span class="plain-syntax">-</span><span class="identifier-syntax">Universe</span><span class="plain-syntax">.</span><span class="identifier-syntax">corner0</span><span class="plain-syntax">.</span><span class="identifier-syntax">x</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">by</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Room_position</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">).</span><span class="identifier-syntax">y</span><span class="plain-syntax">-</span><span class="identifier-syntax">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">y_min</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">offs</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EPSMap::get_int_mp</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="string-syntax">"room-offset"</span><span class="plain-syntax">, </span><span class="identifier-syntax">room_scope</span><span class="plain-syntax">);</span>
@ -323,7 +323,7 @@ rectangle around the whole thing...
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">map_parameter_scope</span><span class="plain-syntax"> *</span><span class="identifier-syntax">room_scope</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::get_parameters</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">map_parameter_scope</span><span class="plain-syntax"> *</span><span class="identifier-syntax">room_scope</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::get_parameters</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rem.html#SP11" class="function-link"><span class="function-syntax">RenderEPSMap::EPS_compile_line_width_setting</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">EPSMap::get_int_mp</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="string-syntax">"route-thickness"</span><span class="plain-syntax">, </span><span class="identifier-syntax">room_scope</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">bx</span><span class="plain-syntax"> = </span><span class="identifier-syntax">R</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">eps_x</span><span class="plain-syntax">;</span>
@ -334,7 +334,7 @@ rectangle around the whole thing...
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_STORY_DIRECTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">dir</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax"> = </span><a href="4-sm.html#SP7_15" class="function-link"><span class="function-syntax">PL::SpatialMap::room_exit</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">dir</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">exit</span><span class="plain-syntax"> = </span><span class="identifier-syntax">story_dir_to_page_dir</span><span class="plain-syntax">[</span><span class="identifier-syntax">dir</span><span class="plain-syntax">];</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-rem.html#SP2_6_1" class="named-paragraph-link"><span class="named-paragraph">Draw a single map connection as an EPS arrow</span><span class="named-paragraph-number">2.6.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><a href="4-rem.html#SP11" class="function-link"><span class="function-syntax">RenderEPSMap::EPS_compile_line_width_unsetting</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
@ -344,7 +344,7 @@ rectangle around the whole thing...
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">T_stiffness</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EPSMap::get_int_mp</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="string-syntax">"route-stiffness"</span><span class="plain-syntax">, </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::get_parameters</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">T_stiffness</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EPSMap::get_int_mp</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="string-syntax">"route-stiffness"</span><span class="plain-syntax">, </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::get_parameters</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">EPSMap::get_int_mp</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="string-syntax">"monochrome"</span><span class="plain-syntax">, </span><span class="identifier-syntax">level_scope</span><span class="plain-syntax">)) </span><a href="4-rem.html#SP14" class="function-link"><span class="function-syntax">RenderEPSMap::EPS_compile_set_greyscale</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="4-rem.html#SP13" class="function-link"><span class="function-syntax">RenderEPSMap::EPS_compile_set_colour</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">EPSMap::get_string_mp</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="string-syntax">"route-colour"</span><span class="plain-syntax">, </span><span class="identifier-syntax">level_scope</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Room_position</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">).</span><span class="identifier-syntax">z</span><span class="plain-syntax"> == </span><span class="identifier-syntax">Room_position</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">).</span><span class="identifier-syntax">z</span><span class="plain-syntax">) &amp;&amp;</span>
@ -398,7 +398,7 @@ actually go there in any visual way.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">map_parameter_scope</span><span class="plain-syntax"> *</span><span class="identifier-syntax">room_scope</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::get_parameters</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">map_parameter_scope</span><span class="plain-syntax"> *</span><span class="identifier-syntax">room_scope</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::get_parameters</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">bx</span><span class="plain-syntax"> = </span><span class="identifier-syntax">R</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">eps_x</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">by</span><span class="plain-syntax"> = </span><span class="identifier-syntax">R</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">fimd</span><span class="plain-syntax">.</span><span class="identifier-syntax">eps_y</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">boxsize</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EPSMap::get_int_mp</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="string-syntax">"room-size"</span><span class="plain-syntax">, </span><span class="identifier-syntax">room_scope</span><span class="plain-syntax">)/2;</span>
@ -469,7 +469,7 @@ actually go there in any visual way.
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> (</span><span class="identifier-syntax">xpart</span><span class="plain-syntax"> &lt; -5000) </span><span class="identifier-syntax">xpart</span><span class="plain-syntax">+=10000;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">EPSMap::get_int_mp</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="string-syntax">"monochrome"</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)) </span><a href="4-rem.html#SP14" class="function-link"><span class="function-syntax">RenderEPSMap::EPS_compile_set_greyscale</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="4-rem.html#SP13" class="function-link"><span class="function-syntax">RenderEPSMap::EPS_compile_set_colour</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">rh</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">colour</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">O</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::fi</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">rh</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">offset_from</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">O</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::fi</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">rh</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">offset_from</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">O</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">bx</span><span class="plain-syntax"> = </span><span class="identifier-syntax">O</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">eps_x</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">by</span><span class="plain-syntax"> = </span><span class="identifier-syntax">O</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">fimd</span><span class="plain-syntax">.</span><span class="identifier-syntax">eps_y</span><span class="plain-syntax">;</span>
@ -507,7 +507,7 @@ on &mdash; come from here.
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P_printed_name</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PropertyInferences::value_and_where</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::as_subject</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">P_printed_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::as_subject</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">P_printed_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Rvalues::is_CONSTANT_of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_text</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">)))) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">wn</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">));</span>
@ -523,9 +523,9 @@ on &mdash; come from here.
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">txt</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::empty</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">txt</span><span class="plain-syntax">, </span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">N</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">txt</span><span class="plain-syntax">, </span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">N</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-rem.html#SP3">&#167;3</a>.</li></ul>

View file

@ -531,17 +531,17 @@ door, which we take a note of if asked to do so.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="function-syntax">PL::SpatialMap::room_exit</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">PL::SpatialMap::room_exit</span></span>:<br/><a href="4-sm.html#SP9">&#167;9</a>, <a href="4-sm.html#SP42_3">&#167;42.3</a>, <a href="4-sm.html#SP44">&#167;44</a><br/>HTML Map - <a href="4-hm.html#SP1_3">&#167;1.3</a>, <a href="4-hm.html#SP10_2_2">&#167;10.2.2</a><br/>Render EPS Map - <a href="4-rem.html#SP2_6">&#167;2.6</a>, <a href="4-rem.html#SP2_6_1">&#167;2.6.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">origin</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">dir_num</span><span class="plain-syntax">, </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> **</span><span class="identifier-syntax">via</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">via</span><span class="plain-syntax">) *</span><span class="identifier-syntax">via</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">origin</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">origin</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) ||</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">origin</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">origin</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) ||</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">dir_num</span><span class="plain-syntax"> &lt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">dir_num</span><span class="plain-syntax"> &gt;= </span><span class="identifier-syntax">MAX_DIRECTIONS</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ultimate_destination</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">immediate_destination</span><span class="plain-syntax"> = </span><span class="identifier-syntax">origin</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">exits</span><span class="plain-syntax">[</span><span class="identifier-syntax">dir_num</span><span class="plain-syntax">];</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">immediate_destination</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">immediate_destination</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">immediate_destination</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ultimate_destination</span><span class="plain-syntax"> = </span><span class="identifier-syntax">immediate_destination</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::is_a_door</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">immediate_destination</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::is_a_door</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">immediate_destination</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">via</span><span class="plain-syntax">) *</span><span class="identifier-syntax">via</span><span class="plain-syntax"> = </span><span class="identifier-syntax">immediate_destination</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">A</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, *</span><span class="identifier-syntax">B</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::get_door_data</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">immediate_destination</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">A</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">B</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::get_door_data</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">immediate_destination</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">A</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">B</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">A</span><span class="plain-syntax"> == </span><span class="identifier-syntax">origin</span><span class="plain-syntax">) </span><span class="identifier-syntax">ultimate_destination</span><span class="plain-syntax"> = </span><span class="identifier-syntax">B</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">B</span><span class="plain-syntax"> == </span><span class="identifier-syntax">origin</span><span class="plain-syntax">) </span><span class="identifier-syntax">ultimate_destination</span><span class="plain-syntax"> = </span><span class="identifier-syntax">A</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
@ -2837,8 +2837,8 @@ contain.
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">mc1</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">first_room_in_submap</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">mc2</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">first_room_in_submap</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">R1</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">R2</span><span class="plain-syntax">)) { </span><span class="comment-syntax"> which should always happen, but just in case of an error</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">reg1</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::region_of</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R1</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">reg2</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::region_of</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R2</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">reg1</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::region_of</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R1</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">reg2</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::region_of</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R2</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">reg1</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">reg2</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> -1;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">reg1</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">reg2</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">reg1</span><span class="plain-syntax">) {</span>
@ -2970,12 +2970,12 @@ running time in check.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">sub</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">bounds</span><span class="plain-syntax">.</span><span class="identifier-syntax">population</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sub</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">first_room_in_submap</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">R</span><span class="plain-syntax">) { </span><span class="comment-syntax"> which should always happen, but just in case of an error</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">reg</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::region_of</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">reg</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::region_of</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">reg</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">, *</span><span class="identifier-syntax">closest_S</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">closest</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_ROOMS</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">S</span><span class="plain-syntax"> != </span><span class="identifier-syntax">R</span><span class="plain-syntax">) &amp;&amp; (</span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::region_of</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">) == </span><span class="identifier-syntax">reg</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">S</span><span class="plain-syntax"> != </span><span class="identifier-syntax">R</span><span class="plain-syntax">) &amp;&amp; (</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::region_of</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">) == </span><span class="identifier-syntax">reg</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">posnd</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">S</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">submap</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">positioned</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">diff</span><span class="plain-syntax"> = </span><span class="constant-syntax">2</span><span class="plain-syntax">*(</span><span class="identifier-syntax">R</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax"> - </span><span class="identifier-syntax">S</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">diff</span><span class="plain-syntax"> &lt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">diff</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">-</span><span class="identifier-syntax">diff</span><span class="plain-syntax">;</span>
@ -3094,23 +3094,23 @@ can make use of the following:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::is_a_direction</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::is_a_direction</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">R</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">direction_index</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">12</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">OW</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::opposite_direction</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W is a direction. The opposite of %+W is %+W.\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">OW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OW</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::opposite_direction</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"%S is a direction. The opposite of %S is %S.\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">OW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::is_a_region</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W is a region.\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::is_a_region</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"%S is a region.\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::is_a_door</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W is a door.\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">X</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::other_side_of_door</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::is_a_door</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"%S is a door.\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">X</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::other_side_of_door</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">X</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">XW</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">X</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"The other side of %+W is %+W.\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">XW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">XW</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">X</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"The other side of %S is %S.\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">XW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
</pre>
@ -3119,21 +3119,21 @@ can make use of the following:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">RW</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W is a room.\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">RW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">reg</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::region_of</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">RW</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"%S is a room.\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">RW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">reg</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::region_of</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">reg</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">RGW</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">reg</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">RGW</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">reg</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">reg</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">zone</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W is a region.\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">RGW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"%S is a region.\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">RGW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">reg</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">zone</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W is in %+W.\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">RW</span><span class="plain-syntax">, </span><span class="identifier-syntax">RGW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"%S is in %S.\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">RW</span><span class="plain-syntax">, </span><span class="identifier-syntax">RGW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">start</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP2" class="function-link"><span class="function-syntax">IXInstances::start_room</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">start</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::start_room</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">R</span><span class="plain-syntax"> == </span><span class="identifier-syntax">start</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"The player is in %+W.\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">RW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"The player is in %S.\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">RW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
</pre>
@ -3144,33 +3144,33 @@ can make use of the following:
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_ROOMS</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">RW</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">RW</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_STORY_DIRECTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><a href="4-sm.html#SP7_15" class="function-link"><span class="function-syntax">PL::SpatialMap::room_exit</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">D</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">S</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">D</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">OW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">D</span><span class="plain-syntax">) </span><span class="identifier-syntax">OW</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">OW</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">D</span><span class="plain-syntax">) </span><span class="identifier-syntax">OW</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">OW</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax"> &lt; </span><span class="constant-syntax">12</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">n</span><span class="plain-syntax"> = </span><a href="4-sm.html#SP7_14" class="function-link"><span class="function-syntax">PL::SpatialMap::usual_Inform_direction_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">opp</span><span class="plain-syntax"> = </span><a href="4-sm.html#SP7_8" class="function-link"><span class="function-syntax">PL::SpatialMap::opposite</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W is %s of %+W.\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">OW</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">, </span><span class="identifier-syntax">RW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"%S is %s of %S.\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">OW</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">, </span><span class="identifier-syntax">RW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">S</span><span class="plain-syntax">) &amp;&amp; (</span><a href="4-sm.html#SP7_15" class="function-link"><span class="function-syntax">PL::SpatialMap::room_exit</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">opp</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"%s of %+W is nowhere.\n"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"%s of %S is nowhere.\n"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="4-sm.html#SP7_14" class="function-link"><span class="function-syntax">PL::SpatialMap::usual_Inform_direction_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">opp</span><span class="plain-syntax">), </span><span class="identifier-syntax">OW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dir</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_DIRECTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">dir</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">dir</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">direction_index</span><span class="plain-syntax"> == </span><span class="identifier-syntax">i</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">DW</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dir</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W is %W of %+W.\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">OW</span><span class="plain-syntax">, </span><span class="identifier-syntax">DW</span><span class="plain-syntax">, </span><span class="identifier-syntax">RW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">opp</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::opposite_direction</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dir</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">DW</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dir</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"%S is %S of %S.\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">OW</span><span class="plain-syntax">, </span><span class="identifier-syntax">DW</span><span class="plain-syntax">, </span><span class="identifier-syntax">RW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">opp</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::opposite_direction</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dir</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">od</span><span class="plain-syntax"> = </span><span class="identifier-syntax">opp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">direction_index</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">S</span><span class="plain-syntax">) &amp;&amp; (</span><a href="4-sm.html#SP7_15" class="function-link"><span class="function-syntax">PL::SpatialMap::room_exit</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">od</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">OPW</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dir</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"%W of %+W is nowhere.\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">OPW</span><span class="plain-syntax">, </span><span class="identifier-syntax">OW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OPW</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dir</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"%S of %S is nowhere.\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">OPW</span><span class="plain-syntax">, </span><span class="identifier-syntax">OW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
@ -3195,11 +3195,11 @@ can make use of the following:
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::SpatialMap::index_room_connections</span><button class="popup" onclick="togglePopup('usagePopup75')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup75">Usage of <span class="code-font"><span class="function-syntax">PL::SpatialMap::index_room_connections</span></span>:<br/>The Map - <a href="3-tm.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">RW</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">); </span><span class="comment-syntax"> name of the origin room</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">RW</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">); </span><span class="comment-syntax"> name of the origin room</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dir</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_DIRECTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">dir</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> = </span><span class="identifier-syntax">dir</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">direction_index</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">opp</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::opposite_direction</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dir</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">opp</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::opposite_direction</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dir</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">od</span><span class="plain-syntax"> = </span><span class="identifier-syntax">opp</span><span class="plain-syntax">?(</span><span class="identifier-syntax">opp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">direction_index</span><span class="plain-syntax">):(-1);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><a href="4-sm.html#SP7_15" class="function-link"><span class="function-syntax">PL::SpatialMap::room_exit</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">D</span><span class="plain-syntax">);</span>
@ -3210,33 +3210,33 @@ can make use of the following:
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">D</span><span class="plain-syntax">) </span><span class="identifier-syntax">icon</span><span class="plain-syntax"> = </span><span class="string-syntax">"e_arrow_door_blocked"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_TAG_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"img"</span><span class="plain-syntax">, </span><span class="string-syntax">"border=0 src=inform:/map_icons/%s.png"</span><span class="plain-syntax">, </span><span class="identifier-syntax">icon</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&amp;nbsp;"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">dir</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">dir</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" to "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">D</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" via "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">D</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">D</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">D</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">D</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" (a door)"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">S</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">opp</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">B</span><span class="plain-syntax"> = </span><a href="4-sm.html#SP7_15" class="function-link"><span class="function-syntax">PL::SpatialMap::room_exit</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">od</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">B</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" (but "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">opp</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">opp</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" from "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" is nowhere)"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">B</span><span class="plain-syntax"> != </span><span class="identifier-syntax">R</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" (but "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">opp</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">opp</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" from "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" is "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">B</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">B</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">")"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
@ -3249,7 +3249,6 @@ can make use of the following:
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_DIRECTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">dir</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> = </span><span class="identifier-syntax">dir</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">direction_index</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-sm.html#SP7_15" class="function-link"><span class="function-syntax">PL::SpatialMap::room_exit</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)) </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">DW</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dir</span><span class="plain-syntax">); </span><span class="comment-syntax"> name of the direction</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">k</span><span class="plain-syntax">++;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">k</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::open_indented_p</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="string-syntax">"hanging"</span><span class="plain-syntax">);</span>
@ -3258,20 +3257,16 @@ can make use of the following:
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"; "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Lexer::word_raw_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">DW</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">j</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">p</span><span class="plain-syntax">[</span><span class="identifier-syntax">j</span><span class="plain-syntax">]; </span><span class="identifier-syntax">j</span><span class="plain-syntax">++) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">j</span><span class="plain-syntax">==0) </span><span class="identifier-syntax">PUT_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">, </span><span class="identifier-syntax">Characters::toupper</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">[</span><span class="identifier-syntax">j</span><span class="plain-syntax">]));</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">PUT_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">, </span><span class="identifier-syntax">p</span><span class="plain-syntax">[</span><span class="identifier-syntax">j</span><span class="plain-syntax">]);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::length</span><span class="plain-syntax">(</span><span class="identifier-syntax">DW</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">1</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">, </span><span class="string-syntax">" %+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::trim_first_word</span><span class="plain-syntax">(</span><span class="identifier-syntax">DW</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">DW</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dir</span><span class="plain-syntax">); </span><span class="comment-syntax"> name of the direction</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">, </span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">DW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Str::put_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">Characters::toupper</span><span class="plain-syntax">(</span><span class="identifier-syntax">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">)));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">, </span><span class="string-syntax">" from "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">RW</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">, </span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">RW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">RW</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">, </span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">RW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">, </span><span class="string-syntax">"here"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">, </span><span class="string-syntax">" is .[=0x000A=]"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PasteButtons::paste_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&amp;nbsp;%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">DW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&amp;nbsp;%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">DW</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">k</span><span class="plain-syntax">&gt;0) </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
@ -3294,7 +3289,7 @@ can make use of the following:
<span class="plain-syntax"> </span><span class="identifier-syntax">Room_position</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">).</span><span class="identifier-syntax">x</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Room_position</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">).</span><span class="identifier-syntax">y</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Room_position</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">).</span><span class="identifier-syntax">z</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ins.html#SP4" class="function-link"><span class="function-syntax">IXInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">R</span><span class="plain-syntax"> == </span><span class="identifier-syntax">faux_benchmark</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" (benchmark)"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\n"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>

View file

@ -1,36 +1,36 @@
100.0% in inform7 run
55.9% in compilation to Inter
40.0% in //Sequence::undertake_queued_tasks//
3.6% in //MajorNodes::pre_pass//
2.5% in //MajorNodes::pass_1//
56.8% in compilation to Inter
40.8% in //Sequence::undertake_queued_tasks//
3.7% in //MajorNodes::pre_pass//
2.6% in //MajorNodes::pass_1//
2.1% in //RTPhrasebook::compile_entries//
1.5% in //ImperativeDefinitions::assess_all//
1.4% in //ImperativeDefinitions::assess_all//
1.0% in //RTKindConstructors::compile//
0.4% in //ImperativeDefinitions::compile_first_block//
0.4% in //MajorNodes::pass_2//
0.4% in //Sequence::undertake_queued_tasks//
0.4% in //Sequence::undertake_queued_tasks//
0.4% in //World::stage_V//
0.3% in //Sequence::undertake_queued_tasks//
0.1% in //CompletionModule::compile//
0.2% in //CompletionModule::compile//
0.1% in //InferenceSubjects::emit_all//
0.1% in //RTKindConstructors::compile_permissions//
0.1% in //Task::make_built_in_kind_constructors//
0.1% in //World::stages_II_and_III//
2.0% not specifically accounted for
42.2% in running Inter pipeline
11.5% in step preparation
10.0% in inter step 7/14: consolidate-text
1.9% not specifically accounted for
41.1% in running Inter pipeline
11.0% in step preparation
9.7% in inter step 7/14: consolidate-text
8.0% in inter step 2/14: link
7.1% in inter step 14/14: generate inform6 -> auto.inf
1.5% in inter step 10/14: make-identifiers-unique
6.9% in inter step 14/14: generate inform6 -> auto.inf
1.4% in inter step 10/14: make-identifiers-unique
0.4% in inter step 11/14: reconcile-verbs
0.3% in inter step 13/14: eliminate-redundant-operations
0.3% in inter step 6/14: assimilate
0.3% in inter step 8/14: resolve-external-symbols
0.2% in inter step 13/14: eliminate-redundant-operations
0.2% in inter step 6/14: assimilate
0.2% in inter step 8/14: resolve-external-symbols
0.1% in inter step 12/14: eliminate-redundant-labels
0.1% in inter step 4/14: parse-linked-matter
0.1% in inter step 5/14: resolve-conditional-compilation
0.1% in inter step 9/14: inspect-plugs
1.9% not specifically accounted for
1.6% in supervisor
0.2% not specifically accounted for
1.7% in supervisor
0.3% not specifically accounted for

View file

@ -22,6 +22,8 @@ To index instances.
=
typedef struct faux_instance {
int index_appearances; /* how many times have I appeared thus far in the World index? */
struct text_stream *name;
struct text_stream *abbrev;
struct instance *original;
int is_a_thing;
int is_a_supporter;
@ -102,6 +104,40 @@ fi_map_data IXInstances::new_fimd(faux_instance *FI) {
return fimd;
}
@ When names are abbreviated for use on the World Index map (for instance,
"Marble Hallway" becomes "MH") each word is tested against the following
nonterminal; those which match are omitted. So, for instance, "Queen Of The
South" comes out as "QS".
@d ABBREV_ROOMS_TO 2
=
<map-name-abbreviation-omission-words> ::=
in |
of |
<article>
@<Compose the abbreviated name@> =
wording W = Instances::get_name(I, FALSE);
if (Wordings::nonempty(W)) {
int c = 0;
LOOP_THROUGH_WORDING(i, W) {
if ((i > Wordings::first_wn(W)) && (i < Wordings::last_wn(W)) &&
(<map-name-abbreviation-omission-words>(Wordings::one_word(i)))) continue;
wchar_t *p = Lexer::word_raw_text(i);
if (c++ < ABBREV_ROOMS_TO) PUT_TO(FI->abbrev, Characters::toupper(p[0]));
}
LOOP_THROUGH_WORDING(i, W) {
if ((i > Wordings::first_wn(W)) && (i < Wordings::last_wn(W)) &&
(<map-name-abbreviation-omission-words>(Wordings::one_word(i)))) continue;
wchar_t *p = Lexer::word_raw_text(i);
for (int j=1; p[j]; j++)
if (Characters::vowel(p[j]) == FALSE)
if (c++ < ABBREV_ROOMS_TO) PUT_TO(FI->abbrev, p[j]);
if ((c++ < ABBREV_ROOMS_TO) && (p[1])) PUT_TO(FI->abbrev, p[1]);
}
}
@ =
faux_instance *start_faux_instance = NULL;
faux_instance *faux_yourself = NULL;
@ -112,6 +148,11 @@ void IXInstances::make_faux(void) {
LOOP_OVER_INSTANCES(I, K_object) {
faux_instance *FI = CREATE(faux_instance);
FI->index_appearances = 0;
FI->name = Str::new();
Instances::write_name(FI->name, I);
FI->abbrev = Str::new();
@<Compose the abbreviated name@>;
FI->original = I;
FI->is_a_thing = Instances::of_kind(I, K_thing);
FI->is_a_supporter = Instances::of_kind(I, K_supporter);
@ -221,8 +262,6 @@ void IXInstances::make_faux(void) {
faux_instance *FR;
LOOP_OVER(FR, faux_instance)
if (FR->is_a_direction) {
FR->fimd.map_connection_a = IXInstances::fi(MAP_DATA(FR->original)->map_connection_a);
FR->fimd.map_connection_b = IXInstances::fi(MAP_DATA(FR->original)->map_connection_b);
FR->opposite_direction = IXInstances::fi(Map::get_value_of_opposite_property(FR->original));
}
faux_instance *FD;
@ -231,6 +270,8 @@ void IXInstances::make_faux(void) {
parse_node *S = PropertyInferences::value_of(
Instances::as_subject(I), P_other_side);
FD->other_side = IXInstances::fi(Rvalues::to_object_instance(S));
FD->fimd.map_connection_a = IXInstances::fi(MAP_DATA(FD->original)->map_connection_a);
FD->fimd.map_connection_b = IXInstances::fi(MAP_DATA(FD->original)->map_connection_b);
}
}
@ -246,8 +287,13 @@ faux_instance *IXInstances::yourself(void) {
@h Naming.
=
text_stream *IXInstances::get_name(faux_instance *I) {
if (I == NULL) return NULL;
return I->name;
}
void IXInstances::write_name(OUTPUT_STREAM, faux_instance *I) {
Instances::write_name(OUT, I->original);
WRITE("%S", IXInstances::get_name(I));
}
void IXInstances::write_kind(OUTPUT_STREAM, faux_instance *I) {
@ -258,11 +304,6 @@ void IXInstances::write_kind_chain(OUTPUT_STREAM, faux_instance *I) {
WRITE("%S", I->kind_chain);
}
wording IXInstances::get_name(faux_instance *FI) {
if (FI == NULL) return EMPTY_WORDING;
return Instances::get_name(FI->original, FALSE);
}
inference_subject *IXInstances::as_subject(faux_instance *FI) {
if (FI == NULL) return NULL;
return Instances::as_subject(FI->original);

View file

@ -62,9 +62,9 @@ void IXPhysicalWorld::render(OUTPUT_STREAM, int test_only) {
}
@<Index the name and super-region of the region@> =
WRITE("<b>The <i>%+W</i> region", IXInstances::get_name(reg));
WRITE("<b>The <i>%S</i> region", IXInstances::get_name(reg));
faux_instance *within = IXInstances::region_of(reg);
if (within) WRITE(" within the <i>%+W</i> region", IXInstances::get_name(within));
if (within) WRITE(" within the <i>%S</i> region", IXInstances::get_name(within));
WRITE("</b>");
@<Give room details for rooms outside any region in the World index@> =

View file

@ -493,9 +493,7 @@ from each other.)
if (k == 1) {
HTML_OPEN("p"); WRITE("<i>Mapping ");
} else WRITE("; ");
wording DW = IXInstances::get_name(D); /* name of the direction */
wording AW = IXInstances::get_name(A); /* name of the as-direction */
WRITE("%+W as %+W", DW, AW);
WRITE("%S as %S", IXInstances::get_name(D), IXInstances::get_name(A));
}
}
if (k > 0) { WRITE("</i>"); HTML_CLOSE("p"); }
@ -926,7 +924,7 @@ void PL::HTMLMap::index_room_square(OUTPUT_STREAM, faux_instance *I, int pass) {
HTML_OPEN_WITH("table",
"border=\"%d\" cellpadding=\"0\" cellspacing=\"0\" "
"bordercolor=\"#%s\" width=\"%d\" height=\"%d\" "
"title=\"%+W\"",
"title=\"%S\"",
b, ROOM_BORDER_COLOUR, MAP_CELL_INNER_SIZE, MAP_CELL_INNER_SIZE, IXInstances::get_name(I));
HTML_OPEN("tr");
HTML_OPEN_WITH("td", "valign=\"middle\" align=\"center\" bgcolor=\"#%w\"",
@ -947,10 +945,6 @@ void PL::HTMLMap::index_room_square(OUTPUT_STREAM, faux_instance *I, int pass) {
}
}
@
@d ABBREV_ROOMS_TO 2
@<Write the text of the abbreviated name of the room@> =
if (pass == 1) {
HTML_OPEN_WITH("a", "href=#wo_%d style=\"text-decoration: none\"",
@ -959,7 +953,7 @@ void PL::HTMLMap::index_room_square(OUTPUT_STREAM, faux_instance *I, int pass) {
}
if ((pass == 1) && (I == faux_benchmark)) HTML_OPEN("b");
TEMPORARY_TEXT(abbrev)
@<Work out the abbreviation for this room's name@>;
WRITE_TO(abbrev, "%S", I->abbrev);
#ifdef HTML_MAP_FONT_SIZE
HTML_OPEN_WITH("span", "style=\"font-size:%dpx;\"", HTML_MAP_FONT_SIZE);
#endif
@ -972,38 +966,6 @@ void PL::HTMLMap::index_room_square(OUTPUT_STREAM, faux_instance *I, int pass) {
if (pass == 1) { HTML::end_colour(OUT); HTML_CLOSE("a"); }
DISCARD_TEXT(abbrev)
@ When names are abbreviated for use on the World Index map (for faux_instance,
"Marble Hallway" becomes "MH") each word is tested against the following
nonterminal; those which match are omitted. So, for faux_instance, "Queen Of The
South" comes out as "QS".
=
<map-name-abbreviation-omission-words> ::=
in |
of |
<article>
@<Work out the abbreviation for this room's name@> =
wording W = IXInstances::get_name(I);
if (Wordings::nonempty(W)) {
int c = 0;
LOOP_THROUGH_WORDING(i, W) {
if ((i > Wordings::first_wn(W)) && (i < Wordings::last_wn(W)) &&
(<map-name-abbreviation-omission-words>(Wordings::one_word(i)))) continue;
wchar_t *p = Lexer::word_raw_text(i);
if (c++ < ABBREV_ROOMS_TO) PUT_TO(abbrev, Characters::toupper(p[0]));
}
LOOP_THROUGH_WORDING(i, W) {
if ((i > Wordings::first_wn(W)) && (i < Wordings::last_wn(W)) &&
(<map-name-abbreviation-omission-words>(Wordings::one_word(i)))) continue;
wchar_t *p = Lexer::word_raw_text(i);
for (int j=1; p[j]; j++)
if (Characters::vowel(p[j]) == FALSE)
if (c++ < ABBREV_ROOMS_TO) PUT_TO(abbrev, p[j]);
if ((c++ < ABBREV_ROOMS_TO) && (p[1])) PUT_TO(abbrev, p[1]);
}
}
@h The colour chip.
The first of two extras, which aren't strictly speaking part of the HTML map.
This is the chip shown on the "details" box for a room in the World Index.
@ -1050,7 +1012,7 @@ int PL::HTMLMap::add_key_for(OUTPUT_STREAM, faux_instance *reg) {
} else {
WRITE(", ");
}
WRITE("%+W", IXInstances::get_name(R));
WRITE("%S", IXInstances::get_name(R));
}
}
if (count > 0) @<End the region key table for this region@>;
@ -1066,8 +1028,7 @@ int PL::HTMLMap::add_key_for(OUTPUT_STREAM, faux_instance *reg) {
HTML_CLOSE("td"); WRITE("\n");
HTML_OPEN_WITH("td", "valign=\"middle\" align=\"left\"");
WRITE("<b>");
wording W = IXInstances::get_name(reg);
if (reg) WRITE("%+W", W);
if (reg) WRITE("%S", IXInstances::get_name(reg));
else WRITE("<i>Not in any region</i>");
WRITE("</b>: ");

View file

@ -350,9 +350,9 @@ void RenderEPSMap::plot_text_at(OUTPUT_STREAM, wchar_t *text_to_plot, faux_insta
@<If that fails, try taking the name from its source text name@> =
if (Str::len(txt) == 0) {
wording W = IXInstances::get_name(I);
if (Wordings::empty(W)) return;
WRITE_TO(txt, "%+W", W);
text_stream *N = IXInstances::get_name(I);
if (Str::len(N)) return;
WRITE_TO(txt, "%S", N);
}
@ =

View file

@ -2690,73 +2690,73 @@ void PL::SpatialMap::log_precis_of_map(void) {
@<Declare the regions and doors in the precis@> =
if ((IXInstances::is_a_direction(R)) &&
(R->direction_index >= 12)) {
wording W = IXInstances::get_name(R);
wording OW = IXInstances::get_name(IXInstances::opposite_direction(R));
LOG("%+W is a direction. The opposite of %+W is %+W.\n", W, W, OW);
text_stream *W = IXInstances::get_name(R);
text_stream *OW = IXInstances::get_name(IXInstances::opposite_direction(R));
LOG("%S is a direction. The opposite of %S is %S.\n", W, W, OW);
}
if (IXInstances::is_a_region(R)) {
wording W = IXInstances::get_name(R);
LOG("%+W is a region.\n", W);
text_stream *W = IXInstances::get_name(R);
LOG("%S is a region.\n", W);
}
if (IXInstances::is_a_door(R)) {
wording W = IXInstances::get_name(R);
LOG("%+W is a door.\n", W);
text_stream *W = IXInstances::get_name(R);
LOG("%S is a door.\n", W);
faux_instance *X = IXInstances::other_side_of_door(R);
if (X) {
wording XW = IXInstances::get_name(X);
LOG("The other side of %+W is %+W.\n", W, XW);
text_stream *XW = IXInstances::get_name(X);
LOG("The other side of %S is %S.\n", W, XW);
}
}
@<Declare the rooms in the precis, starting with the start room@> =
if (IXInstances::is_a_room(R)) {
wording RW = IXInstances::get_name(R);
LOG("%+W is a room.\n", RW);
text_stream *RW = IXInstances::get_name(R);
LOG("%S is a room.\n", RW);
faux_instance *reg = IXInstances::region_of(R);
if (reg) {
wording RGW = IXInstances::get_name(reg);
text_stream *RGW = IXInstances::get_name(reg);
if (reg->fimd.zone == 1) {
LOG("%+W is a region.\n", RGW);
LOG("%S is a region.\n", RGW);
reg->fimd.zone = 0;
}
LOG("%+W is in %+W.\n", RW, RGW);
LOG("%S is in %S.\n", RW, RGW);
}
faux_instance *start = IXInstances::start_room();
if (R == start) {
LOG("The player is in %+W.\n", RW);
LOG("The player is in %S.\n", RW);
}
}
@<Declare the map connections in the precis@> =
faux_instance *R;
LOOP_OVER_ROOMS(R) {
wording RW = IXInstances::get_name(R);
text_stream *RW = IXInstances::get_name(R);
int i;
LOOP_OVER_STORY_DIRECTIONS(i) {
faux_instance *D = NULL;
faux_instance *S = PL::SpatialMap::room_exit(R, i, &D);
if ((S) || (D)) {
wording OW = EMPTY_WORDING;
text_stream *OW = NULL;
if (D) OW = IXInstances::get_name(D);
else OW = IXInstances::get_name(S);
if (i < 12) {
char *n = PL::SpatialMap::usual_Inform_direction_name(i);
int opp = PL::SpatialMap::opposite(i);
LOG("%+W is %s of %+W.\n", OW, n, RW);
LOG("%S is %s of %S.\n", OW, n, RW);
if ((S) && (PL::SpatialMap::room_exit(S, opp, NULL) == NULL))
LOG("%s of %+W is nowhere.\n",
LOG("%s of %S is nowhere.\n",
PL::SpatialMap::usual_Inform_direction_name(opp), OW);
} else {
faux_instance *dir;
LOOP_OVER_DIRECTIONS(dir)
if (dir->direction_index == i) {
wording DW = IXInstances::get_name(dir);
LOG("%+W is %W of %+W.\n", OW, DW, RW);
text_stream *DW = IXInstances::get_name(dir);
LOG("%S is %S of %S.\n", OW, DW, RW);
faux_instance *opp = IXInstances::opposite_direction(dir);
int od = opp->direction_index;
if ((S) && (PL::SpatialMap::room_exit(S, od, NULL) == NULL)) {
wording OPW = IXInstances::get_name(dir);
LOG("%W of %+W is nowhere.\n", OPW, OW);
text_stream *OPW = IXInstances::get_name(dir);
LOG("%S of %S is nowhere.\n", OPW, OW);
}
}
}
@ -2779,7 +2779,7 @@ void PL::SpatialMap::visit_to_transcribe(parse_node *p) {
=
void PL::SpatialMap::index_room_connections(OUTPUT_STREAM, faux_instance *R) {
wording RW = IXInstances::get_name(R); /* name of the origin room */
text_stream *RW = IXInstances::get_name(R); /* name of the origin room */
faux_instance *dir;
LOOP_OVER_DIRECTIONS(dir) {
int i = dir->direction_index;
@ -2833,7 +2833,6 @@ void PL::SpatialMap::index_room_connections(OUTPUT_STREAM, faux_instance *R) {
LOOP_OVER_DIRECTIONS(dir) {
int i = dir->direction_index;
if (PL::SpatialMap::room_exit(R, i, NULL)) continue;
wording DW = IXInstances::get_name(dir); /* name of the direction */
k++;
if (k == 1) {
HTML::open_indented_p(OUT, 1, "hanging");
@ -2842,20 +2841,16 @@ void PL::SpatialMap::index_room_connections(OUTPUT_STREAM, faux_instance *R) {
WRITE("; ");
}
TEMPORARY_TEXT(TEMP)
wchar_t *p = Lexer::word_raw_text(Wordings::first_wn(DW));
for (int j=0; p[j]; j++) {
if (j==0) PUT_TO(TEMP, Characters::toupper(p[j]));
else PUT_TO(TEMP, p[j]);
}
if (Wordings::length(DW) > 1)
WRITE_TO(TEMP, " %+W", Wordings::trim_first_word(DW));
text_stream *DW = IXInstances::get_name(dir); /* name of the direction */
WRITE_TO(TEMP, "%S", DW);
Str::put_at(TEMP, 0, Characters::toupper(Str::get_at(TEMP, 0)));
WRITE_TO(TEMP, " from ");
if (Wordings::nonempty(RW)) WRITE_TO(TEMP, "%+W", RW);
if (Str::len(RW) > 0) WRITE_TO(TEMP, "%S", RW);
else WRITE_TO(TEMP, "here");
WRITE_TO(TEMP, " is .[=0x000A=]");
PasteButtons::paste_text(OUT, TEMP);
DISCARD_TEXT(TEMP)
WRITE("&nbsp;%+W", DW);
WRITE("&nbsp;%S", DW);
}
if (k>0) HTML_CLOSE("p");
}