1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-07-01 06:24:58 +03:00

Began huge refactor of World index

This commit is contained in:
Graham Nelson 2021-06-21 23:37:27 +01:00
parent b25a8ccadf
commit 9a8db049b9
130 changed files with 7402 additions and 6749 deletions

View file

@ -191,7 +191,7 @@ text, sorted into kind order of left and then right operand.
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="6-ae.html#SP1">&#167;1</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="6-le.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresscurrent">ae</li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progressnext"><a href="6-pe.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="6-le.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresscurrent">ae</li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progresssection"><a href="6-sg.html">sg</a></li><li class="progressnext"><a href="6-pe.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -146,7 +146,7 @@ function togglePopup(material_id) {
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="6-ge2.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresscurrent">ae2</li><li class="progressnextoff">&#10095;</li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="6-ge2.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresscurrent">ae2</li><li class="progresssection"><a href="6-sg.html">sg</a></li><li class="progressnext"><a href="6-sg.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -115,7 +115,7 @@ function togglePopup(material_id) {
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="6-ce2.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresscurrent">be</li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progressnext"><a href="6-re.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="6-ce2.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresscurrent">be</li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progresssection"><a href="6-sg.html">sg</a></li><li class="progressnext"><a href="6-re.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -256,7 +256,7 @@ giving only minimal entries about them.
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="6-ce.html#SP2">&#167;2</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="6-lxc.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresscurrent">ce</li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progressnext"><a href="6-ce2.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="6-lxc.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresscurrent">ce</li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progresssection"><a href="6-sg.html">sg</a></li><li class="progressnext"><a href="6-ce2.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -150,7 +150,7 @@ simplified form of the iFiction record, without the XML overhead.
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="6-ce.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresscurrent">ce2</li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progressnext"><a href="6-be.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="6-ce.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresscurrent">ce2</li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progresssection"><a href="6-sg.html">sg</a></li><li class="progressnext"><a href="6-be.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -655,7 +655,7 @@ whole row.
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="6-pe.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresscurrent">ce3</li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progressnext"><a href="6-pe2.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="6-pe.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresscurrent">ce3</li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progresssection"><a href="6-sg.html">sg</a></li><li class="progressnext"><a href="6-pe2.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -282,7 +282,7 @@ order of parsing &mdash; this is what the reader of the index is interested in.
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="6-te2.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresscurrent">ce4</li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progressnext"><a href="6-ge2.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="6-te2.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresscurrent">ce4</li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progresssection"><a href="6-sg.html">sg</a></li><li class="progressnext"><a href="6-ge2.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -150,7 +150,7 @@ function togglePopup(material_id) {
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="6-ee.html#SP1">&#167;1</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="6-re.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresscurrent">ee</li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progressnext"><a href="6-fe.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="6-re.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresscurrent">ee</li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progresssection"><a href="6-sg.html">sg</a></li><li class="progressnext"><a href="6-fe.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -135,7 +135,7 @@ function togglePopup(material_id) {
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="6-ee2.html#SP1_1">&#167;1.1</a> (twice).</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="6-rfse.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresscurrent">ee2</li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progressnext"><a href="6-se.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="6-rfse.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresscurrent">ee2</li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progresssection"><a href="6-sg.html">sg</a></li><li class="progressnext"><a href="6-se.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -353,7 +353,7 @@ to match this width, preserving the aspect ratio.
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="6-fe.html#SP1">&#167;1</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="6-ee.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresscurrent">fe</li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progressnext"><a href="6-te.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="6-ee.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresscurrent">fe</li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progresssection"><a href="6-sg.html">sg</a></li><li class="progressnext"><a href="6-te.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -82,7 +82,7 @@ function togglePopup(material_id) {
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="6-ve2.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresscurrent">ge</li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progressnext"><a href="6-le.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="6-ve2.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresscurrent">ge</li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progresssection"><a href="6-sg.html">sg</a></li><li class="progressnext"><a href="6-le.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -305,7 +305,7 @@ function togglePopup(material_id) {
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="6-ce4.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresscurrent">ge2</li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progressnext"><a href="6-ae2.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="6-ce4.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresscurrent">ge2</li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progresssection"><a href="6-sg.html">sg</a></li><li class="progressnext"><a href="6-ae2.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -288,7 +288,7 @@ pragma is set:
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="6-ie.html#SP2">&#167;2</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="6-se.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresscurrent">ie</li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progressnext"><a href="6-ve2.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="6-se.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresscurrent">ie</li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progresssection"><a href="6-sg.html">sg</a></li><li class="progressnext"><a href="6-ve2.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -1091,7 +1091,7 @@ quotes.
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="6-ii.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresscurrent">ifs</li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progressnext"><a href="6-ir.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="6-ii.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresscurrent">ifs</li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progresssection"><a href="6-sg.html">sg</a></li><li class="progressnext"><a href="6-ir.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -288,7 +288,7 @@ time.) <span class="extract"><span class="extract-syntax">{-index:name}</span></
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="6-ii.html#SP3">&#167;3</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="5-fi6.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresscurrent">ii</li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progressnext"><a href="6-ifs.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="5-fi6.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresscurrent">ii</li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progresssection"><a href="6-sg.html">sg</a></li><li class="progressnext"><a href="6-ifs.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -710,7 +710,7 @@ text to assert a change:
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="6-ir.html#SP8">&#167;8</a> (twice).</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="6-ifs.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresscurrent">ir</li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progressnext"><a href="6-lxc.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="6-ifs.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresscurrent">ir</li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progresssection"><a href="6-sg.html">sg</a></li><li class="progressnext"><a href="6-lxc.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -94,7 +94,7 @@ function togglePopup(material_id) {
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="6-ge.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresscurrent">le</li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progressnext"><a href="6-ae.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="6-ge.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresscurrent">le</li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progresssection"><a href="6-sg.html">sg</a></li><li class="progressnext"><a href="6-ae.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -425,7 +425,7 @@ than (say) quicksort is not great.
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="6-lxc.html#SP8">&#167;8</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="6-ir.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresscurrent">lxc</li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progressnext"><a href="6-ce.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="6-ir.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresscurrent">lxc</li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progresssection"><a href="6-sg.html">sg</a></li><li class="progressnext"><a href="6-ce.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -592,7 +592,7 @@ rest in ascending alphabetical order.
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="6-ae.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresscurrent">pe</li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progressnext"><a href="6-ce3.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="6-ae.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresscurrent">pe</li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progresssection"><a href="6-sg.html">sg</a></li><li class="progressnext"><a href="6-ce3.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -130,7 +130,7 @@ function togglePopup(material_id) {
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="6-ce3.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresscurrent">pe2</li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progressnext"><a href="6-te2.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="6-ce3.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresscurrent">pe2</li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progresssection"><a href="6-sg.html">sg</a></li><li class="progressnext"><a href="6-te2.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -112,7 +112,7 @@ function togglePopup(material_id) {
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="6-be.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresscurrent">re</li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progressnext"><a href="6-ee.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="6-be.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresscurrent">re</li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progresssection"><a href="6-sg.html">sg</a></li><li class="progressnext"><a href="6-ee.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -94,7 +94,7 @@ function togglePopup(material_id) {
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="6-ve.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresscurrent">rfse</li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progressnext"><a href="6-ee2.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="6-ve.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresscurrent">rfse</li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progresssection"><a href="6-sg.html">sg</a></li><li class="progressnext"><a href="6-ee2.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -275,7 +275,7 @@ their contents in logical order.
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="6-ee2.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresscurrent">se</li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progressnext"><a href="6-ie.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="6-ee2.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresscurrent">se</li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progresssection"><a href="6-sg.html">sg</a></li><li class="progressnext"><a href="6-ie.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -13,14 +13,6 @@
<link href="../docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
<script>
function togglePopup(material_id) {
var popup = document.getElementById(material_id);
popup.classList.toggle("show");
}
</script>
<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
<script>
MathJax = {
tex: {
inlineMath: '$', '$'], ['\\(', '\\)'
@ -34,6 +26,14 @@ MathJax = {
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js">
</script>
<script>
function togglePopup(material_id) {
var popup = document.getElementById(material_id);
popup.classList.toggle("show");
}
</script>
<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">
</head>
@ -61,11 +61,11 @@ MathJax = {
<li><a href="../runtime-module/index.html">runtime</a></li>
<li><a href="../if-module/index.html">if</a></li>
<li><a href="../multimedia-module/index.html">multimedia</a></li>
<li><a href="index.html"><span class="selectedlink">index</span></a></li>
<li><a href="../index-module/index.html">index</a></li>
</ul><h2>Inter Modules</h2><ul>
<li><a href="../bytecode-module/index.html">bytecode</a></li>
<li><a href="../building-module/index.html">building</a></li>
<li><a href="../codegen-module/index.html">codegen</a></li>
<li><a href="index.html"><span class="selectedlink">codegen</span></a></li>
</ul><h2>Services</h2><ul>
<li><a href="../arch-module/index.html">arch</a></li>
<li><a href="../calculus-module/index.html">calculus</a></li>
@ -83,10 +83,10 @@ MathJax = {
<main role="main">
<!--Weave of 'Spatial Geometry' generated by Inweb-->
<div class="breadcrumbs">
<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#4">Chapter 4: Visualising Space</a></li><li><b>Spatial Geometry</b></li></ul></div>
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inter Modules</a></li><li><a href="index.html">codegen</a></li><li><a href="index.html#6">Chapter 6: Index</a></li><li><b>Spatial Geometry</b></li></ul></div>
<p class="purpose">To deal with vectors and cuboids in a three-dimensional integer lattice.</p>
<ul class="toc"><li><a href="4-sg.html#SP4">&#167;4. Vectors</a></li><li><a href="4-sg.html#SP7">&#167;7. Lengths</a></li><li><a href="4-sg.html#SP8">&#167;8. Angles</a></li><li><a href="4-sg.html#SP9">&#167;9. Cuboids</a></li></ul><hr class="tocbar">
<ul class="toc"><li><a href="6-sg.html#SP4">&#167;4. Vectors</a></li><li><a href="6-sg.html#SP7">&#167;7. Lengths</a></li><li><a href="6-sg.html#SP8">&#167;8. Angles</a></li><li><a href="6-sg.html#SP9">&#167;9. Cuboids</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </b>We will store 3-vectors in the obvious way:
</p>
@ -96,7 +96,7 @@ MathJax = {
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">x</span><span class="plain-syntax">, </span><span class="identifier-syntax">y</span><span class="plain-syntax">, </span><span class="identifier-syntax">z</span><span class="plain-syntax">;</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">vector</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure vector is accessed in 4/sm, 4/hm, 4/em and here.</li></ul>
<ul class="endnotetexts"><li>The structure vector is private to this section.</li></ul>
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. </b>Some useful constant vectors, including those pointing in each direction.
Note that these are not of unit length &mdash; rather, they are the ideal grid
offsets on the map we will eventually draw.
@ -129,11 +129,11 @@ corners are meaningless and are by convention at the origin.
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">corner1</span><span class="plain-syntax">;</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">cuboid</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure cuboid is accessed in 4/sm, 4/hm, 4/em and here.</li></ul>
<ul class="endnotetexts"><li>The structure cuboid is private to this section.</li></ul>
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>&#167;4. Vectors. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec</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">Geometry::vec</span></span>:<br/>Spatial Map - <a href="4-sm.html#SP15_1">&#167;15.1</a>, <a href="4-sm.html#SP7_31">&#167;7.31</a>, <a href="4-sm.html#SP7_32_1_1">&#167;7.32.1.1</a>, <a href="4-sm.html#SP7_32_1_2">&#167;7.32.1.2</a>, <a href="4-sm.html#SP7_32_1_3">&#167;7.32.1.3</a><br/>HTML Map - <a href="4-hm.html#SP9">&#167;9</a>, <a href="4-hm.html#SP9_3_1_1">&#167;9.3.1.1</a>, <a href="4-hm.html#SP9_3_2_1">&#167;9.3.2.1</a>, <a href="4-hm.html#SP9_3_3_1">&#167;9.3.3.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">x</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">y</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">z</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">x</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">y</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">z</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">vector</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">R</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> = </span><span class="identifier-syntax">x</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">y</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><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">R</span><span class="plain-syntax">;</span>
@ -143,12 +143,12 @@ corners are meaningless and are by convention at the origin.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_eq</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">Geometry::vec_eq</span></span>:<br/>Spatial Map - <a href="4-sm.html#SP7_11">&#167;7.11</a>, <a href="4-sm.html#SP20">&#167;20</a>, <a href="4-sm.html#SP21">&#167;21</a>, <a href="4-sm.html#SP32">&#167;32</a><br/>HTML Map - <a href="4-hm.html#SP1_3_4">&#167;1.3.4</a>, <a href="4-hm.html#SP1_3_4_1">&#167;1.3.4.1</a>, <a href="4-hm.html#SP1_3_4_2">&#167;1.3.4.2</a>, <a href="4-hm.html#SP2_1">&#167;2.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">U</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_eq</span><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">U</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</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">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">U</span><span class="plain-syntax">.</span><span class="identifier-syntax">x</span><span class="plain-syntax"> == </span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">U</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax"> == </span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">U</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax"> == </span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</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><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">Geometry::vec_lateral</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">Geometry::vec_lateral</span></span>:<br/>Spatial Map - <a href="4-sm.html#SP7_10">&#167;7.10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_lateral</span><span class="plain-syntax">(</span><span class="reserved-syntax">vector</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">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="identifier-syntax">x</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
@ -157,25 +157,25 @@ corners are meaningless and are by convention at the origin.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_plus</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">Geometry::vec_plus</span></span>:<br/><a href="4-sg.html#SP11">&#167;11</a>, <a href="4-sg.html#SP14">&#167;14</a><br/>Spatial Map - <a href="4-sm.html#SP7_21">&#167;7.21</a>, <a href="4-sm.html#SP7_26">&#167;7.26</a>, <a href="4-sm.html#SP7_27">&#167;7.27</a>, <a href="4-sm.html#SP20">&#167;20</a>, <a href="4-sm.html#SP22_1_4_1">&#167;22.1.4.1</a>, <a href="4-sm.html#SP32">&#167;32</a>, <a href="4-sm.html#SP36_1">&#167;36.1</a>, <a href="4-sm.html#SP7_31">&#167;7.31</a>, <a href="4-sm.html#SP7_32_1_2">&#167;7.32.1.2</a>, <a href="4-sm.html#SP7_32_1_3">&#167;7.32.1.3</a><br/>HTML Map - <a href="4-hm.html#SP1_3_4_2">&#167;1.3.4.2</a>, <a href="4-hm.html#SP2">&#167;2</a>, <a href="4-hm.html#SP2_1">&#167;2.1</a>, <a href="4-hm.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">U</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_plus</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">Geometry::vec_plus</span></span>:<br/><a href="6-sg.html#SP11">&#167;11</a>, <a href="6-sg.html#SP14">&#167;14</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">U</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</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">vector</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">R</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> = </span><span class="identifier-syntax">U</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> + </span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="element-syntax">x</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">U</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax"> + </span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</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">U</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax"> + </span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</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">R</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_minus</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">Geometry::vec_minus</span></span>:<br/><a href="4-sg.html#SP13">&#167;13</a>, <a href="4-sg.html#SP14">&#167;14</a><br/>Spatial Map - <a href="4-sm.html#SP20">&#167;20</a>, <a href="4-sm.html#SP21">&#167;21</a>, <a href="4-sm.html#SP22_1_4_1">&#167;22.1.4.1</a>, <a href="4-sm.html#SP34_1">&#167;34.1</a>, <a href="4-sm.html#SP7_32_1_2">&#167;7.32.1.2</a>, <a href="4-sm.html#SP7_32_1_3">&#167;7.32.1.3</a>, <a href="4-sm.html#SP7_33">&#167;7.33</a><br/>HTML Map - <a href="4-hm.html#SP1_3_4_1">&#167;1.3.4.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">U</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_minus</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">Geometry::vec_minus</span></span>:<br/><a href="6-sg.html#SP13">&#167;13</a>, <a href="6-sg.html#SP14">&#167;14</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">U</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</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">vector</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">R</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> = </span><span class="identifier-syntax">U</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> - </span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="element-syntax">x</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">U</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax"> - </span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</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">U</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax"> - </span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</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">R</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_negate</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">Geometry::vec_negate</span></span>:<br/>Spatial Map - <a href="4-sm.html#SP7_32_1_3_1">&#167;7.32.1.3.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_negate</span><span class="plain-syntax">(</span><span class="reserved-syntax">vector</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">vector</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">R</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> = -</span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="element-syntax">x</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">V</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</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">V</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</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">R</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_scale</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">Geometry::vec_scale</span></span>:<br/>Spatial Map - <a href="4-sm.html#SP22_1_4_1">&#167;22.1.4.1</a>, <a href="4-sm.html#SP32">&#167;32</a>, <a href="4-sm.html#SP36_1">&#167;36.1</a><br/>HTML Map - <a href="4-hm.html#SP1_3_4_1">&#167;1.3.4.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">lambda</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_scale</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">lambda</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</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">vector</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">R</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> = </span><span class="identifier-syntax">lambda</span><span class="plain-syntax">*</span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="element-syntax">x</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">lambda</span><span class="plain-syntax">*</span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</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">lambda</span><span class="plain-syntax">*</span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</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">R</span><span class="plain-syntax">;</span>
@ -184,12 +184,12 @@ corners are meaningless and are by convention at the origin.
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>&#167;7. Lengths. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_length_squared</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">Geometry::vec_length_squared</span></span>:<br/>Spatial Map - <a href="4-sm.html#SP20">&#167;20</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_length_squared</span><span class="plain-syntax">(</span><span class="reserved-syntax">vector</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax">*</span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> + </span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax">*</span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax"> + </span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax">*</span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">float</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_length</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">Geometry::vec_length</span></span>:<br/><a href="4-sg.html#SP8">&#167;8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</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">return</span><span class="plain-syntax"> (</span><span class="reserved-syntax">float</span><span class="plain-syntax">) (</span><span class="identifier-syntax">sqrt</span><span class="plain-syntax">(</span><a href="4-sg.html#SP7" class="function-link"><span class="function-syntax">Geometry::vec_length_squared</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">)));</span>
<span class="reserved-syntax">float</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_length</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">Geometry::vec_length</span></span>:<br/><a href="6-sg.html#SP8">&#167;8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</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">return</span><span class="plain-syntax"> (</span><span class="reserved-syntax">float</span><span class="plain-syntax">) (</span><span class="identifier-syntax">sqrt</span><span class="plain-syntax">(</span><a href="6-sg.html#SP7" class="function-link"><span class="function-syntax">Geometry::vec_length_squared</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">)));</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>&#167;8. Angles. </b>We compute unit vectors in the D and E directions and then the squared
@ -201,10 +201,10 @@ is better.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">float</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_angular_separation</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">Geometry::vec_angular_separation</span></span>:<br/>Spatial Map - <a href="4-sm.html#SP20">&#167;20</a>, <a href="4-sm.html#SP21">&#167;21</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</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">float</span><span class="plain-syntax"> </span><span class="identifier-syntax">E_distance</span><span class="plain-syntax"> = </span><a href="4-sg.html#SP7" class="function-link"><span class="function-syntax">Geometry::vec_length</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span>
<span class="reserved-syntax">float</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_angular_separation</span><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</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">float</span><span class="plain-syntax"> </span><span class="identifier-syntax">E_distance</span><span class="plain-syntax"> = </span><a href="6-sg.html#SP7" class="function-link"><span class="function-syntax">Geometry::vec_length</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">float</span><span class="plain-syntax"> </span><span class="identifier-syntax">uex</span><span class="plain-syntax"> = </span><span class="identifier-syntax">E</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax">/</span><span class="identifier-syntax">E_distance</span><span class="plain-syntax">, </span><span class="identifier-syntax">uey</span><span class="plain-syntax"> = </span><span class="identifier-syntax">E</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax">/</span><span class="identifier-syntax">E_distance</span><span class="plain-syntax">, </span><span class="identifier-syntax">uez</span><span class="plain-syntax"> = </span><span class="identifier-syntax">E</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax">/</span><span class="identifier-syntax">E_distance</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">float</span><span class="plain-syntax"> </span><span class="identifier-syntax">D_distance</span><span class="plain-syntax"> = </span><a href="4-sg.html#SP7" class="function-link"><span class="function-syntax">Geometry::vec_length</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">float</span><span class="plain-syntax"> </span><span class="identifier-syntax">D_distance</span><span class="plain-syntax"> = </span><a href="6-sg.html#SP7" class="function-link"><span class="function-syntax">Geometry::vec_length</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">float</span><span class="plain-syntax"> </span><span class="identifier-syntax">udx</span><span class="plain-syntax"> = </span><span class="identifier-syntax">D</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax">/</span><span class="identifier-syntax">D_distance</span><span class="plain-syntax">, </span><span class="identifier-syntax">udy</span><span class="plain-syntax"> = </span><span class="identifier-syntax">D</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax">/</span><span class="identifier-syntax">D_distance</span><span class="plain-syntax">, </span><span class="identifier-syntax">udz</span><span class="plain-syntax"> = </span><span class="identifier-syntax">D</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax">/</span><span class="identifier-syntax">D_distance</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">uex</span><span class="plain-syntax">-</span><span class="identifier-syntax">udx</span><span class="plain-syntax">)*(</span><span class="identifier-syntax">uex</span><span class="plain-syntax">-</span><span class="identifier-syntax">udx</span><span class="plain-syntax">) + (</span><span class="identifier-syntax">uey</span><span class="plain-syntax">-</span><span class="identifier-syntax">udy</span><span class="plain-syntax">)*(</span><span class="identifier-syntax">uey</span><span class="plain-syntax">-</span><span class="identifier-syntax">udy</span><span class="plain-syntax">) + (</span><span class="identifier-syntax">uez</span><span class="plain-syntax">-</span><span class="identifier-syntax">udz</span><span class="plain-syntax">)*(</span><span class="identifier-syntax">uez</span><span class="plain-syntax">-</span><span class="identifier-syntax">udz</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
@ -214,14 +214,14 @@ for each vector to join the population.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">cuboid</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::empty_cuboid</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Geometry::empty_cuboid</span></span>:<br/>Spatial Map - <a href="4-sm.html#SP7">&#167;7</a>, <a href="4-sm.html#SP11">&#167;11</a>, <a href="4-sm.html#SP7_18">&#167;7.18</a>, <a href="4-sm.html#SP18">&#167;18</a>, <a href="4-sm.html#SP7_32">&#167;7.32</a>, <a href="4-sm.html#SP7_34">&#167;7.34</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">cuboid</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::empty_cuboid</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">cuboid</span><span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">.</span><span class="element-syntax">population</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">C</span><span class="plain-syntax">.</span><span class="element-syntax">corner0</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Zero_vector</span><span class="plain-syntax">; </span><span class="identifier-syntax">C</span><span class="plain-syntax">.</span><span class="element-syntax">corner1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Zero_vector</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">C</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">Geometry::adjust_cuboid</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Geometry::adjust_cuboid</span></span>:<br/><a href="4-sg.html#SP10">&#167;10</a><br/>Spatial Map - <a href="4-sm.html#SP18">&#167;18</a>, <a href="4-sm.html#SP7_34">&#167;7.34</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">cuboid</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::adjust_cuboid</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">Geometry::adjust_cuboid</span></span>:<br/><a href="6-sg.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">cuboid</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">population</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">C</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">corner0</span><span class="plain-syntax"> = </span><span class="identifier-syntax">V</span><span class="plain-syntax">; </span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">corner1</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">else</span><span class="plain-syntax"> {</span>
@ -238,13 +238,13 @@ for each vector to join the population.
</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">Geometry::merge_cuboid</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Geometry::merge_cuboid</span></span>:<br/>Spatial Map - <a href="4-sm.html#SP7_32_1">&#167;7.32.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">cuboid</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">cuboid</span><span class="plain-syntax"> </span><span class="identifier-syntax">X</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::merge_cuboid</span><span class="plain-syntax">(</span><span class="reserved-syntax">cuboid</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">cuboid</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">X</span><span class="plain-syntax">.</span><span class="identifier-syntax">population</span><span class="plain-syntax"> &gt; </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><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">population</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">C</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>
<span class="plain-syntax"> </span><a href="4-sg.html#SP9" class="function-link"><span class="function-syntax">Geometry::adjust_cuboid</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">X</span><span class="plain-syntax">.</span><span class="element-syntax">corner0</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-sg.html#SP9" class="function-link"><span class="function-syntax">Geometry::adjust_cuboid</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">X</span><span class="plain-syntax">.</span><span class="element-syntax">corner1</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="6-sg.html#SP9" class="function-link"><span class="function-syntax">Geometry::adjust_cuboid</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">X</span><span class="plain-syntax">.</span><span class="element-syntax">corner0</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="6-sg.html#SP9" class="function-link"><span class="function-syntax">Geometry::adjust_cuboid</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">X</span><span class="plain-syntax">.</span><span class="element-syntax">corner1</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">population</span><span class="plain-syntax"> += </span><span class="identifier-syntax">X</span><span class="plain-syntax">.</span><span class="element-syntax">population</span><span class="plain-syntax"> - </span><span class="constant-syntax">2</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
@ -255,17 +255,17 @@ it have made the same shift).
</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">Geometry::cuboid_translate</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Geometry::cuboid_translate</span></span>:<br/>Spatial Map - <a href="4-sm.html#SP7_21">&#167;7.21</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">cuboid</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::cuboid_translate</span><span class="plain-syntax">(</span><span class="reserved-syntax">cuboid</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</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">C</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">population</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">corner0</span><span class="plain-syntax"> = </span><a href="4-sg.html#SP6" class="function-link"><span class="function-syntax">Geometry::vec_plus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">corner0</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">C</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">corner1</span><span class="plain-syntax"> = </span><a href="4-sg.html#SP6" class="function-link"><span class="function-syntax">Geometry::vec_plus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">corner1</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">C</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">corner0</span><span class="plain-syntax"> = </span><a href="6-sg.html#SP6" class="function-link"><span class="function-syntax">Geometry::vec_plus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">corner0</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">C</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">corner1</span><span class="plain-syntax"> = </span><a href="6-sg.html#SP6" class="function-link"><span class="function-syntax">Geometry::vec_plus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">corner1</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>
</pre>
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>&#167;12. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::within_cuboid</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">Geometry::within_cuboid</span></span>:<br/><a href="4-sg.html#SP13">&#167;13</a><br/>Spatial Map - <a href="4-sm.html#SP15">&#167;15</a><br/>HTML Map - <a href="4-hm.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">cuboid</span><span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::within_cuboid</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">Geometry::within_cuboid</span></span>:<br/><a href="6-sg.html#SP13">&#167;13</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">cuboid</span><span class="plain-syntax"> </span><span class="identifier-syntax">C</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">.</span><span class="identifier-syntax">population</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">.</span><span class="identifier-syntax">x</span><span class="plain-syntax"> &lt; </span><span class="identifier-syntax">C</span><span class="plain-syntax">.</span><span class="element-syntax">corner0</span><span class="plain-syntax">.</span><span class="element-syntax">x</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">.</span><span class="identifier-syntax">x</span><span class="plain-syntax"> &gt; </span><span class="identifier-syntax">C</span><span class="plain-syntax">.</span><span class="element-syntax">corner1</span><span class="plain-syntax">.</span><span class="element-syntax">x</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>
@ -283,15 +283,15 @@ the index if it is.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::cuboid_index</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">Geometry::cuboid_index</span></span>:<br/>Spatial Map - <a href="4-sm.html#SP13">&#167;13</a>, <a href="4-sm.html#SP15">&#167;15</a>, <a href="4-sm.html#SP15_1">&#167;15.1</a><br/>HTML Map - <a href="4-hm.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">cuboid</span><span class="plain-syntax"> </span><span class="identifier-syntax">C</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-sg.html#SP12" class="function-link"><span class="function-syntax">Geometry::within_cuboid</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</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"> -1;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">O</span><span class="plain-syntax"> = </span><a href="4-sg.html#SP6" class="function-link"><span class="function-syntax">Geometry::vec_minus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">.</span><span class="element-syntax">corner0</span><span class="plain-syntax">);</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::cuboid_index</span><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">cuboid</span><span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="6-sg.html#SP12" class="function-link"><span class="function-syntax">Geometry::within_cuboid</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</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"> -1;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">O</span><span class="plain-syntax"> = </span><a href="6-sg.html#SP6" class="function-link"><span class="function-syntax">Geometry::vec_minus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">.</span><span class="element-syntax">corner0</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">width</span><span class="plain-syntax"> = </span><span class="identifier-syntax">C</span><span class="plain-syntax">.</span><span class="element-syntax">corner1</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> - </span><span class="identifier-syntax">C</span><span class="plain-syntax">.</span><span class="identifier-syntax">corner0</span><span class="plain-syntax">.</span><span class="element-syntax">x</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">height</span><span class="plain-syntax"> = </span><span class="identifier-syntax">C</span><span class="plain-syntax">.</span><span class="element-syntax">corner1</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax"> - </span><span class="identifier-syntax">C</span><span class="plain-syntax">.</span><span class="identifier-syntax">corner0</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">O</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> + </span><span class="identifier-syntax">O</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax">*</span><span class="identifier-syntax">width</span><span class="plain-syntax"> + </span><span class="identifier-syntax">O</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax">*</span><span class="identifier-syntax">width</span><span class="plain-syntax">*</span><span class="identifier-syntax">height</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">Geometry::cuboid_volume</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">Geometry::cuboid_volume</span></span>:<br/>Spatial Map - <a href="4-sm.html#SP15_1">&#167;15.1</a><br/>HTML Map - <a href="4-hm.html#SP1_1">&#167;1.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">cuboid</span><span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::cuboid_volume</span><span class="plain-syntax">(</span><span class="reserved-syntax">cuboid</span><span class="plain-syntax"> </span><span class="identifier-syntax">C</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">.</span><span class="identifier-syntax">population</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">width</span><span class="plain-syntax"> = </span><span class="identifier-syntax">C</span><span class="plain-syntax">.</span><span class="element-syntax">corner1</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> - </span><span class="identifier-syntax">C</span><span class="plain-syntax">.</span><span class="identifier-syntax">corner0</span><span class="plain-syntax">.</span><span class="element-syntax">x</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">height</span><span class="plain-syntax"> = </span><span class="identifier-syntax">C</span><span class="plain-syntax">.</span><span class="element-syntax">corner1</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax"> - </span><span class="identifier-syntax">C</span><span class="plain-syntax">.</span><span class="identifier-syntax">corner0</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax"> + </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
@ -305,10 +305,10 @@ sacrifice that.)
</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">Geometry::thicken_cuboid</span><button class="popup" onclick="togglePopup('usagePopup18')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup18">Usage of <span class="code-font"><span class="function-syntax">Geometry::thicken_cuboid</span></span>:<br/>Spatial Map - <a href="4-sm.html#SP15_1">&#167;15.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">cuboid</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::thicken_cuboid</span><span class="plain-syntax">(</span><span class="reserved-syntax">cuboid</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</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">C</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">population</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">C</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">corner0</span><span class="plain-syntax"> = </span><a href="4-sg.html#SP6" class="function-link"><span class="function-syntax">Geometry::vec_minus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</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">C</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">corner1</span><span class="plain-syntax"> = </span><a href="4-sg.html#SP6" class="function-link"><span class="function-syntax">Geometry::vec_plus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</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">C</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">corner0</span><span class="plain-syntax"> = </span><a href="6-sg.html#SP6" class="function-link"><span class="function-syntax">Geometry::vec_minus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</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">C</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">corner1</span><span class="plain-syntax"> = </span><a href="6-sg.html#SP6" class="function-link"><span class="function-syntax">Geometry::vec_plus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</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">else</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">V</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> &lt; </span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">corner0</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax">) </span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">corner0</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> = </span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> - </span><span class="identifier-syntax">S</span><span class="plain-syntax">.</span><span class="element-syntax">x</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">V</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> &gt; </span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">corner1</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax">) </span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">corner1</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> = </span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> + </span><span class="identifier-syntax">S</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax">;</span>
@ -320,7 +320,7 @@ sacrifice that.)
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="3-tm.html">&#10094;</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-me.html">2</a></li><li class="progresschapter"><a href="3-spt.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresscurrent">sg</li><li class="progresssection"><a href="4-sm.html">sm</a></li><li class="progresssection"><a href="4-hm.html">hm</a></li><li class="progresssection"><a href="4-em.html">em</a></li><li class="progressnext"><a href="4-sm.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="6-ae2.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progresscurrent">sg</li><li class="progressnextoff">&#10095;</li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -250,7 +250,7 @@ Helvetica-style lower case "x", but life is full of compromises.
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="6-te.html#SP1_3">&#167;1.3</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="6-fe.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresscurrent">te</li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progressnext"><a href="6-ve.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="6-fe.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresscurrent">te</li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progresssection"><a href="6-sg.html">sg</a></li><li class="progressnext"><a href="6-ve.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -178,7 +178,7 @@ function togglePopup(material_id) {
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="6-pe2.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresscurrent">te2</li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progressnext"><a href="6-ce4.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="6-pe2.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresscurrent">te2</li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progresssection"><a href="6-sg.html">sg</a></li><li class="progressnext"><a href="6-ce4.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -168,7 +168,7 @@ function togglePopup(material_id) {
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="6-ve.html#SP1">&#167;1</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="6-te.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresscurrent">ve</li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progressnext"><a href="6-rfse.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="6-te.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresscurrent">ve</li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresssection"><a href="6-ve2.html">ve2</a></li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progresssection"><a href="6-sg.html">sg</a></li><li class="progressnext"><a href="6-rfse.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -116,7 +116,7 @@ function togglePopup(material_id) {
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="6-ie.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresscurrent">ve2</li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progressnext"><a href="6-ge.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="6-ie.html">&#10094;</a></li><li class="progresschapter"><a href="1-cm.html">1</a></li><li class="progresschapter"><a href="2-mt.html">2</a></li><li class="progresschapter"><a href="3-sh.html">3</a></li><li class="progresschapter"><a href="4-cg.html">4</a></li><li class="progresschapter"><a href="5-ft.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-ii.html">ii</a></li><li class="progresssection"><a href="6-ifs.html">ifs</a></li><li class="progresssection"><a href="6-ir.html">ir</a></li><li class="progresssection"><a href="6-lxc.html">lxc</a></li><li class="progresssection"><a href="6-ce.html">ce</a></li><li class="progresssection"><a href="6-ce2.html">ce2</a></li><li class="progresssection"><a href="6-be.html">be</a></li><li class="progresssection"><a href="6-re.html">re</a></li><li class="progresssection"><a href="6-ee.html">ee</a></li><li class="progresssection"><a href="6-fe.html">fe</a></li><li class="progresssection"><a href="6-te.html">te</a></li><li class="progresssection"><a href="6-ve.html">ve</a></li><li class="progresssection"><a href="6-rfse.html">rfse</a></li><li class="progresssection"><a href="6-ee2.html">ee2</a></li><li class="progresssection"><a href="6-se.html">se</a></li><li class="progresssection"><a href="6-ie.html">ie</a></li><li class="progresscurrent">ve2</li><li class="progresssection"><a href="6-ge.html">ge</a></li><li class="progresssection"><a href="6-le.html">le</a></li><li class="progresssection"><a href="6-ae.html">ae</a></li><li class="progresssection"><a href="6-pe.html">pe</a></li><li class="progresssection"><a href="6-ce3.html">ce3</a></li><li class="progresssection"><a href="6-pe2.html">pe2</a></li><li class="progresssection"><a href="6-te2.html">te2</a></li><li class="progresssection"><a href="6-ce4.html">ce4</a></li><li class="progresssection"><a href="6-ge2.html">ge2</a></li><li class="progresssection"><a href="6-ae2.html">ae2</a></li><li class="progresssection"><a href="6-sg.html">sg</a></li><li class="progressnext"><a href="6-ge.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -461,6 +461,11 @@
<spon class="sectiontitle">Alphabetic Element</span></a> -
<span class="sectionpurpose">To write the Alphabetic actions element (A2) in the index.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-sg.html">
<spon class="sectiontitle">Spatial Geometry</span></a> -
<span class="sectionpurpose">To deal with vectors and cuboids in a three-dimensional integer lattice.</span></p>
</li>
</ul>
</li>
</ul>

View file

@ -776,7 +776,7 @@ the regions plugin uses this to put colour chips next to names of regions.
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">ADD_TO_WORLD_INDEX_PLUG</span>
</pre>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">PluginCalls::add_to_World_index</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">O</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">PluginCalls::add_to_World_index</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-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="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">ADD_TO_WORLD_INDEX_PLUG</span><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>
</pre>
@ -788,7 +788,7 @@ the mapping plugin uses this to say where a door leads.
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">ANNOTATE_IN_WORLD_INDEX_PLUG</span>
</pre>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">PluginCalls::annotate_in_World_index</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">O</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">PluginCalls::annotate_in_World_index</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-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="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">ANNOTATE_IN_WORLD_INDEX_PLUG</span><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>
</pre>

View file

@ -73,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">if</a></li><li><a href="index.html#3">Chapter 3: Space and Time</a></li><li><b>Backdrops</b></li></ul></div>
<p class="purpose">A plugin to provide support for backdrop objects, which are present as scenery in multiple rooms at once.</p>
<ul class="toc"><li><a href="3-bck.html#SP2">&#167;2. Instances</a></li><li><a href="3-bck.html#SP3">&#167;3. Kinds</a></li><li><a href="3-bck.html#SP6">&#167;6. Properties</a></li><li><a href="3-bck.html#SP10">&#167;10. Everywhere</a></li><li><a href="3-bck.html#SP12">&#167;12. Model completion</a></li><li><a href="3-bck.html#SP13">&#167;13. Inference families</a></li></ul><hr class="tocbar">
<ul class="toc"><li><a href="3-bck.html#SP2">&#167;2. Instances</a></li><li><a href="3-bck.html#SP3">&#167;3. Kinds</a></li><li><a href="3-bck.html#SP6">&#167;6. Properties</a></li><li><a href="3-bck.html#SP9">&#167;9. Everywhere</a></li><li><a href="3-bck.html#SP11">&#167;11. Model completion</a></li><li><a href="3-bck.html#SP12">&#167;12. Inference families</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </b>While we normally assume that nothing can be in more than one place at
once, backdrops are an exception. These are intended to represent widely
@ -84,12 +84,12 @@ inferences to avoid piling up bogus inconsistencies.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Backdrops::start</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">Backdrops::start</span></span>:<br/>IF Module - <a href="1-im.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="3-bck.html#SP14" class="function-link"><span class="function-syntax">Backdrops::create_inference_families</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="3-bck.html#SP13" class="function-link"><span class="function-syntax">Backdrops::create_inference_families</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">NEW_BASE_KIND_NOTIFY_PLUG</span><span class="plain-syntax">, </span><a href="3-bck.html#SP5" class="function-link"><span class="function-syntax">Backdrops::new_base_kind_notify</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">NEW_SUBJECT_NOTIFY_PLUG</span><span class="plain-syntax">, </span><a href="3-bck.html#SP2" class="function-link"><span class="function-syntax">Backdrops::new_subject_notify</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">NEW_PROPERTY_NOTIFY_PLUG</span><span class="plain-syntax">, </span><a href="3-bck.html#SP7" class="function-link"><span class="function-syntax">Backdrops::new_property_notify</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">COMPLETE_MODEL_PLUG</span><span class="plain-syntax">, </span><a href="3-bck.html#SP12" class="function-link"><span class="function-syntax">Backdrops::complete_model</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">INTERVENE_IN_ASSERTION_PLUG</span><span class="plain-syntax">, </span><a href="3-bck.html#SP11" class="function-link"><span class="function-syntax">Backdrops::intervene_in_assertion</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">COMPLETE_MODEL_PLUG</span><span class="plain-syntax">, </span><a href="3-bck.html#SP11" class="function-link"><span class="function-syntax">Backdrops::complete_model</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">INTERVENE_IN_ASSERTION_PLUG</span><span class="plain-syntax">, </span><a href="3-bck.html#SP10" class="function-link"><span class="function-syntax">Backdrops::intervene_in_assertion</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. Instances. </b>Every inference subject contains a pointer to its own unique copy of the
@ -138,7 +138,7 @@ there is no need to translate this to other languages.)
<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">Backdrops::object_is_a_backdrop</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">Backdrops::object_is_a_backdrop</span></span>:<br/><a href="3-bck.html#SP9">&#167;9</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">int</span><span class="plain-syntax"> </span><span class="function-syntax">Backdrops::object_is_a_backdrop</span><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">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">K_backdrop</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">I</span><span class="plain-syntax">) &amp;&amp; (</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_backdrop</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><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>
@ -157,13 +157,13 @@ Standard Rules. (So there is no need to translate this to other languages.)
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P_scenery</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> an I7 either/or property marking something as scenery</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Backdrops::new_property_notify</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">Backdrops::new_property_notify</span></span>:<br/><a href="3-bck.html#SP1">&#167;1</a></span></button><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>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Backdrops::new_property_notify</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">Backdrops::new_property_notify</span></span>:<br/><a href="3-bck.html#SP1">&#167;1</a></span></button><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>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;notable-backdrops-properties&gt;(prn-&gt;</span><span class="element-syntax">name</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">P_scenery</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">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">Backdrops::object_is_scenery</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">Backdrops::object_is_scenery</span></span>:<br/>Spatial Model - <a href="3-sm.html#SP17">&#167;17</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">int</span><span class="plain-syntax"> </span><span class="function-syntax">Backdrops::object_is_scenery</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">Backdrops::object_is_scenery</span></span>:<br/>Spatial Model - <a href="3-sm.html#SP17">&#167;17</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">PropertyInferences::either_or_state</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_scenery</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">0</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><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
@ -183,7 +183,7 @@ and text like
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Backdrops::assert_relations</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">Backdrops::assert_relations</span></span>:<br/>Spatial Relations - <a href="3-sr.html#SP4_1">&#167;4.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">relation</span><span class="plain-syntax">,</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Backdrops::assert_relations</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">Backdrops::assert_relations</span></span>:<br/>Spatial Relations - <a href="3-sr.html#SP4_1">&#167;4.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">relation</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">I0</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I1</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">Instances::of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">I1</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_backdrop</span><span class="plain-syntax">)) &amp;&amp;</span>
@ -194,7 +194,7 @@ and text like
<span class="plain-syntax"> </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">loc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::as_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">I0</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-si.html#SP8" class="function-link"><span class="function-syntax">SpatialInferences::infer_part_of</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">bd</span><span class="plain-syntax">, </span><span class="identifier-syntax">IMPOSSIBLE_CE</span><span class="plain-syntax">, </span><span class="identifier-syntax">loc</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-si.html#SP3" class="function-link"><span class="function-syntax">SpatialInferences::infer_is_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">bd</span><span class="plain-syntax">, </span><span class="identifier-syntax">IMPOSSIBLE_CE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inference</span><span class="plain-syntax"> *</span><span class="identifier-syntax">i</span><span class="plain-syntax"> = </span><a href="3-bck.html#SP15" class="function-link"><span class="function-syntax">Backdrops::new_found_in_inference</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">loc</span><span class="plain-syntax">, </span><span class="identifier-syntax">CERTAIN_CE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inference</span><span class="plain-syntax"> *</span><span class="identifier-syntax">i</span><span class="plain-syntax"> = </span><a href="3-bck.html#SP14" class="function-link"><span class="function-syntax">Backdrops::new_found_in_inference</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">loc</span><span class="plain-syntax">, </span><span class="identifier-syntax">CERTAIN_CE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Inferences::join_inference</span><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">bd</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>
@ -202,20 +202,7 @@ and text like
<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>
</pre>
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>&#167;9. </b>For indexing purposes, the following loops are useful:
</p>
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="identifier-syntax">LOOP_OVER_BACKDROPS_IN</span><span class="plain-syntax">(</span><span class="identifier-syntax">B</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</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_INSTANCES</span><span class="plain-syntax">(</span><span class="identifier-syntax">B</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">if</span><span class="plain-syntax"> (</span><a href="3-bck.html#SP5" class="function-link"><span class="function-syntax">Backdrops::object_is_a_backdrop</span></a><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">POSITIVE_KNOWLEDGE_LOOP</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</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="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-bck.html#SP15" class="function-link"><span class="function-syntax">Backdrops::get_inferred_location</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">) == </span><span class="identifier-syntax">P</span><span class="plain-syntax">)</span>
<span class="definition-keyword">define</span> <span class="identifier-syntax">LOOP_OVER_BACKDROPS_EVERYWHERE</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>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_INSTANCES</span><span class="plain-syntax">(</span><span class="identifier-syntax">B</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">if</span><span class="plain-syntax"> (</span><a href="3-bck.html#SP5" class="function-link"><span class="function-syntax">Backdrops::object_is_a_backdrop</span></a><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">POSITIVE_KNOWLEDGE_LOOP</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</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>
</pre>
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>&#167;10. Everywhere. </b>Here we defines a form of noun phrase special to Backdrops (because a backdrop
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>&#167;9. Everywhere. </b>Here we defines a form of noun phrase special to Backdrops (because a backdrop
can be said to be "everywhere", which nothing else can).
</p>
@ -224,10 +211,10 @@ can be said to be "everywhere", which nothing else can).
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">everywhere</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" class="paragraph-anchor"></a><b>&#167;11. </b></p>
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>&#167;10. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Backdrops::intervene_in_assertion</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">Backdrops::intervene_in_assertion</span></span>:<br/><a href="3-bck.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">py</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Backdrops::intervene_in_assertion</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">Backdrops::intervene_in_assertion</span></span>:<br/><a href="3-bck.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">py</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">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">) == </span><span class="identifier-syntax">EVERY_NT</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="function-syntax">&lt;notable-backdrops-noun-phrases&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</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="identifier-syntax">left_subject</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">);</span>
@ -250,36 +237,36 @@ can be said to be "everywhere", which nothing else can).
<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>
</pre>
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>&#167;12. Model completion. </b>We intervene only at Stage II, the spatial modelling stage.
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>&#167;11. Model completion. </b>We intervene only at Stage II, the spatial modelling stage.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P_absent</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> an I6-only property for backdrops out of play</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Backdrops::complete_model</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">Backdrops::complete_model</span></span>:<br/><a href="3-bck.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">stage</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Backdrops::complete_model</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">Backdrops::complete_model</span></span>:<br/><a href="3-bck.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">stage</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">stage</span><span class="plain-syntax"> == </span><span class="identifier-syntax">WORLD_STAGE_II</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">P_absent</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EitherOrProperties::new_nameless</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"absent"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RTProperties::recommend_storing_as_attribute</span><span class="plain-syntax">(</span><span class="identifier-syntax">P_absent</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</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">I</span><span class="plain-syntax">;</span>
<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="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val_of_found_in</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="3-bck.html#SP12_1" class="named-paragraph-link"><span class="named-paragraph">If the object is found everywhere, make a found-in property accordingly</span><span class="named-paragraph-number">12.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-bck.html#SP11_1" class="named-paragraph-link"><span class="named-paragraph">If the object is found everywhere, make a found-in property accordingly</span><span class="named-paragraph-number">11.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">room_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">region_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="3-bck.html#SP12_2" class="named-paragraph-link"><span class="named-paragraph">Find how many rooms or regions the object is found inside</span><span class="named-paragraph-number">12.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-bck.html#SP11_2" class="named-paragraph-link"><span class="named-paragraph">Find how many rooms or regions the object is found inside</span><span class="named-paragraph-number">11.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">val_of_found_in</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">room_count</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">room_count</span><span class="plain-syntax"> &lt; </span><span class="constant-syntax">16</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">region_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="3-bck.html#SP12_3" class="named-paragraph-link"><span class="named-paragraph">The object is found only in a few rooms, and no regions, so make it a list</span><span class="named-paragraph-number">12.3</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-bck.html#SP11_3" class="named-paragraph-link"><span class="named-paragraph">The object is found only in a few rooms, and no regions, so make it a list</span><span class="named-paragraph-number">11.3</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">val_of_found_in</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">room_count</span><span class="plain-syntax"> + </span><span class="identifier-syntax">region_count</span><span class="plain-syntax"> &gt; </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="3-bck.html#SP12_4" class="named-paragraph-link"><span class="named-paragraph">The object is found in many rooms or in whole regions, so make it a routine</span><span class="named-paragraph-number">12.4</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-bck.html#SP11_4" class="named-paragraph-link"><span class="named-paragraph">The object is found in many rooms or in whole regions, so make it a routine</span><span class="named-paragraph-number">11.4</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">val_of_found_in</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) &amp;&amp; (</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_backdrop</span><span class="plain-syntax">)))</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-bck.html#SP12_5" class="named-paragraph-link"><span class="named-paragraph">The object is found nowhere, so give it a stub found-in property and mark it absent</span><span class="named-paragraph-number">12.5</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">val_of_found_in</span><span class="plain-syntax">) </span><a href="3-tm.html#SP23" class="function-link"><span class="function-syntax">Map::set_found_in</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">val_of_found_in</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-bck.html#SP11_5" class="named-paragraph-link"><span class="named-paragraph">The object is found nowhere, so give it a stub found-in property and mark it absent</span><span class="named-paragraph-number">11.5</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">val_of_found_in</span><span class="plain-syntax">) </span><a href="3-tm.html#SP24" class="function-link"><span class="function-syntax">Map::set_found_in</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">val_of_found_in</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP12_1" class="paragraph-anchor"></a><b>&#167;12.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">If the object is found everywhere, make a found-in property accordingly</span><span class="named-paragraph-number">12.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">If the object is found everywhere, make a found-in property accordingly</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">
@ -289,20 +276,20 @@ can be said to be "everywhere", which nothing else can).
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-bck.html#SP12">&#167;12</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP12_2" class="paragraph-anchor"></a><b>&#167;12.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Find how many rooms or regions the object is found inside</span><span class="named-paragraph-number">12.2</span></span><span class="comment-syntax"> =</span>
<ul class="endnotetexts"><li>This code is used in <a href="3-bck.html#SP11">&#167;11</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP11_2" class="paragraph-anchor"></a><b>&#167;11.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Find how many rooms or regions the object is found inside</span><span class="named-paragraph-number">11.2</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<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">I</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">loc</span><span class="plain-syntax"> = </span><a href="3-bck.html#SP15" class="function-link"><span class="function-syntax">Backdrops::get_inferred_location</span></a><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">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">loc</span><span class="plain-syntax"> = </span><a href="3-bck.html#SP14" class="function-link"><span class="function-syntax">Backdrops::get_inferred_location</span></a><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">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">K_region</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">Instances::of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">loc</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_region</span><span class="plain-syntax">))) </span><span class="identifier-syntax">region_count</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">room_count</span><span class="plain-syntax">++;</span>
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-bck.html#SP12">&#167;12</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP12_3" class="paragraph-anchor"></a><b>&#167;12.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">The object is found only in a few rooms, and no regions, so make it a list</span><span class="named-paragraph-number">12.3</span></span><span class="comment-syntax"> =</span>
<ul class="endnotetexts"><li>This code is used in <a href="3-bck.html#SP11">&#167;11</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP11_3" class="paragraph-anchor"></a><b>&#167;11.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">The object is found only in a few rooms, and no regions, so make it a list</span><span class="named-paragraph-number">11.3</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -311,26 +298,26 @@ can be said to be "everywhere", which nothing else can).
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EmitArrays::begin</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">);</span>
<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">I</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">EmitArrays::iname_entry</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTInstances::value_iname</span><span class="plain-syntax">(</span><a href="3-bck.html#SP15" class="function-link"><span class="function-syntax">Backdrops::get_inferred_location</span></a><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">EmitArrays::iname_entry</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTInstances::value_iname</span><span class="plain-syntax">(</span><a href="3-bck.html#SP14" class="function-link"><span class="function-syntax">Backdrops::get_inferred_location</span></a><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">EmitArrays::end</span><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::annotate_i</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">INLINE_ARRAY_IANN</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">val_of_found_in</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Rvalues::from_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-bck.html#SP12">&#167;12</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP12_4" class="paragraph-anchor"></a><b>&#167;12.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">The object is found in many rooms or in whole regions, so make it a routine</span><span class="named-paragraph-number">12.4</span></span><span class="comment-syntax"> =</span>
<ul class="endnotetexts"><li>This code is used in <a href="3-bck.html#SP11">&#167;11</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP11_4" class="paragraph-anchor"></a><b>&#167;11.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">The object is found in many rooms or in whole regions, so make it a routine</span><span class="named-paragraph-number">11.4</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">val_of_found_in</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Rvalues::from_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTBackdropInstances::found_in_val</span><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="3-bck.html#SP12">&#167;12</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP12_5" class="paragraph-anchor"></a><b>&#167;12.5. </b><span class="extract"><span class="extract-syntax">absent</span></span> is an I6-only attribute which marks a backdrop has having been removed
<ul class="endnotetexts"><li>This code is used in <a href="3-bck.html#SP11">&#167;11</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP11_5" class="paragraph-anchor"></a><b>&#167;11.5. </b><span class="extract"><span class="extract-syntax">absent</span></span> is an I6-only attribute which marks a backdrop has having been removed
from the world model. It's not sufficient for an object's <span class="extract"><span class="extract-syntax">found_in</span></span> always to
say no to the question "are you in the current location?"; the I6 template
code, derived from the old I6 library, requires <span class="extract"><span class="extract-syntax">absent</span></span> to be set. So:
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">The object is found nowhere, so give it a stub found-in property and mark it absent</span><span class="named-paragraph-number">12.5</span></span><span class="comment-syntax"> =</span>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">The object is found nowhere, so give it a stub found-in property and mark it absent</span><span class="named-paragraph-number">11.5</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -338,26 +325,26 @@ code, derived from the old I6 library, requires <span class="extract"><span clas
<span class="plain-syntax"> </span><span class="identifier-syntax">EitherOrProperties::assert</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">P_absent</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">TRUE</span><span class="plain-syntax">, </span><span class="identifier-syntax">CERTAIN_CE</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-bck.html#SP12">&#167;12</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>&#167;13. Inference families. </b>Two sorts of inferences are used only for backdrops:
<ul class="endnotetexts"><li>This code is used in <a href="3-bck.html#SP11">&#167;11</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>&#167;12. Inference families. </b>Two sorts of inferences are used only for backdrops:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">inference_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">found_in_inf</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> for backdrop things in many places</span>
<span class="identifier-syntax">inference_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">found_everywhere_inf</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> ditto</span>
</pre>
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>&#167;14. </b></p>
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>&#167;13. </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">Backdrops::create_inference_families</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">Backdrops::create_inference_families</span></span>:<br/><a href="3-bck.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Backdrops::create_inference_families</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">Backdrops::create_inference_families</span></span>:<br/><a href="3-bck.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">found_in_inf</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inferences::new_family</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"found_in_inf"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">found_in_inf</span><span class="plain-syntax">, </span><span class="identifier-syntax">LOG_DETAILS_INF_MTID</span><span class="plain-syntax">, </span><a href="3-bck.html#SP15" class="function-link"><span class="function-syntax">Backdrops::log</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">found_in_inf</span><span class="plain-syntax">, </span><span class="identifier-syntax">COMPARE_INF_MTID</span><span class="plain-syntax">, </span><a href="3-bck.html#SP15" class="function-link"><span class="function-syntax">Backdrops::cmp</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">found_in_inf</span><span class="plain-syntax">, </span><span class="identifier-syntax">LOG_DETAILS_INF_MTID</span><span class="plain-syntax">, </span><a href="3-bck.html#SP14" class="function-link"><span class="function-syntax">Backdrops::log</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">found_in_inf</span><span class="plain-syntax">, </span><span class="identifier-syntax">COMPARE_INF_MTID</span><span class="plain-syntax">, </span><a href="3-bck.html#SP14" class="function-link"><span class="function-syntax">Backdrops::cmp</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">found_everywhere_inf</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inferences::new_family</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"found_everywhere_inf"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>&#167;15. </b><span class="extract"><span class="extract-syntax">found_in_inf</span></span> infers that the named room is one of the locations of the
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>&#167;14. </b><span class="extract"><span class="extract-syntax">found_in_inf</span></span> infers that the named room is one of the locations of the
backdrop.
</p>
@ -367,7 +354,7 @@ backdrop.
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">found_in_inference_data</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">inference</span><span class="plain-syntax"> *</span><span class="function-syntax">Backdrops::new_found_in_inference</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Backdrops::new_found_in_inference</span></span>:<br/><a href="3-bck.html#SP8">&#167;8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">loc</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">certitude</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">inference</span><span class="plain-syntax"> *</span><span class="function-syntax">Backdrops::new_found_in_inference</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">Backdrops::new_found_in_inference</span></span>:<br/><a href="3-bck.html#SP8">&#167;8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">loc</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">certitude</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PROTECTED_MODEL_PROCEDURE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">found_in_inference_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">data</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">found_in_inference_data</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">data</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">location</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InferenceSubjects::divert</span><span class="plain-syntax">(</span><span class="identifier-syntax">loc</span><span class="plain-syntax">);</span>
@ -375,12 +362,12 @@ backdrop.
<span class="plain-syntax"> </span><span class="identifier-syntax">STORE_POINTER_found_in_inference_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">data</span><span class="plain-syntax">), </span><span class="identifier-syntax">certitude</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">Backdrops::log</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Backdrops::log</span></span>:<br/><a href="3-bck.html#SP14">&#167;14</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inference_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">f</span><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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Backdrops::log</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Backdrops::log</span></span>:<br/><a href="3-bck.html#SP13">&#167;13</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inference_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">f</span><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="reserved-syntax">found_in_inference_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">data</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_found_in_inference_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">inf</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">data</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">data</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">location</span><span class="plain-syntax">) </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">" in:$j"</span><span class="plain-syntax">, </span><span class="identifier-syntax">data</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">location</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">Backdrops::cmp</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Backdrops::cmp</span></span>:<br/><a href="3-bck.html#SP14">&#167;14</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inference_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">f</span><span class="plain-syntax">, </span><span class="identifier-syntax">inference</span><span class="plain-syntax"> *</span><span class="identifier-syntax">i1</span><span class="plain-syntax">, </span><span class="identifier-syntax">inference</span><span class="plain-syntax"> *</span><span class="identifier-syntax">i2</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Backdrops::cmp</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Backdrops::cmp</span></span>:<br/><a href="3-bck.html#SP13">&#167;13</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inference_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">f</span><span class="plain-syntax">, </span><span class="identifier-syntax">inference</span><span class="plain-syntax"> *</span><span class="identifier-syntax">i1</span><span class="plain-syntax">, </span><span class="identifier-syntax">inference</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">found_in_inference_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">data1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_found_in_inference_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">i1</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">data</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">found_in_inference_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">data2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_found_in_inference_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">i2</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">data</span><span class="plain-syntax">);</span>
@ -393,7 +380,7 @@ backdrop.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">CI_IDENTICAL</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">Backdrops::get_inferred_location</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Backdrops::get_inferred_location</span></span>:<br/><a href="3-bck.html#SP9">&#167;9</a>, <a href="3-bck.html#SP12_2">&#167;12.2</a>, <a href="3-bck.html#SP12_3">&#167;12.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inference</span><span class="plain-syntax"> *</span><span class="identifier-syntax">i</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">Backdrops::get_inferred_location</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Backdrops::get_inferred_location</span></span>:<br/><a href="3-bck.html#SP11_2">&#167;11.2</a>, <a href="3-bck.html#SP11_3">&#167;11.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inference</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="identifier-syntax">i</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">family</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">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"not a found_in_inf inf"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">found_in_inference_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">data</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_found_in_inference_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">data</span><span class="plain-syntax">);</span>
@ -401,11 +388,11 @@ backdrop.
<span class="plain-syntax">}</span>
</pre>
<ul class="endnotetexts"><li>The structure found_in_inference_data is private to this section.</li></ul>
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>&#167;16. </b><span class="extract"><span class="extract-syntax">found_everywhere_inf</span></span> infers that the backdrop is visible in every location.
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>&#167;15. </b><span class="extract"><span class="extract-syntax">found_everywhere_inf</span></span> infers that the backdrop is visible in every location.
</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">Backdrops::infer_presence_everywhere</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">Backdrops::infer_presence_everywhere</span></span>:<br/>Everywhere, Nowhere and Here - <a href="3-enah.html#SP7">&#167;7</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">void</span><span class="plain-syntax"> </span><span class="function-syntax">Backdrops::infer_presence_everywhere</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Backdrops::infer_presence_everywhere</span></span>:<br/>Everywhere, Nowhere and Here - <a href="3-enah.html#SP7">&#167;7</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">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="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_backdrop</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">StandardProblems::sentence_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_EverywhereNonBackdrop</span><span class="plain-syntax">),</span>

View file

@ -233,7 +233,7 @@ and for that we have to ask the Backdrops plugin to handle it.
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subj</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Assert::subject_of_term</span><span class="plain-syntax">(</span><span class="identifier-syntax">prop</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">terms</span><span class="plain-syntax">[0]);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ox</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InstanceSubjects::to_object_instance</span><span class="plain-syntax">(</span><span class="identifier-syntax">subj</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-bck.html#SP16" class="function-link"><span class="function-syntax">Backdrops::infer_presence_everywhere</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ox</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-bck.html#SP15" class="function-link"><span class="function-syntax">Backdrops::infer_presence_everywhere</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ox</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>&#167;8. </b>What is nowhere is not necessarily useless: it is probably something which

View file

@ -221,7 +221,7 @@ makes it possible to complete the details of the BP.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">mmp_call_counter</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">MapRelations::make_mapped_predicate</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">MapRelations::make_mapped_predicate</span></span>:<br/>The Map - <a href="3-tm.html#SP17_2">&#167;17.2</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">void</span><span class="plain-syntax"> </span><span class="function-syntax">MapRelations::make_mapped_predicate</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">MapRelations::make_mapped_predicate</span></span>:<br/>The Map - <a href="3-tm.html#SP18_2">&#167;18.2</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="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::empty</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) || (</span><span class="identifier-syntax">Wordings::length</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">MAX_WORDS_IN_DIRECTION</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"bad direction name"</span><span class="plain-syntax">);</span>

View file

@ -568,6 +568,7 @@ to the model world.
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span><span class="plain-syntax">: </span><a href="3-sm.html#SP30" class="function-link"><span class="function-syntax">Spatial::spatial_stage_II</span></a><span class="plain-syntax">(); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">3</span><span class="plain-syntax">: </span><a href="3-sm.html#SP36" class="function-link"><span class="function-syntax">Spatial::spatial_stage_III</span></a><span class="plain-syntax">(); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">4</span><span class="plain-syntax">: </span><a href="3-sm.html#SP39" class="function-link"><span class="function-syntax">Spatial::spatial_stage_IV</span></a><span class="plain-syntax">(); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">5</span><span class="plain-syntax">: </span><a href="3-sm.html#SP40" class="function-link"><span class="function-syntax">Spatial::spatial_stage_V</span></a><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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
@ -976,7 +977,7 @@ when it finishes this will be set to the most recently mentioned.
<pre class="displayed-code all-displayed-code code-font">
<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">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">part_of_inf</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-sm.html#SP7" class="function-link"><span class="function-syntax">Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)) || (</span><a href="3-tm.html#SP12" class="function-link"><span class="function-syntax">Map::instance_is_a_door</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="3-sm.html#SP7" class="function-link"><span class="function-syntax">Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)) || (</span><a href="3-tm.html#SP13" class="function-link"><span class="function-syntax">Map::instance_is_a_door</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">StandardProblems::object_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_RoomOrDoorAsPart</span><span class="plain-syntax">),</span>
<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">"was set up as being part of something else, which doors and rooms "</span>
@ -1431,7 +1432,7 @@ for objects:
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP39" class="paragraph-anchor"></a><b>&#167;39. </b>At last, Stage IV. We're all done except for a little checking of the
<p class="commentary firstcommentary"><a id="SP39" class="paragraph-anchor"></a><b>&#167;39. </b>By Stage IV we're nearly all done, except for a little checking of the
degenerate case where Inform is just binding up an existing story file, so
that there's really no spatial model at all &mdash; the world is, or should be,
empty.
@ -1457,6 +1458,29 @@ empty.
<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>
</pre>
<p class="commentary firstcommentary"><a id="SP40" class="paragraph-anchor"></a><b>&#167;40. </b>At last Stage V, where the only remaining task is to set the benchmark room.
It's where the player begins, or if the player begins out of play for some
reason, it's the first-created room. (The benchmark is used only in indexing.)
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">benchmark_room</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Spatial::spatial_stage_V</span><button class="popup" onclick="togglePopup('usagePopup30')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup30">Usage of <span class="code-font"><span class="function-syntax">Spatial::spatial_stage_V</span></span>:<br/><a href="3-sm.html#SP26">&#167;26</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">benchmark_room</span><span class="plain-syntax"> = </span><a href="3-tp.html#SP4_3" class="function-link"><span class="function-syntax">Player::get_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">benchmark_room</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">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_INSTANCES</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_room</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">benchmark_room</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">break</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">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="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">Spatial::get_benchmark_room</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</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">benchmark_room</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="2-tbf.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-bd.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresscurrent">sm</li><li class="progresssection"><a href="3-enah.html">enah</a></li><li class="progresssection"><a href="3-sr.html">sr</a></li><li class="progresssection"><a href="3-si.html">si</a></li><li class="progresssection"><a href="3-prs.html">prs</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-dvc.html">dvc</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-mcr.html">mcr</a></li><li class="progresssection"><a href="3-tr.html">tr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</a></li><li class="progresschapter"><a href="4-ap.html">4</a></li><li class="progresschapter"><a href="5-pp.html">5</a></li><li class="progressnext"><a href="3-enah.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->

View file

@ -87,7 +87,7 @@ MathJax = {
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">if</a></li><li><a href="index.html#3">Chapter 3: Space and Time</a></li><li><b>The Map</b></li></ul></div>
<p class="purpose">A plugin to provide a geographical model, linking rooms and doors together in oppositely-paired directions.</p>
<ul class="toc"><li><a href="3-tm.html#SP1">&#167;1. Introduction</a></li><li><a href="3-tm.html#SP4">&#167;4. The direction inference</a></li><li><a href="3-tm.html#SP7">&#167;7. Special kinds</a></li><li><a href="3-tm.html#SP11">&#167;11. Spotting directions and doors</a></li><li><a href="3-tm.html#SP13">&#167;13. Directions and their numbers</a></li><li><a href="3-tm.html#SP18">&#167;18. Map data on instances</a></li><li><a href="3-tm.html#SP25">&#167;25. The exits array</a></li><li><a href="3-tm.html#SP26">&#167;26. Door connectivity</a></li><li><a href="3-tm.html#SP28">&#167;28. Linguistic extras</a></li><li><a href="3-tm.html#SP31">&#167;31. The map-connector</a></li><li><a href="3-tm.html#SP33">&#167;33. Model completion</a></li></ul><hr class="tocbar">
<ul class="toc"><li><a href="3-tm.html#SP1">&#167;1. Introduction</a></li><li><a href="3-tm.html#SP4">&#167;4. The direction inference</a></li><li><a href="3-tm.html#SP7">&#167;7. Special kinds</a></li><li><a href="3-tm.html#SP12">&#167;12. Spotting directions and doors</a></li><li><a href="3-tm.html#SP14">&#167;14. Directions and their numbers</a></li><li><a href="3-tm.html#SP19">&#167;19. Map data on instances</a></li><li><a href="3-tm.html#SP26">&#167;26. The exits array</a></li><li><a href="3-tm.html#SP27">&#167;27. Door connectivity</a></li><li><a href="3-tm.html#SP28">&#167;28. Linguistic extras</a></li><li><a href="3-tm.html#SP31">&#167;31. The map-connector</a></li><li><a href="3-tm.html#SP33">&#167;33. Model completion</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. Introduction. </b>The map is a complicated data structure, both because it amounts to a
ternary relation (though being implemented by many binary ones) and because
@ -103,12 +103,12 @@ quite specific problem messages.
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">MAKE_SPECIAL_MEANINGS_PLUG</span><span class="plain-syntax">, </span><a href="3-tm.html#SP2" class="function-link"><span class="function-syntax">Map::make_special_meanings</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">NEW_ASSERTION_NOTIFY_PLUG</span><span class="plain-syntax">, </span><a href="3-tm.html#SP3" class="function-link"><span class="function-syntax">Map::look_for_direction_creation</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">NEW_BASE_KIND_NOTIFY_PLUG</span><span class="plain-syntax">, </span><a href="3-tm.html#SP9" class="function-link"><span class="function-syntax">Map::new_base_kind_notify</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">NEW_SUBJECT_NOTIFY_PLUG</span><span class="plain-syntax">, </span><a href="3-tm.html#SP19" class="function-link"><span class="function-syntax">Map::new_subject_notify</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">SET_KIND_NOTIFY_PLUG</span><span class="plain-syntax">, </span><a href="3-tm.html#SP17" class="function-link"><span class="function-syntax">Map::set_kind_notify</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">SET_SUBKIND_NOTIFY_PLUG</span><span class="plain-syntax">, </span><a href="3-tm.html#SP10" class="function-link"><span class="function-syntax">Map::set_subkind_notify</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">NEW_SUBJECT_NOTIFY_PLUG</span><span class="plain-syntax">, </span><a href="3-tm.html#SP20" class="function-link"><span class="function-syntax">Map::new_subject_notify</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">SET_KIND_NOTIFY_PLUG</span><span class="plain-syntax">, </span><a href="3-tm.html#SP18" class="function-link"><span class="function-syntax">Map::set_kind_notify</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">SET_SUBKIND_NOTIFY_PLUG</span><span class="plain-syntax">, </span><a href="3-tm.html#SP11" class="function-link"><span class="function-syntax">Map::set_subkind_notify</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">ACT_ON_SPECIAL_NPS_PLUG</span><span class="plain-syntax">, </span><a href="3-tm.html#SP29" class="function-link"><span class="function-syntax">Map::act_on_special_NPs</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">COMPLETE_MODEL_PLUG</span><span class="plain-syntax">, </span><a href="3-tm.html#SP33" class="function-link"><span class="function-syntax">Map::complete_model</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">NEW_PROPERTY_NOTIFY_PLUG</span><span class="plain-syntax">, </span><a href="3-tm.html#SP22" class="function-link"><span class="function-syntax">Map::new_property_notify</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">NEW_PROPERTY_NOTIFY_PLUG</span><span class="plain-syntax">, </span><a href="3-tm.html#SP23" class="function-link"><span class="function-syntax">Map::new_property_notify</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">INFERENCE_DRAWN_NOTIFY_PLUG</span><span class="plain-syntax">, </span><a href="3-tm.html#SP27" class="function-link"><span class="function-syntax">Map::inference_drawn</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">INTERVENE_IN_ASSERTION_PLUG</span><span class="plain-syntax">, </span><a href="3-tm.html#SP30" class="function-link"><span class="function-syntax">Map::intervene_in_assertion</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">ADD_TO_WORLD_INDEX_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">IXMap::add_to_World_index</span><span class="plain-syntax">);</span>
@ -124,12 +124,12 @@ quite specific problem messages.
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. </b>This special sentence is used as a hint in making map documents; it has no
effect on the world model itself, and so is dealt with elsewhere, in <a href="../index-module/4-em.html" class="internal">EPS Map (in index)</a>.
effect on the world model itself, and so is dealt with elsewhere, in <a href="../runtime-module/2-em.html" class="internal">EPS Map (in runtime)</a>.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Map::make_special_meanings</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">Map::make_special_meanings</span></span>:<br/><a href="3-tm.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><span class="identifier-syntax">PL::EPSMap::index_map_with_SMF</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"index-map-with"</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><span class="identifier-syntax">EPSMap::index_map_with_SMF</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"index-map-with"</span><span class="plain-syntax">, </span><span class="constant-syntax">4</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>
</pre>
@ -229,7 +229,7 @@ but different destinations in the same direction are different in content.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">CI_IDENTICAL</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">Map::get_map_references</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">Map::get_map_references</span></span>:<br/><a href="3-tm.html#SP25">&#167;25</a>, <a href="3-tm.html#SP33_2">&#167;33.2</a>, <a href="3-tm.html#SP33_3">&#167;33.3</a>, <a href="3-tm.html#SP33_4">&#167;33.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inference</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">Map::get_map_references</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">Map::get_map_references</span></span>:<br/><a href="3-tm.html#SP26">&#167;26</a>, <a href="3-tm.html#SP33_2">&#167;33.2</a>, <a href="3-tm.html#SP33_3">&#167;33.3</a>, <a href="3-tm.html#SP33_4">&#167;33.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inference</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">inference_subject</span><span class="plain-syntax"> **</span><span class="identifier-syntax">infs1</span><span class="plain-syntax">, </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> **</span><span class="identifier-syntax">infs2</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="identifier-syntax">i</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">family</span><span class="plain-syntax"> != </span><span class="identifier-syntax">direction_inf</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"not a direction inf"</span><span class="plain-syntax">);</span>
@ -267,7 +267,15 @@ Rules. (So there is no need to translate this to other languages.)
<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>
</pre>
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>&#167;10. </b>Direction needs to be an abstract object, not a thing or a room, so:
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>&#167;10. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Map::object_is_a_direction</span><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">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">K_direction</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">I</span><span class="plain-syntax">) &amp;&amp; (</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_direction</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><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>
</pre>
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>&#167;11. </b>Direction needs to be an abstract object, not a thing or a room, so:
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -312,7 +320,7 @@ Rules. (So there is no need to translate this to other languages.)
<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>
</pre>
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>&#167;11. Spotting directions and doors. </b></p>
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>&#167;12. Spotting directions and doors. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Map::subject_is_a_direction</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">Map::subject_is_a_direction</span></span>:<br/><a href="3-tm.html#SP30">&#167;30</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">infs</span><span class="plain-syntax">) {</span>
@ -327,11 +335,11 @@ Rules. (So there is no need to translate this to other languages.)
<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>
</pre>
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>&#167;12. </b></p>
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>&#167;13. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Map::subject_is_a_door</span><span class="plain-syntax">(</span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">infs</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-tm.html#SP12" class="function-link"><span class="function-syntax">Map::instance_is_a_door</span></a><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-tm.html#SP13" class="function-link"><span class="function-syntax">Map::instance_is_a_door</span></a><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InstanceSubjects::to_object_instance</span><span class="plain-syntax">(</span><span class="identifier-syntax">infs</span><span class="plain-syntax">));</span>
<span class="plain-syntax">}</span>
@ -342,7 +350,7 @@ Rules. (So there is no need to translate this to other languages.)
<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>
</pre>
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>&#167;13. Directions and their numbers. </b>Directions play a special role because sentences like "east of the treehouse
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>&#167;14. Directions and their numbers. </b>Directions play a special role because sentences like "east of the treehouse
is the garden" are parsed differently from sentences like "the nearby place
property of the treehouse is the garden".
</p>
@ -354,7 +362,7 @@ realised this:
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">MAX_WORDS_IN_DIRECTION</span><span class="plain-syntax"> (</span><span class="identifier-syntax">MAX_WORDS_IN_ASSEMBLAGE</span><span class="plain-syntax"> - </span><span class="constant-syntax">4</span><span class="plain-syntax">)</span>
</pre>
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>&#167;14. </b>When a new direction comes into existence (i.e., not when the underlying
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>&#167;15. </b>When a new direction comes into existence (i.e., not when the underlying
instance <span class="extract"><span class="extract-syntax">I</span></span> is created, but when its kind is realised to be "direction"),
we will assign it a number:
</p>
@ -366,7 +374,7 @@ we will assign it a number:
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">registered_directions</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>&#167;15. </b>"Up" and "down" are not really special among possible direction instances, but
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>&#167;16. </b>"Up" and "down" are not really special among possible direction instances, but
they have linguistic features not shared by lateral directions. "Above the
garden is the treehouse", for instance, does not directly refer to either
direction, but implies both.
@ -376,7 +384,7 @@ direction, but implies both.
<span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I_up</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I_down</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>&#167;16. </b>These are recognised by their English names when defined by the Standard Rules.
<p class="commentary firstcommentary"><a id="SP17" class="paragraph-anchor"></a><b>&#167;17. </b>These are recognised by their English names when defined by the Standard Rules.
(So there is no need to translate this to other languages.)
</p>
@ -386,7 +394,7 @@ direction, but implies both.
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">down</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="SP17" class="paragraph-anchor"></a><b>&#167;17. </b></p>
<p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>&#167;18. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Map::set_kind_notify</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Map::set_kind_notify</span></span>:<br/><a href="3-tm.html#SP1">&#167;1</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="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">k</span><span class="plain-syntax">) {</span>
@ -394,7 +402,7 @@ direction, but implies both.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((!(</span><span class="identifier-syntax">Kinds::Behaviour::is_object_of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">kw</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_direction</span><span class="plain-syntax">))) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_object_of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">k</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_direction</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">IW</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="named-paragraph-container code-font"><a href="3-tm.html#SP17_1" class="named-paragraph-link"><span class="named-paragraph">Vet the direction name for acceptability</span><span class="named-paragraph-number">17.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-tm.html#SP18_1" class="named-paragraph-link"><span class="named-paragraph">Vet the direction name for acceptability</span><span class="named-paragraph-number">18.1</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="function-syntax">&lt;notable-map-directions&gt;</span><span class="plain-syntax">(</span><span class="identifier-syntax">IW</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;&lt;r&gt;&gt;</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">: </span><span class="identifier-syntax">I_up</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
@ -402,12 +410,12 @@ direction, but implies both.
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Naming::object_takes_definite_article</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="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-tm.html#SP17_2" class="named-paragraph-link"><span class="named-paragraph">Assign the object a direction number and a mapped-D-of relation</span><span class="named-paragraph-number">17.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-tm.html#SP18_2" class="named-paragraph-link"><span class="named-paragraph">Assign the object a direction number and a mapped-D-of relation</span><span class="named-paragraph-number">18.2</span></a></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>
</pre>
<p class="commentary firstcommentary"><a id="SP17_1" class="paragraph-anchor"></a><b>&#167;17.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Vet the direction name for acceptability</span><span class="named-paragraph-number">17.1</span></span><span class="comment-syntax"> =</span>
<p class="commentary firstcommentary"><a id="SP18_1" class="paragraph-anchor"></a><b>&#167;18.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Vet the direction name for acceptability</span><span class="named-paragraph-number">18.1</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -424,16 +432,16 @@ direction, but implies both.
<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>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-tm.html#SP17">&#167;17</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP17_2" class="paragraph-anchor"></a><b>&#167;17.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Assign the object a direction number and a mapped-D-of relation</span><span class="named-paragraph-number">17.2</span></span><span class="comment-syntax"> =</span>
<ul class="endnotetexts"><li>This code is used in <a href="3-tm.html#SP18">&#167;18</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP18_2" class="paragraph-anchor"></a><b>&#167;18.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Assign the object a direction number and a mapped-D-of relation</span><span class="named-paragraph-number">18.2</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">registered_directions</span><span class="plain-syntax">++;</span>
<span class="plain-syntax"> </span><a href="3-mcr.html#SP3" class="function-link"><span class="function-syntax">MapRelations::make_mapped_predicate</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="3-tm.html#SP17">&#167;17</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>&#167;18. Map data on instances. </b>We will use quite a lot of temporary work-space to put all of this together,
<ul class="endnotetexts"><li>This code is used in <a href="3-tm.html#SP18">&#167;18</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP19" class="paragraph-anchor"></a><b>&#167;19. Map data on instances. </b>We will use quite a lot of temporary work-space to put all of this together,
but the details can be ignored. If we expected very large numbers of instances
then it would be worth economising here, but profiling suggests that it really
isn't.
@ -457,14 +465,6 @@ isn't.
<span class="plain-syntax"> </span><span class="comment-syntax"> these are meaningful for rooms only, and are used in making the World index</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">exits</span><span class="plain-syntax">[</span><span class="constant-syntax">MAX_DIRECTIONS</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">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">exits_set_at</span><span class="plain-syntax">[</span><span class="constant-syntax">MAX_DIRECTIONS</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">spatial_relationship</span><span class="plain-syntax">[12];</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">exit_lengths</span><span class="plain-syntax">[</span><span class="constant-syntax">MAX_DIRECTIONS</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">lock_exits</span><span class="plain-syntax">[</span><span class="constant-syntax">MAX_DIRECTIONS</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">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">position</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">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">saved_gridpos</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">cooled</span><span class="plain-syntax">, </span><span class="identifier-syntax">shifted</span><span class="plain-syntax">, </span><span class="identifier-syntax">zone</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">connected_submap</span><span class="plain-syntax"> *</span><span class="identifier-syntax">submap</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">next_room_in_submap</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">world_index_colour</span><span class="plain-syntax">; </span><span class="comment-syntax"> an HTML colour for the room square (rooms only)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">world_index_text_colour</span><span class="plain-syntax">; </span><span class="comment-syntax"> an HTML colour for the room text (rooms only)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">map_parameter_scope</span><span class="plain-syntax"> </span><span class="identifier-syntax">local_map_parameters</span><span class="plain-syntax">; </span><span class="comment-syntax"> temporary: used in EPS mapping</span>
@ -474,7 +474,7 @@ isn't.
<span class="plain-syntax">} </span><span class="reserved-syntax">map_data</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure map_data is accessed in 3/mcr and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP19" class="paragraph-anchor"></a><b>&#167;19. </b></p>
<p class="commentary firstcommentary"><a id="SP20" class="paragraph-anchor"></a><b>&#167;20. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Map::new_subject_notify</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Map::new_subject_notify</span></span>:<br/><a href="3-tm.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subj</span><span class="plain-syntax">) {</span>
@ -491,12 +491,14 @@ isn't.
<span class="plain-syntax"> </span><span class="identifier-syntax">md</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">exits</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="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PL::SpatialMap::initialise_mapping_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">md</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">md</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">world_index_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="identifier-syntax">md</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">world_index_text_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="identifier-syntax">EPSMap::prepare_map_parameter_scope</span><span class="plain-syntax">(&amp;(</span><span class="identifier-syntax">md</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">local_map_parameters</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ATTACH_PLUGIN_DATA_TO_SUBJECT</span><span class="plain-syntax">(</span><span class="identifier-syntax">map</span><span class="plain-syntax">, </span><span class="identifier-syntax">subj</span><span class="plain-syntax">, </span><span class="identifier-syntax">md</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>
</pre>
<p class="commentary firstcommentary"><a id="SP20" class="paragraph-anchor"></a><b>&#167;20. </b>Special properties.
<p class="commentary firstcommentary"><a id="SP21" class="paragraph-anchor"></a><b>&#167;21. </b>Special properties.
These are property names to do with mapping which Inform provides special
support for. Two are visible to I7 authors, and the others are low-level
properties needed for the run-time implementation.
@ -512,7 +514,7 @@ properties needed for the run-time implementation.
<span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P_room_index</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> Inter only: workspace for path-finding through the map</span>
<span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P_found_in</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> Inter only: needed for multiply-present objects</span>
</pre>
<p class="commentary firstcommentary"><a id="SP21" class="paragraph-anchor"></a><b>&#167;21. </b>We recognise these by their English names when they are defined by the
<p class="commentary firstcommentary"><a id="SP22" class="paragraph-anchor"></a><b>&#167;22. </b>We recognise these by their English names when they are defined by the
Standard Rules. (So there is no need to translate this to other languages.)
</p>
@ -522,7 +524,7 @@ Standard Rules. (So there is no need to translate this to other languages.)
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">other</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">side</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="SP22" class="paragraph-anchor"></a><b>&#167;22. </b></p>
<p class="commentary firstcommentary"><a id="SP23" class="paragraph-anchor"></a><b>&#167;23. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Map::new_property_notify</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Map::new_property_notify</span></span>:<br/><a href="3-tm.html#SP1">&#167;1</a></span></button><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>
@ -535,13 +537,13 @@ Standard Rules. (So there is no need to translate this to other languages.)
<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>
</pre>
<p class="commentary firstcommentary"><a id="SP23" class="paragraph-anchor"></a><b>&#167;23. </b>The following is used also by <a href="3-bck.html" class="internal">Backdrops</a>, since both plugins use a
<p class="commentary firstcommentary"><a id="SP24" class="paragraph-anchor"></a><b>&#167;24. </b>The following is used also by <a href="3-bck.html" class="internal">Backdrops</a>, since both plugins use a
shared Inter-level property at run-time. But this function will work even if
the map plugin is inactive; so you can still have backdrops without a map.
</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">Map::set_found_in</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">Map::set_found_in</span></span>:<br/><a href="3-tm.html#SP33_8_1">&#167;33.8.1</a><br/>Backdrops - <a href="3-bck.html#SP12">&#167;12</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="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Map::set_found_in</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">Map::set_found_in</span></span>:<br/><a href="3-tm.html#SP33_8_1">&#167;33.8.1</a><br/>Backdrops - <a href="3-bck.html#SP11">&#167;11</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="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</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_found_in</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">P_found_in</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ValueProperties::new_nameless</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"found_in"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">);</span>
@ -551,7 +553,7 @@ the map plugin is inactive; so you can still have backdrops without a map.
<span class="plain-syntax"> </span><span class="identifier-syntax">ValueProperties::assert</span><span class="plain-syntax">(</span><span class="identifier-syntax">P_found_in</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">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">CERTAIN_CE</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP24" class="paragraph-anchor"></a><b>&#167;24. </b>This utility returns the "opposite" property for a direction, which is
<p class="commentary firstcommentary"><a id="SP25" class="paragraph-anchor"></a><b>&#167;25. </b>This utility returns the "opposite" property for a direction, which is
always another direction: for example, the opposite of northwest is southeast.
</p>
@ -563,7 +565,7 @@ always another direction: for example, the opposite of northwest is southeast.
<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>
</pre>
<p class="commentary firstcommentary"><a id="SP25" class="paragraph-anchor"></a><b>&#167;25. The exits array. </b>The bulk of the map is stored in the arrays called <span class="extract"><span class="extract-syntax">exits</span></span>, which hold the
<p class="commentary firstcommentary"><a id="SP26" class="paragraph-anchor"></a><b>&#167;26. The exits array. </b>The bulk of the map is stored in the arrays called <span class="extract"><span class="extract-syntax">exits</span></span>, which hold the
map connections fanning out from each room. The direction numbers carefully
noted above are keys into these arrays.
</p>
@ -605,21 +607,14 @@ contains quite crunchy algorithms, has the fastest possible access to the layout
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP26" class="paragraph-anchor"></a><b>&#167;26. Door connectivity. </b>We've seen how most of the map is represented, in the <span class="extract"><span class="extract-syntax">exits</span></span> arrays. The
<p class="commentary firstcommentary"><a id="SP27" class="paragraph-anchor"></a><b>&#167;27. Door connectivity. </b>We've seen how most of the map is represented, in the <span class="extract"><span class="extract-syntax">exits</span></span> arrays. The
missing information has to do with doors. If east of the Carousel Room is
the oak door, then <span class="extract"><span class="extract-syntax">Map_Storage</span></span> reveals only that fact, and not what's on
the other side of the door. This will eventually be compiled into the
<span class="extract"><span class="extract-syntax">door_to</span></span> property for the oak door object. In the mean time, every door
object has four pieces of data attached:
<span class="extract"><span class="extract-syntax">door_to</span></span> property for the oak door object.
</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">Map::get_door_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">door</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> **</span><span class="identifier-syntax">c1</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> **</span><span class="identifier-syntax">c2</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">c1</span><span class="plain-syntax">) *</span><span class="identifier-syntax">c1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">door</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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">c2</span><span class="plain-syntax">) *</span><span class="identifier-syntax">c2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">door</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>
</pre>
<p class="commentary firstcommentary"><a id="SP27" class="paragraph-anchor"></a><b>&#167;27. </b>We would like to deduce from a sentence like
<p class="commentary">We would like to deduce from a sentence like
</p>
<blockquote>
@ -706,8 +701,8 @@ because, of course, that does set its kind.
<span class="plain-syntax"> (</span><span class="identifier-syntax">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">) == </span><span class="identifier-syntax">COMMON_NOUN_NT</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="identifier-syntax">left_object</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">px</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="identifier-syntax">right_kind</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</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-tm.html#SP11" class="function-link"><span class="function-syntax">Map::subject_is_a_direction</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">left_object</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="3-tm.html#SP11" class="function-link"><span class="function-syntax">Map::subject_is_a_direction</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">right_kind</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="3-tm.html#SP12" class="function-link"><span class="function-syntax">Map::subject_is_a_direction</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">left_object</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="3-tm.html#SP12" class="function-link"><span class="function-syntax">Map::subject_is_a_direction</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">right_kind</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">Assertions::Creator::convert_instance_to_nounphrase</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</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">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
@ -752,7 +747,7 @@ pairs.
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">forwards_dir</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InstanceSubjects::to_object_instance</span><span class="plain-syntax">(</span><span class="identifier-syntax">i_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">Instances::of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">forwards_dir</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_direction</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">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"unknown direction"</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">reverse_dir</span><span class="plain-syntax"> = </span><a href="3-tm.html#SP24" class="function-link"><span class="function-syntax">Map::get_value_of_opposite_property</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">forwards_dir</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">reverse_dir</span><span class="plain-syntax"> = </span><a href="3-tm.html#SP25" class="function-link"><span class="function-syntax">Map::get_value_of_opposite_property</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">forwards_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">go_from</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">Problems::quote_source</span><span class="plain-syntax">(1, </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_object</span><span class="plain-syntax">(2, </span><span class="identifier-syntax">forwards_dir</span><span class="plain-syntax">);</span>
@ -817,7 +812,7 @@ the map as might be thought.
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-tm.html#SP33_7" class="named-paragraph-link"><span class="named-paragraph">Place any one-sided door inside the room which connects to it</span><span class="named-paragraph-number">33.7</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-tm.html#SP33_8" class="named-paragraph-link"><span class="named-paragraph">Assert found-in, door-to and door-dir properties for doors</span><span class="named-paragraph-number">33.8</span></a></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="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">4</span><span class="plain-syntax">: </span><a href="3-tm.html#SP25" class="function-link"><span class="function-syntax">Map::build_exits_array</span></a><span class="plain-syntax">(); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">4</span><span class="plain-syntax">: </span><a href="3-tm.html#SP26" class="function-link"><span class="function-syntax">Map::build_exits_array</span></a><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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
@ -859,7 +854,7 @@ checks that various mapping impossibilities do not occur.
<span class="plain-syntax"> </span><a href="3-tm.html#SP6" class="function-link"><span class="function-syntax">Map::get_map_references</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inf</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">infs1</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">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InstanceSubjects::to_object_instance</span><span class="plain-syntax">(</span><span class="identifier-syntax">infs1</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-sm.html#SP7" class="function-link"><span class="function-syntax">Spatial::object_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="identifier-syntax">to</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="3-tm.html#SP12" class="function-link"><span class="function-syntax">Map::instance_is_a_door</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">to</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="3-tm.html#SP13" class="function-link"><span class="function-syntax">Map::instance_is_a_door</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">to</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="3-sm.html#SP7" class="function-link"><span class="function-syntax">Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">to</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">StandardProblems::contradiction_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_BadMapCell</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Instances::get_creating_sentence</span><span class="plain-syntax">(</span><span class="identifier-syntax">to</span><span class="plain-syntax">),</span>
@ -867,7 +862,7 @@ checks that various mapping impossibilities do not occur.
<span class="plain-syntax"> </span><span class="string-syntax">"appears to be something which can be reached via a map "</span>
<span class="plain-syntax"> </span><span class="string-syntax">"connection, but it seems to be neither a room nor a door"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"and these are the only possibilities allowed by Inform."</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-tm.html#SP12" class="function-link"><span class="function-syntax">Map::instance_is_a_door</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><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="3-tm.html#SP13" class="function-link"><span class="function-syntax">Map::instance_is_a_door</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="3-sm.html#SP7" class="function-link"><span class="function-syntax">Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">to</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">StandardProblems::object_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_DoorToNonRoom</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">,</span>
@ -884,7 +879,7 @@ checks that various mapping impossibilities do not occur.
<pre class="displayed-code all-displayed-code code-font">
<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="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">if</span><span class="plain-syntax"> (</span><a href="3-tm.html#SP12" class="function-link"><span class="function-syntax">Map::instance_is_a_door</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="3-tm.html#SP13" class="function-link"><span class="function-syntax">Map::instance_is_a_door</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">connections_in</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">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">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">where</span><span class="plain-syntax">[3];</span>
@ -979,7 +974,7 @@ from which there's no way back.)
<span class="plain-syntax"> </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">infs1</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="3-tm.html#SP6" class="function-link"><span class="function-syntax">Map::get_map_references</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inf</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">infs1</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">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InstanceSubjects::to_object_instance</span><span class="plain-syntax">(</span><span class="identifier-syntax">infs1</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-tm.html#SP12" class="function-link"><span class="function-syntax">Map::instance_is_a_door</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">to</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-tm.html#SP13" class="function-link"><span class="function-syntax">Map::instance_is_a_door</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">to</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">exit1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">to</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">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">exit2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">to</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="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">I</span><span class="plain-syntax"> != </span><span class="identifier-syntax">exit1</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">exit2</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)) {</span>
@ -1019,7 +1014,7 @@ from which there's no way back.)
<pre class="displayed-code all-displayed-code code-font">
<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="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">if</span><span class="plain-syntax"> ((</span><a href="3-tm.html#SP12" class="function-link"><span class="function-syntax">Map::instance_is_a_door</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><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="3-tm.html#SP13" class="function-link"><span class="function-syntax">Map::instance_is_a_door</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><span class="identifier-syntax">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">map_connection_a</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">map_connection_b</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">PropertyInferences::value_of</span><span class="plain-syntax">(</span>
@ -1047,7 +1042,7 @@ model at run-time.) This is where we apply the kill-joy rule in question:
<pre class="displayed-code all-displayed-code code-font">
<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="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">if</span><span class="plain-syntax"> ((</span><a href="3-tm.html#SP12" class="function-link"><span class="function-syntax">Map::instance_is_a_door</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><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="3-tm.html#SP13" class="function-link"><span class="function-syntax">Map::instance_is_a_door</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="3-sm.html#SP28" class="function-link"><span class="function-syntax">Spatial::progenitor</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="3-sm.html#SP28" class="function-link"><span class="function-syntax">Spatial::progenitor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">) != </span><span class="identifier-syntax">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">map_connection_a</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="3-sm.html#SP28" class="function-link"><span class="function-syntax">Spatial::progenitor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">) != </span><span class="identifier-syntax">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">map_connection_b</span><span class="plain-syntax">))</span>
@ -1068,7 +1063,7 @@ to them.
<pre class="displayed-code all-displayed-code code-font">
<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="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">if</span><span class="plain-syntax"> ((</span><a href="3-tm.html#SP12" class="function-link"><span class="function-syntax">Map::instance_is_a_door</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><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="3-tm.html#SP13" class="function-link"><span class="function-syntax">Map::instance_is_a_door</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><span class="identifier-syntax">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">map_connection_b</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><a href="3-sm.html#SP28" class="function-link"><span class="function-syntax">Spatial::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><a href="3-sm.html#SP28" class="function-link"><span class="function-syntax">Spatial::set_progenitor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">map_connection_a</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
@ -1091,7 +1086,7 @@ trust that there is nothing surprising here.
<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="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">if</span><span class="plain-syntax"> (</span><a href="3-tm.html#SP12" class="function-link"><span class="function-syntax">Map::instance_is_a_door</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="3-tm.html#SP13" class="function-link"><span class="function-syntax">Map::instance_is_a_door</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">EitherOrProperties::assert</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">P_door</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">TRUE</span><span class="plain-syntax">, </span><span class="identifier-syntax">CERTAIN_CE</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">R1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">map_connection_a</span><span class="plain-syntax">;</span>
@ -1116,7 +1111,7 @@ trust that there is nothing surprising here.
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RTDoors::found_in_for_2_sided</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">R1</span><span class="plain-syntax">, </span><span class="identifier-syntax">R2</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-tm.html#SP23" class="function-link"><span class="function-syntax">Map::set_found_in</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">val</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-tm.html#SP24" class="function-link"><span class="function-syntax">Map::set_found_in</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">val</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-tm.html#SP33_8">&#167;33.8</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP33_8_2" class="paragraph-anchor"></a><b>&#167;33.8.2. </b>Here <span class="extract"><span class="extract-syntax">door_dir</span></span> is a routine looking at the current location and returning
@ -1160,7 +1155,7 @@ why we don't need to compile <span class="extract"><span class="extract-syntax">
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">backwards</span><span class="plain-syntax"> = </span><a href="3-tm.html#SP24" class="function-link"><span class="function-syntax">Map::get_value_of_opposite_property</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D1</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">backwards</span><span class="plain-syntax"> = </span><a href="3-tm.html#SP25" class="function-link"><span class="function-syntax">Map::get_value_of_opposite_property</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D1</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">backwards</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ValueProperties::assert</span><span class="plain-syntax">(</span><span class="identifier-syntax">P_door_dir</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="plain-syntax"> </span><span class="identifier-syntax">Rvalues::from_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">RTInstances::value_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">backwards</span><span class="plain-syntax">)), </span><span class="identifier-syntax">CERTAIN_CE</span><span class="plain-syntax">);</span>

View file

@ -180,7 +180,7 @@ is created in English.)
<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="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">Player::get_start_room</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">Player::get_start_room</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">Player::get_start_room</span></span>:<br/>Spatial Model - <a href="3-sm.html#SP40">&#167;40</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</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">start_room</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
@ -236,7 +236,7 @@ aliasing.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Player::variable_set_warning</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">Player::variable_set_warning</span></span>:<br/><a href="3-tp.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Player::variable_set_warning</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">Player::variable_set_warning</span></span>:<br/><a href="3-tp.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</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">nlv</span><span class="plain-syntax"> == </span><span class="identifier-syntax">player_VAR</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">npc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Rvalues::to_object_instance</span><span class="plain-syntax">(</span><span class="identifier-syntax">val</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">npc</span><span class="plain-syntax">) {</span>
@ -276,7 +276,7 @@ that is, when the source text explicitly sets a value for "player".
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Player::detect_bodysnatching</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">Player::detect_bodysnatching</span></span>:<br/><a href="3-tp.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">body</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">snatcher</span><span class="plain-syntax">,</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Player::detect_bodysnatching</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">Player::detect_bodysnatching</span></span>:<br/><a href="3-tp.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">body</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">snatcher</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="identifier-syntax">counterpart</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">player_character_object</span><span class="plain-syntax"> == </span><span class="identifier-syntax">I_yourself</span><span class="plain-syntax">) ||</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">player_character_object</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">I_yourself</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">FALSE</span><span class="plain-syntax">;</span>
@ -316,7 +316,7 @@ ensure that assemblies such as "A nose is part of every person" produces
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Player::irregular_genitive</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">Player::irregular_genitive</span></span>:<br/><a href="3-tp.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">genitive</span><span class="plain-syntax">,</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Player::irregular_genitive</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">Player::irregular_genitive</span></span>:<br/><a href="3-tp.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">genitive</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">propriety</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">owner</span><span class="plain-syntax"> == </span><span class="identifier-syntax">Instances::as_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">I_yourself</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">genitive</span><span class="plain-syntax">, </span><span class="string-syntax">"your "</span><span class="plain-syntax">);</span>
@ -351,7 +351,7 @@ and people still sometimes type it.
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>&#167;9. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Player::refine_implicit_noun</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">Player::refine_implicit_noun</span></span>:<br/><a href="3-tp.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Player::refine_implicit_noun</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">Player::refine_implicit_noun</span></span>:<br/><a href="3-tp.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</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">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;implicit-player-relationship&gt;</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="identifier-syntax">Refiner::give_subject_to_noun</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">Instances::as_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">player_character_object</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>
@ -374,7 +374,7 @@ we assume he is freestanding in the earliest defined room.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Player::complete_model</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">Player::complete_model</span></span>:<br/><a href="3-tp.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">stage</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Player::complete_model</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">Player::complete_model</span></span>:<br/><a href="3-tp.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">stage</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">stage</span><span class="plain-syntax"> == </span><span class="identifier-syntax">WORLD_STAGE_III</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">I_yourself</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">P_ssn</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ValueProperties::new_nameless</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"saved_short_name"</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_text</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ValueProperties::assert</span><span class="plain-syntax">(</span><span class="identifier-syntax">P_ssn</span><span class="plain-syntax">, </span><span class="identifier-syntax">Instances::as_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">I_yourself</span><span class="plain-syntax">),</span>

View file

@ -77,8 +77,11 @@ which use this module:
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">INDEX_SORTING_MREASON</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MAP_INDEX_MREASON</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TYPE_TABLES_MREASON</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">faux_instance_CLASS</span>
</pre>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax">)</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IndexModule::start</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Memory::reason_name</span><span class="plain-syntax">(</span><span class="constant-syntax">INDEX_SORTING_MREASON</span><span class="plain-syntax">, </span><span class="string-syntax">"index sorting"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Memory::reason_name</span><span class="plain-syntax">(</span><span class="constant-syntax">MAP_INDEX_MREASON</span><span class="plain-syntax">, </span><span class="string-syntax">"map in the World index"</span><span class="plain-syntax">);</span>
@ -88,7 +91,7 @@ which use this module:
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprevoff">&#10094;</li><li class="progresscurrentchapter">1</li><li class="progresscurrent">im</li><li class="progresschapter"><a href="2-me.html">2</a></li><li class="progresschapter"><a href="3-spt.html">3</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="2-me.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprevoff">&#10094;</li><li class="progresscurrentchapter">1</li><li class="progresscurrent">im</li><li class="progresschapter"><a href="2-me.html">2</a></li><li class="progresschapter"><a href="3-spt.html">3</a></li><li class="progresschapter"><a href="4-sm.html">4</a></li><li class="progressnext"><a href="2-me.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

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="element-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="identifier-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="element-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="identifier-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>
@ -150,7 +150,7 @@ state of being boolean, and the given certainty levels:
<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. Indexing properties of a specific subject. </b>This only tells about specific property settings for a given instance.
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. Indexing properties of a specific subject. </b>This only tells about specific property settings for a given faux_instance.
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -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="element-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="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">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="element-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="identifier-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>
@ -194,7 +194,7 @@ state of being boolean, and the given certainty levels:
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="2-prp.html">&#10094;</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-me.html">me</a></li><li class="progresssection"><a href="2-ins.html">ins</a></li><li class="progresssection"><a href="2-prp.html">prp</a></li><li class="progresscurrent">inf</li><li class="progresschapter"><a href="3-spt.html">3</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="3-spt.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="2-prp.html">&#10094;</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-me.html">me</a></li><li class="progresssection"><a href="2-ins.html">ins</a></li><li class="progresssection"><a href="2-prp.html">prp</a></li><li class="progresscurrent">inf</li><li class="progresschapter"><a href="3-spt.html">3</a></li><li class="progresschapter"><a href="4-sm.html">4</a></li><li class="progressnext"><a href="3-spt.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -72,39 +72,385 @@ 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. Noun usage</a></li></ul><hr class="tocbar">
<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">
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </b>Each instance includes the following additional data:
</p>
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </b></p>
<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">instance_index_data</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">instance_index_data</span><span class="plain-syntax">;</span>
<pre class="definitions code-font"><span class="definition-keyword">define</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">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</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">R</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">is_a_room</span><span class="plain-syntax">)</span>
<span class="definition-keyword">define</span> <span class="identifier-syntax">LOOP_OVER_REGIONS</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</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</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">R</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">is_a_region</span><span class="plain-syntax">)</span>
<span class="definition-keyword">define</span> <span class="identifier-syntax">LOOP_OVER_DIRECTIONS</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</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</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">R</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">is_a_direction</span><span class="plain-syntax">)</span>
<span class="definition-keyword">define</span> <span class="identifier-syntax">LOOP_OVER_BACKDROPS</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</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</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">R</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">is_a_backdrop</span><span class="plain-syntax">)</span>
<span class="definition-keyword">define</span> <span class="identifier-syntax">LOOP_OVER_OBJECTS</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</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax">)</span>
</pre>
<ul class="endnotetexts"><li>The structure instance_index_data is private to this section.</li></ul>
<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">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>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">is_a_person</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_room</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_door</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_region</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_direction</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_backdrop</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_everywhere</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_worn</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_part</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">specify_kind</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">direction_index</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">direction_number</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">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">backdrop_presences</span><span class="plain-syntax">; </span><span class="comment-syntax"> of </span><span class="extract"><span class="extract-syntax">faux_instance</span></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="identifier-syntax">region_enclosing</span><span class="plain-syntax">;</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="identifier-syntax">next_room_in_submap</span><span class="plain-syntax">;</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="identifier-syntax">opposite_direction</span><span class="plain-syntax">;</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="identifier-syntax">object_tree_sibling</span><span class="plain-syntax">;</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="identifier-syntax">object_tree_child</span><span class="plain-syntax">;</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="identifier-syntax">progenitor</span><span class="plain-syntax">;</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="identifier-syntax">incorp_tree_sibling</span><span class="plain-syntax">;</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="identifier-syntax">incorp_tree_child</span><span class="plain-syntax">;</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="identifier-syntax">other_side</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">kind_text</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">kind_chain</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">anchor_text</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">created_at</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">kind_set_at</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">region_set_at</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">progenitor_set_at</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">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">usages</span><span class="plain-syntax">; </span><span class="comment-syntax"> of </span><span class="extract"><span class="extract-syntax">parse_node</span></span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</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">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax">;</span>
<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">fi_map_data</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">connected_submap</span><span class="plain-syntax"> *</span><span class="identifier-syntax">submap</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">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">position</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">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">saved_gridpos</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">cooled</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">shifted</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">zone</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">colour</span><span class="plain-syntax">; </span><span class="comment-syntax"> an HTML colour for the room square (rooms only)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text_colour</span><span class="plain-syntax">; </span><span class="comment-syntax"> an HTML colour for text on that square</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">eps_x</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">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">map_connection_a</span><span class="plain-syntax">;</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="identifier-syntax">map_connection_b</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_lengths</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">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">spatial_relationship</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">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">exits</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">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lock_exits</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">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="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>
<span class="plain-syntax"> </span><span class="identifier-syntax">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">saved_gridpos</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Zero_vector</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">cooled</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">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">shifted</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">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="identifier-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="identifier-syntax">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">eps_x</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">fimd</span><span class="plain-syntax">.</span><span class="identifier-syntax">eps_y</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">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">map_connection_a</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">map_connection_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="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">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">exit_lengths</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</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">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><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">lock_exits</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="plain-syntax"> </span><span class="identifier-syntax">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">spatial_relationship</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="plain-syntax"> </span><span class="identifier-syntax">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">exits_set_at</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">] = -1;</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">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>
<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::initialise_iid</span><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="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">iid</span><span class="plain-syntax">.</span><span class="identifier-syntax">index_appearances</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<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>
<span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_yourself</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_benchmark</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXInstances::make_faux</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">IXInstances::make_faux</span></span>:<br/>Map Element - <a href="2-me.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</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">I</span><span class="plain-syntax">;</span>
<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">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>
<span class="plain-syntax"> </span><span class="identifier-syntax">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">is_a_person</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_person</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_room</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Spatial::object_is_a_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="identifier-syntax">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">is_a_door</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Map::instance_is_a_door</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_region</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Regions::object_is_a_region</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_direction</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Map::object_is_a_direction</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_backdrop</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Backdrops::object_is_a_backdrop</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_everywhere</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">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">is_worn</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</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">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">property_inf</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">PropertyInferences::get_property</span><span class="plain-syntax">(</span><span class="identifier-syntax">inf</span><span class="plain-syntax">) == </span><span class="identifier-syntax">P_worn</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_worn</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</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_part</span><span class="plain-syntax"> = </span><span class="identifier-syntax">SPATIAL_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)-&gt;</span><span class="identifier-syntax">part_flag</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">backdrop_presences</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</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">region_enclosing</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">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next_room_in_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">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">opposite_direction</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">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">object_tree_sibling</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">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">object_tree_child</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">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">progenitor</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">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">incorp_tree_sibling</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">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">incorp_tree_child</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">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">direction_index</span><span class="plain-syntax"> = </span><span class="identifier-syntax">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</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="identifier-syntax">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">direction_number</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InstanceCounting::IK_count</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_direction</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">k</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::to_kind</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">specify_kind</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">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">k</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_thing</span><span class="plain-syntax">)) </span><span class="identifier-syntax">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">specify_kind</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">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">k</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_room</span><span class="plain-syntax">)) </span><span class="identifier-syntax">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">specify_kind</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">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">other_side</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">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kind_text</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">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Kinds::Behaviour::get_name_in_play</span><span class="plain-syntax">(</span><span class="identifier-syntax">k</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">Projects::get_language_of_play</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::project</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">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kind_text</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">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kind_chain</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">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IK</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::to_kind</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</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">while</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">IK</span><span class="plain-syntax"> != </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">IK</span><span class="plain-syntax">)) {</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">IK</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Latticework::super</span><span class="plain-syntax">(</span><span class="identifier-syntax">IK</span><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">j</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">-1; </span><span class="identifier-syntax">j</span><span class="plain-syntax">&gt;=0; </span><span class="identifier-syntax">j</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">k</span><span class="plain-syntax">; </span><span class="identifier-syntax">IK</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::to_kind</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="identifier-syntax">k</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">k</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">j</span><span class="plain-syntax">; </span><span class="identifier-syntax">k</span><span class="plain-syntax">++) </span><span class="identifier-syntax">IK</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Latticework::super</span><span class="plain-syntax">(</span><span class="identifier-syntax">IK</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"> != </span><span class="identifier-syntax">i</span><span class="plain-syntax">-1) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kind_chain</span><span class="plain-syntax">, </span><span class="string-syntax">" &amp;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><span class="identifier-syntax">Kinds::Behaviour::get_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">IK</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">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kind_chain</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="plain-syntax"> </span><span class="identifier-syntax">noun</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nt</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::get_noun</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">anchor_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">NounIdentifiers::identifier</span><span class="plain-syntax">(</span><span class="identifier-syntax">nt</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">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::get_creating_sentence</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">) </span><span class="identifier-syntax">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">created_at</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">C</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">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">created_at</span><span class="plain-syntax"> = -1;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::get_kind_set_sentence</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">) </span><span class="identifier-syntax">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kind_set_at</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">C</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">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">kind_set_at</span><span class="plain-syntax"> = -1;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">SPATIAL_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</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">C</span><span class="plain-syntax">) </span><span class="identifier-syntax">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">progenitor_set_at</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">C</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">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">progenitor_set_at</span><span class="plain-syntax"> = -1;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">region_set_at</span><span class="plain-syntax"> = -1;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">REGIONS_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)-&gt;</span><span class="identifier-syntax">in_region_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">C</span><span class="plain-syntax">) </span><span class="identifier-syntax">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">region_set_at</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">C</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">usages</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">usages</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">fimd</span><span class="plain-syntax"> = </span><a href="2-ins.html#SP1" class="function-link"><span class="function-syntax">IXInstances::new_fimd</span></a><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">FI</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">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)-&gt;</span><span class="identifier-syntax">world_index_colour</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">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">text_colour</span><span class="plain-syntax"> = </span><span class="identifier-syntax">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)-&gt;</span><span class="identifier-syntax">world_index_text_colour</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">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">eps_x</span><span class="plain-syntax"> = </span><span class="identifier-syntax">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">eps_x</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">fimd</span><span class="plain-syntax">.</span><span class="identifier-syntax">eps_y</span><span class="plain-syntax"> = </span><span class="identifier-syntax">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)-&gt;</span><span class="identifier-syntax">eps_y</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">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">at</span><span class="plain-syntax"> = </span><span class="identifier-syntax">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)-&gt;</span><span class="element-syntax">exits_set_at</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">at</span><span class="plain-syntax">) </span><span class="identifier-syntax">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">exits_set_at</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</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">at</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">I</span><span class="plain-syntax"> == </span><span class="identifier-syntax">I_yourself</span><span class="plain-syntax">) </span><span class="identifier-syntax">faux_yourself</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">I</span><span class="plain-syntax"> == </span><span class="identifier-syntax">Spatial::get_benchmark_room</span><span class="plain-syntax">()) </span><span class="identifier-syntax">faux_benchmark</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">I</span><span class="plain-syntax"> == </span><span class="identifier-syntax">Player::get_start_room</span><span class="plain-syntax">()) </span><span class="identifier-syntax">start_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="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">FB</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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">FB</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">is_a_backdrop</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">B</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">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="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>
<span class="plain-syntax"> </span><span class="identifier-syntax">FB</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">is_everywhere</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="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="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="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="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="plain-syntax">}</span>
<span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="function-syntax">IXInstances::start_room</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">IXInstances::start_room</span></span>:<br/>The Player - <a href="3-tp.html#SP1">&#167;1</a><br/>Spatial Map - <a href="4-sm.html#SP42_2">&#167;42.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</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">start_faux_instance</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::yourself</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">IXInstances::yourself</span></span>:<br/>The Player - <a href="3-tp.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</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">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. Noun usage. </b>This simply avoids repetitions in the World index:
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. 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="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="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="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="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>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</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">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="function-syntax">IXInstances::region_of</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">IXInstances::region_of</span></span>:<br/>Map Element - <a href="2-me.html#SP1_2">&#167;1.2</a>, <a href="2-me.html#SP1_2_1">&#167;1.2.1</a><br/>Regions - <a href="3-rgn.html#SP1">&#167;1</a><br/>Spatial Map - <a href="4-sm.html#SP37">&#167;37</a>, <a href="4-sm.html#SP41_1">&#167;41.1</a>, <a href="4-sm.html#SP42_2">&#167;42.2</a><br/>HTML Map - <a href="4-hm.html#SP6_2">&#167;6.2</a>, <a href="4-hm.html#SP13">&#167;13</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">FI</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">region_enclosing</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::opposite_direction</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">IXInstances::opposite_direction</span></span>:<br/>Spatial Map - <a href="4-sm.html#SP42_1">&#167;42.1</a>, <a href="4-sm.html#SP42_3">&#167;42.3</a>, <a href="4-sm.html#SP44">&#167;44</a></span></button><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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">FR</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">FR</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">opposite_direction</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::other_side_of_door</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">IXInstances::other_side_of_door</span></span>:<br/>The Map - <a href="3-tm.html#SP1">&#167;1</a><br/>Spatial Map - <a href="4-sm.html#SP42_1">&#167;42.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">FR</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"> == </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">FR</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">other_side</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::sibling</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">IXInstances::sibling</span></span>:<br/>Spatial - <a href="3-spt.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">FR</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"> == </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">FR</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="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="function-syntax">IXInstances::child</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">IXInstances::child</span></span>:<br/>Spatial - <a href="3-spt.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">FR</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"> == </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">FR</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="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="function-syntax">IXInstances::progenitor</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">IXInstances::progenitor</span></span>:<br/>Map Element - <a href="2-me.html#SP1_4">&#167;1.4</a><br/>Spatial - <a href="3-spt.html#SP1">&#167;1</a>, <a href="3-spt.html#SP3">&#167;3</a>, <a href="3-spt.html#SP4">&#167;4</a></span></button><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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">FR</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">FR</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">progenitor</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::incorp_child</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">IXInstances::incorp_child</span></span>:<br/>Spatial - <a href="3-spt.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">FR</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"> == </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">FR</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="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="function-syntax">IXInstances::incorp_sibling</span><button class="popup" onclick="togglePopup('usagePopup18')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup18">Usage of <span class="code-font"><span class="function-syntax">IXInstances::incorp_sibling</span></span>:<br/>Spatial - <a href="3-spt.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">FR</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"> == </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">FR</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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">IXInstances::is_a_direction</span><button class="popup" onclick="togglePopup('usagePopup19')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup19">Usage of <span class="code-font"><span class="function-syntax">IXInstances::is_a_direction</span></span>:<br/>Map Element - <a href="2-me.html#SP1_1">&#167;1.1</a><br/>Spatial Map - <a href="4-sm.html#SP42_1">&#167;42.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">FR</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"> == </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">FALSE</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">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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">IXInstances::is_a_room</span><button class="popup" onclick="togglePopup('usagePopup20')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup20">Usage of <span class="code-font"><span class="function-syntax">IXInstances::is_a_room</span></span>:<br/>Map Element - <a href="2-me.html#SP2">&#167;2</a>, <a href="2-me.html#SP2_3_1">&#167;2.3.1</a><br/>Spatial - <a href="3-spt.html#SP3">&#167;3</a><br/>Regions - <a href="3-rgn.html#SP1">&#167;1</a><br/>The Map - <a href="3-tm.html#SP1">&#167;1</a><br/>Spatial Map - <a href="4-sm.html#SP7_15">&#167;7.15</a>, <a href="4-sm.html#SP42_2">&#167;42.2</a><br/>Render EPS Map - <a href="4-rem.html#SP2_6">&#167;2.6</a></span></button><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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">FR</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">FALSE</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">FR</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">is_a_room</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">IXInstances::is_a_door</span><button class="popup" onclick="togglePopup('usagePopup21')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup21">Usage of <span class="code-font"><span class="function-syntax">IXInstances::is_a_door</span></span>:<br/>Spatial - <a href="3-spt.html#SP3">&#167;3</a><br/>The Map - <a href="3-tm.html#SP1">&#167;1</a><br/>Spatial Map - <a href="4-sm.html#SP7_15">&#167;7.15</a>, <a href="4-sm.html#SP42_1">&#167;42.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">FR</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"> == </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">FALSE</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">FR</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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">IXInstances::is_a_region</span><button class="popup" onclick="togglePopup('usagePopup22')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup22">Usage of <span class="code-font"><span class="function-syntax">IXInstances::is_a_region</span></span>:<br/>Map Element - <a href="2-me.html#SP1_2">&#167;1.2</a><br/>Spatial Map - <a href="4-sm.html#SP42_1">&#167;42.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">FR</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"> == </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">FALSE</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">FR</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">is_a_region</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">IXInstances::is_a_thing</span><button class="popup" onclick="togglePopup('usagePopup23')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup23">Usage of <span class="code-font"><span class="function-syntax">IXInstances::is_a_thing</span></span>:<br/>Spatial - <a href="3-spt.html#SP4">&#167;4</a></span></button><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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">FR</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">FALSE</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">FR</span><span class="plain-syntax">-&gt;</span><span class="element-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="function-syntax">IXInstances::is_a_supporter</span><button class="popup" onclick="togglePopup('usagePopup24')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup24">Usage of <span class="code-font"><span class="function-syntax">IXInstances::is_a_supporter</span></span>:<br/>Spatial - <a href="3-spt.html#SP1">&#167;1</a>, <a href="3-spt.html#SP4">&#167;4</a></span></button><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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">FR</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">FALSE</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">FR</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">is_a_supporter</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">IXInstances::is_a_person</span><button class="popup" onclick="togglePopup('usagePopup25')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup25">Usage of <span class="code-font"><span class="function-syntax">IXInstances::is_a_person</span></span>:<br/>Spatial - <a href="3-spt.html#SP1">&#167;1</a>, <a href="3-spt.html#SP4">&#167;4</a></span></button><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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">FR</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">FALSE</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">FR</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">is_a_person</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::get_door_data</span><button class="popup" onclick="togglePopup('usagePopup26')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup26">Usage of <span class="code-font"><span class="function-syntax">IXInstances::get_door_data</span></span>:<br/>Spatial - <a href="3-spt.html#SP3">&#167;3</a><br/>The Map - <a href="3-tm.html#SP1">&#167;1</a><br/>Spatial Map - <a href="4-sm.html#SP7_15">&#167;7.15</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">door</span><span class="plain-syntax">, </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> **</span><span class="identifier-syntax">c1</span><span class="plain-syntax">, </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> **</span><span class="identifier-syntax">c2</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">c1</span><span class="plain-syntax">) *</span><span class="identifier-syntax">c1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">door</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>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">c2</span><span class="plain-syntax">) *</span><span class="identifier-syntax">c2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">door</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>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">map_parameter_scope</span><span class="plain-syntax"> *</span><span class="function-syntax">IXInstances::get_parameters</span><button class="popup" onclick="togglePopup('usagePopup27')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup27">Usage of <span class="code-font"><span class="function-syntax">IXInstances::get_parameters</span></span>:<br/>Render EPS Map - <a href="4-rem.html#SP1_2">&#167;1.2</a>, <a href="4-rem.html#SP1_3">&#167;1.3</a>, <a href="4-rem.html#SP2_5">&#167;2.5</a>, <a href="4-rem.html#SP2_6">&#167;2.6</a>, <a href="4-rem.html#SP2_6_1">&#167;2.6.1</a>, <a href="4-rem.html#SP2_7">&#167;2.7</a></span></button><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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">R</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"> &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>
<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::increment_indexing_count</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::increment_indexing_count</span></span>:<br/>Map Element - <a href="2-me.html#SP1_1">&#167;1.1</a>, <a href="2-me.html#SP1_2">&#167;1.2</a>, <a href="2-me.html#SP2">&#167;2</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="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">iid</span><span class="plain-syntax">.</span><span class="identifier-syntax">index_appearances</span><span class="plain-syntax">++;</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXInstances::increment_indexing_count</span><button class="popup" onclick="togglePopup('usagePopup28')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup28">Usage of <span class="code-font"><span class="function-syntax">IXInstances::increment_indexing_count</span></span>:<br/>Map Element - <a href="2-me.html#SP1_1">&#167;1.1</a>, <a href="2-me.html#SP1_2">&#167;1.2</a>, <a href="2-me.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">I</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">index_appearances</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">IXInstances::indexed_yet</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">IXInstances::indexed_yet</span></span>:<br/>Map Element - <a href="2-me.html#SP1_3">&#167;1.3</a>, <a href="2-me.html#SP1_4">&#167;1.4</a><br/>The Player - <a href="3-tp.html#SP1">&#167;1</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">iid</span><span class="plain-syntax">.</span><span class="element-syntax">index_appearances</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">IXInstances::indexed_yet</span><button class="popup" onclick="togglePopup('usagePopup29')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup29">Usage of <span class="code-font"><span class="function-syntax">IXInstances::indexed_yet</span></span>:<br/>Map Element - <a href="2-me.html#SP1_3">&#167;1.3</a>, <a href="2-me.html#SP1_4">&#167;1.4</a><br/>The Player - <a href="3-tp.html#SP1">&#167;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">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">index_appearances</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</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><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>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="2-me.html">&#10094;</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-me.html">me</a></li><li class="progresscurrent">ins</li><li class="progresssection"><a href="2-prp.html">prp</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresschapter"><a href="3-spt.html">3</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="2-prp.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="2-me.html">&#10094;</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-me.html">me</a></li><li class="progresscurrent">ins</li><li class="progresssection"><a href="2-prp.html">prp</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresschapter"><a href="3-spt.html">3</a></li><li class="progresschapter"><a href="4-sm.html">4</a></li><li class="progressnext"><a href="2-prp.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -74,26 +74,22 @@ function togglePopup(material_id) {
<ul class="toc"><li><a href="2-me.html#SP1">&#167;1. The World page</a></li><li><a href="2-me.html#SP2">&#167;2. Indexing individual objects</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. The World page. </b>This section belongs to the core of Inform, so it must work whatever plugins
are present, but the World index will look pretty sketchy without (for
instance) Spatial.
</p>
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. The World page. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">suppress_panel_changes</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<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="4-sm.html#SP7_15" class="function-link"><span class="function-syntax">PL::SpatialMap::establish_benchmark_room</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="4-em.html#SP13" class="function-link"><span class="function-syntax">PL::EPSMap::traverse_for_map_parameters</span></a><span class="plain-syntax">(1);</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><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>
<span class="plain-syntax"> </span><a href="4-sm.html#SP46" class="function-link"><span class="function-syntax">PL::SpatialMap::perform_map_internal_test</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-sm.html#SP45" class="function-link"><span class="function-syntax">PL::SpatialMap::perform_map_internal_test</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</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="4-hm.html#SP6" class="function-link"><span class="function-syntax">PL::HTMLMap::render_map_as_HTML</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-hm.html#SP13" class="function-link"><span class="function-syntax">PL::HTMLMap::add_region_key</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-em.html#SP24" class="function-link"><span class="function-syntax">PL::EPSMap::render_map_as_EPS</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="4-rem.html#SP1" class="function-link"><span class="function-syntax">RenderEPSMap::render_map_as_EPS</span></a><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">NULL</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
@ -110,26 +106,25 @@ instance) Spatial.
</p>
<pre class="displayed-code all-displayed-code code-font">
<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="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">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><span class="identifier-syntax">Map::instance_is_a_direction</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#SP3" 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#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>
</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>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">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_INSTANCES</span><span class="plain-syntax">(</span><span class="identifier-syntax">reg</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Regions::object_is_a_region</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">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">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#SP3" 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="identifier-syntax">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_INSTANCES</span><span class="plain-syntax">(</span><span class="identifier-syntax">rm</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">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Spatial::object_is_a_room</span><span class="plain-syntax">(</span><span class="identifier-syntax">rm</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Regions::enclosing</span><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><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><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><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>
@ -138,7 +133,7 @@ instance) Spatial.
<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#SP3" 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#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>
<span class="plain-syntax"> }</span>
</pre>
@ -147,9 +142,9 @@ instance) Spatial.
</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><span class="identifier-syntax">Instances::get_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">reg</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">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">within</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Regions::enclosing</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">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><span class="identifier-syntax">Instances::get_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">within</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">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;"</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>
@ -157,10 +152,9 @@ instance) Spatial.
</p>
<pre class="displayed-code all-displayed-code code-font">
<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="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">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Spatial::object_is_a_room</span><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::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">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="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>
@ -177,10 +171,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="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="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="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">if</span><span class="plain-syntax"> ((</span><a href="2-ins.html#SP3" 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><span class="identifier-syntax">Spatial::progenitor</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="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="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>
@ -205,29 +199,24 @@ will be things which are offstage (and their contents and any parts thereof):
<pre class="definitions code-font"><span class="definition-keyword">default</span> <span class="constant-syntax">MAX_OBJECT_INDEX_DEPTH</span><span class="plain-syntax"> </span><span class="constant-syntax">10000</span>
</pre>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">indexing_room</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">indexing_room</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">xtras_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">IXPhysicalWorld::room_being_indexed</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">IXPhysicalWorld::room_being_indexed</span></span>:<br/>The Map - <a href="3-tm.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="function-syntax">IXPhysicalWorld::room_being_indexed</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">IXPhysicalWorld::room_being_indexed</span></span>:<br/>The Map - <a href="3-tm.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</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">indexing_room</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">IXPhysicalWorld::set_room_being_indexed</span><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">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXPhysicalWorld::set_room_being_indexed</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">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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXPhysicalWorld::index</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">IXPhysicalWorld::index</span></span>:<br/><a href="2-me.html#SP1_4">&#167;1.4</a><br/>Spatial - <a href="3-spt.html#SP3">&#167;3</a><br/>The Player - <a href="3-tp.html#SP1">&#167;1</a><br/>Backdrops - <a href="3-bck.html#SP1">&#167;1</a><br/>HTML Map - <a href="4-hm.html#SP8">&#167;8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><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">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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXPhysicalWorld::index</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">IXPhysicalWorld::index</span></span>:<br/><a href="2-me.html#SP1_4">&#167;1.4</a><br/>Spatial - <a href="3-spt.html#SP3">&#167;3</a><br/>The Player - <a href="3-tp.html#SP1">&#167;1</a><br/>Backdrops - <a href="3-bck.html#SP1">&#167;1</a><br/>HTML Map - <a href="4-hm.html#SP8">&#167;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">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"> == </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="identifier-syntax">noun</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nt</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">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="identifier-syntax">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#SP3" 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="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">IF_MODULE</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</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_room</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="identifier-syntax">endif</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">nt</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::get_noun</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>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">nt</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"no noun to index"</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>
<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">xtra</span><span class="plain-syntax"> = </span><span class="identifier-syntax">xtras_count</span><span class="plain-syntax">++;</span>
@ -254,7 +243,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">details</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="identifier-syntax">depth</span><span class="plain-syntax">, </span><span class="string-syntax">"halftight"</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">indexing_room</span><span class="plain-syntax">) </span><span class="identifier-syntax">Index::anchor</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">NounIdentifiers::identifier</span><span class="plain-syntax">(</span><span class="identifier-syntax">nt</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">indexing_room</span><span class="plain-syntax">) </span><span class="identifier-syntax">Index::anchor</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">anchor_text</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">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">IF_MODULE</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="3-spt.html#SP1" class="function-link"><span class="function-syntax">IXSpatial::index_spatial_relationship</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>
@ -280,20 +269,16 @@ 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><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">Nouns::nominative_in_language</span><span class="plain-syntax">(</span><span class="identifier-syntax">nt</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">Projects::get_language_of_play</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::project</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">)) &amp;&amp; (</span><span class="identifier-syntax">I</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IK</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::to_kind</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">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Kinds::Behaviour::get_name_in_play</span><span class="plain-syntax">(</span><span class="identifier-syntax">IK</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">Projects::get_language_of_play</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::project</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::empty</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">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><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="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">IF_MODULE</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Spatial::object_is_a_room</span><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="identifier-syntax">endif</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><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">"%+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">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>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">details</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="2-me.html#SP2_3_1_1" class="named-paragraph-link"><span class="named-paragraph">Elaborate the name of the object being indexed</span><span class="named-paragraph-number">2.3.1.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
@ -304,16 +289,9 @@ 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">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">k</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::to_kind</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">Kinds::Behaviour::is_subkind_of_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">k</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><span class="identifier-syntax">Kinds::Behaviour::get_name_in_play</span><span class="plain-syntax">(</span><span class="identifier-syntax">k</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">Projects::get_language_of_play</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::project</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="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">", a kind of %+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="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>
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">PW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Nouns::nominative_in_language</span><span class="plain-syntax">(</span><span class="identifier-syntax">nt</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">, </span><span class="identifier-syntax">Projects::get_language_of_play</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::project</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">PW</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" (&lt;i&gt;plural&lt;/i&gt; %+W)"</span><span class="plain-syntax">, </span><span class="identifier-syntax">PW</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>
<p class="commentary firstcommentary"><a id="SP2_4" class="paragraph-anchor"></a><b>&#167;2.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index the kind attribution part of the object citation</span><span class="named-paragraph-number">2.4</span></span><span class="comment-syntax"> =</span>
@ -321,17 +299,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="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="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">k</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::to_kind</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">k</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">IF_MODULE</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><span class="identifier-syntax">Kinds::Behaviour::get_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">k</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">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">k</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">k</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_thing</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">k</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_room</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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" - &lt;i&gt;%+W&lt;/i&gt;"</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="identifier-syntax">endif</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><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>
</pre>
@ -340,8 +311,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><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::get_creating_sentence</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">) </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">C</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">created_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">created_at</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_6" class="paragraph-anchor"></a><b>&#167;2.6. </b>This either recurses down through subkinds or through the spatial hierarchy.
@ -361,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><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">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#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>
</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>
@ -369,24 +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><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IK</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::to_kind</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</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">while</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">IK</span><span class="plain-syntax"> != </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">IK</span><span class="plain-syntax">)) {</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">IK</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Latticework::super</span><span class="plain-syntax">(</span><span class="identifier-syntax">IK</span><span class="plain-syntax">);</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">j</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">j</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">-1; </span><span class="identifier-syntax">j</span><span class="plain-syntax">&gt;=0; </span><span class="identifier-syntax">j</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">k</span><span class="plain-syntax">; </span><span class="identifier-syntax">IK</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::to_kind</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="identifier-syntax">k</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">k</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">j</span><span class="plain-syntax">; </span><span class="identifier-syntax">k</span><span class="plain-syntax">++) </span><span class="identifier-syntax">IK</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Latticework::super</span><span class="plain-syntax">(</span><span class="identifier-syntax">IK</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"> != </span><span class="identifier-syntax">i</span><span class="plain-syntax">-1) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" &amp;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><span class="identifier-syntax">Kinds::Behaviour::get_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">IK</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">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="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::get_kind_set_sentence</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">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><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><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="4-sm.html#SP45" class="function-link"><span class="function-syntax">PL::SpatialMap::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#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><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>
@ -395,16 +351,16 @@ 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><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="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>
</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>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXPhysicalWorld::index_usages</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">IXPhysicalWorld::index_usages</span></span>:<br/><a href="2-me.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><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">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXPhysicalWorld::index_usages</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">IXPhysicalWorld::index_usages</span></span>:<br/><a href="2-me.html#SP2">&#167;2</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k</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">parse_node</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">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">at</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="identifier-syntax">usages</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">at</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">usages</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">source_file</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sf</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Lexer::file_of_origin</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">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">Projects::draws_from_source_file</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::project</span><span class="plain-syntax">(), </span><span class="identifier-syntax">sf</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">k</span><span class="plain-syntax">++;</span>
@ -419,7 +375,7 @@ will be things which are offstage (and their contents and any parts thereof):
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="1-im.html">&#10094;</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresscurrent">me</li><li class="progresssection"><a href="2-ins.html">ins</a></li><li class="progresssection"><a href="2-prp.html">prp</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresschapter"><a href="3-spt.html">3</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="2-ins.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="1-im.html">&#10094;</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresscurrent">me</li><li class="progresssection"><a href="2-ins.html">ins</a></li><li class="progresssection"><a href="2-prp.html">prp</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresschapter"><a href="3-spt.html">3</a></li><li class="progresschapter"><a href="4-sm.html">4</a></li><li class="progressnext"><a href="2-ins.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

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="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">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">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>
@ -143,7 +143,7 @@ function togglePopup(material_id) {
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="2-ins.html">&#10094;</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-me.html">me</a></li><li class="progresssection"><a href="2-ins.html">ins</a></li><li class="progresscurrent">prp</li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresschapter"><a href="3-spt.html">3</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="2-inf.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="2-ins.html">&#10094;</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-me.html">me</a></li><li class="progresssection"><a href="2-ins.html">ins</a></li><li class="progresscurrent">prp</li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresschapter"><a href="3-spt.html">3</a></li><li class="progresschapter"><a href="4-sm.html">4</a></li><li class="progressnext"><a href="2-inf.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -78,21 +78,21 @@ adds backdrop contents to a room called <span class="extract"><span class="extra
</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">IXBackdrops::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">IXBackdrops::index_object_further</span></span>:<br/>Map Element - <a href="2-me.html#SP1">&#167;1</a>, <a href="2-me.html#SP1_2">&#167;1.2</a><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="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">loc</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">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXBackdrops::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">IXBackdrops::index_object_further</span></span>:<br/>Map Element - <a href="2-me.html#SP1">&#167;1</a>, <a href="2-me.html#SP1_2">&#167;1.2</a><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">loc</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="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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">how</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">discoveries</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">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bd</span><span class="plain-syntax">;</span>
<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="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bd</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">loc</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_BACKDROPS_IN</span><span class="plain-syntax">(</span><span class="identifier-syntax">bd</span><span class="plain-syntax">, </span><span class="identifier-syntax">loc</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">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">bd</span><span class="plain-syntax">, </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax">, </span><span class="identifier-syntax">loc</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="reserved-syntax">if</span><span class="plain-syntax"> (++</span><span class="identifier-syntax">discoveries</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="3-bck.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Insert fore-matter</span><span class="named-paragraph-number">1.1</span></a></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">bd</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="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_BACKDROPS_EVERYWHERE</span><span class="plain-syntax">(</span><span class="identifier-syntax">bd</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">if</span><span class="plain-syntax"> (++</span><span class="identifier-syntax">discoveries</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="3-bck.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Insert fore-matter</span><span class="named-paragraph-number">1.1</span></a></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">bd</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="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_BACKDROPS</span><span class="plain-syntax">(</span><span class="identifier-syntax">bd</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">bd</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">is_everywhere</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">discoveries</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="3-bck.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Insert fore-matter</span><span class="named-paragraph-number">1.1</span></a></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">bd</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="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">discoveries</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="3-bck.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Insert after-matter</span><span class="named-paragraph-number">1.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
@ -119,7 +119,7 @@ adds backdrop contents to a room called <span class="extract"><span class="extra
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-bck.html#SP1">&#167;1</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="3-tp.html">&#10094;</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-me.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-spt.html">spt</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresscurrent">bck</li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="3-rgn.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="3-tp.html">&#10094;</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-me.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-spt.html">spt</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresscurrent">bck</li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresschapter"><a href="4-sm.html">4</a></li><li class="progressnext"><a href="3-rgn.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -67,16 +67,16 @@
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </b></p>
<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="identifier-syntax">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><span class="identifier-syntax">Instances::of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">O</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_room</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">R</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Regions::enclosing</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">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">REGIONS_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">O</span><span class="plain-syntax">)-&gt;</span><span class="identifier-syntax">in_region_set_at</span><span class="plain-syntax">);</span>
<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">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>
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="3-bck.html">&#10094;</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-me.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-spt.html">spt</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresscurrent">rgn</li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="3-tm.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="3-bck.html">&#10094;</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-me.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-spt.html">spt</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresscurrent">rgn</li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresschapter"><a href="4-sm.html">4</a></li><li class="progressnext"><a href="3-tm.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -75,18 +75,15 @@ function togglePopup(material_id) {
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </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">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="identifier-syntax">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">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="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Spatial::progenitor</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">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">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><span class="identifier-syntax">Instances::of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_supporter</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><span class="identifier-syntax">Instances::of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_person</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">SPATIAL_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)-&gt;</span><span class="identifier-syntax">part_flag</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="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">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">property_inf</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">PropertyInferences::get_property</span><span class="plain-syntax">(</span><span class="identifier-syntax">inf</span><span class="plain-syntax">) == </span><span class="identifier-syntax">P_worn</span><span class="plain-syntax">)</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><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><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>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">rel</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">rel</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
@ -96,8 +93,8 @@ it already turns up under its owner.
</p>
<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::no_detail_index</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">IXSpatial::no_detail_index</span></span>:<br/>Map Element - <a href="2-me.html#SP1_1">&#167;1.1</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">SPATIAL_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)-&gt;</span><span class="identifier-syntax">incorp_tree_parent</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">TRUE</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">IXSpatial::no_detail_index</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">IXSpatial::no_detail_index</span></span>:<br/>Map Element - <a href="2-me.html#SP1_1">&#167;1.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">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">is_a_part</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><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>
</pre>
@ -105,24 +102,24 @@ it already turns up under its owner.
</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">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="identifier-syntax">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="identifier-syntax">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><span class="identifier-syntax">SPATIAL_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)-&gt;</span><span class="identifier-syntax">incorp_tree_child</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">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">SPATIAL_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)-&gt;</span><span class="identifier-syntax">incorp_tree_child</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="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
<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">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><span class="identifier-syntax">SPATIAL_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">I2</span><span class="plain-syntax">)-&gt;</span><span class="identifier-syntax">incorp_tree_sibling</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="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">SPATIAL_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)-&gt;</span><span class="identifier-syntax">object_tree_child</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">SPATIAL_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)-&gt;</span><span class="identifier-syntax">object_tree_child</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">Spatial::object_is_a_room</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Map::instance_is_a_door</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="identifier-syntax">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_INSTANCES</span><span class="plain-syntax">(</span><span class="identifier-syntax">I2</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">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Map::instance_is_a_door</span><span class="plain-syntax">(</span><span class="identifier-syntax">I2</span><span class="plain-syntax">)) &amp;&amp; (</span><span class="identifier-syntax">Spatial::progenitor</span><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="identifier-syntax">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><span class="identifier-syntax">Map::get_door_data</span><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><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">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">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><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>
@ -131,32 +128,29 @@ 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><span class="identifier-syntax">SPATIAL_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)-&gt;</span><span class="identifier-syntax">object_tree_sibling</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">SPATIAL_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)-&gt;</span><span class="identifier-syntax">object_tree_sibling</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#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>
</pre>
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>&#167;4. </b>And also:
</p>
<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="identifier-syntax">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><span class="identifier-syntax">Instances::of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">O</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_thing</span><span class="plain-syntax">))) {</span>
<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="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="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Spatial::progenitor</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">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">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><span class="identifier-syntax">Instances::of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_supporter</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><span class="identifier-syntax">Instances::of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_person</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">SPATIAL_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">O</span><span class="plain-syntax">)-&gt;</span><span class="identifier-syntax">part_flag</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="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">O</span><span class="plain-syntax">), </span><span class="identifier-syntax">property_inf</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">PropertyInferences::get_property</span><span class="plain-syntax">(</span><span class="identifier-syntax">inf</span><span class="plain-syntax">) == </span><span class="identifier-syntax">P_worn</span><span class="plain-syntax">)</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="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><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="4-sm.html#SP45" class="function-link"><span class="function-syntax">PL::SpatialMap::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="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">at</span><span class="plain-syntax"> = </span><span class="identifier-syntax">SPATIAL_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">O</span><span class="plain-syntax">)-&gt;</span><span class="identifier-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">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">at</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><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>
<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>
@ -165,7 +159,7 @@ it already turns up under its owner.
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="2-inf.html">&#10094;</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-me.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresscurrent">spt</li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="3-tp.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="2-inf.html">&#10094;</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-me.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresscurrent">spt</li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresschapter"><a href="4-sm.html">4</a></li><li class="progressnext"><a href="3-tp.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -67,28 +67,24 @@
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </b></p>
<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="identifier-syntax">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><span class="identifier-syntax">Instances::of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">O</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_room</span><span class="plain-syntax">))) {</span>
<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><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="identifier-syntax">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><span class="identifier-syntax">Instances::of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">O</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_door</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">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><span class="identifier-syntax">Map::get_door_data</span><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="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">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><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="identifier-syntax">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">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="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">O</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">X</span><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="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">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="4-sm.html#SP45" class="function-link"><span class="function-syntax">PL::SpatialMap::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#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="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>
@ -96,7 +92,7 @@
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="3-rgn.html">&#10094;</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-me.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-spt.html">spt</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresscurrent">tm</li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="4-sg.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="3-rgn.html">&#10094;</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-me.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-spt.html">spt</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresscurrent">tm</li><li class="progresschapter"><a href="4-sm.html">4</a></li><li class="progressnext"><a href="4-sm.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -77,14 +77,15 @@ usually appear anywhere.
</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">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="identifier-syntax">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">I</span><span class="plain-syntax"> == </span><span class="identifier-syntax">start_room</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">I_yourself</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::indexed_yet</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I_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">I_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="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><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="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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax"> == </span><span class="identifier-syntax">Player::get_start_room</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="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>
@ -93,7 +94,7 @@ usually appear anywhere.
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="3-spt.html">&#10094;</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-me.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-spt.html">spt</a></li><li class="progresscurrent">tp</li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="3-bck.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="3-spt.html">&#10094;</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-me.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-spt.html">spt</a></li><li class="progresscurrent">tp</li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresschapter"><a href="4-sm.html">4</a></li><li class="progressnext"><a href="3-bck.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

File diff suppressed because it is too large Load diff

View file

@ -109,11 +109,11 @@ i_2\leq 4\() associated with the room cell at \)(x, y, z)$.
this icon position, and has the same indexing as the icon grid.
</p>
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="identifier-syntax">ROOM_GRID_POS</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">) </span><a href="4-sg.html#SP13" class="function-link"><span class="function-syntax">Geometry::cuboid_index</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">Universe</span><span class="plain-syntax">)</span>
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="identifier-syntax">ROOM_GRID_POS</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">) </span><span class="identifier-syntax">Geometry::cuboid_index</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">Universe</span><span class="plain-syntax">)</span>
<span class="definition-keyword">define</span> <span class="identifier-syntax">ICON_GRID_POS</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">i1</span><span class="plain-syntax">, </span><span class="identifier-syntax">i2</span><span class="plain-syntax">) (25*</span><span class="identifier-syntax">ROOM_GRID_POS</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">) + </span><span class="constant-syntax">5</span><span class="plain-syntax">*(</span><span class="identifier-syntax">i1</span><span class="plain-syntax">) + (</span><span class="identifier-syntax">i2</span><span class="plain-syntax">))</span>
</pre>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">instance</span><span class="plain-syntax"> **</span><span class="identifier-syntax">room_grid</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> **</span><span class="identifier-syntax">room_grid</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">icon_grid</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, *</span><span class="identifier-syntax">exit_grid</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::HTMLMap::calculate_map_grid</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">PL::HTMLMap::calculate_map_grid</span></span>:<br/><a href="4-hm.html#SP6">&#167;6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
@ -127,10 +127,10 @@ this icon position, and has the same indexing as the icon grid.
</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">size_needed</span><span class="plain-syntax"> = </span><a href="4-sg.html#SP13" class="function-link"><span class="function-syntax">Geometry::cuboid_volume</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Universe</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">size_needed</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Geometry::cuboid_volume</span><span class="plain-syntax">(</span><span class="identifier-syntax">Universe</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_grid</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> **)</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Memory::calloc</span><span class="plain-syntax">(</span><span class="identifier-syntax">size_needed</span><span class="plain-syntax">, </span><span class="reserved-syntax">sizeof</span><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *), </span><span class="constant-syntax">MAP_INDEX_MREASON</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">room_grid</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">Memory::calloc</span><span class="plain-syntax">(</span><span class="identifier-syntax">size_needed</span><span class="plain-syntax">, </span><span class="reserved-syntax">sizeof</span><span class="plain-syntax">(</span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *), </span><span class="constant-syntax">MAP_INDEX_MREASON</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">x</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">x</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">size_needed</span><span class="plain-syntax">; </span><span class="identifier-syntax">x</span><span class="plain-syntax">++) </span><span class="identifier-syntax">room_grid</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="plain-syntax"> </span><span class="identifier-syntax">icon_grid</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> *)</span>
@ -147,7 +147,7 @@ this icon position, and has the same indexing as the icon grid.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">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="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">room_grid</span><span class="plain-syntax">[</span><span class="identifier-syntax">ROOM_GRID_POS</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">R</span><span class="plain-syntax">;</span>
</pre>
@ -156,13 +156,13 @@ this icon position, and has the same indexing as the icon grid.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">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="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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">exit</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">exit</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_6" class="function-link"><span class="function-syntax">PL::SpatialMap::direction_is_mappable</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">exit</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">D</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> door which the exit passes through, if it does</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax"> = </span><a href="4-sm.html#SP7_16" 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">exit</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">D</span><span class="plain-syntax">); </span><span class="comment-syntax"> target at the other end</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="comment-syntax"> door which the exit passes through, if it does</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">exit</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">D</span><span class="plain-syntax">); </span><span class="comment-syntax"> target at the other end</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">T</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">D</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-hm.html#SP1_3_4" class="named-paragraph-link"><span class="named-paragraph">Fill in the grid-square for this exit of room R</span><span class="named-paragraph-number">1.3.4</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
@ -220,8 +220,8 @@ stage can even begin.
<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">T</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">bitmap</span><span class="plain-syntax"> |= </span><span class="constant-syntax">EXIT_MAPBIT</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="4-sm.html#SP7_7" class="function-link"><span class="function-syntax">PL::SpatialMap::direction_as_vector</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">exit</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-sg.html#SP5" class="function-link"><span class="function-syntax">Geometry::vec_eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="identifier-syntax">Zero_vector</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="4-sm.html#SP7_7" class="function-link"><span class="function-syntax">PL::SpatialMap::direction_as_vector</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">exit</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">Geometry::vec_eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="identifier-syntax">Zero_vector</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="4-sm.html#SP7_10" class="function-link"><span class="function-syntax">PL::SpatialMap::direction_is_lateral</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">exit</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-hm.html#SP1_3_4_1" class="named-paragraph-link"><span class="named-paragraph">Set the adjacent or aligned bit if the target lies in the correct direction</span><span class="named-paragraph-number">1.3.4.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-hm.html#SP1_3_4_2" class="named-paragraph-link"><span class="named-paragraph">Set the fading bit if another room lies where the target ought to be</span><span class="named-paragraph-number">1.3.4.2</span></a></span><span class="plain-syntax">;</span>
@ -241,10 +241,10 @@ a single square distant, then we get the "aligned" bit as a consolation prize.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax"> = </span><a href="4-sg.html#SP6" class="function-link"><span class="function-syntax">Geometry::vec_minus</span></a><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">Room_position</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">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Geometry::vec_minus</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">Room_position</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">lambda</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">lambda</span><span class="plain-syntax">=1; </span><span class="identifier-syntax">lambda</span><span class="plain-syntax">&lt;10; </span><span class="identifier-syntax">lambda</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-sg.html#SP5" class="function-link"><span class="function-syntax">Geometry::vec_eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><a href="4-sg.html#SP6" class="function-link"><span class="function-syntax">Geometry::vec_scale</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">lambda</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</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">Geometry::vec_eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="identifier-syntax">Geometry::vec_scale</span><span class="plain-syntax">(</span><span class="identifier-syntax">lambda</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</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">lambda</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><span class="identifier-syntax">bitmap</span><span class="plain-syntax"> |= </span><span class="constant-syntax">ADJACENT_MAPBIT</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">bitmap</span><span class="plain-syntax"> |= </span><span class="constant-syntax">ALIGNED_MAPBIT</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
@ -264,10 +264,10 @@ is east from B to K. If so, we get both the fading and aligned bits.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">Farend</span><span class="plain-syntax"> = </span><a href="4-sg.html#SP6" class="function-link"><span class="function-syntax">Geometry::vec_plus</span></a><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">E</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">R</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">Farend</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Geometry::vec_plus</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">E</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><span class="identifier-syntax">R</span><span class="plain-syntax"> != </span><span class="identifier-syntax">T</span><span class="plain-syntax">) &amp;&amp; (</span><a href="4-sg.html#SP5" class="function-link"><span class="function-syntax">Geometry::vec_eq</span></a><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">Farend</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">T</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">Geometry::vec_eq</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">Farend</span><span class="plain-syntax">)))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">bitmap</span><span class="plain-syntax"> |= </span><span class="constant-syntax">FADING_MAPBIT</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-hm.html#SP1_3_4">&#167;1.3.4</a>.</li></ul>
@ -275,12 +275,12 @@ is east from B to K. If so, we get both the fading and aligned bits.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">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="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">icon_grid</span><span class="plain-syntax">[</span><span class="identifier-syntax">ICON_GRID_POS</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="constant-syntax">2</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">)] = </span><span class="constant-syntax">OCCUPIED_MAPBIT</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">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">P</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="plain-syntax"> </span><span class="identifier-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">P</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="plain-syntax"> </span><a href="4-hm.html#SP2" class="function-link"><span class="function-syntax">PL::HTMLMap::correct_pair</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">SW_vector</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-hm.html#SP2" class="function-link"><span class="function-syntax">PL::HTMLMap::correct_pair</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">W_vector</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-hm.html#SP2" class="function-link"><span class="function-syntax">PL::HTMLMap::correct_pair</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">NW_vector</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">);</span>
@ -297,10 +297,10 @@ adjacent icons representing the same exit. Thus the east side icon of
one room may need to be married up with the west side icon of the
adjacent room, and so on. The four by four cornices diagonally in
between rooms require special care. To plot a northeast exit blocked by
a 2-sided door, for instance, requires all four icons to be plotted, but
a 2-sided door, for faux_instance, requires all four icons to be plotted, but
we need to be careful in case the two icons not occupied by the exit are
needed for something else (if a northwest exit crossed over it, for
instance).
faux_instance).
</p>
<p class="commentary">Here \(P\) is the position of the room we're looking at, and \(D\) an offset
@ -309,11 +309,11 @@ vector to one of its eight neighbouring cell positions on the map. If
</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">PL::HTMLMap::correct_pair</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">PL::HTMLMap::correct_pair</span></span>:<br/><a href="4-hm.html#SP1_4">&#167;1.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">from_i1</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">from_i2</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">to_i1</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">to_i2</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">Q</span><span class="plain-syntax"> = </span><a href="4-sg.html#SP6" class="function-link"><span class="function-syntax">Geometry::vec_plus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">D</span><span class="plain-syntax">);</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::HTMLMap::correct_pair</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">PL::HTMLMap::correct_pair</span></span>:<br/><a href="4-hm.html#SP1_4">&#167;1.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">from_i1</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">from_i2</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">to_i1</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">to_i2</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">Q</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Geometry::vec_plus</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</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><a href="4-sg.html#SP12" class="function-link"><span class="function-syntax">Geometry::within_cuboid</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">Universe</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"> should never happen</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-sg.html#SP12" class="function-link"><span class="function-syntax">Geometry::within_cuboid</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Q</span><span class="plain-syntax">, </span><span class="identifier-syntax">Universe</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"> neighbouring cell outside map</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Geometry::within_cuboid</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">Universe</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"> should never happen</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Geometry::within_cuboid</span><span class="plain-syntax">(</span><span class="identifier-syntax">Q</span><span class="plain-syntax">, </span><span class="identifier-syntax">Universe</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"> neighbouring cell outside map</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">from</span><span class="plain-syntax"> = </span><span class="identifier-syntax">icon_grid</span><span class="plain-syntax">[</span><span class="identifier-syntax">ICON_GRID_POS</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">from_i1</span><span class="plain-syntax">, </span><span class="identifier-syntax">from_i2</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">to</span><span class="plain-syntax"> = </span><span class="identifier-syntax">icon_grid</span><span class="plain-syntax">[</span><span class="identifier-syntax">ICON_GRID_POS</span><span class="plain-syntax">(</span><span class="identifier-syntax">Q</span><span class="plain-syntax">, </span><span class="identifier-syntax">to_i1</span><span class="plain-syntax">, </span><span class="identifier-syntax">to_i2</span><span class="plain-syntax">)];</span>
@ -338,21 +338,21 @@ the original. So the loop always terminates.
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="4-sg.html#SP6" class="function-link"><span class="function-syntax">Geometry::vec_plus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</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">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Geometry::vec_plus</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</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">icon_grid</span><span class="plain-syntax">[</span><span class="identifier-syntax">ICON_GRID_POS</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">)] &amp; </span><span class="constant-syntax">OCCUPIED_MAPBIT</span><span class="plain-syntax">) </span><span class="reserved-syntax">break</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-sg.html#SP5" class="function-link"><span class="function-syntax">Geometry::vec_eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="identifier-syntax">E_vector</span><span class="plain-syntax">)) || (</span><a href="4-sg.html#SP5" class="function-link"><span class="function-syntax">Geometry::vec_eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="identifier-syntax">W_vector</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">Geometry::vec_eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="identifier-syntax">E_vector</span><span class="plain-syntax">)) || (</span><span class="identifier-syntax">Geometry::vec_eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="identifier-syntax">W_vector</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">icon_grid</span><span class="plain-syntax">[</span><span class="identifier-syntax">ICON_GRID_POS</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">)] = </span><span class="constant-syntax">EXIT_MAPBIT</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">icon_grid</span><span class="plain-syntax">[</span><span class="identifier-syntax">ICON_GRID_POS</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">)] |= </span><span class="constant-syntax">LONGEW_MAPBIT</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">icon_grid</span><span class="plain-syntax">[</span><span class="identifier-syntax">ICON_GRID_POS</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">)] = </span><span class="constant-syntax">EXIT_MAPBIT</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><a href="4-sg.html#SP5" class="function-link"><span class="function-syntax">Geometry::vec_eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="identifier-syntax">N_vector</span><span class="plain-syntax">)) || (</span><a href="4-sg.html#SP5" class="function-link"><span class="function-syntax">Geometry::vec_eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="identifier-syntax">S_vector</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">Geometry::vec_eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="identifier-syntax">N_vector</span><span class="plain-syntax">)) || (</span><span class="identifier-syntax">Geometry::vec_eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="identifier-syntax">S_vector</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">icon_grid</span><span class="plain-syntax">[</span><span class="identifier-syntax">ICON_GRID_POS</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">)] = </span><span class="constant-syntax">EXIT_MAPBIT</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">icon_grid</span><span class="plain-syntax">[</span><span class="identifier-syntax">ICON_GRID_POS</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">)] |= </span><span class="constant-syntax">LONGNS_MAPBIT</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">icon_grid</span><span class="plain-syntax">[</span><span class="identifier-syntax">ICON_GRID_POS</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">)] = </span><span class="constant-syntax">EXIT_MAPBIT</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><a href="4-sg.html#SP5" class="function-link"><span class="function-syntax">Geometry::vec_eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="identifier-syntax">SW_vector</span><span class="plain-syntax">)) || (</span><a href="4-sg.html#SP5" class="function-link"><span class="function-syntax">Geometry::vec_eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="identifier-syntax">NE_vector</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">Geometry::vec_eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="identifier-syntax">SW_vector</span><span class="plain-syntax">)) || (</span><span class="identifier-syntax">Geometry::vec_eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="identifier-syntax">NE_vector</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">icon_grid</span><span class="plain-syntax">[</span><span class="identifier-syntax">ICON_GRID_POS</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">)] = </span><span class="constant-syntax">EXIT_MAPBIT</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">icon_grid</span><span class="plain-syntax">[</span><span class="identifier-syntax">ICON_GRID_POS</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">)] |= </span><span class="constant-syntax">LONGSWNE_MAPBIT</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">icon_grid</span><span class="plain-syntax">[</span><span class="identifier-syntax">ICON_GRID_POS</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">)] = </span><span class="constant-syntax">EXIT_MAPBIT</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><a href="4-sg.html#SP5" class="function-link"><span class="function-syntax">Geometry::vec_eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="identifier-syntax">NW_vector</span><span class="plain-syntax">)) || (</span><a href="4-sg.html#SP5" class="function-link"><span class="function-syntax">Geometry::vec_eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="identifier-syntax">SE_vector</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">Geometry::vec_eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="identifier-syntax">NW_vector</span><span class="plain-syntax">)) || (</span><span class="identifier-syntax">Geometry::vec_eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="identifier-syntax">SE_vector</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">icon_grid</span><span class="plain-syntax">[</span><span class="identifier-syntax">ICON_GRID_POS</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">)] = </span><span class="constant-syntax">EXIT_MAPBIT</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">icon_grid</span><span class="plain-syntax">[</span><span class="identifier-syntax">ICON_GRID_POS</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">)] |= </span><span class="constant-syntax">LONGNWSE_MAPBIT</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">icon_grid</span><span class="plain-syntax">[</span><span class="identifier-syntax">ICON_GRID_POS</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">)] = </span><span class="constant-syntax">EXIT_MAPBIT</span><span class="plain-syntax">;</span>
@ -388,8 +388,8 @@ we were originally looking at, or might be one of the other two).
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">D</span><span class="plain-syntax">.</span><span class="identifier-syntax">x</span><span class="plain-syntax"> &lt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">N</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax">--;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">D</span><span class="plain-syntax">.</span><span class="identifier-syntax">x</span><span class="plain-syntax"> &lt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">N</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">D</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax"> &lt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">N</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax">--;</span>
<span class="plain-syntax"> </span><a href="4-hm.html#SP3" class="function-link"><span class="function-syntax">PL::HTMLMap::correct_diagonal</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-hm.html#SP3" class="function-link"><span class="function-syntax">PL::HTMLMap::correct_diagonal</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
@ -402,21 +402,21 @@ map connection (are "used"), and two are off-diagonal (are "unused").
</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">PL::HTMLMap::correct_diagonal</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">PL::HTMLMap::correct_diagonal</span></span>:<br/><a href="4-hm.html#SP2_3">&#167;2.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">BL</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">SW_to_NE</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::HTMLMap::correct_diagonal</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">PL::HTMLMap::correct_diagonal</span></span>:<br/><a href="4-hm.html#SP2_3">&#167;2.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">BL</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">SW_to_NE</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">pos_00</span><span class="plain-syntax">, </span><span class="comment-syntax"> corner icon position of lower cell used by the map connection</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">pos_01</span><span class="plain-syntax">, </span><span class="comment-syntax"> corner icon position of lower cell not used by the map connection</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">pos_10</span><span class="plain-syntax">, </span><span class="comment-syntax"> corner icon position of upper cell not used by the map connection</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">pos_11</span><span class="plain-syntax">; </span><span class="comment-syntax"> corner icon position of upper cell used by the map connection</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">SW_to_NE</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">pos_00</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ICON_GRID_POS</span><span class="plain-syntax">(</span><span class="identifier-syntax">BL</span><span class="plain-syntax">, </span><span class="constant-syntax">4</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">pos_01</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ICON_GRID_POS</span><span class="plain-syntax">(</span><a href="4-sg.html#SP6" class="function-link"><span class="function-syntax">Geometry::vec_plus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">BL</span><span class="plain-syntax">, </span><span class="identifier-syntax">N_vector</span><span class="plain-syntax">), </span><span class="constant-syntax">4</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">pos_10</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ICON_GRID_POS</span><span class="plain-syntax">(</span><a href="4-sg.html#SP6" class="function-link"><span class="function-syntax">Geometry::vec_plus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">BL</span><span class="plain-syntax">, </span><span class="identifier-syntax">E_vector</span><span class="plain-syntax">), </span><span class="constant-syntax">0</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">pos_11</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ICON_GRID_POS</span><span class="plain-syntax">(</span><a href="4-sg.html#SP6" class="function-link"><span class="function-syntax">Geometry::vec_plus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">BL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NE_vector</span><span class="plain-syntax">), </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">pos_01</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ICON_GRID_POS</span><span class="plain-syntax">(</span><span class="identifier-syntax">Geometry::vec_plus</span><span class="plain-syntax">(</span><span class="identifier-syntax">BL</span><span class="plain-syntax">, </span><span class="identifier-syntax">N_vector</span><span class="plain-syntax">), </span><span class="constant-syntax">4</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">pos_10</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ICON_GRID_POS</span><span class="plain-syntax">(</span><span class="identifier-syntax">Geometry::vec_plus</span><span class="plain-syntax">(</span><span class="identifier-syntax">BL</span><span class="plain-syntax">, </span><span class="identifier-syntax">E_vector</span><span class="plain-syntax">), </span><span class="constant-syntax">0</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">pos_11</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ICON_GRID_POS</span><span class="plain-syntax">(</span><span class="identifier-syntax">Geometry::vec_plus</span><span class="plain-syntax">(</span><span class="identifier-syntax">BL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NE_vector</span><span class="plain-syntax">), </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">4</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">pos_00</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ICON_GRID_POS</span><span class="plain-syntax">(</span><a href="4-sg.html#SP6" class="function-link"><span class="function-syntax">Geometry::vec_plus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">BL</span><span class="plain-syntax">, </span><span class="identifier-syntax">E_vector</span><span class="plain-syntax">), </span><span class="constant-syntax">0</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">pos_01</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ICON_GRID_POS</span><span class="plain-syntax">(</span><a href="4-sg.html#SP6" class="function-link"><span class="function-syntax">Geometry::vec_plus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">BL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NE_vector</span><span class="plain-syntax">), </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">pos_00</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ICON_GRID_POS</span><span class="plain-syntax">(</span><span class="identifier-syntax">Geometry::vec_plus</span><span class="plain-syntax">(</span><span class="identifier-syntax">BL</span><span class="plain-syntax">, </span><span class="identifier-syntax">E_vector</span><span class="plain-syntax">), </span><span class="constant-syntax">0</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">pos_01</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ICON_GRID_POS</span><span class="plain-syntax">(</span><span class="identifier-syntax">Geometry::vec_plus</span><span class="plain-syntax">(</span><span class="identifier-syntax">BL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NE_vector</span><span class="plain-syntax">), </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">pos_10</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ICON_GRID_POS</span><span class="plain-syntax">(</span><span class="identifier-syntax">BL</span><span class="plain-syntax">, </span><span class="constant-syntax">4</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">pos_11</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ICON_GRID_POS</span><span class="plain-syntax">(</span><a href="4-sg.html#SP6" class="function-link"><span class="function-syntax">Geometry::vec_plus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">BL</span><span class="plain-syntax">, </span><span class="identifier-syntax">N_vector</span><span class="plain-syntax">), </span><span class="constant-syntax">4</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">pos_11</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ICON_GRID_POS</span><span class="plain-syntax">(</span><span class="identifier-syntax">Geometry::vec_plus</span><span class="plain-syntax">(</span><span class="identifier-syntax">BL</span><span class="plain-syntax">, </span><span class="identifier-syntax">N_vector</span><span class="plain-syntax">), </span><span class="constant-syntax">4</span><span class="plain-syntax">, </span><span class="constant-syntax">4</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="4-hm.html#SP3_1" class="named-paragraph-link"><span class="named-paragraph">Set the relevant bits to support a door, if there is one</span><span class="named-paragraph-number">3.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-hm.html#SP3_2" class="named-paragraph-link"><span class="named-paragraph">Set the relevant bits to put mortice into the notches in a long diagonal</span><span class="named-paragraph-number">3.2</span></a></span><span class="plain-syntax">;</span>
@ -590,11 +590,11 @@ from each other.)
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"Medium Spring Green"</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Medium Turquoise"</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Medium Violet Red"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"Light Golden Rod Yellow"</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">RG</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">RG</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">regc</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_INSTANCES</span><span class="plain-syntax">(</span><span class="identifier-syntax">RG</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_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">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">RG</span><span class="plain-syntax">)-&gt;</span><span class="identifier-syntax">world_index_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="identifier-syntax">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">RG</span><span class="plain-syntax">)-&gt;</span><span class="identifier-syntax">world_index_colour</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_REGIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">RG</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">RG</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="identifier-syntax">RG</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">HTML::translate_colour_name</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">some_map_colours</span><span class="plain-syntax">[(</span><span class="identifier-syntax">regc</span><span class="plain-syntax">++) % </span><span class="constant-syntax">NO_REGION_COLOURS</span><span class="plain-syntax">]);</span>
</pre>
@ -604,14 +604,14 @@ from each other.)
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">default_room_col</span><span class="plain-syntax"> = </span><span class="identifier-syntax">HTML::translate_colour_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="string-syntax">"Light Grey"</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">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">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">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">)-&gt;</span><span class="identifier-syntax">world_index_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="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">reg</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Regions::enclosing</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">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">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">)-&gt;</span><span class="identifier-syntax">world_index_colour</span><span class="plain-syntax"> = </span><span class="identifier-syntax">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">reg</span><span class="plain-syntax">)-&gt;</span><span class="identifier-syntax">world_index_colour</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>
<span class="plain-syntax"> </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="identifier-syntax">world_index_colour</span><span class="plain-syntax"> = </span><span class="identifier-syntax">default_room_col</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">default_room_col</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#SP6">&#167;6</a>.</li></ul>
@ -621,7 +621,7 @@ from each other.)
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="4-hm.html#SP4" class="function-link"><span class="function-syntax">PL::HTMLMap::begin_variable_width_table</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</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">z</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">z</span><span class="plain-syntax">=</span><span class="identifier-syntax">Universe</span><span class="plain-syntax">.</span><span class="element-syntax">corner1</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">&gt;=</span><span class="identifier-syntax">Universe</span><span class="plain-syntax">.</span><span class="element-syntax">corner0</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><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">z</span><span class="plain-syntax">=</span><span class="identifier-syntax">Universe</span><span class="plain-syntax">.</span><span class="identifier-syntax">corner1</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">&gt;=</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">z</span><span class="plain-syntax">; </span><span class="identifier-syntax">z</span><span class="plain-syntax">--) {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-hm.html#SP6_3_1" class="named-paragraph-link"><span class="named-paragraph">Draw the rubric row which labels this level of the map</span><span class="named-paragraph-number">6.3.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-hm.html#SP6_3_2" class="named-paragraph-link"><span class="named-paragraph">Draw this level of the map</span><span class="named-paragraph-number">6.3.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
@ -638,7 +638,7 @@ from each other.)
<span class="plain-syntax"> </span><a href="4-hm.html#SP7" class="function-link"><span class="function-syntax">PL::HTMLMap::devise_level_rubric</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">z</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">level_rubric</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">par</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="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</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">rounding</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><span class="identifier-syntax">z</span><span class="plain-syntax"> == </span><span class="identifier-syntax">Universe</span><span class="plain-syntax">.</span><span class="element-syntax">corner1</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax">) </span><span class="identifier-syntax">rounding</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ROUND_BOX_TOP</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">z</span><span class="plain-syntax"> == </span><span class="identifier-syntax">Universe</span><span class="plain-syntax">.</span><span class="identifier-syntax">corner1</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax">) </span><span class="identifier-syntax">rounding</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ROUND_BOX_TOP</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::open_coloured_box</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"e0e0e0"</span><span class="plain-syntax">, </span><span class="identifier-syntax">rounding</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="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="identifier-syntax">level_rubric</span><span class="plain-syntax">, </span><span class="identifier-syntax">par</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="identifier-syntax">HTML::close_coloured_box</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"e0e0e0"</span><span class="plain-syntax">, </span><span class="identifier-syntax">rounding</span><span class="plain-syntax">);</span>
@ -650,7 +650,7 @@ from each other.)
<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">y_max</span><span class="plain-syntax"> = -1000000000, </span><span class="identifier-syntax">y_min</span><span class="plain-syntax"> = </span><span class="constant-syntax">1000000000</span><span class="plain-syntax">; </span><span class="comment-syntax"> assuming there are fewer than 1 billion rooms</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">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="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">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><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">y</span><span class="plain-syntax"> &lt; </span><span class="identifier-syntax">y_min</span><span class="plain-syntax">) </span><span class="identifier-syntax">y_min</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>
@ -661,7 +661,7 @@ from each other.)
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">SPATIAL_MAP</span><span class="plain-syntax">, </span><span class="string-syntax">"Level %d has rooms with %d &lt;= y &lt;= %d\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">z</span><span class="plain-syntax">, </span><span class="identifier-syntax">y_min</span><span class="plain-syntax">, </span><span class="identifier-syntax">y_max</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="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-hm.html#SP9" class="function-link"><span class="function-syntax">PL::HTMLMap::plot_map_level</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Universe</span><span class="plain-syntax">.</span><span class="element-syntax">corner0</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax">, </span><span class="identifier-syntax">Universe</span><span class="plain-syntax">.</span><span class="element-syntax">corner1</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax">, </span><span class="identifier-syntax">y_min</span><span class="plain-syntax">, </span><span class="identifier-syntax">y_max</span><span class="plain-syntax">, </span><span class="identifier-syntax">z</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-hm.html#SP9" class="function-link"><span class="function-syntax">PL::HTMLMap::plot_map_level</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</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="identifier-syntax">Universe</span><span class="plain-syntax">.</span><span class="identifier-syntax">corner1</span><span class="plain-syntax">.</span><span class="identifier-syntax">x</span><span class="plain-syntax">, </span><span class="identifier-syntax">y_min</span><span class="plain-syntax">, </span><span class="identifier-syntax">y_max</span><span class="plain-syntax">, </span><span class="identifier-syntax">z</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_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"td"</span><span class="plain-syntax">); </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"tr"</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>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-hm.html#SP6_3">&#167;6.3</a>.</li></ul>
@ -679,16 +679,16 @@ from each other.)
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax">; </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k</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_INSTANCES</span><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_direction</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">A</span><span class="plain-syntax"> = </span><a href="4-sm.html#SP7_5" class="function-link"><span class="function-syntax">PL::SpatialMap::mapped_as_if</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">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax">; </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k</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_DIRECTIONS</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">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">A</span><span class="plain-syntax"> = </span><a href="4-sm.html#SP7_5" class="function-link"><span class="function-syntax">PL::SpatialMap::mapped_as_if</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">A</span><span class="plain-syntax">) {</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</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><span class="identifier-syntax">Instances::get_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</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><span class="identifier-syntax">Instances::get_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">A</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</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">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="plain-syntax"> }</span>
@ -698,16 +698,16 @@ from each other.)
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>&#167;7. Level rubrics. </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">PL::HTMLMap::devise_level_rubric</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">PL::HTMLMap::devise_level_rubric</span></span>:<br/><a href="4-hm.html#SP6_3_1">&#167;6.3.1</a><br/>EPS Map - <a href="4-em.html#SP24_2">&#167;24.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">z</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> **</span><span class="identifier-syntax">level_rubric</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">par</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::HTMLMap::devise_level_rubric</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">PL::HTMLMap::devise_level_rubric</span></span>:<br/><a href="4-hm.html#SP6_3_1">&#167;6.3.1</a><br/>Render EPS Map - <a href="4-rem.html#SP1_2">&#167;1.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">z</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> **</span><span class="identifier-syntax">level_rubric</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">par</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> *</span><span class="identifier-syntax">level_rubric</span><span class="plain-syntax"> = </span><span class="string-syntax">"Map"</span><span class="plain-syntax">; *</span><span class="identifier-syntax">par</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">switch</span><span class="plain-syntax">(</span><span class="identifier-syntax">Universe</span><span class="plain-syntax">.</span><span class="element-syntax">corner1</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax"> - </span><span class="identifier-syntax">Universe</span><span class="plain-syntax">.</span><span class="element-syntax">corner0</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax">(</span><span class="identifier-syntax">Universe</span><span class="plain-syntax">.</span><span class="identifier-syntax">corner1</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</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">z</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</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">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax">: </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">z</span><span class="plain-syntax"> == </span><span class="identifier-syntax">Universe</span><span class="plain-syntax">.</span><span class="element-syntax">corner0</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax">) *</span><span class="identifier-syntax">level_rubric</span><span class="plain-syntax"> = </span><span class="string-syntax">"Lower"</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">z</span><span class="plain-syntax"> == </span><span class="identifier-syntax">Universe</span><span class="plain-syntax">.</span><span class="element-syntax">corner1</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax">) *</span><span class="identifier-syntax">level_rubric</span><span class="plain-syntax"> = </span><span class="string-syntax">"Upper"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax">: </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">z</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">z</span><span class="plain-syntax">) *</span><span class="identifier-syntax">level_rubric</span><span class="plain-syntax"> = </span><span class="string-syntax">"Lower"</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">z</span><span class="plain-syntax"> == </span><span class="identifier-syntax">Universe</span><span class="plain-syntax">.</span><span class="identifier-syntax">corner1</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax">) *</span><span class="identifier-syntax">level_rubric</span><span class="plain-syntax"> = </span><span class="string-syntax">"Upper"</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="identifier-syntax">default:</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">z_offset</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">benchmark_room</span><span class="plain-syntax">).</span><span class="identifier-syntax">z</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">z_offset</span><span class="plain-syntax"> = </span><span class="identifier-syntax">z</span><span class="plain-syntax"> - </span><a href="4-sm.html#SP4" class="function-link"><span class="function-syntax">PL::SpatialMap::benchmark_level</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax">(</span><span class="identifier-syntax">z_offset</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">: *</span><span class="identifier-syntax">level_rubric</span><span class="plain-syntax"> = </span><span class="string-syntax">"Starting level"</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax">: *</span><span class="identifier-syntax">level_rubric</span><span class="plain-syntax"> = </span><span class="string-syntax">"First level up"</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
@ -740,16 +740,15 @@ that the grids are calculated, the region colours decided, and so on.
</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">PL::HTMLMap::render_single_room_as_HTML</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">PL::HTMLMap::render_single_room_as_HTML</span></span>:<br/>Map Element - <a href="2-me.html#SP1_2">&#167;1.2</a>, <a href="2-me.html#SP1_3">&#167;1.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::HTMLMap::render_single_room_as_HTML</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">PL::HTMLMap::render_single_room_as_HTML</span></span>:<br/>Map Element - <a href="2-me.html#SP1_2">&#167;1.2</a>, <a href="2-me.html#SP1_3">&#167;1.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">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">"\n\n"</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="plain-syntax"> </span><span class="identifier-syntax">noun</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nt</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::get_noun</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">Index::anchor</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">NounIdentifiers::identifier</span><span class="plain-syntax">(</span><span class="identifier-syntax">nt</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Index::anchor</span><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">-&gt;</span><span class="element-syntax">anchor_text</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">"a"</span><span class="plain-syntax">, </span><span class="string-syntax">"name=wo_%d"</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="plain-syntax"> </span><span class="identifier-syntax">HTML::begin_plain_html_table</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::first_html_column</span><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">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">P</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="plain-syntax"> </span><a href="4-hm.html#SP9" class="function-link"><span class="function-syntax">PL::HTMLMap::plot_map_level</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="element-syntax">x</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">P</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="plain-syntax"> </span><a href="4-hm.html#SP9" class="function-link"><span class="function-syntax">PL::HTMLMap::plot_map_level</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="identifier-syntax">x</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">.</span><span class="identifier-syntax">x</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::next_html_column</span><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="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::next_html_column</span><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>
@ -771,7 +770,7 @@ index page.
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">SPATIAL_MAP</span><span class="plain-syntax">, </span><span class="string-syntax">"Plot: [%d, %d] x [%d, %d] x {%d}\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">x0</span><span class="plain-syntax">, </span><span class="identifier-syntax">x1</span><span class="plain-syntax">, </span><span class="identifier-syntax">y0</span><span class="plain-syntax">, </span><span class="identifier-syntax">y1</span><span class="plain-syntax">, </span><span class="identifier-syntax">z</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">with_numbering</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">pass</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">Universe</span><span class="plain-syntax">.</span><span class="identifier-syntax">corner1</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax"> != </span><span class="identifier-syntax">Universe</span><span class="plain-syntax">.</span><span class="element-syntax">corner0</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax">)) </span><span class="identifier-syntax">with_numbering</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">pass</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">Universe</span><span class="plain-syntax">.</span><span class="identifier-syntax">corner1</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</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">z</span><span class="plain-syntax">)) </span><span class="identifier-syntax">with_numbering</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</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\n"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-hm.html#SP4" class="function-link"><span class="function-syntax">PL::HTMLMap::begin_variable_width_table_with_background</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"grid.png"</span><span class="plain-syntax">);</span>
@ -779,7 +778,7 @@ index page.
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">y</span><span class="plain-syntax">=</span><span class="identifier-syntax">y1</span><span class="plain-syntax">; </span><span class="identifier-syntax">y</span><span class="plain-syntax">&gt;=</span><span class="identifier-syntax">y0</span><span class="plain-syntax">; </span><span class="identifier-syntax">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">x</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="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">x</span><span class="plain-syntax">=</span><span class="identifier-syntax">x0</span><span class="plain-syntax">; </span><span class="identifier-syntax">x</span><span class="plain-syntax">&lt;=</span><span class="identifier-syntax">x1</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">room_grid</span><span class="plain-syntax">[</span><span class="identifier-syntax">ROOM_GRID_POS</span><span class="plain-syntax">(</span><a href="4-sg.html#SP4" class="function-link"><span class="function-syntax">Geometry::vec</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">x</span><span class="plain-syntax">, </span><span class="identifier-syntax">y</span><span class="plain-syntax">, </span><span class="identifier-syntax">z</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_grid</span><span class="plain-syntax">[</span><span class="identifier-syntax">ROOM_GRID_POS</span><span class="plain-syntax">(</span><span class="identifier-syntax">Geometry::vec</span><span class="plain-syntax">(</span><span class="identifier-syntax">x</span><span class="plain-syntax">, </span><span class="identifier-syntax">y</span><span class="plain-syntax">, </span><span class="identifier-syntax">z</span><span class="plain-syntax">))])</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">c</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"> == </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><span class="identifier-syntax">just_dislocated</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
@ -907,7 +906,7 @@ height, and they're drawn with a single stripe.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="4-sg.html#SP4" class="function-link"><span class="function-syntax">Geometry::vec</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">x</span><span class="plain-syntax">, </span><span class="identifier-syntax">y</span><span class="plain-syntax">, </span><span class="identifier-syntax">z</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Geometry::vec</span><span class="plain-syntax">(</span><span class="identifier-syntax">x</span><span class="plain-syntax">, </span><span class="identifier-syntax">y</span><span class="plain-syntax">, </span><span class="identifier-syntax">z</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">"td"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-hm.html#SP4" class="function-link"><span class="function-syntax">PL::HTMLMap::begin_map_table</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">MAP_CELL_SIZE</span><span class="plain-syntax">, </span><span class="constant-syntax">MAP_CELL_OUTER_SIZE</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>
@ -931,7 +930,7 @@ height, and they're drawn with a single stripe.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="4-sg.html#SP4" class="function-link"><span class="function-syntax">Geometry::vec</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">x</span><span class="plain-syntax">, </span><span class="identifier-syntax">y</span><span class="plain-syntax">, </span><span class="identifier-syntax">z</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Geometry::vec</span><span class="plain-syntax">(</span><span class="identifier-syntax">x</span><span class="plain-syntax">, </span><span class="identifier-syntax">y</span><span class="plain-syntax">, </span><span class="identifier-syntax">z</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">"td"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-hm.html#SP4" class="function-link"><span class="function-syntax">PL::HTMLMap::begin_map_table</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">MAP_CELL_SIZE</span><span class="plain-syntax">, </span><span class="constant-syntax">MAP_CELL_INNER_SIZE</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>
@ -1011,7 +1010,7 @@ There are 15 possibilities, and their icons are named as the following shows:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="4-sg.html#SP4" class="function-link"><span class="function-syntax">Geometry::vec</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">x</span><span class="plain-syntax">, </span><span class="identifier-syntax">y</span><span class="plain-syntax">, </span><span class="identifier-syntax">z</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Geometry::vec</span><span class="plain-syntax">(</span><span class="identifier-syntax">x</span><span class="plain-syntax">, </span><span class="identifier-syntax">y</span><span class="plain-syntax">, </span><span class="identifier-syntax">z</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">"td"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-hm.html#SP4" class="function-link"><span class="function-syntax">PL::HTMLMap::begin_map_table</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">MAP_CELL_SIZE</span><span class="plain-syntax">, </span><span class="constant-syntax">MAP_CELL_OUTER_SIZE</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>
@ -1070,7 +1069,7 @@ and south ends.
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"center"</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">"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">"%d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">y</span><span class="plain-syntax">-</span><span class="identifier-syntax">Universe</span><span class="plain-syntax">.</span><span class="element-syntax">corner0</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax">+1);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">y</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">y</span><span class="plain-syntax">+1);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"i"</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">"center"</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>
@ -1088,7 +1087,7 @@ of the cell. First, the eight cells around the outside:
</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">PL::HTMLMap::plot_map_cell</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">PL::HTMLMap::plot_map_cell</span></span>:<br/><a href="4-hm.html#SP9_3_1_1">&#167;9.3.1.1</a>, <a href="4-hm.html#SP9_3_2_1">&#167;9.3.2.1</a>, <a href="4-hm.html#SP9_3_3_1">&#167;9.3.3.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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">pass</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i1</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i2</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">faux_exit</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::HTMLMap::plot_map_cell</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">PL::HTMLMap::plot_map_cell</span></span>:<br/><a href="4-hm.html#SP9_3_1_1">&#167;9.3.1.1</a>, <a href="4-hm.html#SP9_3_2_1">&#167;9.3.2.1</a>, <a href="4-hm.html#SP9_3_3_1">&#167;9.3.3.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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">pass</span><span class="plain-syntax">, </span><span class="identifier-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i1</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i2</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">faux_exit</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">bitmap</span><span class="plain-syntax"> = </span><span class="identifier-syntax">icon_grid</span><span class="plain-syntax">[</span><span class="identifier-syntax">ICON_GRID_POS</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">i1</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><span class="identifier-syntax">pass</span><span class="plain-syntax"> == </span><span class="constant-syntax">2</span><span class="plain-syntax">) </span><span class="identifier-syntax">bitmap</span><span class="plain-syntax"> &amp;= </span><span class="constant-syntax">CONNECTIVE_BITMAP</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">bitmap</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="4-hm.html#SP10_1" class="named-paragraph-link"><span class="named-paragraph">This map cell is empty</span><span class="named-paragraph-number">10.1</span></a></span>
@ -1150,25 +1149,25 @@ of the cell. First, the eight cells around the outside:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">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="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I3</span><span class="plain-syntax"> = </span><a href="4-sm.html#SP7_16" class="function-link"><span class="function-syntax">PL::SpatialMap::room_exit</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">room_grid</span><span class="plain-syntax">[</span><span class="identifier-syntax">ROOM_GRID_POS</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">)], </span><span class="identifier-syntax">exit</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">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">I3</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">room_grid</span><span class="plain-syntax">[</span><span class="identifier-syntax">ROOM_GRID_POS</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">)], </span><span class="identifier-syntax">exit</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">I3</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_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">tool_tip</span><span class="plain-syntax">, </span><span class="string-syntax">"title=\""</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">I</span><span class="plain-syntax">;</span>
<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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">InstanceCounting::IK_count</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_direction</span><span class="plain-syntax">) == </span><span class="identifier-syntax">exit</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">"%+I"</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">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><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><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">"%+I"</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#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>
<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><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">"%+I"</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#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>
<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>
@ -1184,21 +1183,21 @@ which are bordered and coloured single-cell tables.
<span class="definition-keyword">define</span> <span class="constant-syntax">ROOM_TEXT_COLOUR</span><span class="plain-syntax"> </span><span class="string-syntax">"000000"</span>
</pre>
<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::HTMLMap::index_room_square</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::HTMLMap::index_room_square</span></span>:<br/><a href="4-hm.html#SP9_3_2_1_1">&#167;9.3.2.1.1</a>, <a href="4-hm.html#SP13_1">&#167;13.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">pass</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::HTMLMap::index_room_square</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::HTMLMap::index_room_square</span></span>:<br/><a href="4-hm.html#SP9_3_2_1_1">&#167;9.3.2.1.1</a>, <a href="4-hm.html#SP13_1">&#167;13.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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">pass</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">b</span><span class="plain-syntax"> = </span><span class="constant-syntax">ROOM_BORDER_SIZE</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">benchmark_room</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">pass</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">)) </span><span class="identifier-syntax">b</span><span class="plain-syntax"> = </span><span class="constant-syntax">B_ROOM_BORDER_SIZE</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">faux_benchmark</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">pass</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">)) </span><span class="identifier-syntax">b</span><span class="plain-syntax"> = </span><span class="constant-syntax">B_ROOM_BORDER_SIZE</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">"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=\"%+I\""</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><span class="identifier-syntax">I</span><span class="plain-syntax">);</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="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">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)-&gt;</span><span class="identifier-syntax">world_index_colour</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>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">col</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">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)-&gt;</span><span class="identifier-syntax">world_index_text_colour</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">col</span><span class="plain-syntax">, </span><span class="string-syntax">"%w"</span><span class="plain-syntax">, </span><span class="identifier-syntax">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)-&gt;</span><span class="identifier-syntax">world_index_text_colour</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">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">text_colour</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">col</span><span class="plain-syntax">, </span><span class="string-syntax">"%w"</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">text_colour</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">col</span><span class="plain-syntax">, </span><span class="string-syntax">"%s"</span><span class="plain-syntax">, </span><span class="constant-syntax">ROOM_TEXT_COLOUR</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">col</span><span class="plain-syntax">);</span>
@ -1225,7 +1224,7 @@ which are bordered and coloured single-cell tables.
<span class="plain-syntax"> </span><span class="identifier-syntax">I</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="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">col</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">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">benchmark_room</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="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">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">HTML_MAP_FONT_SIZE</span>
@ -1236,14 +1235,14 @@ which are bordered and coloured single-cell tables.
<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_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"span"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</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">benchmark_room</span><span class="plain-syntax">)) </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-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">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_CLOSE</span><span class="plain-syntax">(</span><span class="string-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">pass</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</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><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"a"</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">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 instance,
<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 instance, "Queen Of The
nonterminal; those which match are omitted. So, for faux_instance, "Queen Of The
South" comes out as "QS".
</p>
@ -1258,7 +1257,7 @@ South" comes out as "QS".
</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="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>
@ -1284,17 +1283,17 @@ This is the chip shown on the "details" box for a room in the World Index.
</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">PL::HTMLMap::colour_chip</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">PL::HTMLMap::colour_chip</span></span>:<br/>Regions - <a href="3-rgn.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="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Reg</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">at</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::HTMLMap::colour_chip</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">PL::HTMLMap::colour_chip</span></span>:<br/>Regions - <a href="3-rgn.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">I</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><span class="reserved-syntax">int</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">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\" height=\"%d\""</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="constant-syntax">ROOM_BORDER_SIZE</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="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">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">Reg</span><span class="plain-syntax">)-&gt;</span><span class="identifier-syntax">world_index_colour</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="4-sm.html#SP45" class="function-link"><span class="function-syntax">PL::SpatialMap::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">) </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">at</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><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>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"tr"</span><span class="plain-syntax">);</span>
@ -1308,24 +1307,24 @@ that nothing is shown if all of the rooms are outside of regions.
<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::HTMLMap::add_region_key</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">PL::HTMLMap::add_region_key</span></span>:<br/>Map Element - <a href="2-me.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="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">reg</span><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="identifier-syntax">LOOP_OVER_INSTANCES</span><span class="plain-syntax">(</span><span class="identifier-syntax">reg</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_region</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><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="identifier-syntax">LOOP_OVER_REGIONS</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">count</span><span class="plain-syntax"> += </span><a href="4-hm.html#SP13" class="function-link"><span class="function-syntax">PL::HTMLMap::add_key_for</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="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="identifier-syntax">count</span><span class="plain-syntax"> += </span><a href="4-hm.html#SP13" class="function-link"><span class="function-syntax">PL::HTMLMap::add_key_for</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</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">count</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">HTML_TAG</span><span class="plain-syntax">(</span><span class="string-syntax">"hr"</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">PL::HTMLMap::add_key_for</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">reg</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">PL::HTMLMap::add_key_for</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">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">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="identifier-syntax">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="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">Regions::enclosing</span><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#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><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><span class="identifier-syntax">Instances::get_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</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">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="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>
@ -1344,7 +1343,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><span class="identifier-syntax">Instances::get_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">reg</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">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">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>
@ -1360,7 +1359,7 @@ that nothing is shown if all of the rooms are outside of regions.
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-hm.html#SP13">&#167;13</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="4-sm.html">&#10094;</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-me.html">2</a></li><li class="progresschapter"><a href="3-spt.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sg.html">sg</a></li><li class="progresssection"><a href="4-sm.html">sm</a></li><li class="progresscurrent">hm</li><li class="progresssection"><a href="4-em.html">em</a></li><li class="progressnext"><a href="4-em.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="4-sm.html">&#10094;</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-me.html">2</a></li><li class="progresschapter"><a href="3-spt.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sm.html">sm</a></li><li class="progresscurrent">hm</li><li class="progresssection"><a href="4-rem.html">rem</a></li><li class="progressnext"><a href="4-rem.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -0,0 +1,748 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Render EPS Map</title>
<link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
<meta name="viewport" content="width=device-width initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="en-gb">
<link href="../docs-assets/Contents.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Progress.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Navigation.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
<script>
function togglePopup(material_id) {
var popup = document.getElementById(material_id);
popup.classList.toggle("show");
}
</script>
<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
<script>
MathJax = {
tex: {
inlineMath: '$', '$'], ['\\(', '\\)'
},
svg: {
fontCache: 'global'
}
};
</script>
<script type="text/javascript" id="MathJax-script" async
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js">
</script>
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
</head>
<body class="commentary-font">
<nav role="navigation">
<h1><a href="../index.html">
<img src="../docs-assets/Inform.png" height=72">
</a></h1>
<ul><li><a href="../compiler.html">compiler tools</a></li>
<li><a href="../other.html">other tools</a></li>
<li><a href="../extensions.html">extensions and kits</a></li>
<li><a href="../units.html">unit test tools</a></li>
</ul><h2>Compiler Webs</h2><ul>
<li><a href="../inbuild/index.html">inbuild</a></li>
<li><a href="../inform7/index.html">inform7</a></li>
<li><a href="../inter/index.html">inter</a></li>
</ul><h2>Inbuild Modules</h2><ul>
<li><a href="../supervisor-module/index.html">supervisor</a></li>
</ul><h2>Inform7 Modules</h2><ul>
<li><a href="../core-module/index.html">core</a></li>
<li><a href="../assertions-module/index.html">assertions</a></li>
<li><a href="../values-module/index.html">values</a></li>
<li><a href="../knowledge-module/index.html">knowledge</a></li>
<li><a href="../imperative-module/index.html">imperative</a></li>
<li><a href="../runtime-module/index.html">runtime</a></li>
<li><a href="../if-module/index.html">if</a></li>
<li><a href="../multimedia-module/index.html">multimedia</a></li>
<li><a href="index.html"><span class="selectedlink">index</span></a></li>
</ul><h2>Inter Modules</h2><ul>
<li><a href="../bytecode-module/index.html">bytecode</a></li>
<li><a href="../building-module/index.html">building</a></li>
<li><a href="../codegen-module/index.html">codegen</a></li>
</ul><h2>Services</h2><ul>
<li><a href="../arch-module/index.html">arch</a></li>
<li><a href="../calculus-module/index.html">calculus</a></li>
<li><a href="../html-module/index.html">html</a></li>
<li><a href="../inflections-module/index.html">inflections</a></li>
<li><a href="../kinds-module/index.html">kinds</a></li>
<li><a href="../linguistics-module/index.html">linguistics</a></li>
<li><a href="../problems-module/index.html">problems</a></li>
<li><a href="../syntax-module/index.html">syntax</a></li>
<li><a href="../words-module/index.html">words</a></li>
<li><a href="../../../inweb/docs/foundation-module/index.html">foundation</a></li>
</ul>
</nav>
<main role="main">
<!--Weave of 'Render EPS Map' generated by Inweb-->
<div class="breadcrumbs">
<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#4">Chapter 4: Visualising Space</a></li><li><b>Render EPS Map</b></li></ul></div>
<p class="purpose">To render the spatial map of rooms as an EPS (Encapsulated PostScript) file.</p>
<ul class="toc"><li><a href="4-rem.html#SP3">&#167;3. Writing text in EPS</a></li><li><a href="4-rem.html#SP5">&#167;5. EPS header</a></li><li><a href="4-rem.html#SP6">&#167;6. Circles and rectangles</a></li><li><a href="4-rem.html#SP8">&#167;8. Straight lines</a></li><li><a href="4-rem.html#SP9">&#167;9. Dashed arrows</a></li><li><a href="4-rem.html#SP10">&#167;10. Bezier curves</a></li><li><a href="4-rem.html#SP11">&#167;11. Line thickness</a></li><li><a href="4-rem.html#SP12">&#167;12. Text</a></li><li><a href="4-rem.html#SP13">&#167;13. RGB colours</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </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">RenderEPSMap::render_map_as_EPS</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">RenderEPSMap::render_map_as_EPS</span></span>:<br/>Map Element - <a href="2-me.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-rem.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Create the main EPS map super-level</span><span class="named-paragraph-number">1.1</span></a></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">z</span><span class="plain-syntax">=</span><span class="identifier-syntax">Universe</span><span class="plain-syntax">.</span><span class="identifier-syntax">corner1</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">&gt;=</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">z</span><span class="plain-syntax">; </span><span class="identifier-syntax">z</span><span class="plain-syntax">--)</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-rem.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Create an EPS map level for this z-slice</span><span class="named-paragraph-number">1.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">EPSMap::traverse_for_map_parameters</span><span class="plain-syntax">(2);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">changed_global_room_colour</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="4-rem.html#SP1_3" class="named-paragraph-link"><span class="named-paragraph">Inherit EPS room colours from those used in the World Index</span><span class="named-paragraph-number">1.3</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">write_EPS_format_map</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="4-rem.html#SP1_4" class="named-paragraph-link"><span class="named-paragraph">Open a stream and write the EPS map to it</span><span class="named-paragraph-number">1.4</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP1_1" class="paragraph-anchor"></a><b>&#167;1.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Create the main EPS map super-level</span><span class="named-paragraph-number">1.1</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">EPS_map_level</span><span class="plain-syntax"> *</span><span class="identifier-syntax">main_eml</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="identifier-syntax">EPS_map_level</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">main_eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">width</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">"minimum-map-width"</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">main_eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">actual_height</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">main_eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">titling_point_size</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">"title-size"</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">main_eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">titling</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">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">main_eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">titling</span><span class="plain-syntax">, </span><span class="string-syntax">"Map"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">main_eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">contains_titling</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">main_eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">contains_rooms</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">EPSMap::prepare_map_parameter_scope</span><span class="plain-syntax">(&amp;(</span><span class="identifier-syntax">main_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><span class="identifier-syntax">EPSMap::put_stream_mp</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="string-syntax">"title"</span><span class="plain-syntax">, &amp;(</span><span class="identifier-syntax">main_eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">map_parameters</span><span class="plain-syntax">), </span><span class="identifier-syntax">main_eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">titling</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>
<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">Create an EPS map level for this z-slice</span><span class="named-paragraph-number">1.2</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">EPS_map_level</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eml</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="identifier-syntax">EPS_map_level</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">contains_rooms</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">map_level</span><span class="plain-syntax"> = </span><span class="identifier-syntax">z</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">y_max</span><span class="plain-syntax"> = -100000, </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="constant-syntax">100000</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><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><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">y</span><span class="plain-syntax"> &lt; </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="identifier-syntax">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">y_min</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="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">y</span><span class="plain-syntax"> &gt; </span><span class="identifier-syntax">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">y_max</span><span class="plain-syntax">) </span><span class="identifier-syntax">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">y_max</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="plain-syntax"> </span><span class="identifier-syntax">Str::clear</span><span class="plain-syntax">(</span><span class="identifier-syntax">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">titling</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">level_rubric</span><span class="plain-syntax"> = </span><span class="string-syntax">"Map"</span><span class="plain-syntax">; </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">par</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="4-hm.html#SP7" class="function-link"><span class="function-syntax">PL::HTMLMap::devise_level_rubric</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">z</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">level_rubric</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">par</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">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">titling</span><span class="plain-syntax">, </span><span class="identifier-syntax">level_rubric</span><span class="plain-syntax">, </span><span class="identifier-syntax">par</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">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">titling</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">contains_titling</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">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">contains_titling</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">EPSMap::prepare_map_parameter_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><span class="identifier-syntax">EPSMap::put_stream_mp</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="string-syntax">"subtitle"</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="identifier-syntax">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">titling</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">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>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-rem.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_3" class="paragraph-anchor"></a><b>&#167;1.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Inherit EPS room colours from those used in the World Index</span><span class="named-paragraph-number">1.3</span></span><span class="comment-syntax"> =</span>
</p>
<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">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>
<p class="commentary firstcommentary"><a id="SP1_4" class="paragraph-anchor"></a><b>&#167;1.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Open a stream and write the EPS map to it</span><span class="named-paragraph-number">1.4</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Task::epsmap_file</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">EPS_struct</span><span class="plain-syntax">; </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">EPS</span><span class="plain-syntax"> = &amp;</span><span class="identifier-syntax">EPS_struct</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">STREAM_OPEN_TO_FILE</span><span class="plain-syntax">(</span><span class="identifier-syntax">EPS</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">ISO_ENC</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">Problems::fatal_on_file</span><span class="plain-syntax">(</span><span class="string-syntax">"Can't open EPS map file"</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rem.html#SP2" class="function-link"><span class="function-syntax">RenderEPSMap::EPS_compile_map</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EPS</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">STREAM_CLOSE</span><span class="plain-syntax">(</span><span class="identifier-syntax">EPS</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>
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. </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">RenderEPSMap::EPS_compile_map</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">RenderEPSMap::EPS_compile_map</span></span>:<br/><a href="4-rem.html#SP1_4">&#167;1.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</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">blh</span><span class="plain-syntax">, </span><span class="comment-syntax"> total height of the EPS map area (not counting border)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">blw</span><span class="plain-syntax">, </span><span class="comment-syntax"> total width of the EPS map area (not counting border)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">border</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">"border-size"</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">vskip</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">"vertical-spacing"</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="4-rem.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Compute the dimensions of the EPS map</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">bounding_box_width</span><span class="plain-syntax"> = </span><span class="identifier-syntax">blw</span><span class="plain-syntax">+2*</span><span class="identifier-syntax">border</span><span class="plain-syntax">, </span><span class="identifier-syntax">bounding_box_height</span><span class="plain-syntax"> = </span><span class="identifier-syntax">blh</span><span class="plain-syntax">+2*</span><span class="identifier-syntax">border</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="4-rem.html#SP5" class="function-link"><span class="function-syntax">RenderEPSMap::EPS_compile_header</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">bounding_box_width</span><span class="plain-syntax">, </span><span class="identifier-syntax">bounding_box_height</span><span class="plain-syntax">,</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">"title-font"</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</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">"title-size"</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">EPSMap::get_int_mp</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="string-syntax">"map-outline"</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="4-rem.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Draw a big rectangular outline around the entire EPS map</span><span class="named-paragraph-number">2.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">EPS_map_level</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eml</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">eml</span><span class="plain-syntax">, </span><span class="identifier-syntax">EPS_map_level</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">level_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><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">mapunit</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">"grid-size"</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">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">contains_rooms</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">EPSMap::get_int_mp</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="string-syntax">"map-outline"</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="4-rem.html#SP2_3" class="named-paragraph-link"><span class="named-paragraph">Draw an intermediate strut in the big rectangular outline</span><span class="named-paragraph-number">2.3</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">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">contains_titling</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-rem.html#SP2_4" class="named-paragraph-link"><span class="named-paragraph">Draw the title for this EPS map level</span><span class="named-paragraph-number">2.4</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">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">contains_rooms</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><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">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">map_level</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-rem.html#SP2_5" class="named-paragraph-link"><span class="named-paragraph">Establish EPS coordinates for this room</span><span class="named-paragraph-number">2.5</span></a></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">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">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">map_level</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" class="named-paragraph-link"><span class="named-paragraph">Draw the map connections from this room as EPS paths</span><span class="named-paragraph-number">2.6</span></a></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">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">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">map_level</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-rem.html#SP2_7" class="named-paragraph-link"><span class="named-paragraph">Draw the boxes for the rooms themselves</span><span class="named-paragraph-number">2.7</span></a></span><span class="plain-syntax">;</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="4-rem.html#SP2_8" class="named-paragraph-link"><span class="named-paragraph">Plot all of the rubrics onto the EPS map</span><span class="named-paragraph-number">2.8</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP2_1" class="paragraph-anchor"></a><b>&#167;2.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compute the dimensions of the EPS map</span><span class="named-paragraph-number">2.1</span></span><span class="comment-syntax"> =</span>
</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">total_chunk_height</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">max_chunk_width</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">EPS_map_level</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eml</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_BACKWARDS_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">eml</span><span class="plain-syntax">, </span><span class="identifier-syntax">EPS_map_level</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">level_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><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">mapunit</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">"grid-size"</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">p</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">"title-size"</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">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">contains_rooms</span><span class="plain-syntax">) </span><span class="identifier-syntax">p</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">"subtitle-size"</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="identifier-syntax">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">titling_point_size</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">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">width</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">Universe</span><span class="plain-syntax">.</span><span class="identifier-syntax">corner1</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">+2)*</span><span class="identifier-syntax">mapunit</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">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">actual_height</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><span class="identifier-syntax">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">actual_height</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">y_max</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">+1)*</span><span class="identifier-syntax">mapunit</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">eps_origin</span><span class="plain-syntax"> = </span><span class="identifier-syntax">total_chunk_height</span><span class="plain-syntax"> + </span><span class="identifier-syntax">border</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">height</span><span class="plain-syntax"> = </span><span class="identifier-syntax">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">actual_height</span><span class="plain-syntax"> + </span><span class="identifier-syntax">vskip</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">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">contains_rooms</span><span class="plain-syntax">) </span><span class="identifier-syntax">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">height</span><span class="plain-syntax"> += </span><span class="identifier-syntax">vskip</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">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">contains_titling</span><span class="plain-syntax">) </span><span class="identifier-syntax">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">height</span><span class="plain-syntax"> += </span><span class="identifier-syntax">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">titling_point_size</span><span class="plain-syntax">+</span><span class="identifier-syntax">vskip</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">total_chunk_height</span><span class="plain-syntax"> += </span><span class="identifier-syntax">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">height</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">max_chunk_width</span><span class="plain-syntax"> &lt; </span><span class="identifier-syntax">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">width</span><span class="plain-syntax">) </span><span class="identifier-syntax">max_chunk_width</span><span class="plain-syntax"> = </span><span class="identifier-syntax">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">width</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">blh</span><span class="plain-syntax"> = </span><span class="identifier-syntax">total_chunk_height</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">blw</span><span class="plain-syntax"> = </span><span class="identifier-syntax">max_chunk_width</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-rem.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_2" class="paragraph-anchor"></a><b>&#167;2.2. </b>The outline is a little like drawing the shape of a bookcase: there's a big
rectangle around the whole thing...
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Draw a big rectangular outline around the entire EPS map</span><span class="named-paragraph-number">2.2</span></span><span class="comment-syntax"> =</span>
</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">"newpath %% Ruled outline outer box of map\n"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rem.html#SP6" class="function-link"><span class="function-syntax">RenderEPSMap::EPS_compile_rectangular_path</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">border</span><span class="plain-syntax">, </span><span class="identifier-syntax">border</span><span class="plain-syntax">, </span><span class="identifier-syntax">border</span><span class="plain-syntax">+</span><span class="identifier-syntax">blw</span><span class="plain-syntax">, </span><span class="identifier-syntax">border</span><span class="plain-syntax">+</span><span class="identifier-syntax">blh</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">"stroke\n"</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-rem.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_3" class="paragraph-anchor"></a><b>&#167;2.3. </b>...and then there are horizontal shelves dividing it into compartments.
(Each map level will be drawn inside one of these compartments.)
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Draw an intermediate strut in the big rectangular outline</span><span class="named-paragraph-number">2.3</span></span><span class="comment-syntax"> =</span>
</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">"newpath %% Ruled horizontal line\n"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rem.html#SP8" class="function-link"><span class="function-syntax">RenderEPSMap::EPS_compile_horizontal_line_path</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">border</span><span class="plain-syntax">, </span><span class="identifier-syntax">blw</span><span class="plain-syntax">+</span><span class="identifier-syntax">border</span><span class="plain-syntax">, </span><span class="identifier-syntax">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">eps_origin</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">"stroke\n"</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-rem.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_4" class="paragraph-anchor"></a><b>&#167;2.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Draw the title for this EPS map level</span><span class="named-paragraph-number">2.4</span></span><span class="comment-syntax"> =</span>
</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">y</span><span class="plain-syntax"> = </span><span class="identifier-syntax">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">eps_origin</span><span class="plain-syntax"> + </span><span class="identifier-syntax">vskip</span><span class="plain-syntax"> + </span><span class="identifier-syntax">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">actual_height</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">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">contains_rooms</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">"subtitle-colour"</span><span class="plain-syntax">, </span><span class="identifier-syntax">level_scope</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="4-rem.html#SP4" class="function-link"><span class="function-syntax">RenderEPSMap::plot_stream_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">EPSMap::get_stream_mp</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="string-syntax">"subtitle"</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="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="constant-syntax">128</span><span class="plain-syntax">,</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">"subtitle-font"</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="identifier-syntax">border</span><span class="plain-syntax">*2, </span><span class="identifier-syntax">y</span><span class="plain-syntax">+</span><span class="identifier-syntax">vskip</span><span class="plain-syntax">,</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">"subtitle-size"</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="identifier-syntax">FALSE</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="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">"title-colour"</span><span class="plain-syntax">, </span><span class="identifier-syntax">level_scope</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="4-rem.html#SP4" class="function-link"><span class="function-syntax">RenderEPSMap::plot_stream_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">EPSMap::get_stream_mp</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="string-syntax">"title"</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">NULL</span><span class="plain-syntax">, </span><span class="constant-syntax">128</span><span class="plain-syntax">,</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">"title-font"</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="identifier-syntax">border</span><span class="plain-syntax">*2, </span><span class="identifier-syntax">y</span><span class="plain-syntax">+2*</span><span class="identifier-syntax">vskip</span><span class="plain-syntax">,</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">"title-size"</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="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</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#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_5" class="paragraph-anchor"></a><b>&#167;2.5. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish EPS coordinates for this room</span><span class="named-paragraph-number">2.5</span></span><span class="comment-syntax"> =</span>
</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="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>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">xpart</span><span class="plain-syntax"> = </span><span class="identifier-syntax">offs</span><span class="plain-syntax">%10000, </span><span class="identifier-syntax">ypart</span><span class="plain-syntax"> = </span><span class="identifier-syntax">offs</span><span class="plain-syntax">/10000;</span>
<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"> &gt; </span><span class="constant-syntax">5000</span><span class="plain-syntax">) </span><span class="identifier-syntax">xpart</span><span class="plain-syntax">-=10000;</span>
<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="identifier-syntax">bx</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">bx</span><span class="plain-syntax">)*</span><span class="identifier-syntax">mapunit</span><span class="plain-syntax"> + </span><span class="identifier-syntax">border</span><span class="plain-syntax"> + </span><span class="identifier-syntax">mapunit</span><span class="plain-syntax">/2;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">by</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">by</span><span class="plain-syntax">)*</span><span class="identifier-syntax">mapunit</span><span class="plain-syntax"> + </span><span class="identifier-syntax">eml</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">eps_origin</span><span class="plain-syntax"> + </span><span class="identifier-syntax">vskip</span><span class="plain-syntax"> + </span><span class="identifier-syntax">mapunit</span><span class="plain-syntax">/2;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">bx</span><span class="plain-syntax"> += </span><span class="identifier-syntax">xpart</span><span class="plain-syntax">*</span><span class="identifier-syntax">mapunit</span><span class="plain-syntax">/100;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">by</span><span class="plain-syntax"> += </span><span class="identifier-syntax">ypart</span><span class="plain-syntax">*</span><span class="identifier-syntax">mapunit</span><span class="plain-syntax">/100;</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="identifier-syntax">bx</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="identifier-syntax">eps_y</span><span class="plain-syntax"> = </span><span class="identifier-syntax">by</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-rem.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_6" class="paragraph-anchor"></a><b>&#167;2.6. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Draw the map connections from this room as EPS paths</span><span class="named-paragraph-number">2.6</span></span><span class="comment-syntax"> =</span>
</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><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>
<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>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">R_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><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">dir</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">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="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>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-rem.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_6_1" class="paragraph-anchor"></a><b>&#167;2.6.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Draw a single map connection as an EPS arrow</span><span class="named-paragraph-number">2.6.1</span></span><span class="comment-syntax"> =</span>
</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">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>
<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">T</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">dir</span><span class="plain-syntax">), </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) == </span><span class="identifier-syntax">R</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_1" class="named-paragraph-link"><span class="named-paragraph">Draw a two-ended arrow for a two-way horizontal connection</span><span class="named-paragraph-number">2.6.1.1</span></a></span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-rem.html#SP2_6_1_2" class="named-paragraph-link"><span class="named-paragraph">Draw a one-way arrow for a distant or off-level connection</span><span class="named-paragraph-number">2.6.1.2</span></a></span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-rem.html#SP2_6">&#167;2.6</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_6_1_1" class="paragraph-anchor"></a><b>&#167;2.6.1.1. </b>We don't want to draw this twice (once for R, once for T), so we draw it
just for the earlier-defined room.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Draw a two-ended arrow for a two-way horizontal connection</span><span class="named-paragraph-number">2.6.1.1</span></span><span class="comment-syntax"> =</span>
</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><span class="identifier-syntax">R</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax"> &lt;= </span><span class="identifier-syntax">T</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="4-rem.html#SP10" class="function-link"><span class="function-syntax">RenderEPSMap::EPS_compile_Bezier_curve</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">R_stiffness</span><span class="plain-syntax">*</span><span class="identifier-syntax">mapunit</span><span class="plain-syntax">, </span><span class="identifier-syntax">T_stiffness</span><span class="plain-syntax">*</span><span class="identifier-syntax">mapunit</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">by</span><span class="plain-syntax">, </span><span class="identifier-syntax">exit</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">T</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="identifier-syntax">T</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><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">exit</span><span class="plain-syntax">));</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-rem.html#SP2_6_1">&#167;2.6.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_6_1_2" class="paragraph-anchor"></a><b>&#167;2.6.1.2. </b>A one-way arrow has the destination marked on it textually, since it doesn't
actually go there in any visual way.
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Draw a one-way arrow for a distant or off-level connection</span><span class="named-paragraph-number">2.6.1.2</span></span><span class="comment-syntax"> =</span>
</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">scaled</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">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="4-sm.html#SP7_7" class="function-link"><span class="function-syntax">PL::SpatialMap::direction_as_vector</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">exit</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax">(</span><span class="identifier-syntax">exit</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">8</span><span class="plain-syntax">: </span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><span class="identifier-syntax">U_vector_EPS</span><span class="plain-syntax">; </span><span class="identifier-syntax">scaled</span><span class="plain-syntax"> = </span><span class="constant-syntax">2</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">9</span><span class="plain-syntax">: </span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><span class="identifier-syntax">D_vector_EPS</span><span class="plain-syntax">; </span><span class="identifier-syntax">scaled</span><span class="plain-syntax"> = </span><span class="constant-syntax">2</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">10</span><span class="plain-syntax">: </span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><span class="identifier-syntax">IN_vector_EPS</span><span class="plain-syntax">; </span><span class="identifier-syntax">scaled</span><span class="plain-syntax"> = </span><span class="constant-syntax">2</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">11</span><span class="plain-syntax">: </span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><span class="identifier-syntax">OUT_vector_EPS</span><span class="plain-syntax">; </span><span class="identifier-syntax">scaled</span><span class="plain-syntax"> = </span><span class="constant-syntax">2</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><a href="4-rem.html#SP9" class="function-link"><span class="function-syntax">RenderEPSMap::EPS_compile_dashed_arrow</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">boxsize</span><span class="plain-syntax">/</span><span class="identifier-syntax">scaled</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="identifier-syntax">bx</span><span class="plain-syntax">, </span><span class="identifier-syntax">by</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rem.html#SP3" class="function-link"><span class="function-syntax">RenderEPSMap::plot_text_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">T</span><span class="plain-syntax">,</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">"annotation-length"</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">EPSMap::get_string_mp</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="string-syntax">"annotation-font"</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">bx</span><span class="plain-syntax">+</span><span class="identifier-syntax">E</span><span class="plain-syntax">.</span><span class="identifier-syntax">x</span><span class="plain-syntax">*</span><span class="identifier-syntax">boxsize</span><span class="plain-syntax">*6/</span><span class="identifier-syntax">scaled</span><span class="plain-syntax">/5, </span><span class="identifier-syntax">by</span><span class="plain-syntax">+</span><span class="identifier-syntax">E</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax">*</span><span class="identifier-syntax">boxsize</span><span class="plain-syntax">*6/</span><span class="identifier-syntax">scaled</span><span class="plain-syntax">/5,</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">"annotation-size"</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">TRUE</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="4-rem.html#SP2_6_1">&#167;2.6.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_7" class="paragraph-anchor"></a><b>&#167;2.7. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Draw the boxes for the rooms themselves</span><span class="named-paragraph-number">2.7</span></span><span class="comment-syntax"> =</span>
</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="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>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-rem.html#SP2_7_1" class="named-paragraph-link"><span class="named-paragraph">Draw the filled box for the room</span><span class="named-paragraph-number">2.7.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-rem.html#SP2_7_2" class="named-paragraph-link"><span class="named-paragraph">Draw the outline of the box for the room</span><span class="named-paragraph-number">2.7.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-rem.html#SP2_7_3" class="named-paragraph-link"><span class="named-paragraph">Write in the name of the room</span><span class="named-paragraph-number">2.7.3</span></a></span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-rem.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_7_1" class="paragraph-anchor"></a><b>&#167;2.7.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Draw the filled box for the room</span><span class="named-paragraph-number">2.7.1</span></span><span class="comment-syntax"> =</span>
</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">"newpath %% Room interior\n"</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">room_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">75</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">"room-colour"</span><span class="plain-syntax">, </span><span class="identifier-syntax">room_scope</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="4-rem.html#SP7" class="function-link"><span class="function-syntax">RenderEPSMap::EPS_compile_room_boundary_path</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">bx</span><span class="plain-syntax">, </span><span class="identifier-syntax">by</span><span class="plain-syntax">, </span><span class="identifier-syntax">boxsize</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">"room-shape"</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="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"fill\n\n"</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-rem.html#SP2_7">&#167;2.7</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_7_2" class="paragraph-anchor"></a><b>&#167;2.7.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Draw the outline of the box for the room</span><span class="named-paragraph-number">2.7.2</span></span><span class="comment-syntax"> =</span>
</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><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-outline"</span><span class="plain-syntax">, </span><span class="identifier-syntax">room_scope</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">"room-outline-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="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"newpath %% Room outline\n"</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">"room-outline-colour"</span><span class="plain-syntax">, </span><span class="identifier-syntax">room_scope</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="4-rem.html#SP7" class="function-link"><span class="function-syntax">RenderEPSMap::EPS_compile_room_boundary_path</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">bx</span><span class="plain-syntax">, </span><span class="identifier-syntax">by</span><span class="plain-syntax">, </span><span class="identifier-syntax">boxsize</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">"room-shape"</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="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"stroke\n"</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>
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-rem.html#SP2_7">&#167;2.7</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_7_3" class="paragraph-anchor"></a><b>&#167;2.7.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Write in the name of the room</span><span class="named-paragraph-number">2.7.3</span></span><span class="comment-syntax"> =</span>
</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">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-name-offset"</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">xpart</span><span class="plain-syntax"> = </span><span class="identifier-syntax">offs</span><span class="plain-syntax">%10000, </span><span class="identifier-syntax">ypart</span><span class="plain-syntax"> = </span><span class="identifier-syntax">offs</span><span class="plain-syntax">/10000;</span>
<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"> &gt; </span><span class="constant-syntax">5000</span><span class="plain-syntax">) </span><span class="identifier-syntax">xpart</span><span class="plain-syntax">-=10000;</span>
<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="identifier-syntax">bx</span><span class="plain-syntax"> += </span><span class="identifier-syntax">xpart</span><span class="plain-syntax">*</span><span class="identifier-syntax">mapunit</span><span class="plain-syntax">/100;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">by</span><span class="plain-syntax"> += </span><span class="identifier-syntax">ypart</span><span class="plain-syntax">*</span><span class="identifier-syntax">mapunit</span><span class="plain-syntax">/100;</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">"room-name-colour"</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="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">legend</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">"room-name"</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">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">room_to_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">Wide::cmp</span><span class="plain-syntax">(</span><span class="identifier-syntax">legend</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">""</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) { </span><span class="identifier-syntax">room_to_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">R</span><span class="plain-syntax">; </span><span class="identifier-syntax">legend</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; }</span>
<span class="plain-syntax"> </span><a href="4-rem.html#SP3" class="function-link"><span class="function-syntax">RenderEPSMap::plot_text_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">legend</span><span class="plain-syntax">, </span><span class="identifier-syntax">room_to_name</span><span class="plain-syntax">,</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-name-length"</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="identifier-syntax">EPSMap::get_string_mp</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="string-syntax">"room-name-font"</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="identifier-syntax">bx</span><span class="plain-syntax">, </span><span class="identifier-syntax">by</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-name-size"</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="identifier-syntax">TRUE</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="4-rem.html#SP2_7">&#167;2.7</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">Plot all of the rubrics onto the EPS map</span><span class="named-paragraph-number">2.8</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">rubric_holder</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rh</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">rh</span><span class="plain-syntax">, </span><span class="identifier-syntax">rubric_holder</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="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">by</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">xpart</span><span class="plain-syntax"> = </span><span class="identifier-syntax">rh</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">at_offset</span><span class="plain-syntax">%10000, </span><span class="identifier-syntax">ypart</span><span class="plain-syntax"> = </span><span class="identifier-syntax">rh</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">at_offset</span><span class="plain-syntax">/10000;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">mapunit</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">"grid-size"</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">while</span><span class="plain-syntax"> (</span><span class="identifier-syntax">xpart</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">5000</span><span class="plain-syntax">) </span><span class="identifier-syntax">xpart</span><span class="plain-syntax">-=10000;</span>
<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">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>
<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">xpart</span><span class="plain-syntax">*</span><span class="identifier-syntax">mapunit</span><span class="plain-syntax">/100; </span><span class="identifier-syntax">by</span><span class="plain-syntax"> += </span><span class="identifier-syntax">ypart</span><span class="plain-syntax">*</span><span class="identifier-syntax">mapunit</span><span class="plain-syntax">/100;</span>
<span class="plain-syntax"> </span><a href="4-rem.html#SP3" class="function-link"><span class="function-syntax">RenderEPSMap::plot_text_at</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="identifier-syntax">annotation</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="constant-syntax">128</span><span class="plain-syntax">, </span><span class="identifier-syntax">rh</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">font</span><span class="plain-syntax">, </span><span class="identifier-syntax">bx</span><span class="plain-syntax">, </span><span class="identifier-syntax">by</span><span class="plain-syntax">, </span><span class="identifier-syntax">rh</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">point_size</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">); </span><span class="comment-syntax"> centred both horizontally and vertically</span>
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-rem.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. Writing text in EPS. </b>All of words written on the map &mdash; titles, labels for arrows, rubrics, and so
on &mdash; come from here.
</p>
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">MAX_EPS_TEXT_LENGTH</span><span class="plain-syntax"> </span><span class="constant-syntax">1000</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">MAX_EPS_ABBREVIATED_LENGTH</span><span class="plain-syntax"> </span><span class="constant-syntax">MAX_EPS_TEXT_LENGTH</span>
</pre>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RenderEPSMap::plot_text_at</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">RenderEPSMap::plot_text_at</span></span>:<br/><a href="4-rem.html#SP2_6_1_2">&#167;2.6.1.2</a>, <a href="4-rem.html#SP2_7_3">&#167;2.7.3</a>, <a href="4-rem.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="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text_to_plot</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">abbrev_to</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">font</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">x</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">y</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">pointsize</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">centre_h</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">centre_v</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">txt</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">text_to_plot</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">text_to_plot</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">I</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-rem.html#SP3_1" class="named-paragraph-link"><span class="named-paragraph">Try taking the name from the printed name property of the room</span><span class="named-paragraph-number">3.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-rem.html#SP3_2" class="named-paragraph-link"><span class="named-paragraph">If that fails, try taking the name from its source text name</span><span class="named-paragraph-number">3.2</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="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="4-rem.html#SP4" class="function-link"><span class="function-syntax">RenderEPSMap::plot_stream_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">txt</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">abbrev_to</span><span class="plain-syntax">, </span><span class="identifier-syntax">font</span><span class="plain-syntax">, </span><span class="identifier-syntax">x</span><span class="plain-syntax">, </span><span class="identifier-syntax">y</span><span class="plain-syntax">, </span><span class="identifier-syntax">pointsize</span><span class="plain-syntax">, </span><span class="identifier-syntax">centre_h</span><span class="plain-syntax">, </span><span class="identifier-syntax">centre_v</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">txt</span><span class="plain-syntax">)</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP3_1" class="paragraph-anchor"></a><b>&#167;3.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Try taking the name from the printed name property of the room</span><span class="named-paragraph-number">3.1</span></span><span class="comment-syntax"> =</span>
</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><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><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>
<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">Wordings::one_word</span><span class="plain-syntax">(</span><span class="identifier-syntax">wn</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::get_first_char</span><span class="plain-syntax">(</span><span class="identifier-syntax">txt</span><span class="plain-syntax">) == </span><span class="character-syntax">'\"'</span><span class="plain-syntax">) </span><span class="identifier-syntax">Str::delete_first_character</span><span class="plain-syntax">(</span><span class="identifier-syntax">txt</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::get_last_char</span><span class="plain-syntax">(</span><span class="identifier-syntax">txt</span><span class="plain-syntax">) == </span><span class="character-syntax">'\"'</span><span class="plain-syntax">) </span><span class="identifier-syntax">Str::delete_last_character</span><span class="plain-syntax">(</span><span class="identifier-syntax">txt</span><span class="plain-syntax">);</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>
<p class="commentary firstcommentary"><a id="SP3_2" class="paragraph-anchor"></a><b>&#167;3.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">If that fails, try taking the name from its source text name</span><span class="named-paragraph-number">3.2</span></span><span class="comment-syntax"> =</span>
</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><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>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-rem.html#SP3">&#167;3</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>&#167;4. </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">RenderEPSMap::plot_stream_at</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">RenderEPSMap::plot_stream_at</span></span>:<br/><a href="4-rem.html#SP2_4">&#167;2.4</a>, <a href="4-rem.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="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text_to_plot</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">abbrev_to</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">font</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">x</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">y</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">pointsize</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">centre_h</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">centre_v</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">txt</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Str::copy</span><span class="plain-syntax">(</span><span class="identifier-syntax">txt</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_to_plot</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-rem.html#SP4_1" class="named-paragraph-link"><span class="named-paragraph">Abbreviate the text to be printed by stripping dispensable letters</span><span class="named-paragraph-number">4.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="4-rem.html#SP12" class="function-link"><span class="function-syntax">RenderEPSMap::EPS_compile_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">txt</span><span class="plain-syntax">, </span><span class="identifier-syntax">x</span><span class="plain-syntax">, </span><span class="identifier-syntax">y</span><span class="plain-syntax">, </span><span class="identifier-syntax">font</span><span class="plain-syntax">, </span><span class="identifier-syntax">pointsize</span><span class="plain-syntax">, </span><span class="identifier-syntax">centre_h</span><span class="plain-syntax">, </span><span class="identifier-syntax">centre_v</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">txt</span><span class="plain-syntax">)</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP4_1" class="paragraph-anchor"></a><b>&#167;4.1. </b>The following cuts the text down to the abbreviation length by knocking out,
in sequence: (a) lower-case vowels; (b) spaces; (c) lower-case consonants; (d)
punctuation marks. If that doesn't do it, the text is simply truncated. For
example, "Peisey-Nancroix" abbreviated to 10 is "Pesy-Nncrx" and to 5
is "PsyNn".
</p>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Abbreviate the text to be printed by stripping dispensable letters</span><span class="named-paragraph-number">4.1</span></span><span class="comment-syntax"> =</span>
</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><span class="identifier-syntax">abbrev_to</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">MAX_EPS_ABBREVIATED_LENGTH</span><span class="plain-syntax">) </span><span class="identifier-syntax">abbrev_to</span><span class="plain-syntax"> = </span><span class="constant-syntax">MAX_EPS_ABBREVIATED_LENGTH</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">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">txt</span><span class="plain-syntax">) &gt; </span><span class="identifier-syntax">abbrev_to</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">j</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">j</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">)-1; </span><span class="identifier-syntax">j</span><span class="plain-syntax">&gt;=0; </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">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">txt</span><span class="plain-syntax">, </span><span class="identifier-syntax">j</span><span class="plain-syntax">))) </span><span class="reserved-syntax">goto</span><span class="plain-syntax"> </span><span class="identifier-syntax">RemoveOne</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">j</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">)-1; </span><span class="identifier-syntax">j</span><span class="plain-syntax">&gt;=0; </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">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">txt</span><span class="plain-syntax">, </span><span class="identifier-syntax">j</span><span class="plain-syntax">) == </span><span class="character-syntax">' '</span><span class="plain-syntax">) </span><span class="reserved-syntax">goto</span><span class="plain-syntax"> </span><span class="identifier-syntax">RemoveOne</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">j</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">)-1; </span><span class="identifier-syntax">j</span><span class="plain-syntax">&gt;=0; </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">islower</span><span class="plain-syntax">(</span><span class="identifier-syntax">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">txt</span><span class="plain-syntax">, </span><span class="identifier-syntax">j</span><span class="plain-syntax">))) </span><span class="reserved-syntax">goto</span><span class="plain-syntax"> </span><span class="identifier-syntax">RemoveOne</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">j</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">)-1; </span><span class="identifier-syntax">j</span><span class="plain-syntax">&gt;=0; </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">isupper</span><span class="plain-syntax">(</span><span class="identifier-syntax">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">txt</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="reserved-syntax">goto</span><span class="plain-syntax"> </span><span class="identifier-syntax">RemoveOne</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Str::truncate</span><span class="plain-syntax">(</span><span class="identifier-syntax">txt</span><span class="plain-syntax">, </span><span class="identifier-syntax">abbrev_to</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="identifier-syntax">RemoveOne:</span><span class="plain-syntax"> </span><span class="identifier-syntax">Str::delete_nth_character</span><span class="plain-syntax">(</span><span class="identifier-syntax">txt</span><span class="plain-syntax">, </span><span class="identifier-syntax">j</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#SP4">&#167;4</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>&#167;5. EPS header. </b>EPS files are identified and version-numbered by a header, as follows.
</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">RenderEPSMap::EPS_compile_header</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">RenderEPSMap::EPS_compile_header</span></span>:<br/><a href="4-rem.html#SP2">&#167;2</a></span></button><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">bounding_box_width</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">bounding_box_height</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">default_font</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">default_point_size</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">"%%!PS-Adobe EPSF-3.0\n"</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">"%%%%BoundingBox: 0 0 %d %d\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">bounding_box_width</span><span class="plain-syntax">, </span><span class="identifier-syntax">bounding_box_height</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">"%%%%IncludeFont: %w\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">default_font</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 findfont %d scalefont setfont\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">default_font</span><span class="plain-syntax">, </span><span class="identifier-syntax">default_point_size</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>&#167;6. Circles and rectangles. </b>In EPS files, there's an imaginary pen which traces out "paths". These begin
whenever the pen moves to a new location, and then continue until they are
closed (joined up back to the start position) with a <span class="extract"><span class="extract-syntax">closepath</span></span> command.
</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">RenderEPSMap::EPS_compile_circular_path</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">RenderEPSMap::EPS_compile_circular_path</span></span>:<br/><a href="4-rem.html#SP7">&#167;7</a></span></button><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">x0</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">y0</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">radius</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">"%d %d moveto %% rightmost point\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">x0</span><span class="plain-syntax">+</span><span class="identifier-syntax">radius</span><span class="plain-syntax">, </span><span class="identifier-syntax">y0</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">"%d %d %d %d %d arc %% full circle traced anticlockwise\n"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">x0</span><span class="plain-syntax">, </span><span class="identifier-syntax">y0</span><span class="plain-syntax">, </span><span class="identifier-syntax">radius</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">360</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">"closepath\n"</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">RenderEPSMap::EPS_compile_rectangular_path</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">RenderEPSMap::EPS_compile_rectangular_path</span></span>:<br/><a href="4-rem.html#SP2_2">&#167;2.2</a>, <a href="4-rem.html#SP7">&#167;7</a></span></button><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">x0</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">y0</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">x1</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">y1</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">"%d %d moveto %% bottom left corner\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">x0</span><span class="plain-syntax">, </span><span class="identifier-syntax">y0</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">"%d %d lineto %% bottom side\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">x1</span><span class="plain-syntax">, </span><span class="identifier-syntax">y0</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">"%d %d lineto %% right side\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">x1</span><span class="plain-syntax">, </span><span class="identifier-syntax">y1</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">"%d %d lineto %% top side\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">x0</span><span class="plain-syntax">, </span><span class="identifier-syntax">y1</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">"closepath\n"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>&#167;7. </b>The boundary of a room is always one of these:
</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">RenderEPSMap::EPS_compile_room_boundary_path</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">RenderEPSMap::EPS_compile_room_boundary_path</span></span>:<br/><a href="4-rem.html#SP2_7_1">&#167;2.7.1</a>, <a href="4-rem.html#SP2_7_2">&#167;2.7.2</a></span></button><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">bx</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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">boxsize</span><span class="plain-syntax">, </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">shape</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">Wide::cmp</span><span class="plain-syntax">(</span><span class="identifier-syntax">shape</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"square"</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="4-rem.html#SP6" class="function-link"><span class="function-syntax">RenderEPSMap::EPS_compile_rectangular_path</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">bx</span><span class="plain-syntax">-</span><span class="identifier-syntax">boxsize</span><span class="plain-syntax">, </span><span class="identifier-syntax">by</span><span class="plain-syntax">-</span><span class="identifier-syntax">boxsize</span><span class="plain-syntax">, </span><span class="identifier-syntax">bx</span><span class="plain-syntax">+</span><span class="identifier-syntax">boxsize</span><span class="plain-syntax">, </span><span class="identifier-syntax">by</span><span class="plain-syntax">+</span><span class="identifier-syntax">boxsize</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">Wide::cmp</span><span class="plain-syntax">(</span><span class="identifier-syntax">shape</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"rectangle"</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="4-rem.html#SP6" class="function-link"><span class="function-syntax">RenderEPSMap::EPS_compile_rectangular_path</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">bx</span><span class="plain-syntax">-2*</span><span class="identifier-syntax">boxsize</span><span class="plain-syntax">, </span><span class="identifier-syntax">by</span><span class="plain-syntax">-</span><span class="identifier-syntax">boxsize</span><span class="plain-syntax">, </span><span class="identifier-syntax">bx</span><span class="plain-syntax">+2*</span><span class="identifier-syntax">boxsize</span><span class="plain-syntax">, </span><span class="identifier-syntax">by</span><span class="plain-syntax">+</span><span class="identifier-syntax">boxsize</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">Wide::cmp</span><span class="plain-syntax">(</span><span class="identifier-syntax">shape</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"circle"</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="4-rem.html#SP6" class="function-link"><span class="function-syntax">RenderEPSMap::EPS_compile_circular_path</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">bx</span><span class="plain-syntax">, </span><span class="identifier-syntax">by</span><span class="plain-syntax">, </span><span class="identifier-syntax">boxsize</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#SP6" class="function-link"><span class="function-syntax">RenderEPSMap::EPS_compile_rectangular_path</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">bx</span><span class="plain-syntax">-</span><span class="identifier-syntax">boxsize</span><span class="plain-syntax">, </span><span class="identifier-syntax">by</span><span class="plain-syntax">-</span><span class="identifier-syntax">boxsize</span><span class="plain-syntax">, </span><span class="identifier-syntax">bx</span><span class="plain-syntax">+</span><span class="identifier-syntax">boxsize</span><span class="plain-syntax">, </span><span class="identifier-syntax">by</span><span class="plain-syntax">+</span><span class="identifier-syntax">boxsize</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>&#167;8. Straight lines. </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">RenderEPSMap::EPS_compile_horizontal_line_path</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">RenderEPSMap::EPS_compile_horizontal_line_path</span></span>:<br/><a href="4-rem.html#SP2_3">&#167;2.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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">x0</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">x1</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%d %d moveto %% LHS\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">x0</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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%d %d lineto %% RHS\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">x1</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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"closepath\n"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>&#167;9. Dashed arrows. </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">RenderEPSMap::EPS_compile_dashed_arrow</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">RenderEPSMap::EPS_compile_dashed_arrow</span></span>:<br/><a href="4-rem.html#SP2_6_1_2">&#167;2.6.1.2</a></span></button><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">length</span><span class="plain-syntax">, </span><span class="identifier-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">Dir</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">x0</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">y0</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">"[2 1] 0 setdash %% dashed line for arrow\n"</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">"%d %d moveto %% room centre\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">x0</span><span class="plain-syntax">, </span><span class="identifier-syntax">y0</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">"%d %d rlineto %% arrow out\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Dir</span><span class="plain-syntax">.</span><span class="identifier-syntax">x</span><span class="plain-syntax">*</span><span class="identifier-syntax">length</span><span class="plain-syntax">, </span><span class="identifier-syntax">Dir</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax">*</span><span class="identifier-syntax">length</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">"stroke\n"</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">"[] 0 setdash %% back to normal solid lines\n"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>&#167;10. Bezier curves. </b>The other sort of path we'll need is a Bézier curve, a quadratic curve which
interpolates between vectors. EPS has support for these built-in; see any
reference book on PostScript.
</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">RenderEPSMap::EPS_compile_Bezier_curve</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">RenderEPSMap::EPS_compile_Bezier_curve</span></span>:<br/><a href="4-rem.html#SP2_6_1_1">&#167;2.6.1.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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">stiffness0</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">stiffness1</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">x0</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">y0</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">exit0</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">x1</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">y1</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">exit1</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">cx1</span><span class="plain-syntax">, </span><span class="identifier-syntax">cy1</span><span class="plain-syntax">, </span><span class="identifier-syntax">cx2</span><span class="plain-syntax">, </span><span class="identifier-syntax">cy2</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="4-sm.html#SP7_7" class="function-link"><span class="function-syntax">PL::SpatialMap::direction_as_vector</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">exit0</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">cx1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">x0</span><span class="plain-syntax">+</span><span class="identifier-syntax">E</span><span class="plain-syntax">.</span><span class="identifier-syntax">x</span><span class="plain-syntax">*</span><span class="identifier-syntax">stiffness0</span><span class="plain-syntax">/100; </span><span class="identifier-syntax">cy1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">y0</span><span class="plain-syntax">+</span><span class="identifier-syntax">E</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax">*</span><span class="identifier-syntax">stiffness0</span><span class="plain-syntax">/100;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="4-sm.html#SP7_7" class="function-link"><span class="function-syntax">PL::SpatialMap::direction_as_vector</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">exit1</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">cx2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">x1</span><span class="plain-syntax">+</span><span class="identifier-syntax">E</span><span class="plain-syntax">.</span><span class="identifier-syntax">x</span><span class="plain-syntax">*</span><span class="identifier-syntax">stiffness1</span><span class="plain-syntax">/100; </span><span class="identifier-syntax">cy2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">y1</span><span class="plain-syntax">+</span><span class="identifier-syntax">E</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax">*</span><span class="identifier-syntax">stiffness1</span><span class="plain-syntax">/100;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%d %d moveto %% start of Bezier curve\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">x0</span><span class="plain-syntax">, </span><span class="identifier-syntax">y0</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">"%d %d %d %d %d %d curveto %% control points 1, 2 and end\n"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">cx1</span><span class="plain-syntax">, </span><span class="identifier-syntax">cy1</span><span class="plain-syntax">, </span><span class="identifier-syntax">cx2</span><span class="plain-syntax">, </span><span class="identifier-syntax">cy2</span><span class="plain-syntax">, </span><span class="identifier-syntax">x1</span><span class="plain-syntax">, </span><span class="identifier-syntax">y1</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">"stroke\n"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>&#167;11. Line thickness. </b>The following routines should be used in nested pairs, so that the PostScript
stack is kept in order.
</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">RenderEPSMap::EPS_compile_line_width_setting</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">RenderEPSMap::EPS_compile_line_width_setting</span></span>:<br/><a href="4-rem.html#SP2_6">&#167;2.6</a>, <a href="4-rem.html#SP2_7_2">&#167;2.7.2</a></span></button><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">new</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">"currentlinewidth %% Push old line width onto stack\n"</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">"%d setlinewidth\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">new</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">RenderEPSMap::EPS_compile_line_width_unsetting</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">RenderEPSMap::EPS_compile_line_width_unsetting</span></span>:<br/><a href="4-rem.html#SP2_6">&#167;2.6</a>, <a href="4-rem.html#SP2_7_2">&#167;2.7.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</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">"setlinewidth %% Pull old line width from stack\n"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>&#167;12. Text. </b>In EPS world, text is just another sort of path.
</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">RenderEPSMap::EPS_compile_text</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">RenderEPSMap::EPS_compile_text</span></span>:<br/><a href="4-rem.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">x</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</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">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">font</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">pointsize</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">centre_h</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">centre_v</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 findfont %d scalefont setfont\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">font</span><span class="plain-syntax">, </span><span class="identifier-syntax">pointsize</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">"newpath (%S)\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</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">centre_h</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"dup stringwidth add 2 div %d exch sub %% = X centre-offset\n"</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><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%d %% = X\n"</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">centre_v</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%d %d 2 div sub %% = Y centre-offset\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">y</span><span class="plain-syntax">, </span><span class="identifier-syntax">pointsize</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">"%d %% = Y\n"</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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"moveto show\n"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>&#167;13. RGB colours. </b>Inform internally stores colours as six hexadecimal digits, in traditional
HTML way: <span class="extract"><span class="extract-syntax">RRGGBB</span></span>, with each colour from 0 to 255. In EPS files, colours
are written as triples of floating point numbers \(0 \leq b \leq 1\).
</p>
<p class="commentary">EPS uses reverse Polish notation, so the command here is: <span class="extract"><span class="extract-syntax">R G B setrgbcolor</span></span>.
</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">RenderEPSMap::EPS_compile_set_colour</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">RenderEPSMap::EPS_compile_set_colour</span></span>:<br/><a href="4-rem.html#SP2_4">&#167;2.4</a>, <a href="4-rem.html#SP2_6_1">&#167;2.6.1</a>, <a href="4-rem.html#SP2_7_1">&#167;2.7.1</a>, <a href="4-rem.html#SP2_7_2">&#167;2.7.2</a>, <a href="4-rem.html#SP2_7_3">&#167;2.7.3</a>, <a href="4-rem.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="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">htmlcolour</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">Wide::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">htmlcolour</span><span class="plain-syntax">) != </span><span class="constant-syntax">6</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"Improper HTML colour"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rem.html#SP13" class="function-link"><span class="function-syntax">RenderEPSMap::choose_colour_beam</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">htmlcolour</span><span class="plain-syntax">[0], </span><span class="identifier-syntax">htmlcolour</span><span class="plain-syntax">[1]);</span>
<span class="plain-syntax"> </span><a href="4-rem.html#SP13" class="function-link"><span class="function-syntax">RenderEPSMap::choose_colour_beam</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">htmlcolour</span><span class="plain-syntax">[2], </span><span class="identifier-syntax">htmlcolour</span><span class="plain-syntax">[3]);</span>
<span class="plain-syntax"> </span><a href="4-rem.html#SP13" class="function-link"><span class="function-syntax">RenderEPSMap::choose_colour_beam</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">htmlcolour</span><span class="plain-syntax">[4], </span><span class="identifier-syntax">htmlcolour</span><span class="plain-syntax">[5]);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"setrgbcolor %% From HTML colour %w\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">htmlcolour</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">RenderEPSMap::choose_colour_beam</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">hex1</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">hex2</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">k</span><span class="plain-syntax"> = </span><a href="4-rem.html#SP13" class="function-link"><span class="function-syntax">RenderEPSMap::hex_to_int</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">hex1</span><span class="plain-syntax">)*16 + </span><a href="4-rem.html#SP13" class="function-link"><span class="function-syntax">RenderEPSMap::hex_to_int</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">hex2</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">"%.6g "</span><span class="plain-syntax">, (</span><span class="reserved-syntax">double</span><span class="plain-syntax">) (((</span><span class="reserved-syntax">float</span><span class="plain-syntax">) </span><span class="identifier-syntax">k</span><span class="plain-syntax">)/255.0));</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">RenderEPSMap::hex_to_int</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">hex</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax">(</span><span class="identifier-syntax">hex</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'0'</span><span class="plain-syntax">: </span><span class="reserved-syntax">return</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">case</span><span class="plain-syntax"> </span><span class="character-syntax">'1'</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">case</span><span class="plain-syntax"> </span><span class="character-syntax">'2'</span><span class="plain-syntax">: </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'3'</span><span class="plain-syntax">: </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">3</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'4'</span><span class="plain-syntax">: </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">4</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'5'</span><span class="plain-syntax">: </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">5</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'6'</span><span class="plain-syntax">: </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">6</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'7'</span><span class="plain-syntax">: </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">7</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'8'</span><span class="plain-syntax">: </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">8</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'9'</span><span class="plain-syntax">: </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">9</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'a'</span><span class="plain-syntax">: </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'A'</span><span class="plain-syntax">: </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">10</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'b'</span><span class="plain-syntax">: </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'B'</span><span class="plain-syntax">: </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">11</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'c'</span><span class="plain-syntax">: </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'C'</span><span class="plain-syntax">: </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">12</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'d'</span><span class="plain-syntax">: </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'D'</span><span class="plain-syntax">: </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">13</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'e'</span><span class="plain-syntax">: </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'E'</span><span class="plain-syntax">: </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">14</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'f'</span><span class="plain-syntax">: </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'F'</span><span class="plain-syntax">: </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">15</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">default:</span><span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"Improper character in HTML colour"</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="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>&#167;14. </b>EPS also supports greyscale, where there's only one beam:
</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">RenderEPSMap::EPS_compile_set_greyscale</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">RenderEPSMap::EPS_compile_set_greyscale</span></span>:<br/><a href="4-rem.html#SP2_4">&#167;2.4</a>, <a href="4-rem.html#SP2_6_1">&#167;2.6.1</a>, <a href="4-rem.html#SP2_7_1">&#167;2.7.1</a>, <a href="4-rem.html#SP2_7_2">&#167;2.7.2</a>, <a href="4-rem.html#SP2_7_3">&#167;2.7.3</a>, <a href="4-rem.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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</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">"%0.02f setgray %% greyscale %d/100ths of white\n"</span><span class="plain-syntax">, (</span><span class="reserved-syntax">float</span><span class="plain-syntax">) </span><span class="identifier-syntax">N</span><span class="plain-syntax">/100, </span><span class="identifier-syntax">N</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="4-hm.html">&#10094;</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-me.html">2</a></li><li class="progresschapter"><a href="3-spt.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sm.html">sm</a></li><li class="progresssection"><a href="4-hm.html">hm</a></li><li class="progresscurrent">rem</li><li class="progressnextoff">&#10095;</li></ul></div>
</nav><!--End of weave-->
</main>
</body>
</html>

File diff suppressed because it is too large Load diff

View file

@ -135,11 +135,6 @@
<p class="chapterentry"><a name="4"></a>
<span class="chaptertitle">Chapter 4: Visualising Space</span></p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="4-sg.html">
<spon class="sectiontitle">Spatial Geometry</span></a> -
<span class="sectionpurpose">To deal with vectors and cuboids in a three-dimensional integer lattice.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-sm.html">
<spon class="sectiontitle">Spatial Map</span></a> -
@ -151,8 +146,8 @@
<span class="sectionpurpose">To render the spatial map of rooms as HTML.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-em.html">
<spon class="sectiontitle">EPS Map</span></a> -
<p class="sectionentry"><a href="4-rem.html">
<spon class="sectiontitle">Render EPS Map</span></a> -
<span class="sectionpurpose">To render the spatial map of rooms as an EPS (Encapsulated PostScript) file.</span></p>
</li>
</ul>

View file

@ -126,7 +126,6 @@ hierarchy. See <a href="2-ins.html#SP10" class="internal">Instances::to_kind</a>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">enumeration_index</span><span class="plain-syntax">; </span><span class="comment-syntax"> within each non-object kind, instances are counted from 1</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">instance_index_data</span><span class="plain-syntax"> </span><span class="identifier-syntax">iid</span><span class="plain-syntax">; </span><span class="comment-syntax"> see </span><a href="../index-module/2-ins.html" class="internal">Instances (in index)</a>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">instance_compilation_data</span><span class="plain-syntax"> </span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">; </span><span class="comment-syntax"> see </span><a href="../runtime-module/5-ins.html" class="internal">Instances (in runtime)</a>
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">instance</span><span class="plain-syntax">;</span>
@ -152,7 +151,6 @@ hierarchy. See <a href="2-ins.html#SP10" class="internal">Instances::to_kind</a>
<span class="plain-syntax"> </span><span class="reserved-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">instance</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-ins.html#SP4_2" class="named-paragraph-link"><span class="named-paragraph">Initialise the instance</span><span class="named-paragraph-number">4.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-ins.html#SP4_3" class="named-paragraph-link"><span class="named-paragraph">Add the new instance to its enumeration</span><span class="named-paragraph-number">4.3</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">IXInstances::initialise_iid</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">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">OBJECT_CREATIONS</span><span class="plain-syntax">, </span><span class="string-syntax">"Created instance: $O (kind %u) (inter %n)\n"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">RTInstances::value_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">));</span>

View file

@ -307,7 +307,7 @@ but that's now easy.
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="2-ni.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresscurrent">cu</li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-emt.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="2-ni.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresscurrent">cu</li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-em.html">em</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-emt.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -420,7 +420,7 @@ names are not.
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-dv.html#SP2">&#167;2</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="2-th.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresscurrent">dv</li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-es.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="2-th.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresscurrent">dv</li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-em.html">em</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-es.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -349,7 +349,7 @@ is completely emitted before another one is.
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="2-ec.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresscurrent">ea</li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-int.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="2-ec.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresscurrent">ea</li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-em.html">em</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-int.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -378,7 +378,7 @@ advance:
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="2-emt.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresscurrent">ec</li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-ea.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="2-emt.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresscurrent">ec</li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-em.html">em</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-ea.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

File diff suppressed because it is too large Load diff

View file

@ -580,7 +580,7 @@ assimilating during linking.
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="2-cu.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresscurrent">emt</li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-ec.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="2-cu.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresscurrent">emt</li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-em.html">em</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-ec.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -128,7 +128,7 @@ data, not merely the pointer to them, which is a "deep copy".
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="2-dv.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresscurrent">es</li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-ic.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="2-dv.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresscurrent">es</li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-em.html">em</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-ic.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -278,7 +278,7 @@ following convenience functions.
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="2-sn.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresscurrent">gpr</li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-ie.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="2-sn.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresscurrent">gpr</li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-em.html">em</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-ie.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -130,7 +130,7 @@ ever change our minds about that.
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="2-sc.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresscurrent">hnae</li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-sn.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="2-sc.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresscurrent">hnae</li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-em.html">em</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-sn.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -2325,7 +2325,7 @@ point system, and for those:
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="1-rm.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresscurrent">hrr</li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-ni.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="1-rm.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresscurrent">hrr</li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-em.html">em</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-ni.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -461,7 +461,7 @@ misleading to a human reader.
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="2-es.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresscurrent">ic</li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-kd.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="2-es.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresscurrent">ic</li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-em.html">em</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-kd.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -166,13 +166,13 @@ documentation page could be forgiven for thinking it a miscellany.
<span class="plain-syntax"> </span><span class="identifier-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">q</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">kc</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</span><span class="plain-syntax">(</span><span class="identifier-syntax">q</span><span class="plain-syntax">, </span><span class="identifier-syntax">nonlocal_variable</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::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">q</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">name</span><span class="plain-syntax">) &gt;= </span><span class="constant-syntax">0</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">q</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">name</span><span class="plain-syntax">) &gt;= </span><span class="constant-syntax">0</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">NonlocalVariables::is_global</span><span class="plain-syntax">(</span><span class="identifier-syntax">q</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Lexer::file_of_origin</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">q</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">name</span><span class="plain-syntax">)) == </span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">read_into_file</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Headings::indexed</span><span class="plain-syntax">(</span><span class="identifier-syntax">Headings::of_wording</span><span class="plain-syntax">(</span><span class="identifier-syntax">q</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="function-syntax">&lt;value-understood-variable-name&gt;(q-&gt;</span><span class="identifier-syntax">name</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">Lexer::file_of_origin</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">q</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">name</span><span class="plain-syntax">)) == </span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">read_into_file</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Headings::indexed</span><span class="plain-syntax">(</span><span class="identifier-syntax">Headings::of_wording</span><span class="plain-syntax">(</span><span class="identifier-syntax">q</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="function-syntax">&lt;value-understood-variable-name&gt;(q-&gt;</span><span class="element-syntax">name</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">kc</span><span class="plain-syntax"> = </span><a href="2-ie.html#SP2" class="function-link"><span class="function-syntax">IndexExtensions::document_headword</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">kc</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="string-syntax">"Values that vary"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"value"</span><span class="plain-syntax">, </span><span class="identifier-syntax">q</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">kc</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="string-syntax">"Values that vary"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"value"</span><span class="plain-syntax">, </span><span class="identifier-syntax">q</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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">kc</span><span class="plain-syntax"> != </span><span class="constant-syntax">0</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>
@ -282,11 +282,11 @@ documentation page could be forgiven for thinking it a miscellany.
<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>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">kc</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</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">property</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">prn</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">name</span><span class="plain-syntax">)) &amp;&amp;</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">prn</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">name</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">IXProperties::is_shown_in_index</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Lexer::file_of_origin</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</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="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">read_into_file</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Lexer::file_of_origin</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</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="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">read_into_file</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">kc</span><span class="plain-syntax"> = </span><a href="2-ie.html#SP2" class="function-link"><span class="function-syntax">IndexExtensions::document_headword</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">kc</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="string-syntax">"Properties"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"property"</span><span class="plain-syntax">,</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">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">kc</span><span class="plain-syntax"> != </span><span class="constant-syntax">0</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>
<ul class="endnotetexts"><li>This code is used in <a href="2-ie.html#SP1">&#167;1</a>.</li></ul>
@ -300,10 +300,10 @@ documentation page could be forgiven for thinking it a miscellany.
<span class="plain-syntax"> </span><span class="identifier-syntax">use_option</span><span class="plain-syntax"> *</span><span class="identifier-syntax">uo</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">kc</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</span><span class="plain-syntax">(</span><span class="identifier-syntax">uo</span><span class="plain-syntax">, </span><span class="identifier-syntax">use_option</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::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">uo</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">name</span><span class="plain-syntax">) &gt;= </span><span class="constant-syntax">0</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Lexer::file_of_origin</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">uo</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">name</span><span class="plain-syntax">)) == </span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">read_into_file</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::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">uo</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">name</span><span class="plain-syntax">) &gt;= </span><span class="constant-syntax">0</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Lexer::file_of_origin</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">uo</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">name</span><span class="plain-syntax">)) == </span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">read_into_file</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">kc</span><span class="plain-syntax"> = </span><a href="2-ie.html#SP2" class="function-link"><span class="function-syntax">IndexExtensions::document_headword</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">kc</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="string-syntax">"Use options"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"use option"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">uo</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">uo</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">kc</span><span class="plain-syntax"> != </span><span class="constant-syntax">0</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>
<ul class="endnotetexts"><li>This code is used in <a href="2-ie.html#SP1">&#167;1</a>.</li></ul>
@ -323,7 +323,7 @@ dictionary.
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="2-gpr.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresscurrent">ie</li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="3-gm.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="2-gpr.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresscurrent">ie</li><li class="progresssection"><a href="2-em.html">em</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-em.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -300,7 +300,7 @@ to reject it again with a problem message.
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-int.html#SP4">&#167;4</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="2-ea.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresscurrent">int</li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-sv.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="2-ea.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresscurrent">int</li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-em.html">em</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-sv.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -333,7 +333,7 @@ source text.
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-kd.html#SP9">&#167;9</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="2-ic.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresscurrent">kd</li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-sc.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="2-ic.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresscurrent">kd</li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-em.html">em</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-sc.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -145,7 +145,7 @@ mutate the name in order to achieve that uniqueness.
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="2-hrr.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresscurrent">ni</li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-cu.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="2-hrr.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresscurrent">ni</li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-em.html">em</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-cu.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -373,7 +373,7 @@ routine for colours; and the best thing is to print nothing at all.
<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">T</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">T</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_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</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-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">PRINT_BIP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">);</span>
@ -475,7 +475,7 @@ turn by turn.
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-sc.html#SP6_2_1" class="named-paragraph-link"><span class="named-paragraph">Compile the comma as needed</span><span class="named-paragraph-number">6.2.1</span></a></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">T</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">T</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_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</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-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">PRINT_BIP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">);</span>
@ -510,7 +510,7 @@ turn by turn.
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-sc.html#SP6_2">&#167;6.2</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="2-kd.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresscurrent">sc</li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-hnae.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="2-kd.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresscurrent">sc</li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-em.html">em</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-hnae.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -232,7 +232,7 @@ short name, and <span class="extract"><span class="extract-syntax">FALSE</span><
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-sn.html#SP4">&#167;4</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="2-hnae.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresscurrent">sn</li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-gpr.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="2-hnae.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresscurrent">sn</li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-em.html">em</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-gpr.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -168,7 +168,7 @@ need to come into being.
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-sv.html#SP1">&#167;1</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="2-int.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresscurrent">sv</li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-th.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="2-int.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresscurrent">sv</li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-em.html">em</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-th.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -216,7 +216,7 @@ in <a href="../BasicInformKit/S-flx.html" class="internal">Flex (in BasicInformK
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="2-sv.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresscurrent">th</li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-dv.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="2-sv.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-hrr.html">hrr</a></li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresscurrent">th</li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-em.html">em</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-dv.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -240,7 +240,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">contents_entry</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure heading_compilation_data is private to this section.</li><li>The structure contents_entry is accessed in 2/cu, 4/ts, 5/act, 5/si, 5/tbl, 5/rls, 5/rlb, 5/lp and here.</li></ul>
<ul class="endnotetexts"><li>The structure heading_compilation_data is private to this section.</li><li>The structure contents_entry is accessed in 2/cu, 2/em, 4/ts, 5/act, 5/si, 5/tbl, 5/rls, 5/rlb, 5/lp and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_11" class="paragraph-anchor"></a><b>&#167;1.11. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Headings</span><span class="named-paragraph-number">1.11</span></span><span class="comment-syntax"> =</span>
</p>

View file

@ -190,7 +190,7 @@ in the VM can be added to it without it becoming negative.
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="2-ie.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresscurrent">gm</li><li class="progresssection"><a href="3-cm.html">cm</a></li><li class="progresssection"><a href="3-uo.html">uo</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="3-cm.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="2-em.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresscurrent">gm</li><li class="progresssection"><a href="3-cm.html">cm</a></li><li class="progresssection"><a href="3-uo.html">uo</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="3-cm.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -94,9 +94,9 @@ work at runtime:
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">set_iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">USE_OPTION_ON_MD_HL</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-emt.html#SP9" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">set_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">set</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP9" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">uo</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">uo_value</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_raw_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="constant-syntax">USE_OPTION_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">uo</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_raw_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="constant-syntax">USE_OPTION_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">uo</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">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</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">N</span><span class="plain-syntax">, </span><span class="string-syntax">"%W option"</span><span class="plain-syntax">, </span><span class="identifier-syntax">uo</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_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="string-syntax">"%W option"</span><span class="plain-syntax">, </span><span class="identifier-syntax">uo</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">uo</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">minimum_setting_value</span><span class="plain-syntax"> &gt; </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">N</span><span class="plain-syntax">, </span><span class="string-syntax">" [%d]"</span><span class="plain-syntax">, </span><span class="identifier-syntax">uo</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">minimum_setting_value</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="constant-syntax">USE_OPTION_PNAME_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">N</span><span class="plain-syntax">);</span>

View file

@ -174,7 +174,7 @@ through a sentence like:
<span class="plain-syntax"> </span><a href="4-ts.html#SP4" class="function-link"><span class="function-syntax">TextSubstitutions::value_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">resp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">the_ts</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">desc</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">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="string-syntax">"response (%c) to '%W'"</span><span class="plain-syntax">, </span><span class="character-syntax">'A'</span><span class="plain-syntax">+</span><span class="identifier-syntax">marker</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</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_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="string-syntax">"response (%c) to '%W'"</span><span class="plain-syntax">, </span><span class="character-syntax">'A'</span><span class="plain-syntax">+</span><span class="identifier-syntax">marker</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</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">Sequence::queue</span><span class="plain-syntax">(&amp;</span><a href="4-rsp.html#SP6" class="function-link"><span class="function-syntax">Responses::compilation_agent</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">STORE_POINTER_response_message</span><span class="plain-syntax">(</span><span class="identifier-syntax">resp</span><span class="plain-syntax">), </span><span class="identifier-syntax">desc</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">resp</span><span class="plain-syntax">;</span>
@ -244,7 +244,7 @@ to rules defined in Inter kits rather than by source text:
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Responses::set_via_translation</span><span class="plain-syntax">(</span><span class="identifier-syntax">rule</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">marker</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">SW</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">response_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">resp</span><span class="plain-syntax"> = </span><a href="4-rsp.html#SP2" class="function-link"><span class="function-syntax">Responses::response_cue</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">marker</span><span class="plain-syntax">, </span><span class="identifier-syntax">SW</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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</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">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="string-syntax">"Inter response agent function for '%W'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</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_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="string-syntax">"Inter response agent function for '%W'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</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">Sequence::queue</span><span class="plain-syntax">(&amp;</span><a href="4-rsp.html#SP7" class="function-link"><span class="function-syntax">Responses::via_Inter_compilation_agent</span></a><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">STORE_POINTER_response_message</span><span class="plain-syntax">(</span><span class="identifier-syntax">resp</span><span class="plain-syntax">), </span><span class="identifier-syntax">desc</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
@ -280,7 +280,7 @@ a function defined in <a href="../BasicInformKit/index.html" class="internal">Ba
<span class="plain-syntax"> </span><a href="2-emt.html#SP10" class="function-link"><span class="function-syntax">Emit::text_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">resp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">index_text_md_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">T</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">T</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Extensions::corresponding_to</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Lexer::file_of_origin</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">resp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">the_rule</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">Lexer::file_of_origin</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">resp</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">the_rule</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">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">QT</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">E</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">QT</span><span class="plain-syntax">, </span><span class="string-syntax">"%&lt;X"</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">as_copy</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">edition</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">work</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">QT</span><span class="plain-syntax">, </span><span class="string-syntax">"source text"</span><span class="plain-syntax">);</span>

View file

@ -92,7 +92,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">activity_crossref</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next</span><span class="plain-syntax">;</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">activity_crossref</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>The structure activity_compilation_data is accessed in 4/rsp, 5/rls, 5/act2 and here.</li><li>The structure activity_crossref is accessed in 2/cu, 4/ts, 5/si, 5/tbl, 5/rls, 5/rlb, 5/lp and here.</li></ul>
<ul class="endnotetexts"><li>The structure activity_compilation_data is accessed in 4/rsp, 5/rls, 5/act2 and here.</li><li>The structure activity_crossref is accessed in 2/cu, 2/em, 4/ts, 5/si, 5/tbl, 5/rls, 5/rlb, 5/lp and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. </b>Which is created, long before compilation time, thus:
</p>
@ -100,7 +100,7 @@ function togglePopup(material_id) {
<span class="reserved-syntax">activity_compilation_data</span><span class="plain-syntax"> </span><span class="function-syntax">RTActivities::new_compilation_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">activity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">av</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">doc</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">activity_compilation_data</span><span class="plain-syntax"> </span><span class="identifier-syntax">acd</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">acd</span><span class="plain-syntax">.</span><span class="element-syntax">av_package</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP19" class="function-link"><span class="function-syntax">Hierarchy::local_package</span></a><span class="plain-syntax">(</span><span class="constant-syntax">ACTIVITIES_HAP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">acd</span><span class="plain-syntax">.</span><span class="element-syntax">value_iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP13" class="function-link"><span class="function-syntax">Hierarchy::make_iname_with_memo</span></a><span class="plain-syntax">(</span><span class="constant-syntax">ACTIVITY_VALUE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">acd</span><span class="plain-syntax">.</span><span class="element-syntax">av_package</span><span class="plain-syntax">, </span><span class="identifier-syntax">av</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">acd</span><span class="plain-syntax">.</span><span class="element-syntax">value_iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP13" class="function-link"><span class="function-syntax">Hierarchy::make_iname_with_memo</span></a><span class="plain-syntax">(</span><span class="constant-syntax">ACTIVITY_VALUE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">acd</span><span class="plain-syntax">.</span><span class="element-syntax">av_package</span><span class="plain-syntax">, </span><span class="identifier-syntax">av</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">acd</span><span class="plain-syntax">.</span><span class="element-syntax">variables_id</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">ACTIVITY_SHV_ID_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">acd</span><span class="plain-syntax">.</span><span class="element-syntax">av_package</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">acd</span><span class="plain-syntax">.</span><span class="element-syntax">activity_indexed</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">acd</span><span class="plain-syntax">.</span><span class="element-syntax">av_documentation_symbol</span><span class="plain-syntax"> = </span><span class="identifier-syntax">doc</span><span class="plain-syntax">;</span>
@ -152,7 +152,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">activity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">av</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">av</span><span class="plain-syntax">, </span><span class="identifier-syntax">activity</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">desc</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">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="string-syntax">"activity '%W'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">av</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_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="string-syntax">"activity '%W'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">av</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">Sequence::queue</span><span class="plain-syntax">(&amp;</span><a href="5-act.html#SP7" class="function-link"><span class="function-syntax">RTActivities::compilation_agent</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">STORE_POINTER_activity</span><span class="plain-syntax">(</span><span class="identifier-syntax">av</span><span class="plain-syntax">), </span><span class="identifier-syntax">desc</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
@ -174,9 +174,9 @@ write 0.
<span class="plain-syntax"> </span><a href="2-emt.html#SP11" class="function-link"><span class="function-syntax">Emit::iname_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">av</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">value_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">ACTIVITY_NAME_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">av</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">ACTIVITY_NAME_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">av</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-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">ACTIVITY_AT_MD_HL</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">av</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">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">av</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-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">ACTIVITY_BEFORE_MD_HL</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="5-rlb.html#SP3" class="function-link"><span class="function-syntax">RTRulebooks::id_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">av</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">before_rules</span><span class="plain-syntax">));</span>

View file

@ -543,9 +543,9 @@ the function is attached to.
<span class="plain-syntax"> </span><span class="identifier-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nlv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">SharedVariables::get_variable</span><span class="plain-syntax">(</span><span class="identifier-syntax">shv</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sv</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP21" class="function-link"><span class="function-syntax">Hierarchy::package_within</span></a><span class="plain-syntax">(</span><span class="constant-syntax">ACTION_VARIABLES_HAP</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-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_raw_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sv</span><span class="plain-syntax">, </span><span class="constant-syntax">ACTION_VAR_NAME_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_raw_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sv</span><span class="plain-syntax">, </span><span class="constant-syntax">ACTION_VAR_NAME_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">nlv</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-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sv</span><span class="plain-syntax">, </span><span class="constant-syntax">ACTION_VAR_AT_MD_HL</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</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">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</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">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">var_documentation_symbol</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">ixt</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">ixt</span><span class="plain-syntax">, </span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::one_word</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">var_documentation_symbol</span><span class="plain-syntax">)));</span>

View file

@ -80,7 +80,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">files_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">exf</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">exf</span><span class="plain-syntax">, </span><span class="identifier-syntax">files_data</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">desc</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">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="string-syntax">"external file '%W'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">exf</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_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="string-syntax">"external file '%W'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">exf</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">Sequence::queue</span><span class="plain-syntax">(&amp;</span><a href="5-mlt.html#SP2" class="function-link"><span class="function-syntax">RTMultimedia::compilation_agent</span></a><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">STORE_POINTER_files_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">exf</span><span class="plain-syntax">), </span><span class="identifier-syntax">desc</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
@ -114,7 +114,7 @@ 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">RTMultimedia::compilation_agent</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">RTMultimedia::compilation_agent</span></span>:<br/><a href="5-mlt.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">compilation_subtask</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">files_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">exf</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_files_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">data</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><span class="identifier-syntax">exf</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">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">exf</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">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP19" class="function-link"><span class="function-syntax">Hierarchy::local_package_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">EXTERNAL_FILES_HAP</span><span class="plain-syntax">, </span><span class="identifier-syntax">exf</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">where_created</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">exf_iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP13" class="function-link"><span class="function-syntax">Hierarchy::make_iname_with_memo</span></a><span class="plain-syntax">(</span><span class="constant-syntax">FILE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IFID_array_iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>

View file

@ -126,7 +126,7 @@ package already supplied:
<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">)) &amp;&amp; (</span><span class="identifier-syntax">prn</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">store_in_negation</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-prp.html#SP2" class="function-link"><span class="function-syntax">RTProperties::iname</span></a><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">prn</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">prop_iname</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">memo</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">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">memo</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">Wordings::empty</span><span class="plain-syntax">(</span><span class="identifier-syntax">memo</span><span class="plain-syntax">)) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">translation</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">memo</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Feeds::feed_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">translation</span><span class="plain-syntax">);</span>
@ -256,8 +256,8 @@ kit, we'll have to use that one.
</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><span class="identifier-syntax">Wordings::nonempty</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><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">PROPERTY_NAME_MD_HL</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="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">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-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">PROPERTY_NAME_MD_HL</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">else</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">PROPERTY_NAME_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">Produce::get_translation</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">));</span>
</pre>
@ -290,8 +290,8 @@ package metadata instead?
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::annotate_i</span><span class="plain-syntax">(</span><a href="5-prp.html#SP2" class="function-link"><span class="function-syntax">RTProperties::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">), </span><span class="identifier-syntax">ATTRIBUTE_IANN</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="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">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">Produce::annotate_w</span><span class="plain-syntax">(</span><a href="5-prp.html#SP2" class="function-link"><span class="function-syntax">RTProperties::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">), </span><span class="identifier-syntax">PROPERTY_NAME_IANN</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="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">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">Produce::annotate_w</span><span class="plain-syntax">(</span><a href="5-prp.html#SP2" class="function-link"><span class="function-syntax">RTProperties::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">), </span><span class="identifier-syntax">PROPERTY_NAME_IANN</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">prn</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">Inter_level_only</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::annotate_i</span><span class="plain-syntax">(</span><a href="5-prp.html#SP2" class="function-link"><span class="function-syntax">RTProperties::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">), </span><span class="identifier-syntax">RTO_IANN</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
</pre>
@ -409,7 +409,7 @@ typesafe for those.
<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>
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ValueProperties::kind</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">return</span><span class="plain-syntax"> </span><a href="2-dv.html#SP1" class="function-link"><span class="function-syntax">DefaultValues::to_holster</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">VH</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</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="string-syntax">"property"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-dv.html#SP1" class="function-link"><span class="function-syntax">DefaultValues::to_holster</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">VH</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</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="string-syntax">"property"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>&#167;10. Schemas. </b>"Value" properties (those which are not either-or) can be tested or set with

View file

@ -238,7 +238,7 @@ rulebook:
<span class="plain-syntax"> </span><span class="identifier-syntax">br</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">commentary</span><span class="plain-syntax">.</span><span class="identifier-syntax">law_applied</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">rule</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RuleBookings::get_rule</span><span class="plain-syntax">(</span><span class="identifier-syntax">br</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_raw_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EP</span><span class="plain-syntax">, </span><span class="constant-syntax">BRULE_NAME_MD_HL</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="identifier-syntax">name</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">name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_raw_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EP</span><span class="plain-syntax">, </span><span class="constant-syntax">RULE_INDEX_NAME_MD_HL</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="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">italicised_text</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="identifier-syntax">defn_as_I7_source</span><span class="plain-syntax">) {</span>
@ -294,7 +294,7 @@ rulebook:
<span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">EP</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP21" class="function-link"><span class="function-syntax">Hierarchy::package_within</span></a><span class="plain-syntax">(</span><span class="constant-syntax">RULEBOOK_OUTCOMES_HAP</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-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_raw_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EP</span><span class="plain-syntax">, </span><span class="constant-syntax">OUTCOME_TEXT_MD_HL</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Nouns::nominative_singular</span><span class="plain-syntax">(</span><span class="identifier-syntax">rbno</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">Nouns::nominative_singular</span><span class="plain-syntax">(</span><span class="identifier-syntax">rbno</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">outs</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">default_named_outcome</span><span class="plain-syntax"> == </span><span class="identifier-syntax">ro</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EP</span><span class="plain-syntax">, </span><span class="constant-syntax">OUTCOME_IS_DEFAULT_MD_HL</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">ro</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">kind_of_outcome</span><span class="plain-syntax"> == </span><span class="identifier-syntax">SUCCESS_OUTCOME</span><span class="plain-syntax">)</span>
@ -643,7 +643,7 @@ names, in order that code in kits can see them:
<span class="plain-syntax"> </span><span class="reserved-syntax">nro_compilation_data</span><span class="plain-syntax"> </span><span class="identifier-syntax">nrocd</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">nrocd</span><span class="plain-syntax">.</span><span class="identifier-syntax">nro_package</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">nrocd</span><span class="plain-syntax">.</span><span class="identifier-syntax">nro_iname</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="function-syntax">&lt;notable-rulebook-outcomes&gt;(Nouns::nominative_singular(nro-&gt;</span><span class="identifier-syntax">name</span><span class="plain-syntax">))) </span><span class="identifier-syntax">nrocd</span><span class="plain-syntax">.</span><span class="element-syntax">equated_hl</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;r&gt;&gt;</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;notable-rulebook-outcomes&gt;(Nouns::nominative_singular(nro-&gt;</span><span class="element-syntax">name</span><span class="plain-syntax">))) </span><span class="identifier-syntax">nrocd</span><span class="plain-syntax">.</span><span class="element-syntax">equated_hl</span><span class="plain-syntax"> = </span><span class="function-syntax">&lt;&lt;r&gt;&gt;</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">nrocd</span><span class="plain-syntax">.</span><span class="element-syntax">equated_hl</span><span class="plain-syntax"> = -1;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">nrocd</span><span class="plain-syntax">.</span><span class="identifier-syntax">where_declared</span><span class="plain-syntax"> = </span><span class="identifier-syntax">current_sentence</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">nrocd</span><span class="plain-syntax">;</span>
@ -660,7 +660,7 @@ names, in order that code in kits can see them:
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">nro</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">nro_iname</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">nro</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">nro_iname</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP13" class="function-link"><span class="function-syntax">Hierarchy::make_iname_with_memo</span></a><span class="plain-syntax">(</span><span class="constant-syntax">OUTCOME_HL</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="5-rlb.html#SP12" class="function-link"><span class="function-syntax">RTRulebooks::nro_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">nro</span><span class="plain-syntax">), </span><span class="identifier-syntax">Nouns::nominative_singular</span><span class="plain-syntax">(</span><span class="identifier-syntax">nro</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">name</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="5-rlb.html#SP12" class="function-link"><span class="function-syntax">RTRulebooks::nro_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">nro</span><span class="plain-syntax">), </span><span class="identifier-syntax">Nouns::nominative_singular</span><span class="plain-syntax">(</span><span class="identifier-syntax">nro</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">nro</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="identifier-syntax">nro_iname</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
@ -671,7 +671,7 @@ names, in order that code in kits can see them:
<span class="plain-syntax"> </span><span class="identifier-syntax">named_rulebook_outcome</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nro</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">nro</span><span class="plain-syntax">, </span><span class="identifier-syntax">named_rulebook_outcome</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">desc</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">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="string-syntax">"named rulebook outcome '%W'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Nouns::nominative_singular</span><span class="plain-syntax">(</span><span class="identifier-syntax">nro</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_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="string-syntax">"named rulebook outcome '%W'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Nouns::nominative_singular</span><span class="plain-syntax">(</span><span class="identifier-syntax">nro</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">Sequence::queue</span><span class="plain-syntax">(&amp;</span><a href="5-rlb.html#SP14" class="function-link"><span class="function-syntax">RTRulebooks::nro_compilation_agent</span></a><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">STORE_POINTER_named_rulebook_outcome</span><span class="plain-syntax">(</span><span class="identifier-syntax">nro</span><span class="plain-syntax">), </span><span class="identifier-syntax">desc</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
@ -694,7 +694,7 @@ names, in order that code in kits can see them:
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">OUTCOME_NAME_MD_HL</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Nouns::nominative_singular</span><span class="plain-syntax">(</span><span class="identifier-syntax">nro</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">Nouns::nominative_singular</span><span class="plain-syntax">(</span><span class="identifier-syntax">nro</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">name</span><span class="plain-syntax">));</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="5-rlb.html#SP14">&#167;14</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP14_2" class="paragraph-anchor"></a><b>&#167;14.2. </b>Named rulebook outcomes are represented at runtime by literal texts (a very
@ -706,7 +706,7 @@ questionable arrangement, but there it is).
<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">RV</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">RV</span><span class="plain-syntax">, </span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Nouns::nominative_singular</span><span class="plain-syntax">(</span><span class="identifier-syntax">nro</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_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">RV</span><span class="plain-syntax">, </span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Nouns::nominative_singular</span><span class="plain-syntax">(</span><span class="identifier-syntax">nro</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-emt.html#SP10" class="function-link"><span class="function-syntax">Emit::text_constant</span></a><span class="plain-syntax">(</span><a href="5-rlb.html#SP12" class="function-link"><span class="function-syntax">RTRulebooks::nro_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">nro</span><span class="plain-syntax">), </span><span class="identifier-syntax">RV</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">RV</span><span class="plain-syntax">)</span>
</pre>

View file

@ -273,7 +273,7 @@ want to run a rule, which of these inames should be used as its function?
<span class="plain-syntax"> </span><span class="identifier-syntax">rule</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</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">rule</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">desc</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">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="string-syntax">"compile rule '%W'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</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_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="string-syntax">"compile rule '%W'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</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">Sequence::queue</span><span class="plain-syntax">(&amp;</span><a href="5-rls.html#SP12" class="function-link"><span class="function-syntax">RTRules::compilation_agent</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">STORE_POINTER_rule</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">), </span><span class="identifier-syntax">desc</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
@ -308,8 +308,8 @@ response handlers for foreign rules &mdash; see <a href="4-rsp.html#SP7" class="
<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">EMPTY_WORDING</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">PN</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">R</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">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">R</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">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</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">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">R</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">TranscodeText::from_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">PN</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">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="5-rls.html#SP4" class="function-link"><span class="function-syntax">RTRules::is_local</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">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Articles::remove_the</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">defn_as_I7_source</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">at</span><span class="plain-syntax">));</span>

View file

@ -121,7 +121,7 @@ to the column-ID constant, and let the linker choose a value for that.
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kind_iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TABLE_COLUMN_KIND_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-ki.html#SP6" class="function-link"><span class="function-syntax">RTKindIDs::define_constant_as_strong_id</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kind_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">Tables::Columns::get_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">tc</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_raw_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="constant-syntax">TABLE_COLUMN_NAME_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">Nouns::nominative_singular</span><span class="plain-syntax">(</span><span class="identifier-syntax">tc</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="constant-syntax">TABLE_COLUMN_NAME_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">Nouns::nominative_singular</span><span class="plain-syntax">(</span><span class="identifier-syntax">tc</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">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">conts</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Kinds::Textual::write_plural</span><span class="plain-syntax">(</span><span class="identifier-syntax">conts</span><span class="plain-syntax">, </span><span class="identifier-syntax">Tables::Columns::get_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">tc</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">TABLE_COLUMN_CONTENTS_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">conts</span><span class="plain-syntax">);</span>

View file

@ -125,7 +125,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">test_scenario</span><span class="plain-syntax"> *</span><span class="identifier-syntax">test</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">test</span><span class="plain-syntax">, </span><span class="identifier-syntax">test_scenario</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">desc</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">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="string-syntax">"test scenario '%W'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">test</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_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="string-syntax">"test scenario '%W'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">test</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">Sequence::queue</span><span class="plain-syntax">(&amp;</span><a href="5-ts.html#SP4" class="function-link"><span class="function-syntax">RTTestCommand::compilation_agent</span></a><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">STORE_POINTER_test_scenario</span><span class="plain-syntax">(</span><span class="identifier-syntax">test</span><span class="plain-syntax">), </span><span class="identifier-syntax">desc</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
@ -138,7 +138,7 @@ function togglePopup(material_id) {
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTTestCommand::compilation_agent</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">RTTestCommand::compilation_agent</span></span>:<br/><a href="5-ts.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">compilation_subtask</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">test_scenario</span><span class="plain-syntax"> *</span><span class="identifier-syntax">test</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_test_scenario</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">data</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_wording</span></a><span class="plain-syntax">(</span><a href="5-ts.html#SP2" class="function-link"><span class="function-syntax">RTTestCommand::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">test</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="constant-syntax">TEST_NAME_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">test</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="constant-syntax">TEST_NAME_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">test</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">l</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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">test</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">text_of_script</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">L</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">L</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++, </span><span class="identifier-syntax">l</span><span class="plain-syntax">++)</span>

View file

@ -356,7 +356,7 @@ example, <span class="extract"><span class="extract-syntax">ChangePlayer(*2)</sp
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">nlv_iname</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP13" class="function-link"><span class="function-syntax">Hierarchy::make_iname_with_memo</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VARIABLE_HL</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="5-vrb.html#SP11" class="function-link"><span class="function-syntax">RTVariables::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">), </span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="5-vrb.html#SP11" class="function-link"><span class="function-syntax">RTVariables::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">), </span><span class="identifier-syntax">nlv</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="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="identifier-syntax">nlv_iname</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
@ -399,16 +399,16 @@ compiled code, of course.
<span class="plain-syntax"> </span><span class="identifier-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nlv</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">nlv</span><span class="plain-syntax">, </span><span class="identifier-syntax">nonlocal_variable</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><a href="5-vrb.html#SP11" class="function-link"><span class="function-syntax">RTVariables::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">VARIABLE_NAME_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">nlv</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">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">name</span><span class="plain-syntax">) &gt;= </span><span class="constant-syntax">0</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">NonlocalVariables::is_global</span><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">VARIABLE_NAME_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">nlv</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">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">name</span><span class="plain-syntax">) &gt;= </span><span class="constant-syntax">0</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">NonlocalVariables::is_global</span><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">VARIABLE_AT_MD_HL</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</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">heading</span><span class="plain-syntax"> *</span><span class="identifier-syntax">h</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Headings::of_wording</span><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</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">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</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">heading</span><span class="plain-syntax"> *</span><span class="identifier-syntax">h</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Headings::of_wording</span><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</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><a href="3-cm.html#SP1_10" class="function-link"><span class="function-syntax">CompletionModule::has_heading_id</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">h</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_heading</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">VARIABLE_HEADING_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">h</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">VARIABLE_INDEXABLE_MD_HL</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> ((</span><span class="identifier-syntax">h</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">h</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">index_definitions_made_under_this</span><span class="plain-syntax">))?1:0);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax">&lt;value-understood-variable-name&gt;(nlv-&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="function-syntax">&lt;value-understood-variable-name&gt;(nlv-&gt;</span><span class="element-syntax">name</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">VARIABLE_UNDERSTOOD_MD_HL</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">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">var_documentation_symbol</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_raw_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="constant-syntax">VARIABLE_DOCUMENTATION_MD_HL</span><span class="plain-syntax">,</span>
@ -529,12 +529,12 @@ which makes its kind safe.
</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-dv.html#SP1" class="function-link"><span class="function-syntax">DefaultValues::to_holster</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">VH</span><span class="plain-syntax">, </span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">nlv_kind</span><span class="plain-syntax">, </span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="string-syntax">"variable"</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-dv.html#SP1" class="function-link"><span class="function-syntax">DefaultValues::to_holster</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">VH</span><span class="plain-syntax">, </span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">nlv_kind</span><span class="plain-syntax">, </span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">name</span><span class="plain-syntax">, </span><span class="string-syntax">"variable"</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">nlv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">var_is_allowed_to_be_zero</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Holsters::holster_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">VH</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</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>
<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">Kinds::Behaviour::get_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">nlv_kind</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">Problems::quote_wording</span><span class="plain-syntax">(1, </span><span class="identifier-syntax">nlv</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">Problems::quote_wording</span><span class="plain-syntax">(1, </span><span class="identifier-syntax">nlv</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">Problems::quote_wording</span><span class="plain-syntax">(2, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::handmade_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_EmptyDataType</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_segment</span><span class="plain-syntax">(</span>
@ -554,7 +554,7 @@ which makes its kind safe.
<span class="plain-syntax"> </span><span class="string-syntax">"Tried to compile initial value of variable as null variable"</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">the_other</span><span class="plain-syntax"> == </span><span class="identifier-syntax">nlv</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_source</span><span class="plain-syntax">(1, </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_wording</span><span class="plain-syntax">(2, </span><span class="identifier-syntax">nlv</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">Problems::quote_wording</span><span class="plain-syntax">(2, </span><span class="identifier-syntax">nlv</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">Problems::quote_kind</span><span class="plain-syntax">(3, </span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">nlv_kind</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::handmade_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_InitialiseQ2</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_segment</span><span class="plain-syntax">(</span>
@ -565,9 +565,9 @@ which makes its kind safe.
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_end</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">Problems::quote_source</span><span class="plain-syntax">(1, </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_wording</span><span class="plain-syntax">(2, </span><span class="identifier-syntax">nlv</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">Problems::quote_wording</span><span class="plain-syntax">(2, </span><span class="identifier-syntax">nlv</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">Problems::quote_kind</span><span class="plain-syntax">(3, </span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">nlv_kind</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_wording</span><span class="plain-syntax">(4, </span><span class="identifier-syntax">the_other</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">Problems::quote_wording</span><span class="plain-syntax">(4, </span><span class="identifier-syntax">the_other</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">Problems::quote_kind</span><span class="plain-syntax">(5, </span><span class="identifier-syntax">the_other</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">nlv_kind</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::handmade_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_InitialiseQ1</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_segment</span><span class="plain-syntax">(</span>

View file

@ -504,8 +504,8 @@ so we won't list them here.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">phod</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">multiple_options_permitted</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&lt;i&gt;and/or&lt;/i&gt; "</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;or&lt;/i&gt; "</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PasteButtons::paste_W</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">po</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">"&amp;nbsp;%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">po</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">PasteButtons::paste_W</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">po</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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&amp;nbsp;%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">po</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">i</span><span class="plain-syntax"> &lt; </span><span class="identifier-syntax">phod</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">no_options_permitted</span><span class="plain-syntax">-1) {</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">HTML_TAG</span><span class="plain-syntax">(</span><span class="string-syntax">"br"</span><span class="plain-syntax">);</span>

View file

@ -245,7 +245,7 @@ those which do, we queue compilation requests with suitable agents.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cg</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">cg_is</span><span class="plain-syntax"> == </span><span class="identifier-syntax">CG_IS_PROPERTY_NAME</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">desc</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">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="string-syntax">"command grammar for property '%W'"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">cg</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">prn_understood</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">cg</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">prn_understood</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">Sequence::queue_at</span><span class="plain-syntax">(&amp;</span><a href="7-cg.html#SP11" class="function-link"><span class="function-syntax">RTCommandGrammars::property_agent</span></a><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">STORE_POINTER_command_grammar</span><span class="plain-syntax">(</span><span class="identifier-syntax">cg</span><span class="plain-syntax">), </span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="identifier-syntax">cg</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">where_cg_created</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>

View file

@ -1186,7 +1186,7 @@ alter the value of <span class="extract"><span class="extract-syntax">self</span
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-pnp.html#SP10_1" class="named-paragraph-link"><span class="named-paragraph">Begin a PVP test</span><span class="named-paragraph-number">10.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><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><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">wording</span><span class="plain-syntax"> </span><span class="identifier-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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">j</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</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="identifier-syntax">j</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">ands</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><span class="identifier-syntax">j</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) { </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">AND_BIP</span><span class="plain-syntax">); </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">(); </span><span class="identifier-syntax">ands</span><span class="plain-syntax">++; }</span>

View file

@ -178,6 +178,11 @@
<spon class="sectiontitle">Index Extensions</span></a> -
<span class="sectionpurpose">To keep details of the extensions currently loaded, their authors, titles, versions and rubrics, and to index and credit them suitably.</span></p>
</li>
<li>
<p class="sectionentry"><a href="2-em.html">
<spon class="sectiontitle">EPS Map</span></a> -
<span class="sectionpurpose">To render the spatial map of rooms as an EPS (Encapsulated PostScript) file.</span></p>
</li>
</ul>
</li>
<li>

File diff suppressed because it is too large Load diff

View file

@ -1,9 +1,9 @@
Total memory consumption was 390036K = 381 MB
Total memory consumption was 389236K = 380 MB
60.7% was used for 1970149 objects, in 370590 frames in 296 x 800K = 236800K = 231 MB:
60.6% was used for 1970149 objects, in 370590 frames in 295 x 800K = 236000K = 230 MB:
10.2% inter_tree_node_array 57 x 8192 = 466944 objects, 41092896 bytes
7.0% text_stream_array 5028 x 100 = 502800 objects, 28317696 bytes
10.3% inter_tree_node_array 57 x 8192 = 466944 objects, 41092896 bytes
7.1% text_stream_array 5028 x 100 = 502800 objects, 28317696 bytes
4.3% linked_list 30840 objects, 17270400 bytes
3.3% inter_symbol_array 137 x 1024 = 140288 objects, 13472032 bytes
2.5% parse_node 129399 objects, 10351920 bytes
@ -11,8 +11,8 @@ Total memory consumption was 390036K = 381 MB
1.3% parse_node_annotation_array 345 x 500 = 172500 objects, 5531040 bytes
0.8% pcalc_prop_array 25 x 1000 = 25000 objects, 3400800 bytes
0.8% inter_name_array 67 x 1000 = 67000 objects, 3218144 bytes
0.7% map_data 670 objects, 3178480 bytes
0.6% kind_array 68 x 1000 = 68000 objects, 2722176 bytes
0.5% map_data 670 objects, 2272640 bytes
0.5% inter_name_generator_array 52 x 1000 = 52000 objects, 2081664 bytes
0.4% inter_schema_token 13464 objects, 1938816 bytes
0.4% inter_package 26561 objects, 1912392 bytes
@ -100,8 +100,8 @@ Total memory consumption was 390036K = 381 MB
---- instance 167 objects, 17368 bytes
---- parse_node_tree 20 objects, 17280 bytes
---- understanding_reference_array 2 x 100 = 200 objects, 16064 bytes
---- match_avinue_array 1 x 1000 objects, 16032 bytes
---- linked_list_item_array 1 x 1000 objects, 16032 bytes
---- match_avinue_array 1 x 1000 objects, 16032 bytes
---- action_name_list_array 1 x 1000 objects, 16032 bytes
---- method 330 objects, 15840 bytes
---- to_phrase_request 59 objects, 15576 bytes
@ -113,8 +113,8 @@ Total memory consumption was 390036K = 381 MB
---- stopwatch_timer 110 objects, 8800 bytes
---- filename 209 objects, 8360 bytes
---- equation_node 68 objects, 7616 bytes
---- understanding_item_array 3 x 100 = 300 objects, 7296 bytes
---- hierarchy_attachment_point 76 objects, 7296 bytes
---- understanding_item_array 3 x 100 = 300 objects, 7296 bytes
---- shared_variable_array 1 x 100 objects, 7232 bytes
---- determiner 22 objects, 7216 bytes
---- verb 108 objects, 6048 bytes
@ -135,20 +135,20 @@ Total memory consumption was 390036K = 381 MB
---- method_set 102 objects, 3264 bytes
---- kind_constructor_comparison_schema_array 1 x 100 objects, 3232 bytes
---- inform_extension 19 objects, 3192 bytes
---- compatibility_specification 66 objects, 3168 bytes
---- definition 44 objects, 3168 bytes
---- compatibility_specification 66 objects, 3168 bytes
---- either_or_property_data 62 objects, 2976 bytes
---- use_option 29 objects, 2552 bytes
---- parentage_inference_data 79 objects, 2528 bytes
---- part_of_inference_data 79 objects, 2528 bytes
---- kind_constructor_casting_rule_array 1 x 100 objects, 2432 bytes
---- kind_constructor_instance_array 1 x 100 objects, 2432 bytes
---- inter_construct 30 objects, 2400 bytes
---- kind_constructor_casting_rule_array 1 x 100 objects, 2432 bytes
---- equation_symbol 30 objects, 2400 bytes
---- inter_construct 30 objects, 2400 bytes
---- semver_range 22 objects, 2288 bytes
---- scene 1 object, 2096 bytes
---- pronoun_usage 42 objects, 1680 bytes
---- pipeline_step 14 objects, 1680 bytes
---- pronoun_usage 42 objects, 1680 bytes
---- table_contribution_array 1 x 100 objects, 1632 bytes
---- plugin 25 objects, 1600 bytes
---- cached_kind_declaration 39 objects, 1560 bytes
@ -175,10 +175,10 @@ Total memory consumption was 390036K = 381 MB
---- target_vm 6 objects, 816 bytes
---- generated_segment 25 objects, 800 bytes
---- inter_data_type 14 objects, 784 bytes
---- inform_language 6 objects, 672 bytes
---- internal_test 14 objects, 672 bytes
---- relation_guard 5 objects, 640 bytes
---- inform_language 6 objects, 672 bytes
---- inter_warehouse_room 10 objects, 640 bytes
---- relation_guard 5 objects, 640 bytes
---- I6T_intervention 8 objects, 640 bytes
---- inbuild_search_result 15 objects, 600 bytes
---- rulebook_outcome 17 objects, 544 bytes
@ -193,29 +193,29 @@ Total memory consumption was 390036K = 381 MB
---- article_usage 8 objects, 384 bytes
---- source_file 5 objects, 360 bytes
---- inbuild_genre 7 objects, 336 bytes
---- grammatical_category 8 objects, 320 bytes
---- door_dir_notice 5 objects, 320 bytes
---- grammatical_category 8 objects, 320 bytes
---- pronoun 8 objects, 320 bytes
---- tree_inventory 1 object, 312 bytes
---- up_family 9 objects, 288 bytes
---- build_step 4 objects, 288 bytes
---- up_family 9 objects, 288 bytes
---- contents_entry 7 objects, 280 bytes
---- explicit_bp_data 5 objects, 280 bytes
---- door_to_notice 5 objects, 280 bytes
---- compilation_unit 5 objects, 280 bytes
---- door_to_notice 5 objects, 280 bytes
---- inform_pipeline 4 objects, 256 bytes
---- verb_usage_tier 5 objects, 240 bytes
---- adjective_meaning_family 7 objects, 224 bytes
---- test_scenario 1 object, 216 bytes
---- release_instructions 1 object, 208 bytes
---- build_skill 5 objects, 200 bytes
---- kit_dependency 4 objects, 192 bytes
---- plural_dictionary_entry 4 objects, 192 bytes
---- kit_dependency 4 objects, 192 bytes
---- inform_project 1 object, 176 bytes
---- imperative_defn_family 4 objects, 160 bytes
---- code_generation_target 4 objects, 160 bytes
---- link_instruction 4 objects, 160 bytes
---- imperative_defn_family 4 objects, 160 bytes
---- inter_architecture 4 objects, 160 bytes
---- link_instruction 4 objects, 160 bytes
---- inference_subject_family 5 objects, 160 bytes
---- codegen_pipeline 1 object, 128 bytes
---- element_activation 4 objects, 128 bytes
@ -225,16 +225,16 @@ Total memory consumption was 390036K = 381 MB
---- article 2 objects, 80 bytes
---- compile_task_data 1 object, 80 bytes
---- group_together_function 2 objects, 80 bytes
---- inter_warehouse 1 object, 56 bytes
---- build_methodology 1 object, 56 bytes
---- figures_data 1 object, 56 bytes
---- inter_warehouse 1 object, 56 bytes
---- HTML_file_state 1 object, 48 bytes
---- star_invention 1 object, 48 bytes
---- loop_over_scope 1 object, 40 bytes
---- kind_template_definition 1 object, 40 bytes
---- by_function_bp_data 1 object, 40 bytes
39.2% was used for memory not allocated for objects:
39.3% was used for memory not allocated for objects:
20.3% text stream storage 81158124 bytes in 520335 claims
4.5% dictionary storage 18112512 bytes in 33152 claims
@ -254,5 +254,5 @@ Total memory consumption was 390036K = 381 MB
---- code generation workspace for objects 9648 bytes in 9 claims
---- emitter array storage 154432 bytes in 2037 claims
18.6% was overhead - 74593488 bytes = 72845K = 71 MB
18.7% was overhead - 74680128 bytes = 72929K = 71 MB

View file

@ -3,9 +3,9 @@
(@1)<cardinal-number>=1
(hits 171/171) (matched: '100') constraint CS = {r0} extremes [1, 1]
(@1)minus (@2)<cardinal-number>=1
(hits 0/1922) constraint DS = {13} extremes [2, 2]
(hits 0/1758) constraint DS = {13} extremes [2, 2]
(@1)<quoted-text>=1 (@2)( (@3)<response-letter>=2 (@4))
(hits 273/828) (matched: '"[current item from the multiple object list]: [run paragraph on]" ( a )') constraint DS = {13} extremes [4, 4]
(hits 273/826) (matched: '"[current item from the multiple object list]: [run paragraph on]" ( a )') constraint DS = {13} extremes [4, 4]
(@1)<quoted-text>=1
(hits 1564/5543) (matched: 'Represents geographical locations, both indoor
and outdoor, which are not necessarily areas in a building. A player in one
@ -14,12 +14,12 @@
<s-literal-real-number>=1
(hits 11/9911) (matched: 'plus infinity') constraint (none) extremes [1, infinity)
(@1)<s-literal-truth-state>=1
(hits 78/216) (matched: 'false') constraint CS = {7} extremes [1, 1]
(hits 78/474) (matched: 'false') constraint CS = {7} extremes [1, 1]
<s-literal-list>=1
(hits 0/1735) constraint DS = {9} extremes [2, infinity)
(hits 0/1305) constraint DS = {9} extremes [2, infinity)
(@1)unicode <s-unicode-character>=1
(hits 0/4287) constraint DS = {13} extremes [2, infinity)
(hits 0/4097) constraint DS = {13} extremes [2, infinity)
<s-literal-time>=1
(hits 0/3781) constraint DW = {10, 11, 12} extremes [2, 5]
(hits 0/3578) constraint DW = {10, 11, 12} extremes [2, 5]
<s-literal-unit-notation>=1
(hits 0/9822) constraint (none) extremes [1, infinity)

View file

@ -1,36 +1,36 @@
100.0% in inform7 run
55.6% in compilation to Inter
40.1% in //Sequence::undertake_queued_tasks//
3.5% in //MajorNodes::pre_pass//
2.6% in //MajorNodes::pass_1//
2.2% in //RTPhrasebook::compile_entries//
1.4% in //ImperativeDefinitions::assess_all//
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//
2.1% in //RTPhrasebook::compile_entries//
1.5% 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.2% in //CompletionModule::compile//
0.3% in //Sequence::undertake_queued_tasks//
0.1% 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//
1.5% not specifically accounted for
42.3% in running Inter pipeline
11.2% in step preparation
9.7% in inter step 7/14: consolidate-text
8.5% in inter step 2/14: link
7.3% in inter step 14/14: generate inform6 -> auto.inf
1.4% in inter step 10/14: make-identifiers-unique
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
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
0.4% in inter step 11/14: reconcile-verbs
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.2% in inter step 9/14: inspect-plugs
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.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.7% in supervisor
0.3% not specifically accounted for
1.6% in supervisor
0.2% not specifically accounted for

View file

@ -0,0 +1,29 @@
Index-Behaviour
Index-Card
Index-Card2
Index-Chart
Index-Events
Index-Map-Ahoy
Index-Map-BrokenDiagonals
Index-Map-Bronze
Index-Map-Crossfire
Index-Map-Glasgow
Index-Map-GUE
Index-Map-InnerQuadrangle
Index-Map-OnePixel
Index-Map-PortRoyal
Index-Map-ROTA
Index-MapLayout-BrokenDiagonals
Index-MapLayout-Bronze
Index-MapLayout-Crossfire
Index-MapLayout-Glasgow
Index-MapLayout-GUE
Index-MapLayout-InnerQuadrangle
Index-MapLayout-OnePixel
Index-MapLayout-PortRoyal
Index-MapLayout-ROTA
Index-Plot
Index-Relations
Index-Tables
Index-Tokens
Index-Values

View file

@ -105,7 +105,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Spirit Room">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_67 style="text-decoration: none"><span style="color:#000000">SR</span></a></span>
<span style="color:#000000"><a href=#wo_18 style="text-decoration: none"><span style="color:#000000">SR</span></a></span>
</td>
</tr>
</table>
@ -265,7 +265,7 @@
<table border="2" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Fish Room">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_66 style="text-decoration: none"><span style="color:#000000"><b>FR</b></span></a></span>
<span style="color:#000000"><a href=#wo_17 style="text-decoration: none"><span style="color:#000000"><b>FR</b></span></a></span>
</td>
</tr>
</table>
@ -320,7 +320,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="After Powder Magazine">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_68 style="text-decoration: none"><span style="color:#000000">AP</span></a></span>
<span style="color:#000000"><a href=#wo_19 style="text-decoration: none"><span style="color:#000000">AP</span></a></span>
</td>
</tr>
</table>
@ -480,7 +480,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Bread Room">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_69 style="text-decoration: none"><span style="color:#000000">BR</span></a></span>
<span style="color:#000000"><a href=#wo_20 style="text-decoration: none"><span style="color:#000000">BR</span></a></span>
</td>
</tr>
</table>
@ -594,7 +594,7 @@
<!--WORLD WRITE MAP ENDS-->
<a name=MDETAILS></a>
<p><a name=></a><a name=wo_66><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_17><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -792,7 +792,7 @@
<hr>
<p><a name=></a><a name=wo_67><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_18><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -946,7 +946,7 @@
<hr>
<p><a name=></a><a name=wo_68><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_19><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -1101,7 +1101,7 @@
<hr>
<p><a name=></a><a name=wo_69><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_20><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">

View file

@ -230,7 +230,7 @@
<table border="2" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Blockhouse A">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_62 style="text-decoration: none"><span style="color:#000000"><b>BA</b></span></a></span>
<span style="color:#000000"><a href=#wo_13 style="text-decoration: none"><span style="color:#000000"><b>BA</b></span></a></span>
</td>
</tr>
</table>
@ -285,7 +285,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Blockhouse D">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_65 style="text-decoration: none"><span style="color:#000000">BD</span></a></span>
<span style="color:#000000"><a href=#wo_16 style="text-decoration: none"><span style="color:#000000">BD</span></a></span>
</td>
</tr>
</table>
@ -387,7 +387,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Blockhouse E">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_66 style="text-decoration: none"><span style="color:#000000">BE</span></a></span>
<span style="color:#000000"><a href=#wo_17 style="text-decoration: none"><span style="color:#000000">BE</span></a></span>
</td>
</tr>
</table>
@ -536,7 +536,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Blockhouse H">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_69 style="text-decoration: none"><span style="color:#000000">BH</span></a></span>
<span style="color:#000000"><a href=#wo_20 style="text-decoration: none"><span style="color:#000000">BH</span></a></span>
</td>
</tr>
</table>
@ -805,7 +805,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Blockhouse B">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_63 style="text-decoration: none"><span style="color:#000000">BB</span></a></span>
<span style="color:#000000"><a href=#wo_14 style="text-decoration: none"><span style="color:#000000">BB</span></a></span>
</td>
</tr>
</table>
@ -954,7 +954,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Blockhouse C">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_64 style="text-decoration: none"><span style="color:#000000">BC</span></a></span>
<span style="color:#000000"><a href=#wo_15 style="text-decoration: none"><span style="color:#000000">BC</span></a></span>
</td>
</tr>
</table>
@ -1056,7 +1056,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Blockhouse F">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_67 style="text-decoration: none"><span style="color:#000000">BF</span></a></span>
<span style="color:#000000"><a href=#wo_18 style="text-decoration: none"><span style="color:#000000">BF</span></a></span>
</td>
</tr>
</table>
@ -1111,7 +1111,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Blockhouse G">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_68 style="text-decoration: none"><span style="color:#000000">BG</span></a></span>
<span style="color:#000000"><a href=#wo_19 style="text-decoration: none"><span style="color:#000000">BG</span></a></span>
</td>
</tr>
</table>
@ -1349,7 +1349,7 @@
<!--WORLD WRITE MAP ENDS-->
<a name=MDETAILS></a>
<p><a name=></a><a name=wo_62><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_13><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -1547,7 +1547,7 @@
<hr>
<p><a name=></a><a name=wo_63><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_14><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -1702,7 +1702,7 @@
<hr>
<p><a name=></a><a name=wo_64><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_15><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -1857,7 +1857,7 @@
<hr>
<p><a name=></a><a name=wo_65><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_16><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -2012,7 +2012,7 @@
<hr>
<p><a name=></a><a name=wo_66><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_17><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -2167,7 +2167,7 @@
<hr>
<p><a name=></a><a name=wo_67><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_18><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -2322,7 +2322,7 @@
<hr>
<p><a name=></a><a name=wo_68><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_19><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -2477,7 +2477,7 @@
<hr>
<p><a name=></a><a name=wo_69><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_20><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">

View file

@ -196,7 +196,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Records Room">
<tr>
<td valign="middle" align="center" bgcolor="#8470FF">
<span style="color:#000000"><a href=#wo_101 style="text-decoration: none"><span style="color:#000000">RR</span></a></span>
<span style="color:#000000"><a href=#wo_52 style="text-decoration: none"><span style="color:#000000">RR</span></a></span>
</td>
</tr>
</table>
@ -251,7 +251,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Upper Bulb">
<tr>
<td valign="middle" align="center" bgcolor="#20B2AA">
<span style="color:#000000"><a href=#wo_98 style="text-decoration: none"><span style="color:#000000">UB</span></a></span>
<span style="color:#000000"><a href=#wo_49 style="text-decoration: none"><span style="color:#000000">UB</span></a></span>
</td>
</tr>
</table>
@ -306,7 +306,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Gallery of Still Life">
<tr>
<td valign="middle" align="center" bgcolor="#8470FF">
<span style="color:#000000"><a href=#wo_128 style="text-decoration: none"><span style="color:#000000">GS</span></a></span>
<span style="color:#000000"><a href=#wo_79 style="text-decoration: none"><span style="color:#000000">GS</span></a></span>
</td>
</tr>
</table>
@ -361,7 +361,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="White Gallery">
<tr>
<td valign="middle" align="center" bgcolor="#D02090">
<span style="color:#000000"><a href=#wo_129 style="text-decoration: none"><span style="color:#000000">WG</span></a></span>
<span style="color:#000000"><a href=#wo_80 style="text-decoration: none"><span style="color:#000000">WG</span></a></span>
</td>
</tr>
</table>
@ -416,7 +416,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Bellroom">
<tr>
<td valign="middle" align="center" bgcolor="#D02090">
<span style="color:#000000"><a href=#wo_136 style="text-decoration: none"><span style="color:#000000">Bl</span></a></span>
<span style="color:#000000"><a href=#wo_87 style="text-decoration: none"><span style="color:#000000">Bl</span></a></span>
</td>
</tr>
</table>
@ -471,7 +471,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Apothecary">
<tr>
<td valign="middle" align="center" bgcolor="#D02090">
<span style="color:#000000"><a href=#wo_137 style="text-decoration: none"><span style="color:#000000">Ap</span></a></span>
<span style="color:#000000"><a href=#wo_88 style="text-decoration: none"><span style="color:#000000">Ap</span></a></span>
</td>
</tr>
</table>
@ -766,7 +766,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Smoke-Damaged Chamber">
<tr>
<td valign="middle" align="center" bgcolor="#8470FF">
<span style="color:#000000"><a href=#wo_99 style="text-decoration: none"><span style="color:#000000">SC</span></a></span>
<span style="color:#000000"><a href=#wo_50 style="text-decoration: none"><span style="color:#000000">SC</span></a></span>
</td>
</tr>
</table>
@ -821,7 +821,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Lie Library">
<tr>
<td valign="middle" align="center" bgcolor="#8470FF">
<span style="color:#000000"><a href=#wo_107 style="text-decoration: none"><span style="color:#000000">LL</span></a></span>
<span style="color:#000000"><a href=#wo_58 style="text-decoration: none"><span style="color:#000000">LL</span></a></span>
</td>
</tr>
</table>
@ -923,7 +923,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Upstairs Helical Staircase">
<tr>
<td valign="middle" align="center" bgcolor="#FFDEAD">
<span style="color:#000000"><a href=#wo_94 style="text-decoration: none"><span style="color:#000000">UH</span></a></span>
<span style="color:#000000"><a href=#wo_45 style="text-decoration: none"><span style="color:#000000">UH</span></a></span>
</td>
</tr>
</table>
@ -978,7 +978,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Private Parlor">
<tr>
<td valign="middle" align="center" bgcolor="#FFDEAD">
<span style="color:#000000"><a href=#wo_130 style="text-decoration: none"><span style="color:#000000">PP</span></a></span>
<span style="color:#000000"><a href=#wo_81 style="text-decoration: none"><span style="color:#000000">PP</span></a></span>
</td>
</tr>
</table>
@ -1033,7 +1033,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Guest Bedroom">
<tr>
<td valign="middle" align="center" bgcolor="#FFDEAD">
<span style="color:#000000"><a href=#wo_132 style="text-decoration: none"><span style="color:#000000">GB</span></a></span>
<span style="color:#000000"><a href=#wo_83 style="text-decoration: none"><span style="color:#000000">GB</span></a></span>
</td>
</tr>
</table>
@ -1328,7 +1328,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Burnt Frame">
<tr>
<td valign="middle" align="center" bgcolor="#8470FF">
<span style="color:#000000"><a href=#wo_100 style="text-decoration: none"><span style="color:#000000">BF</span></a></span>
<span style="color:#000000"><a href=#wo_51 style="text-decoration: none"><span style="color:#000000">BF</span></a></span>
</td>
</tr>
</table>
@ -1383,7 +1383,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Black Gallery">
<tr>
<td valign="middle" align="center" bgcolor="#8470FF">
<span style="color:#000000"><a href=#wo_105 style="text-decoration: none"><span style="color:#000000">BG</span></a></span>
<span style="color:#000000"><a href=#wo_56 style="text-decoration: none"><span style="color:#000000">BG</span></a></span>
</td>
</tr>
</table>
@ -1485,7 +1485,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Green Bedroom">
<tr>
<td valign="middle" align="center" bgcolor="#FFDEAD">
<span style="color:#000000"><a href=#wo_131 style="text-decoration: none"><span style="color:#000000">GB</span></a></span>
<span style="color:#000000"><a href=#wo_82 style="text-decoration: none"><span style="color:#000000">GB</span></a></span>
</td>
</tr>
</table>
@ -1540,7 +1540,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Crystal Bedroom">
<tr>
<td valign="middle" align="center" bgcolor="#FFDEAD">
<span style="color:#000000"><a href=#wo_134 style="text-decoration: none"><span style="color:#000000">CB</span></a></span>
<span style="color:#000000"><a href=#wo_85 style="text-decoration: none"><span style="color:#000000">CB</span></a></span>
</td>
</tr>
</table>
@ -1595,7 +1595,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Empty Bedroom">
<tr>
<td valign="middle" align="center" bgcolor="#FFDEAD">
<span style="color:#000000"><a href=#wo_133 style="text-decoration: none"><span style="color:#000000">EB</span></a></span>
<span style="color:#000000"><a href=#wo_84 style="text-decoration: none"><span style="color:#000000">EB</span></a></span>
</td>
</tr>
</table>
@ -1937,7 +1937,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Armory">
<tr>
<td valign="middle" align="center" bgcolor="#8470FF">
<span style="color:#000000"><a href=#wo_106 style="text-decoration: none"><span style="color:#000000">Ar</span></a></span>
<span style="color:#000000"><a href=#wo_57 style="text-decoration: none"><span style="color:#000000">Ar</span></a></span>
</td>
</tr>
</table>
@ -2086,7 +2086,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Gilded Balcony">
<tr>
<td valign="middle" align="center" bgcolor="#FFDEAD">
<span style="color:#000000"><a href=#wo_135 style="text-decoration: none"><span style="color:#000000">GB</span></a></span>
<span style="color:#000000"><a href=#wo_86 style="text-decoration: none"><span style="color:#000000">GB</span></a></span>
</td>
</tr>
</table>
@ -2669,7 +2669,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Rose Garden">
<tr>
<td valign="middle" align="center" bgcolor="#F08080">
<span style="color:#000000"><a href=#wo_110 style="text-decoration: none"><span style="color:#000000">RG</span></a></span>
<span style="color:#000000"><a href=#wo_61 style="text-decoration: none"><span style="color:#000000">RG</span></a></span>
</td>
</tr>
</table>
@ -3011,7 +3011,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Translation Room">
<tr>
<td valign="middle" align="center" bgcolor="#8470FF">
<span style="color:#000000"><a href=#wo_104 style="text-decoration: none"><span style="color:#000000">TR</span></a></span>
<span style="color:#000000"><a href=#wo_55 style="text-decoration: none"><span style="color:#000000">TR</span></a></span>
</td>
</tr>
</table>
@ -3066,7 +3066,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Lower Bulb">
<tr>
<td valign="middle" align="center" bgcolor="#20B2AA">
<span style="color:#000000"><a href=#wo_97 style="text-decoration: none"><span style="color:#000000">LB</span></a></span>
<span style="color:#000000"><a href=#wo_48 style="text-decoration: none"><span style="color:#000000">LB</span></a></span>
</td>
</tr>
</table>
@ -3121,7 +3121,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="State Rotunda">
<tr>
<td valign="middle" align="center" bgcolor="#8470FF">
<span style="color:#000000"><a href=#wo_95 style="text-decoration: none"><span style="color:#000000">SR</span></a></span>
<span style="color:#000000"><a href=#wo_46 style="text-decoration: none"><span style="color:#000000">SR</span></a></span>
</td>
</tr>
</table>
@ -3176,7 +3176,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Parliamentary Chambers">
<tr>
<td valign="middle" align="center" bgcolor="#8470FF">
<span style="color:#000000"><a href=#wo_102 style="text-decoration: none"><span style="color:#000000">PC</span></a></span>
<span style="color:#000000"><a href=#wo_53 style="text-decoration: none"><span style="color:#000000">PC</span></a></span>
</td>
</tr>
</table>
@ -3231,7 +3231,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Cloister Walk">
<tr>
<td valign="middle" align="center" bgcolor="#F08080">
<span style="color:#000000"><a href=#wo_108 style="text-decoration: none"><span style="color:#000000">CW</span></a></span>
<span style="color:#000000"><a href=#wo_59 style="text-decoration: none"><span style="color:#000000">CW</span></a></span>
</td>
</tr>
</table>
@ -3286,7 +3286,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Walk's End">
<tr>
<td valign="middle" align="center" bgcolor="#F08080">
<span style="color:#000000"><a href=#wo_109 style="text-decoration: none"><span style="color:#000000">WE</span></a></span>
<span style="color:#000000"><a href=#wo_60 style="text-decoration: none"><span style="color:#000000">WE</span></a></span>
</td>
</tr>
</table>
@ -3581,7 +3581,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Servant Quarters">
<tr>
<td valign="middle" align="center" bgcolor="#FFB6C1">
<span style="color:#000000"><a href=#wo_126 style="text-decoration: none"><span style="color:#000000">SQ</span></a></span>
<span style="color:#000000"><a href=#wo_77 style="text-decoration: none"><span style="color:#000000">SQ</span></a></span>
</td>
</tr>
</table>
@ -3636,7 +3636,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Law Library">
<tr>
<td valign="middle" align="center" bgcolor="#8470FF">
<span style="color:#000000"><a href=#wo_96 style="text-decoration: none"><span style="color:#000000">LL</span></a></span>
<span style="color:#000000"><a href=#wo_47 style="text-decoration: none"><span style="color:#000000">LL</span></a></span>
</td>
</tr>
</table>
@ -3691,7 +3691,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Central Courtyard">
<tr>
<td valign="middle" align="center" bgcolor="#FFB6C1">
<span style="color:#000000"><a href=#wo_92 style="text-decoration: none"><span style="color:#000000">CC</span></a></span>
<span style="color:#000000"><a href=#wo_43 style="text-decoration: none"><span style="color:#000000">CC</span></a></span>
</td>
</tr>
</table>
@ -3746,7 +3746,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Ground Floor Helical Staircase">
<tr>
<td valign="middle" align="center" bgcolor="#FFB6C1">
<span style="color:#000000"><a href=#wo_93 style="text-decoration: none"><span style="color:#000000">GF</span></a></span>
<span style="color:#000000"><a href=#wo_44 style="text-decoration: none"><span style="color:#000000">GF</span></a></span>
</td>
</tr>
</table>
@ -3801,7 +3801,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Treasure Room">
<tr>
<td valign="middle" align="center" bgcolor="#E0FFFF">
<span style="color:#000000"><a href=#wo_88 style="text-decoration: none"><span style="color:#000000">TR</span></a></span>
<span style="color:#000000"><a href=#wo_39 style="text-decoration: none"><span style="color:#000000">TR</span></a></span>
</td>
</tr>
</table>
@ -3856,7 +3856,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Scrying Room">
<tr>
<td valign="middle" align="center" bgcolor="#F08080">
<span style="color:#000000"><a href=#wo_111 style="text-decoration: none"><span style="color:#000000">SR</span></a></span>
<span style="color:#000000"><a href=#wo_62 style="text-decoration: none"><span style="color:#000000">SR</span></a></span>
</td>
</tr>
</table>
@ -4151,7 +4151,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Enormous Kitchen">
<tr>
<td valign="middle" align="center" bgcolor="#FFB6C1">
<span style="color:#000000"><a href=#wo_125 style="text-decoration: none"><span style="color:#000000">EK</span></a></span>
<span style="color:#000000"><a href=#wo_76 style="text-decoration: none"><span style="color:#000000">EK</span></a></span>
</td>
</tr>
</table>
@ -4206,7 +4206,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Great Dining Hall">
<tr>
<td valign="middle" align="center" bgcolor="#FFB6C1">
<span style="color:#000000"><a href=#wo_103 style="text-decoration: none"><span style="color:#000000">GD</span></a></span>
<span style="color:#000000"><a href=#wo_54 style="text-decoration: none"><span style="color:#000000">GD</span></a></span>
</td>
</tr>
</table>
@ -4261,7 +4261,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Entrance Hall">
<tr>
<td valign="middle" align="center" bgcolor="#FFB6C1">
<span style="color:#000000"><a href=#wo_84 style="text-decoration: none"><span style="color:#000000">EH</span></a></span>
<span style="color:#000000"><a href=#wo_35 style="text-decoration: none"><span style="color:#000000">EH</span></a></span>
</td>
</tr>
</table>
@ -4316,7 +4316,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Scarlet Gallery">
<tr>
<td valign="middle" align="center" bgcolor="#E0FFFF">
<span style="color:#000000"><a href=#wo_85 style="text-decoration: none"><span style="color:#000000">SG</span></a></span>
<span style="color:#000000"><a href=#wo_36 style="text-decoration: none"><span style="color:#000000">SG</span></a></span>
</td>
</tr>
</table>
@ -4371,7 +4371,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Gallery of Historical Paintings">
<tr>
<td valign="middle" align="center" bgcolor="#E0FFFF">
<span style="color:#000000"><a href=#wo_87 style="text-decoration: none"><span style="color:#000000">GH</span></a></span>
<span style="color:#000000"><a href=#wo_38 style="text-decoration: none"><span style="color:#000000">GH</span></a></span>
</td>
</tr>
</table>
@ -4426,7 +4426,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Maze Room">
<tr>
<td valign="middle" align="center" bgcolor="#E0FFFF">
<span style="color:#000000"><a href=#wo_89 style="text-decoration: none"><span style="color:#000000">MR</span></a></span>
<span style="color:#000000"><a href=#wo_40 style="text-decoration: none"><span style="color:#000000">MR</span></a></span>
</td>
</tr>
</table>
@ -4768,7 +4768,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Guard Tower">
<tr>
<td valign="middle" align="center" bgcolor="#FFB6C1">
<span style="color:#000000"><a href=#wo_127 style="text-decoration: none"><span style="color:#000000">GT</span></a></span>
<span style="color:#000000"><a href=#wo_78 style="text-decoration: none"><span style="color:#000000">GT</span></a></span>
</td>
</tr>
</table>
@ -4823,7 +4823,7 @@
<table border="2" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Drawbridge">
<tr>
<td valign="middle" align="center" bgcolor="#98FB98">
<span style="color:#000000"><a href=#wo_83 style="text-decoration: none"><span style="color:#000000"><b>Dr</b></span></a></span>
<span style="color:#000000"><a href=#wo_34 style="text-decoration: none"><span style="color:#000000"><b>Dr</b></span></a></span>
</td>
</tr>
</table>
@ -4925,7 +4925,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Scarlet Tower">
<tr>
<td valign="middle" align="center" bgcolor="#E0FFFF">
<span style="color:#000000"><a href=#wo_86 style="text-decoration: none"><span style="color:#000000">ST</span></a></span>
<span style="color:#000000"><a href=#wo_37 style="text-decoration: none"><span style="color:#000000">ST</span></a></span>
</td>
</tr>
</table>
@ -5508,7 +5508,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Rooted Room">
<tr>
<td valign="middle" align="center" bgcolor="#ADD8E6">
<span style="color:#000000"><a href=#wo_122 style="text-decoration: none"><span style="color:#000000">RR</span></a></span>
<span style="color:#000000"><a href=#wo_73 style="text-decoration: none"><span style="color:#000000">RR</span></a></span>
</td>
</tr>
</table>
@ -5897,7 +5897,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Virgin's End">
<tr>
<td valign="middle" align="center" bgcolor="#DDA0DD">
<span style="color:#000000"><a href=#wo_113 style="text-decoration: none"><span style="color:#000000">VE</span></a></span>
<span style="color:#000000"><a href=#wo_64 style="text-decoration: none"><span style="color:#000000">VE</span></a></span>
</td>
</tr>
</table>
@ -5952,7 +5952,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Lucrezia's Study">
<tr>
<td valign="middle" align="center" bgcolor="#ADD8E6">
<span style="color:#000000"><a href=#wo_121 style="text-decoration: none"><span style="color:#000000">LS</span></a></span>
<span style="color:#000000"><a href=#wo_72 style="text-decoration: none"><span style="color:#000000">LS</span></a></span>
</td>
</tr>
</table>
@ -6007,7 +6007,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Tight Passage">
<tr>
<td valign="middle" align="center" bgcolor="#ADD8E6">
<span style="color:#000000"><a href=#wo_120 style="text-decoration: none"><span style="color:#000000">TP</span></a></span>
<span style="color:#000000"><a href=#wo_71 style="text-decoration: none"><span style="color:#000000">TP</span></a></span>
</td>
</tr>
</table>
@ -6062,7 +6062,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Bell Castings">
<tr>
<td valign="middle" align="center" bgcolor="#ADD8E6">
<span style="color:#000000"><a href=#wo_123 style="text-decoration: none"><span style="color:#000000">BC</span></a></span>
<span style="color:#000000"><a href=#wo_74 style="text-decoration: none"><span style="color:#000000">BC</span></a></span>
</td>
</tr>
</table>
@ -6117,7 +6117,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Wax Supply">
<tr>
<td valign="middle" align="center" bgcolor="#ADD8E6">
<span style="color:#000000"><a href=#wo_124 style="text-decoration: none"><span style="color:#000000">WS</span></a></span>
<span style="color:#000000"><a href=#wo_75 style="text-decoration: none"><span style="color:#000000">WS</span></a></span>
</td>
</tr>
</table>
@ -6412,7 +6412,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Apprentice's Workshop">
<tr>
<td valign="middle" align="center" bgcolor="#DDA0DD">
<span style="color:#000000"><a href=#wo_116 style="text-decoration: none"><span style="color:#000000">AW</span></a></span>
<span style="color:#000000"><a href=#wo_67 style="text-decoration: none"><span style="color:#000000">AW</span></a></span>
</td>
</tr>
</table>
@ -6467,7 +6467,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Central Crypt">
<tr>
<td valign="middle" align="center" bgcolor="#DDA0DD">
<span style="color:#000000"><a href=#wo_112 style="text-decoration: none"><span style="color:#000000">CC</span></a></span>
<span style="color:#000000"><a href=#wo_63 style="text-decoration: none"><span style="color:#000000">CC</span></a></span>
</td>
</tr>
</table>
@ -6522,7 +6522,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Father's Regret">
<tr>
<td valign="middle" align="center" bgcolor="#DDA0DD">
<span style="color:#000000"><a href=#wo_114 style="text-decoration: none"><span style="color:#000000">FR</span></a></span>
<span style="color:#000000"><a href=#wo_65 style="text-decoration: none"><span style="color:#000000">FR</span></a></span>
</td>
</tr>
</table>
@ -6624,7 +6624,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Zoo">
<tr>
<td valign="middle" align="center" bgcolor="#ADD8E6">
<span style="color:#000000"><a href=#wo_91 style="text-decoration: none"><span style="color:#000000">Zo</span></a></span>
<span style="color:#000000"><a href=#wo_42 style="text-decoration: none"><span style="color:#000000">Zo</span></a></span>
</td>
</tr>
</table>
@ -7013,7 +7013,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Debtor's Paradise">
<tr>
<td valign="middle" align="center" bgcolor="#DDA0DD">
<span style="color:#000000"><a href=#wo_115 style="text-decoration: none"><span style="color:#000000">DP</span></a></span>
<span style="color:#000000"><a href=#wo_66 style="text-decoration: none"><span style="color:#000000">DP</span></a></span>
</td>
</tr>
</table>
@ -7115,7 +7115,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Rocky Chamber">
<tr>
<td valign="middle" align="center" bgcolor="#ADD8E6">
<span style="color:#000000"><a href=#wo_117 style="text-decoration: none"><span style="color:#000000">RC</span></a></span>
<span style="color:#000000"><a href=#wo_68 style="text-decoration: none"><span style="color:#000000">RC</span></a></span>
</td>
</tr>
</table>
@ -7217,7 +7217,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Bear Corridor">
<tr>
<td valign="middle" align="center" bgcolor="#ADD8E6">
<span style="color:#000000"><a href=#wo_90 style="text-decoration: none"><span style="color:#000000">BC</span></a></span>
<span style="color:#000000"><a href=#wo_41 style="text-decoration: none"><span style="color:#000000">BC</span></a></span>
</td>
</tr>
</table>
@ -7612,7 +7612,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Press Room">
<tr>
<td valign="middle" align="center" bgcolor="#DDA0DD">
<span style="color:#000000"><a href=#wo_119 style="text-decoration: none"><span style="color:#000000">PR</span></a></span>
<span style="color:#000000"><a href=#wo_70 style="text-decoration: none"><span style="color:#000000">PR</span></a></span>
</td>
</tr>
</table>
@ -8142,7 +8142,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Dank Room">
<tr>
<td valign="middle" align="center" bgcolor="#DDA0DD">
<span style="color:#000000"><a href=#wo_118 style="text-decoration: none"><span style="color:#000000">DR</span></a></span>
<span style="color:#000000"><a href=#wo_69 style="text-decoration: none"><span style="color:#000000">DR</span></a></span>
</td>
</tr>
</table>
@ -8539,7 +8539,7 @@
<table border="2" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Drawbridge">
<tr>
<td valign="middle" align="center" bgcolor="#98FB98">
<span style="color:#000000"><a href=#wo_83 style="text-decoration: none"><span style="color:#000000"><b>Dr</b></span></a></span>
<span style="color:#000000"><a href=#wo_34 style="text-decoration: none"><span style="color:#000000"><b>Dr</b></span></a></span>
</td>
</tr>
</table>
@ -8560,7 +8560,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Bear Corridor">
<tr>
<td valign="middle" align="center" bgcolor="#ADD8E6">
<span style="color:#000000"><a href=#wo_90 style="text-decoration: none"><span style="color:#000000">BC</span></a></span>
<span style="color:#000000"><a href=#wo_41 style="text-decoration: none"><span style="color:#000000">BC</span></a></span>
</td>
</tr>
</table>
@ -8581,7 +8581,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Central Crypt">
<tr>
<td valign="middle" align="center" bgcolor="#DDA0DD">
<span style="color:#000000"><a href=#wo_112 style="text-decoration: none"><span style="color:#000000">CC</span></a></span>
<span style="color:#000000"><a href=#wo_63 style="text-decoration: none"><span style="color:#000000">CC</span></a></span>
</td>
</tr>
</table>
@ -8602,7 +8602,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Lower Bulb">
<tr>
<td valign="middle" align="center" bgcolor="#20B2AA">
<span style="color:#000000"><a href=#wo_97 style="text-decoration: none"><span style="color:#000000">LB</span></a></span>
<span style="color:#000000"><a href=#wo_48 style="text-decoration: none"><span style="color:#000000">LB</span></a></span>
</td>
</tr>
</table>
@ -8623,7 +8623,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="State Rotunda">
<tr>
<td valign="middle" align="center" bgcolor="#8470FF">
<span style="color:#000000"><a href=#wo_95 style="text-decoration: none"><span style="color:#000000">SR</span></a></span>
<span style="color:#000000"><a href=#wo_46 style="text-decoration: none"><span style="color:#000000">SR</span></a></span>
</td>
</tr>
</table>
@ -8644,7 +8644,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Upstairs Helical Staircase">
<tr>
<td valign="middle" align="center" bgcolor="#FFDEAD">
<span style="color:#000000"><a href=#wo_94 style="text-decoration: none"><span style="color:#000000">UH</span></a></span>
<span style="color:#000000"><a href=#wo_45 style="text-decoration: none"><span style="color:#000000">UH</span></a></span>
</td>
</tr>
</table>
@ -8665,7 +8665,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="White Gallery">
<tr>
<td valign="middle" align="center" bgcolor="#D02090">
<span style="color:#000000"><a href=#wo_129 style="text-decoration: none"><span style="color:#000000">WG</span></a></span>
<span style="color:#000000"><a href=#wo_80 style="text-decoration: none"><span style="color:#000000">WG</span></a></span>
</td>
</tr>
</table>
@ -8686,7 +8686,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Scarlet Gallery">
<tr>
<td valign="middle" align="center" bgcolor="#E0FFFF">
<span style="color:#000000"><a href=#wo_85 style="text-decoration: none"><span style="color:#000000">SG</span></a></span>
<span style="color:#000000"><a href=#wo_36 style="text-decoration: none"><span style="color:#000000">SG</span></a></span>
</td>
</tr>
</table>
@ -8707,7 +8707,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Cloister Walk">
<tr>
<td valign="middle" align="center" bgcolor="#F08080">
<span style="color:#000000"><a href=#wo_108 style="text-decoration: none"><span style="color:#000000">CW</span></a></span>
<span style="color:#000000"><a href=#wo_59 style="text-decoration: none"><span style="color:#000000">CW</span></a></span>
</td>
</tr>
</table>
@ -8728,7 +8728,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Entrance Hall">
<tr>
<td valign="middle" align="center" bgcolor="#FFB6C1">
<span style="color:#000000"><a href=#wo_84 style="text-decoration: none"><span style="color:#000000">EH</span></a></span>
<span style="color:#000000"><a href=#wo_35 style="text-decoration: none"><span style="color:#000000">EH</span></a></span>
</td>
</tr>
</table>
@ -8745,7 +8745,7 @@
<hr>
<a name=MDETAILS></a><b>The <i>Great Outdoors</i> region</b><p>
<p><a name=></a><a name=wo_83><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_34><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -8993,7 +8993,7 @@
<hr>
<b>The <i>Basement</i> region</b><p>
<p><a name=></a><a name=wo_90><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_41><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -9156,7 +9156,7 @@
</p>
<p><a name=></a><a name=wo_91><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_42><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -9320,7 +9320,7 @@
</p>
<p><a name=></a><a name=wo_117><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_68><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -9483,7 +9483,7 @@
</p>
<p><a name=></a><a name=wo_120><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_71><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -9689,7 +9689,7 @@
</p>
<p><a name=></a><a name=wo_121><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_72><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -9893,7 +9893,7 @@
</p>
<p><a name=></a><a name=wo_122><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_73><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -10057,7 +10057,7 @@
</p>
<p><a name=></a><a name=wo_123><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_74><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -10220,7 +10220,7 @@
</p>
<p><a name=></a><a name=wo_124><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_75><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -10384,7 +10384,7 @@
<hr>
<b>The <i>Haunted Area</i> region</b><p>
<p><a name=></a><a name=wo_112><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_63><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -10592,7 +10592,7 @@
</p>
<p><a name=></a><a name=wo_113><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_64><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -10756,7 +10756,7 @@
</p>
<p><a name=></a><a name=wo_114><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_65><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -10922,7 +10922,7 @@
</p>
<p><a name=></a><a name=wo_115><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_66><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -11129,7 +11129,7 @@
</p>
<p><a name=></a><a name=wo_116><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_67><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -11336,7 +11336,7 @@
</p>
<p><a name=></a><a name=wo_118><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_69><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -11541,7 +11541,7 @@
</p>
<p><a name=></a><a name=wo_119><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_70><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -11704,7 +11704,7 @@
<hr>
<b>The <i>Hourglass</i> region</b><p>
<p><a name=></a><a name=wo_97><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_48><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -11911,7 +11911,7 @@
</p>
<p><a name=></a><a name=wo_98><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_49><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -12161,7 +12161,7 @@
<hr>
<b>The <i>State Rooms</i> region</b><p>
<p><a name=></a><a name=wo_95><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_46><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -12326,7 +12326,7 @@
</p>
<p><a name=></a><a name=wo_96><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_47><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -12533,7 +12533,7 @@
</p>
<p><a name=></a><a name=wo_99><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_50><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -12739,7 +12739,7 @@
</p>
<p><a name=></a><a name=wo_100><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_51><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -12902,7 +12902,7 @@
</p>
<p><a name=></a><a name=wo_101><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_52><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -13064,7 +13064,7 @@
</p>
<p><a name=></a><a name=wo_102><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_53><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -13227,7 +13227,7 @@
</p>
<p><a name=></a><a name=wo_104><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_55><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -13389,7 +13389,7 @@
</p>
<p><a name=></a><a name=wo_105><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_56><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -13553,7 +13553,7 @@
</p>
<p><a name=></a><a name=wo_106><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_57><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -13715,7 +13715,7 @@
</p>
<p><a name=></a><a name=wo_107><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_58><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -13878,7 +13878,7 @@
</p>
<p><a name=></a><a name=wo_128><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_79><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -14084,7 +14084,7 @@
<hr>
<b>The <i>Apartments</i> region</b><p>
<p><a name=></a><a name=wo_94><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_45><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -14289,7 +14289,7 @@
</p>
<p><a name=></a><a name=wo_130><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_81><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -14498,7 +14498,7 @@
</p>
<p><a name=></a><a name=wo_131><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_82><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -14660,7 +14660,7 @@
</p>
<p><a name=></a><a name=wo_132><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_83><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -14822,7 +14822,7 @@
</p>
<p><a name=></a><a name=wo_133><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_84><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -14984,7 +14984,7 @@
</p>
<p><a name=></a><a name=wo_134><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_85><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -15147,7 +15147,7 @@
</p>
<p><a name=></a><a name=wo_135><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_86><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -15310,7 +15310,7 @@
<hr>
<b>The <i>Stinky</i> region</b><p>
<p><a name=></a><a name=wo_129><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_80><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -15515,7 +15515,7 @@
</p>
<p><a name=></a><a name=wo_136><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_87><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -15721,7 +15721,7 @@
</p>
<p><a name=></a><a name=wo_137><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_88><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -15884,7 +15884,7 @@
<hr>
<b>The <i>Old Castle</i> region</b><p>
<p><a name=></a><a name=wo_85><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_36><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -16049,7 +16049,7 @@
</p>
<p><a name=></a><a name=wo_86><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_37><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -16211,7 +16211,7 @@
</p>
<p><a name=></a><a name=wo_87><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_38><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -16374,7 +16374,7 @@
</p>
<p><a name=></a><a name=wo_88><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_39><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -16579,7 +16579,7 @@
</p>
<p><a name=></a><a name=wo_89><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_40><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -16743,7 +16743,7 @@
<hr>
<b>The <i>Enclosed</i> region</b><p>
<p><a name=></a><a name=wo_108><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_59><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -16907,7 +16907,7 @@
</p>
<p><a name=></a><a name=wo_109><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_60><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -17071,7 +17071,7 @@
</p>
<p><a name=></a><a name=wo_110><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_61><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -17235,7 +17235,7 @@
</p>
<p><a name=></a><a name=wo_111><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_62><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -17441,7 +17441,7 @@
<hr>
<b>The <i>Main Castle</i> region</b><p>
<p><a name=></a><a name=wo_84><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_35><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -17649,7 +17649,7 @@
</p>
<p><a name=></a><a name=wo_92><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_43><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -17813,7 +17813,7 @@
</p>
<p><a name=></a><a name=wo_93><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_44><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -18018,7 +18018,7 @@
</p>
<p><a name=></a><a name=wo_103><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_54><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -18182,7 +18182,7 @@
</p>
<p><a name=></a><a name=wo_125><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_76><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -18345,7 +18345,7 @@
</p>
<p><a name=></a><a name=wo_126><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_77><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -18550,7 +18550,7 @@
</p>
<p><a name=></a><a name=wo_127><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_78><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">

View file

@ -165,7 +165,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Beth">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_63 style="text-decoration: none"><span style="color:#000000">Bt</span></a></span>
<span style="color:#000000"><a href=#wo_14 style="text-decoration: none"><span style="color:#000000">Bt</span></a></span>
</td>
</tr>
</table>
@ -351,7 +351,7 @@
<table border="2" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Aleph">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_62 style="text-decoration: none"><span style="color:#000000"><b>Al</b></span></a></span>
<span style="color:#000000"><a href=#wo_13 style="text-decoration: none"><span style="color:#000000"><b>Al</b></span></a></span>
</td>
</tr>
</table>
@ -453,7 +453,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Gimel">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_64 style="text-decoration: none"><span style="color:#000000">Gm</span></a></span>
<span style="color:#000000"><a href=#wo_15 style="text-decoration: none"><span style="color:#000000">Gm</span></a></span>
</td>
</tr>
</table>
@ -639,7 +639,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Daleth">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_65 style="text-decoration: none"><span style="color:#000000">Dl</span></a></span>
<span style="color:#000000"><a href=#wo_16 style="text-decoration: none"><span style="color:#000000">Dl</span></a></span>
</td>
</tr>
</table>
@ -812,7 +812,7 @@
<!--WORLD WRITE MAP ENDS-->
<a name=MDETAILS></a>
<p><a name=></a><a name=wo_62><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_13><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -1011,7 +1011,7 @@
<hr>
<p><a name=></a><a name=wo_63><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_14><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -1167,7 +1167,7 @@
<hr>
<p><a name=></a><a name=wo_64><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_15><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -1323,7 +1323,7 @@
<hr>
<p><a name=></a><a name=wo_65><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_16><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">

File diff suppressed because it is too large Load diff

View file

@ -371,7 +371,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Hillhead">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_64 style="text-decoration: none"><span style="color:#000000">Hl</span></a></span>
<span style="color:#000000"><a href=#wo_15 style="text-decoration: none"><span style="color:#000000">Hl</span></a></span>
</td>
</tr>
</table>
@ -426,7 +426,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Kelvinbridge">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_65 style="text-decoration: none"><span style="color:#000000">Kl</span></a></span>
<span style="color:#000000"><a href=#wo_16 style="text-decoration: none"><span style="color:#000000">Kl</span></a></span>
</td>
</tr>
</table>
@ -789,7 +789,7 @@
<table border="2" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Partick">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_62 style="text-decoration: none"><span style="color:#000000"><b>Pr</b></span></a></span>
<span style="color:#000000"><a href=#wo_13 style="text-decoration: none"><span style="color:#000000"><b>Pr</b></span></a></span>
</td>
</tr>
</table>
@ -938,7 +938,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Kelvinhall">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_63 style="text-decoration: none"><span style="color:#000000">Kl</span></a></span>
<span style="color:#000000"><a href=#wo_14 style="text-decoration: none"><span style="color:#000000">Kl</span></a></span>
</td>
</tr>
</table>
@ -1087,7 +1087,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="St Georges Cross">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_66 style="text-decoration: none"><span style="color:#000000">SG</span></a></span>
<span style="color:#000000"><a href=#wo_17 style="text-decoration: none"><span style="color:#000000">SG</span></a></span>
</td>
</tr>
</table>
@ -1142,7 +1142,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Cowcaddens">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_67 style="text-decoration: none"><span style="color:#000000">Cw</span></a></span>
<span style="color:#000000"><a href=#wo_18 style="text-decoration: none"><span style="color:#000000">Cw</span></a></span>
</td>
</tr>
</table>
@ -1740,7 +1740,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Buchanan Street">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_68 style="text-decoration: none"><span style="color:#000000">BS</span></a></span>
<span style="color:#000000"><a href=#wo_19 style="text-decoration: none"><span style="color:#000000">BS</span></a></span>
</td>
</tr>
</table>
@ -2338,7 +2338,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="St Enoch">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_69 style="text-decoration: none"><span style="color:#000000">SE</span></a></span>
<span style="color:#000000"><a href=#wo_20 style="text-decoration: none"><span style="color:#000000">SE</span></a></span>
</td>
</tr>
</table>
@ -2607,7 +2607,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Govan">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_76 style="text-decoration: none"><span style="color:#000000">Gv</span></a></span>
<span style="color:#000000"><a href=#wo_27 style="text-decoration: none"><span style="color:#000000">Gv</span></a></span>
</td>
</tr>
</table>
@ -2944,7 +2944,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Bridge Street">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_70 style="text-decoration: none"><span style="color:#000000">BS</span></a></span>
<span style="color:#000000"><a href=#wo_21 style="text-decoration: none"><span style="color:#000000">BS</span></a></span>
</td>
</tr>
</table>
@ -3213,7 +3213,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Ibrox">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_75 style="text-decoration: none"><span style="color:#000000">Ib</span></a></span>
<span style="color:#000000"><a href=#wo_26 style="text-decoration: none"><span style="color:#000000">Ib</span></a></span>
</td>
</tr>
</table>
@ -3268,7 +3268,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Cessnock">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_74 style="text-decoration: none"><span style="color:#000000">Cs</span></a></span>
<span style="color:#000000"><a href=#wo_25 style="text-decoration: none"><span style="color:#000000">Cs</span></a></span>
</td>
</tr>
</table>
@ -3323,7 +3323,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Kinning Park">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_73 style="text-decoration: none"><span style="color:#000000">KP</span></a></span>
<span style="color:#000000"><a href=#wo_24 style="text-decoration: none"><span style="color:#000000">KP</span></a></span>
</td>
</tr>
</table>
@ -3378,7 +3378,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Shields Road">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_72 style="text-decoration: none"><span style="color:#000000">SR</span></a></span>
<span style="color:#000000"><a href=#wo_23 style="text-decoration: none"><span style="color:#000000">SR</span></a></span>
</td>
</tr>
</table>
@ -3527,7 +3527,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="West Street">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_71 style="text-decoration: none"><span style="color:#000000">WS</span></a></span>
<span style="color:#000000"><a href=#wo_22 style="text-decoration: none"><span style="color:#000000">WS</span></a></span>
</td>
</tr>
</table>
@ -3765,7 +3765,7 @@
<!--WORLD WRITE MAP ENDS-->
<a name=MDETAILS></a>
<p><a name=></a><a name=wo_62><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_13><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -3963,7 +3963,7 @@
<hr>
<p><a name=></a><a name=wo_63><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_14><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -4118,7 +4118,7 @@
<hr>
<p><a name=></a><a name=wo_64><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_15><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -4273,7 +4273,7 @@
<hr>
<p><a name=></a><a name=wo_65><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_16><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -4428,7 +4428,7 @@
<hr>
<p><a name=></a><a name=wo_66><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_17><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -4583,7 +4583,7 @@
<hr>
<p><a name=></a><a name=wo_67><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_18><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -4738,7 +4738,7 @@
<hr>
<p><a name=></a><a name=wo_68><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_19><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -4893,7 +4893,7 @@
<hr>
<p><a name=></a><a name=wo_69><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_20><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -5048,7 +5048,7 @@
<hr>
<p><a name=></a><a name=wo_70><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_21><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -5203,7 +5203,7 @@
<hr>
<p><a name=></a><a name=wo_71><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_22><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -5358,7 +5358,7 @@
<hr>
<p><a name=></a><a name=wo_72><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_23><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -5513,7 +5513,7 @@
<hr>
<p><a name=></a><a name=wo_73><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_24><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -5668,7 +5668,7 @@
<hr>
<p><a name=></a><a name=wo_74><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_25><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -5823,7 +5823,7 @@
<hr>
<p><a name=></a><a name=wo_75><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_26><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -5978,7 +5978,7 @@
<hr>
<p><a name=></a><a name=wo_76><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_27><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">

View file

@ -118,7 +118,7 @@
<table border="2" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Alpha">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_62 style="text-decoration: none"><span style="color:#000000"><b>Al</b></span></a></span>
<span style="color:#000000"><a href=#wo_13 style="text-decoration: none"><span style="color:#000000"><b>Al</b></span></a></span>
</td>
</tr>
</table>
@ -220,7 +220,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Beta">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_63 style="text-decoration: none"><span style="color:#000000">Bt</span></a></span>
<span style="color:#000000"><a href=#wo_14 style="text-decoration: none"><span style="color:#000000">Bt</span></a></span>
</td>
</tr>
</table>
@ -406,7 +406,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Epsilon">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_66 style="text-decoration: none"><span style="color:#000000">Ep</span></a></span>
<span style="color:#000000"><a href=#wo_17 style="text-decoration: none"><span style="color:#000000">Ep</span></a></span>
</td>
</tr>
</table>
@ -592,7 +592,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Gamma">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_64 style="text-decoration: none"><span style="color:#000000">Gm</span></a></span>
<span style="color:#000000"><a href=#wo_15 style="text-decoration: none"><span style="color:#000000">Gm</span></a></span>
</td>
</tr>
</table>
@ -694,7 +694,7 @@
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="27" height="27" title="Delta">
<tr>
<td valign="middle" align="center" bgcolor="#D3D3D3">
<span style="color:#000000"><a href=#wo_65 style="text-decoration: none"><span style="color:#000000">Dl</span></a></span>
<span style="color:#000000"><a href=#wo_16 style="text-decoration: none"><span style="color:#000000">Dl</span></a></span>
</td>
</tr>
</table>
@ -820,7 +820,7 @@
<!--WORLD WRITE MAP ENDS-->
<a name=MDETAILS></a>
<p><a name=></a><a name=wo_62><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_13><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -1018,7 +1018,7 @@
<hr>
<p><a name=></a><a name=wo_63><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_14><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -1173,7 +1173,7 @@
<hr>
<p><a name=></a><a name=wo_64><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_15><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -1328,7 +1328,7 @@
<hr>
<p><a name=></a><a name=wo_65><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_16><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">
@ -1484,7 +1484,7 @@
<hr>
<p><a name=></a><a name=wo_66><table border="0" cellspacing="0" cellpadding="0">
<p><a name=></a><a name=wo_17><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top">

Some files were not shown because too many files have changed in this diff Show more