1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-06-26 04:00:43 +03:00

Refactored the index with a better API

This commit is contained in:
Graham Nelson 2021-07-26 13:48:49 +01:00
parent 97678a04b9
commit d749074da9
86 changed files with 1272 additions and 898 deletions

View file

@ -308,11 +308,11 @@ call it for them.
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InternalTests::perform_index_internal_test</span><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">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">internal_test_case</span><span class="plain-syntax"> *</span><span class="identifier-syntax">itc</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Localisation::new</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Indexing::open_session</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">());</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inform_language</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Projects::get_language_of_index</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP6" class="function-link"><span class="function-syntax">Task::project</span></a><span class="plain-syntax">());</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Localisation::stock_from_file</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Filenames::in</span><span class="plain-syntax">(</span><span class="identifier-syntax">Languages::path_to_bundle</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"Index.txt"</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">InterpretIndex::generate_one_element</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">itc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">text_supplying_the_case</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">Indexing::localise</span><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">, </span><span class="identifier-syntax">Filenames::in</span><span class="plain-syntax">(</span><span class="identifier-syntax">Languages::path_to_bundle</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"Index.txt"</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Indexing::generate_one_element</span><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">itc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">text_supplying_the_case</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Indexing::close_session</span><span class="plain-syntax">(</span><span class="identifier-syntax">session</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>And here's a set of six tests of the kinds system. This is quite old code,

View file

@ -542,21 +542,18 @@ flag stays <span class="extract"><span class="extract-syntax">FALSE</span></span
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Task::produce_index</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">Task::produce_index</span></span>:<br/>How To Compile - <a href="1-htc.html#SP2_15">&#167;2.15</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">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">project</span><span class="plain-syntax"> = </span><a href="1-wtc.html#SP6" class="function-link"><span class="function-syntax">Task::project</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">do_not_generate_index</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">write_EPS_format_map</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Indexing::open_session</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">());</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inform_language</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Projects::get_language_of_index</span><span class="plain-syntax">(</span><span class="identifier-syntax">project</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Localisation::new</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Localisation::stock_from_file</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Filenames::in</span><span class="plain-syntax">(</span><span class="identifier-syntax">Languages::path_to_bundle</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"Index.txt"</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">Indexing::localise</span><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Filenames::in</span><span class="plain-syntax">(</span><span class="identifier-syntax">Languages::path_to_bundle</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"Index.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">do_not_generate_index</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">InterpretIndex::generate</span><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Projects::index_structure</span><span class="plain-syntax">(</span><span class="identifier-syntax">project</span><span class="plain-syntax">),</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">Indexing::generate_index_website</span><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">, </span><span class="identifier-syntax">Projects::index_structure</span><span class="plain-syntax">(</span><span class="identifier-syntax">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">do_not_update_census</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">ExtensionWebsite::index_after_compilation</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP6" class="function-link"><span class="function-syntax">Task::project</span></a><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">write_EPS_format_map</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RenderEPSMap::render_map_as_EPS</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP16" class="function-link"><span class="function-syntax">Task::epsmap_file</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="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="plain-syntax"> </span><span class="identifier-syntax">Indexing::generate_EPS_map</span><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">, </span><a href="1-wtc.html#SP16" class="function-link"><span class="function-syntax">Task::epsmap_file</span></a><span class="plain-syntax">());</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Indexing::close_session</span><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
</pre>

View file

@ -91,7 +91,7 @@ non-problem messages when everything was fine. That all happens here:
<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 problem log"</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::header</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="string-syntax">"Translating the Source"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InstalledFiles::filename</span><span class="plain-syntax">(</span><span class="identifier-syntax">CSS_FOR_STANDARD_PAGES_IRES</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InstalledFiles::filename</span><span class="plain-syntax">(</span><span class="identifier-syntax">JAVASCRIPT_FOR_STANDARD_PAGES_IRES</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InstalledFiles::filename</span><span class="plain-syntax">(</span><span class="identifier-syntax">JAVASCRIPT_FOR_STANDARD_PAGES_IRES</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">void</span><span class="plain-syntax"> </span><span class="function-syntax">Problems::Using::final_report</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">disaster_struck</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">problems_count</span><span class="plain-syntax">) {</span>

251
docs/index-module/1-ia.html Normal file
View file

@ -0,0 +1,251 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Indexing API</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">
<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 'Indexing API' generated by Inweb-->
<div class="breadcrumbs">
<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">index</a></li><li><a href="index.html#1">Chapter 1: Starting Up</a></li><li><b>Indexing API</b></li></ul></div>
<p class="purpose">How the parent tool can ask for an Inter tree to be indexed.</p>
<ul class="toc"><li><a href="1-ia.html#SP1">&#167;1. Public API</a></li><li><a href="1-ia.html#SP4">&#167;4. Private API</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. Public API. </b>This is a large and complex module of code, but it really only does one thing,
and so it is simple to control. Other modules or tools should do this only by
calling the functions below.
</p>
<p class="commentary">To produce one or more index products (see below), first open a session; then
set its localisation &mdash; essentially, choose what language it should be written
in; then call functions to make the actual products; and finally close the session.
Note that:
</p>
<ul class="items"><li>(1) If you want to index the same tree of code to two different languages, you
will need to do this as two sessions. However, an Index website and an EPS map
which are in the same language can both be made in the same session, and this
is more efficient than using two.
</li><li>(2) Only one session can be open at a time. In some abstract sense it would be tidy
to make this whole module threadsafe, but in concrete terms, it's hard to see
what problem that would solve for anyone. If a user needs to make multiple
indexes simultaneously, the simplest way would be to start multiple <span class="extract"><span class="extract-syntax">inter</span></span>
processes, each working on one project at a time. However, the API is designed
so that this decision could be reversed if we wanted to.
</li></ul>
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. </b>So, then, opening:
</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">index_session</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">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tree</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">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</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">inter_lexicon</span><span class="plain-syntax"> *</span><span class="identifier-syntax">indexing_lexicon</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_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">indexing_fis</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">indexing_fs</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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dict</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">session_closed</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">index_session</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">index_sessions_open</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="function-syntax">Indexing::open_session</span><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</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">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"no tree to index"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">index_sessions_open</span><span class="plain-syntax">++ &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"one indexing session at a time"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">index_session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">session</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">tree</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">session</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">inv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Synoptic::inv</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">session</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">indexing_lexicon</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">session</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">indexing_fis</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">session</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">indexing_fs</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">session</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">dict</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Localisation::new</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">session</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">session_closed</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">session</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<ul class="endnotetexts"><li>The structure index_session is accessed in 2/fi and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. </b>Now localising. You can either set an existing dictionary which you happen
to have to hand, or else ask to read definitions from a file. See <a href="../html-module/2-lcl.html" class="internal">Localisation (in html)</a>
for how all of this works.
</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">Indexing::set_localisation_dictionary</span><span class="plain-syntax">(</span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">, </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-ia.html#SP3_5" class="named-paragraph-link"><span class="named-paragraph">Check this is an open session</span><span class="named-paragraph-number">3.5</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">session</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">dict</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LD</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">Indexing::localise</span><span class="plain-syntax">(</span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><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="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-ia.html#SP3_5" class="named-paragraph-link"><span class="named-paragraph">Check this is an open session</span><span class="named-paragraph-number">3.5</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Localisation::stock_from_file</span><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">dict</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>Now for the productive part. You can make an entire index mini-website with
the following function, which may generate several hundred HTML files. This is
what is used in the Inform GUI apps on every compilation.
</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">Indexing::generate_index_website</span><span class="plain-syntax">(</span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">structure</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-ia.html#SP3_5" class="named-paragraph-link"><span class="named-paragraph">Check this is an open session</span><span class="named-paragraph-number">3.5</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-ii.html#SP1" class="function-link"><span class="function-syntax">InterpretIndex::generate</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">structure</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP3_2" class="paragraph-anchor"></a><b>&#167;3.2. </b>This is a one-off function for generating the content of an index element
(without its heading, or any HTML surround): it's used for unit-testing those
elements, but is never used by the Inform GUI app.
</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">Indexing::generate_one_element</span><span class="plain-syntax">(</span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">elt</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-ia.html#SP3_5" class="named-paragraph-link"><span class="named-paragraph">Check this is an open session</span><span class="named-paragraph-number">3.5</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="3-tpt.html#SP3" class="function-link"><span class="function-syntax">Elements::test_card</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP3_3" class="paragraph-anchor"></a><b>&#167;3.3. </b>This is used by the Inform GUI apps to "release along with an EPS file".
Essentially it makes a print-suitable version of the Map element of the index,
though there are also many bells and whistles for customising the appearance
of this.
</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">Indexing::generate_EPS_map</span><span class="plain-syntax">(</span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><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="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-ia.html#SP3_5" class="named-paragraph-link"><span class="named-paragraph">Check this is an open session</span><span class="named-paragraph-number">3.5</span></a></span><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="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP3_4" class="paragraph-anchor"></a><b>&#167;3.4. </b>And lastly closing. The only thing this now does is to enable a new session
to be opened afterwards, in fact, but that might change in future.
</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">Indexing::close_session</span><span class="plain-syntax">(</span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-ia.html#SP3_5" class="named-paragraph-link"><span class="named-paragraph">Check this is an open session</span><span class="named-paragraph-number">3.5</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">session</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">session_closed</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">index_sessions_open</span><span class="plain-syntax">--;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP3_5" class="paragraph-anchor"></a><b>&#167;3.5. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Check this is an open session</span><span class="named-paragraph-number">3.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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">session</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 indexing session"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">session</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">session_closed</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"closed indexing session"</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="1-ia.html#SP3">&#167;3</a> (twice), <a href="1-ia.html#SP3_1">&#167;3.1</a>, <a href="1-ia.html#SP3_2">&#167;3.2</a>, <a href="1-ia.html#SP3_3">&#167;3.3</a>, <a href="1-ia.html#SP3_4">&#167;3.4</a>, <a href="1-ia.html#SP4">&#167;4</a> (three times), <a href="1-ia.html#SP5">&#167;5</a> (three times).</li></ul>
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>&#167;4. Private API. </b>The remaining functions in this section are for use only within the <a href="index.html" class="internal">index</a>
module.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="function-syntax">Indexing::get_tree</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">Indexing::get_tree</span></span>:<br/>Faux Instances - <a href="2-fi.html#SP10">&#167;10</a><br/>Faux Scenes - <a href="2-fs.html#SP1">&#167;1</a><br/>Behaviour Element - <a href="3-be.html#SP1">&#167;1</a><br/>Card Element - <a href="3-ce.html#SP1">&#167;1</a><br/>Commands Element - <a href="3-ce3.html#SP1">&#167;1</a><br/>Contents Element - <a href="3-ce4.html#SP1">&#167;1</a><br/>Extras Element - <a href="3-ee2.html#SP1">&#167;1</a><br/>Figures Element - <a href="3-fe.html#SP1">&#167;1</a><br/>Grouped Element - <a href="3-ge2.html#SP2">&#167;2</a><br/>Innards Element - <a href="3-ie.html#SP1">&#167;1</a><br/>Phrasebook Element - <a href="3-pe.html#SP1">&#167;1</a><br/>Plot Element - <a href="3-pe2.html#SP1">&#167;1</a><br/>Tokens Element - <a href="3-te2.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-ia.html#SP3_5" class="named-paragraph-link"><span class="named-paragraph">Check this is an open session</span><span class="named-paragraph-number">3.5</span></a></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">session</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">tree</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="function-syntax">Indexing::get_localisation</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">Indexing::get_localisation</span></span>:<br/>Index Interpreter - <a href="2-ii.html#SP1">&#167;1</a>, <a href="2-ii.html#SP2">&#167;2</a><br/>The Periodic Table - <a href="3-tpt.html#SP2">&#167;2</a><br/>Alphabetic Element - <a href="3-ae.html#SP1">&#167;1</a><br/>Arithmetic Element - <a href="3-ae2.html#SP1">&#167;1</a><br/>Behaviour Element - <a href="3-be.html#SP1">&#167;1</a><br/>Chart Element - <a href="3-ce2.html#SP1">&#167;1</a><br/>Commands Element - <a href="3-ce3.html#SP1">&#167;1</a><br/>Contents Element - <a href="3-ce4.html#SP1">&#167;1</a><br/>Events Element - <a href="3-ee.html#SP1">&#167;1</a><br/>Extras Element - <a href="3-ee2.html#SP1">&#167;1</a><br/>Figures Element - <a href="3-fe.html#SP1">&#167;1</a><br/>Gazetteer Element - <a href="3-ge.html#SP1">&#167;1</a><br/>Grouped Element - <a href="3-ge2.html#SP2">&#167;2</a><br/>Innards Element - <a href="3-ie.html#SP1">&#167;1</a><br/>Lexicon Element - <a href="3-le.html#SP1">&#167;1</a><br/>Map Element - <a href="3-me.html#SP1">&#167;1</a>, <a href="3-me.html#SP2">&#167;2</a>, <a href="3-me.html#SP3">&#167;3</a>, <a href="3-me.html#SP4">&#167;4</a>, <a href="3-me.html#SP7">&#167;7</a><br/>Plot Element - <a href="3-pe2.html#SP1">&#167;1</a><br/>Relations Element - <a href="3-re.html#SP1">&#167;1</a><br/>Rules for Scenes Element - <a href="3-rfse.html#SP1">&#167;1</a><br/>Standards Element - <a href="3-se.html#SP1">&#167;1</a><br/>Tables Element - <a href="3-te.html#SP1">&#167;1</a><br/>Tokens Element - <a href="3-te2.html#SP1">&#167;1</a><br/>Values Element - <a href="3-ve.html#SP1">&#167;1</a><br/>Verbs Element - <a href="3-ve2.html#SP1">&#167;1</a><br/>Render HTML Map - <a href="4-rhm.html#SP6">&#167;6</a>, <a href="4-rhm.html#SP7">&#167;7</a>, <a href="4-rhm.html#SP10">&#167;10</a><br/>Render EPS Map - <a href="4-rem.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-ia.html#SP3_5" class="named-paragraph-link"><span class="named-paragraph">Check this is an open session</span><span class="named-paragraph-number">3.5</span></a></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">session</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">dict</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="function-syntax">Indexing::get_inventory</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">Indexing::get_inventory</span></span>:<br/>Faux Instances - <a href="2-fi.html#SP8">&#167;8</a><br/>Faux Scenes - <a href="2-fs.html#SP1">&#167;1</a><br/>Alphabetic Element - <a href="3-ae.html#SP1">&#167;1</a><br/>Arithmetic Element - <a href="3-ae2.html#SP1">&#167;1</a><br/>Behaviour Element - <a href="3-be.html#SP1">&#167;1</a><br/>Chart Element - <a href="3-ce2.html#SP1">&#167;1</a><br/>Contents Element - <a href="3-ce4.html#SP1">&#167;1</a><br/>Events Element - <a href="3-ee.html#SP1">&#167;1</a><br/>Extras Element - <a href="3-ee2.html#SP1">&#167;1</a><br/>Figures Element - <a href="3-fe.html#SP1">&#167;1</a><br/>Grouped Element - <a href="3-ge2.html#SP1">&#167;1</a>, <a href="3-ge2.html#SP2">&#167;2</a><br/>Innards Element - <a href="3-ie.html#SP1">&#167;1</a><br/>Plot Element - <a href="3-pe2.html#SP1">&#167;1</a><br/>Relations Element - <a href="3-re.html#SP1">&#167;1</a><br/>Rules for Scenes Element - <a href="3-rfse.html#SP1">&#167;1</a><br/>Standards Element - <a href="3-se.html#SP1">&#167;1</a><br/>Tables Element - <a href="3-te.html#SP1">&#167;1</a><br/>Values Element - <a href="3-ve.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-ia.html#SP3_5" class="named-paragraph-link"><span class="named-paragraph">Check this is an open session</span><span class="named-paragraph-number">3.5</span></a></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">session</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">inv</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>&#167;5. </b>These more substantial resources are calculated only on demand:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inter_lexicon</span><span class="plain-syntax"> *</span><span class="function-syntax">Indexing::get_lexicon</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">Indexing::get_lexicon</span></span>:<br/>Gazetteer Element - <a href="3-ge.html#SP1">&#167;1</a><br/>Lexicon Element - <a href="3-le.html#SP1">&#167;1</a><br/>Verbs Element - <a href="3-ve2.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-ia.html#SP3_5" class="named-paragraph-link"><span class="named-paragraph">Check this is an open session</span><span class="named-paragraph-number">3.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">session</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">indexing_lexicon</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">session</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">indexing_lexicon</span><span class="plain-syntax"> = </span><a href="2-lxc.html#SP3" class="function-link"><span class="function-syntax">IndexLexicon::stock</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">tree</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">inv</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">session</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">indexing_lexicon</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="function-syntax">Indexing::get_set_of_instances</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">Indexing::get_set_of_instances</span></span>:<br/>Faux Instances - <a href="2-fi.html#SP10">&#167;10</a>, <a href="2-fi.html#SP11">&#167;11</a>, <a href="2-fi.html#SP12">&#167;12</a><br/>Map Element - <a href="3-me.html#SP1">&#167;1</a>, <a href="3-me.html#SP6">&#167;6</a>, <a href="3-me.html#SP7">&#167;7</a><br/>Spatial Map - <a href="4-sm.html#SP7">&#167;7</a>, <a href="4-sm.html#SP7_5">&#167;7.5</a>, <a href="4-sm.html#SP7_21">&#167;7.21</a>, <a href="4-sm.html#SP7_22">&#167;7.22</a>, <a href="4-sm.html#SP41">&#167;41</a>, <a href="4-sm.html#SP42">&#167;42</a><br/>Render HTML Map - <a href="4-rhm.html#SP1">&#167;1</a>, <a href="4-rhm.html#SP6">&#167;6</a>, <a href="4-rhm.html#SP10">&#167;10</a>, <a href="4-rhm.html#SP13">&#167;13</a><br/>Render EPS Map - <a href="4-rem.html#SP1_1">&#167;1.1</a>, <a href="4-rem.html#SP1_2">&#167;1.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-ia.html#SP3_5" class="named-paragraph-link"><span class="named-paragraph">Check this is an open session</span><span class="named-paragraph-number">3.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">session</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">indexing_fis</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><a href="2-fi.html#SP8" class="function-link"><span class="function-syntax">FauxInstances::make_faux</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</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">session</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">indexing_fis</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="function-syntax">Indexing::get_list_of_scenes</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">Indexing::get_list_of_scenes</span></span>:<br/>Plot Element - <a href="3-pe2.html#SP1">&#167;1</a>, <a href="3-pe2.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-ia.html#SP3_5" class="named-paragraph-link"><span class="named-paragraph">Check this is an open session</span><span class="named-paragraph-number">3.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">session</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">indexing_fs</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">session</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">indexing_fs</span><span class="plain-syntax"> = </span><a href="2-fs.html#SP1" class="function-link"><span class="function-syntax">FauxScenes::list_of_faux_scenes</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</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">session</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">indexing_fs</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="1-im.html">&#10094;</a></li><li class="progresscurrentchapter">1</li><li class="progresssection"><a href="1-im.html">im</a></li><li class="progresscurrent">ia</li><li class="progresschapter"><a href="2-il.html">2</a></li><li class="progresschapter"><a href="3-tpt.html">3</a></li><li class="progresschapter"><a href="4-mc.html">4</a></li><li class="progressnext"><a href="2-il.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>
</body>
</html>

View file

@ -93,7 +93,8 @@ which use this module:
</pre>
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. </b></p>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">index_page_CLASS</span>
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">index_session_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">index_page_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">index_element_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">inter_lexicon_CLASS</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">index_lexicon_entry_CLASS</span>
@ -108,6 +109,7 @@ which use this module:
<span class="definition-keyword">enum</span> <span class="constant-syntax">rubric_holder_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">index_session</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">index_element</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">index_page</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_lexicon</span><span class="plain-syntax">)</span>
@ -123,7 +125,7 @@ which use this module:
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="reserved-syntax">rubric_holder</span><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-il.html">2</a></li><li class="progresschapter"><a href="3-tpt.html">3</a></li><li class="progresschapter"><a href="4-mc.html">4</a></li><li class="progressnext"><a href="2-il.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="progresssection"><a href="1-ia.html">ia</a></li><li class="progresschapter"><a href="2-il.html">2</a></li><li class="progresschapter"><a href="3-tpt.html">3</a></li><li class="progresschapter"><a href="4-mc.html">4</a></li><li class="progressnext"><a href="1-ia.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -256,10 +256,11 @@ we may need to keep multiple sets of faux instances, one for each tree. So:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="function-syntax">FauxInstances::make_faux</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">FauxInstances::make_faux</span></span>:<br/>Index Interpreter - <a href="2-ii.html#SP8">&#167;8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IT</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">FauxInstances::make_faux</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">FauxInstances::make_faux</span></span>:<br/>Indexing API - <a href="1-ia.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="2-fi.html#SP6" class="function-link"><span class="function-syntax">FauxInstances::new_empty_set</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">session</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">indexing_fis</span><span class="plain-syntax"> = </span><span class="identifier-syntax">faux_set</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Synoptic::inv</span><span class="plain-syntax">(</span><span class="identifier-syntax">IT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">instance_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_INVENTORY_PACKAGES</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">instance_nodes</span><span class="plain-syntax">)</span>
@ -275,8 +276,7 @@ we may need to keep multiple sets of faux instances, one for each tree. So:
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-fi.html#SP13" class="function-link"><span class="function-syntax">FauxInstances::is_a_door</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)) </span><span class="named-paragraph-container code-font"><a href="2-fi.html#SP8_6" class="named-paragraph-link"><span class="named-paragraph">Cross-reference door adjacencies</span><span class="named-paragraph-number">8.6</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><a href="2-fi.html#SP10" class="function-link"><span class="function-syntax">FauxInstances::decode_hints</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax">, </span><span class="identifier-syntax">IT</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">faux_set</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-fi.html#SP10" class="function-link"><span class="function-syntax">FauxInstances::decode_hints</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP8_1" class="paragraph-anchor"></a><b>&#167;8.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Add a faux instance to the set for this object-instance package</span><span class="named-paragraph-number">8.1</span></span><span class="comment-syntax"> =</span>
@ -402,7 +402,9 @@ and only if needed.
</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">FauxInstances::decode_hints</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">FauxInstances::decode_hints</span></span>:<br/><a href="2-fi.html#SP8">&#167;8</a><br/>Render EPS Map - <a href="4-rem.html#SP1_1">&#167;1.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree</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">FauxInstances::decode_hints</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">FauxInstances::decode_hints</span></span>:<br/><a href="2-fi.html#SP8">&#167;8</a><br/>Render EPS Map - <a href="4-rem.html#SP1_1">&#167;1.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</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">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP5" class="function-link"><span class="function-syntax">Indexing::get_set_of_instances</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_tree</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::by_url</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"/main/completion/mapping_hints"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">hint_pack</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_THROUGH_SUBPACKAGES</span><span class="plain-syntax">(</span><span class="identifier-syntax">hint_pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_mapping_hint"</span><span class="plain-syntax">) {</span>
@ -492,7 +494,7 @@ can only be known once the spatial grid has been found, i.e., on <span class="ex
<span class="plain-syntax"> </span><span class="reserved-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="reserved-syntax">EPS_map_level</span><span 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="element-syntax">contains_rooms</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> &amp;&amp; (</span><span class="identifier-syntax">eml</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">map_level</span><span class="plain-syntax"> - </span><a href="4-sm.html#SP4" class="function-link"><span class="function-syntax">SpatialMap::benchmark_level</span></a><span class="plain-syntax">() == </span><span class="identifier-syntax">scope_level</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> &amp;&amp; (</span><span class="identifier-syntax">eml</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">map_level</span><span class="plain-syntax"> - </span><a href="4-sm.html#SP4" class="function-link"><span class="function-syntax">SpatialMap::benchmark_level</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">) == </span><span class="identifier-syntax">scope_level</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">scope</span><span class="plain-syntax"> = &amp;(</span><span class="identifier-syntax">eml</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">map_parameters</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">scope</span><span class="plain-syntax">) </span><a href="4-mc.html#SP6" class="function-link"><span class="function-syntax">ConfigureIndexMap::put_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">scope</span><span class="plain-syntax">, </span><span class="identifier-syntax">scope_I</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_val</span><span class="plain-syntax">, </span><span class="identifier-syntax">int_val</span><span class="plain-syntax">);</span>
</pre>
@ -500,38 +502,38 @@ can only be known once the spatial grid has been found, i.e., on <span class="ex
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>&#167;11. Instance set properties. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="function-syntax">FauxInstances::start_room</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">FauxInstances::start_room</span></span>:<br/>Map Element - <a href="3-me.html#SP3">&#167;3</a>, <a href="3-me.html#SP7">&#167;7</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">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP8" class="function-link"><span class="function-syntax">InterpretIndex::get_faux_instances</span></a><span class="plain-syntax">();</span>
<span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="function-syntax">FauxInstances::start_room</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">FauxInstances::start_room</span></span>:<br/>Map Element - <a href="3-me.html#SP3">&#167;3</a>, <a href="3-me.html#SP7">&#167;7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP5" class="function-link"><span class="function-syntax">Indexing::get_set_of_instances</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</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_set</span><span class="plain-syntax">-&gt;</span><span class="element-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">FauxInstances::yourself</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">FauxInstances::yourself</span></span>:<br/>Map Element - <a href="3-me.html#SP7">&#167;7</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">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP8" class="function-link"><span class="function-syntax">InterpretIndex::get_faux_instances</span></a><span class="plain-syntax">();</span>
<span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="function-syntax">FauxInstances::yourself</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">FauxInstances::yourself</span></span>:<br/>Map Element - <a href="3-me.html#SP7">&#167;7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP5" class="function-link"><span class="function-syntax">Indexing::get_set_of_instances</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</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_set</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">faux_yourself</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">FauxInstances::benchmark</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">FauxInstances::benchmark</span></span>:<br/>Spatial Map - <a href="4-sm.html#SP4">&#167;4</a>, <a href="4-sm.html#SP7_23">&#167;7.23</a>, <a href="4-sm.html#SP43">&#167;43</a><br/>Render HTML Map - <a href="4-rhm.html#SP11">&#167;11</a>, <a href="4-rhm.html#SP11_1">&#167;11.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">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP8" class="function-link"><span class="function-syntax">InterpretIndex::get_faux_instances</span></a><span class="plain-syntax">();</span>
<span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="function-syntax">FauxInstances::benchmark</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">FauxInstances::benchmark</span></span>:<br/>Spatial Map - <a href="4-sm.html#SP4">&#167;4</a>, <a href="4-sm.html#SP7_23">&#167;7.23</a>, <a href="4-sm.html#SP43">&#167;43</a><br/>Render HTML Map - <a href="4-rhm.html#SP11">&#167;11</a>, <a href="4-rhm.html#SP11_1">&#167;11.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP5" class="function-link"><span class="function-syntax">Indexing::get_set_of_instances</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</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_set</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">faux_benchmark</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">FauxInstances::no_directions</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">FauxInstances::no_directions</span></span>:<br/>Spatial Map - <a href="4-sm.html#SP7_12">&#167;7.12</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">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP8" class="function-link"><span class="function-syntax">InterpretIndex::get_faux_instances</span></a><span class="plain-syntax">();</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">FauxInstances::no_directions</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">FauxInstances::no_directions</span></span>:<br/>Spatial Map - <a href="4-sm.html#SP7_12">&#167;7.12</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP5" class="function-link"><span class="function-syntax">Indexing::get_set_of_instances</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</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_set</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">no_direction_fi</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">FauxInstances::no_rooms</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">FauxInstances::no_rooms</span></span>:<br/>Render HTML Map - <a href="4-rhm.html#SP6">&#167;6</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">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP8" class="function-link"><span class="function-syntax">InterpretIndex::get_faux_instances</span></a><span class="plain-syntax">();</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">FauxInstances::no_rooms</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">FauxInstances::no_rooms</span></span>:<br/>Render HTML Map - <a href="4-rhm.html#SP6">&#167;6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP5" class="function-link"><span class="function-syntax">Indexing::get_set_of_instances</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</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_set</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">no_room_fi</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. Individual instance properties. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">FauxInstances::get_name</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">FauxInstances::get_name</span></span>:<br/>Map Element - <a href="3-me.html#SP1_2_1">&#167;1.2.1</a><br/>Spatial Map - <a href="4-sm.html#SP42">&#167;42</a><br/>Render HTML Map - <a href="4-rhm.html#SP6_3_4">&#167;6.3.4</a>, <a href="4-rhm.html#SP11">&#167;11</a>, <a href="4-rhm.html#SP13">&#167;13</a>, <a href="4-rhm.html#SP13_1">&#167;13.1</a><br/>Render EPS Map - <a href="4-rem.html#SP3_2">&#167;3.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">FauxInstances::get_name</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">FauxInstances::get_name</span></span>:<br/>Map Element - <a href="3-me.html#SP1_2_1">&#167;1.2.1</a><br/>Spatial Map - <a href="4-sm.html#SP42">&#167;42</a><br/>Render HTML Map - <a href="4-rhm.html#SP6_3_4">&#167;6.3.4</a>, <a href="4-rhm.html#SP11">&#167;11</a>, <a href="4-rhm.html#SP13">&#167;13</a>, <a href="4-rhm.html#SP13_1">&#167;13.1</a><br/>Render EPS Map - <a href="4-rem.html#SP2_2">&#167;2.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">name</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
@ -594,7 +596,7 @@ can only be known once the spatial grid has been found, i.e., on <span class="ex
<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">FauxInstances::is_a_room</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">FauxInstances::is_a_room</span></span>:<br/><a href="2-fi.html#SP7">&#167;7</a>, <a href="2-fi.html#SP8">&#167;8</a>, <a href="2-fi.html#SP8_1">&#167;8.1</a><br/>Map Element - <a href="3-me.html#SP2">&#167;2</a>, <a href="3-me.html#SP2_3_1">&#167;2.3.1</a>, <a href="3-me.html#SP3">&#167;3</a>, <a href="3-me.html#SP6">&#167;6</a><br/>Spatial Map - <a href="4-sm.html#SP7_15">&#167;7.15</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">I</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">FauxInstances::is_a_room</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">FauxInstances::is_a_room</span></span>:<br/><a href="2-fi.html#SP7">&#167;7</a>, <a href="2-fi.html#SP8">&#167;8</a>, <a href="2-fi.html#SP8_1">&#167;8.1</a><br/>Map Element - <a href="3-me.html#SP2">&#167;2</a>, <a href="3-me.html#SP2_3_1">&#167;2.3.1</a>, <a href="3-me.html#SP3">&#167;3</a>, <a href="3-me.html#SP6">&#167;6</a><br/>Spatial Map - <a href="4-sm.html#SP7_15">&#167;7.15</a><br/>Render EPS Map - <a href="4-rem.html#SP1_2_1_6">&#167;1.2.1.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">I</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">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">Metadata::read_optional_numeric</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">package</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_room"</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>
@ -680,7 +682,7 @@ can only be known once the spatial grid has been found, i.e., on <span class="ex
<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="reserved-syntax">map_parameter_scope</span><span class="plain-syntax"> *</span><span class="function-syntax">FauxInstances::get_parameters</span><button class="popup" onclick="togglePopup('usagePopup41')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup41">Usage of <span class="code-font"><span class="function-syntax">FauxInstances::get_parameters</span></span>:<br/>Map Configuration - <a href="4-mc.html#SP6">&#167;6</a><br/>Render EPS Map - <a href="4-rem.html#SP1_1_2">&#167;1.1.2</a>, <a href="4-rem.html#SP1_1_3">&#167;1.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">I</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">map_parameter_scope</span><span class="plain-syntax"> *</span><span class="function-syntax">FauxInstances::get_parameters</span><button class="popup" onclick="togglePopup('usagePopup41')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup41">Usage of <span class="code-font"><span class="function-syntax">FauxInstances::get_parameters</span></span>:<br/>Map Configuration - <a href="4-mc.html#SP6">&#167;6</a><br/>Render EPS Map - <a href="4-rem.html#SP1_1_2">&#167;1.1.2</a>, <a href="4-rem.html#SP1_1_3">&#167;1.1.3</a>, <a href="4-rem.html#SP1_2_1_5">&#167;1.2.1.5</a>, <a href="4-rem.html#SP1_2_1_6">&#167;1.2.1.6</a>, <a href="4-rem.html#SP1_2_1_6_1">&#167;1.2.1.6.1</a>, <a href="4-rem.html#SP1_2_1_7">&#167;1.2.1.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">I</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> &amp;(</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">local_map_parameters</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>

View file

@ -101,7 +101,20 @@ annotated.
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">simplified_connector</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">simplified_scene</span><span class="plain-syntax"> *</span><span class="function-syntax">FauxScenes::simplified</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">FauxScenes::simplified</span></span>:<br/>Plot Element - <a href="3-pe2.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc_pack</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="function-syntax">FauxScenes::list_of_faux_scenes</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">FauxScenes::list_of_faux_scenes</span></span>:<br/>Indexing API - <a href="1-ia.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">simplified_scene</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_tree</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">scene_nodes</span><span class="plain-syntax">, </span><a href="3-pe2.html#SP4" class="function-link"><span class="function-syntax">PlotElement::scene_order</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">rulebook_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">scene_pack</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_INVENTORY_PACKAGES</span><span class="plain-syntax">(</span><span class="identifier-syntax">scene_pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">scene_nodes</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><a href="2-fs.html#SP1" class="function-link"><span class="function-syntax">FauxScenes::simplified</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">scene_pack</span><span class="plain-syntax">), </span><span class="reserved-syntax">simplified_scene</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">simplified_scene</span><span class="plain-syntax"> *</span><span class="function-syntax">FauxScenes::simplified</span><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc_pack</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">simplified_scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ssc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">simplified_scene</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ssc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sc_pack</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ssc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">no_ends</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>

View file

@ -72,7 +72,7 @@ function togglePopup(material_id) {
<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">index</a></li><li><a href="index.html#2">Chapter 2: Utilities</a></li><li><b>Index Interpreter</b></li></ul></div>
<p class="purpose">An index is generated by interpreting an index structure file.</p>
<ul class="toc"><li><a href="2-ii.html#SP4">&#167;4. Registering</a></li><li><a href="2-ii.html#SP6">&#167;6. Current</a></li><li><a href="2-ii.html#SP9">&#167;9. Opening and closing HTML files</a></li></ul><hr class="tocbar">
<ul class="toc"><li><a href="2-ii.html#SP3">&#167;3. Registering</a></li><li><a href="2-ii.html#SP5">&#167;5. Opening and closing HTML files</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </b>The index is generated by a bare-bones structure file. These are identified
by name: in particular <span class="extract"><span class="extract-syntax">Basic</span></span> is the barer version, for Basic Inform projects,
@ -104,20 +104,19 @@ by the function <a href="3-ae2.html#SP1" class="internal">ArithmeticElement::ren
</p>
<p class="commentary">The method here is basically to read all the declarations, generating a set
of <a href="2-ii.html#SP4" class="internal">index_page</a> and <a href="2-ii.html#SP5" class="internal">index_element</a> objects to represent them, and only to
of <a href="2-ii.html#SP3" class="internal">index_page</a> and <a href="2-ii.html#SP4" class="internal">index_element</a> objects to represent them, and only to
begin writing some HTML when this scanning is done, i.e., when the whole structure
file has been read.
</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">InterpretIndex::generate</span><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">structure</span><span class="plain-syntax">, </span><span class="identifier-syntax">localisation_dictionary</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-ii.html#SP6" class="function-link"><span class="function-syntax">InterpretIndex::set_tree</span></a><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">InterpretIndex::generate</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">InterpretIndex::generate</span></span>:<br/>Indexing API - <a href="1-ia.html#SP3_1">&#167;3.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">structure</span><span class="plain-syntax">, </span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">index_structure</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InstalledFiles::index_structure_file</span><span class="plain-syntax">(</span><span class="identifier-syntax">structure</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">index_generation_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">igs</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-ii.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Initialise IGS</span><span class="named-paragraph-number">1.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-ii.html#SP1_3" class="named-paragraph-link"><span class="named-paragraph">Read the structure file line by line</span><span class="named-paragraph-number">1.3</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-ii.html#SP1_4" class="named-paragraph-link"><span class="named-paragraph">Actually generate the index files</span><span class="named-paragraph-number">1.4</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-ii.html#SP6" class="function-link"><span class="function-syntax">InterpretIndex::set_tree</span></a><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="SP1_1" class="paragraph-anchor"></a><b>&#167;1.1. </b>This little structure is just some state being carried by the reader-function
@ -126,7 +125,7 @@ which goes through the <span class="extract"><span class="extract-syntax">.index
<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">index_generation_state</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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dict</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">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</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">pages</span><span class="plain-syntax">; </span><span class="comment-syntax"> of </span><span class="extract"><span class="extract-syntax">index_page</span></span>
<span class="plain-syntax">} </span><span class="reserved-syntax">index_generation_state</span><span class="plain-syntax">;</span>
</pre>
@ -136,7 +135,7 @@ which goes through the <span class="extract"><span class="extract-syntax">.index
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">igs</span><span class="plain-syntax">.</span><span class="element-syntax">pages</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">index_page</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">igs</span><span class="plain-syntax">.</span><span class="element-syntax">dict</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">igs</span><span class="plain-syntax">.</span><span class="element-syntax">session</span><span class="plain-syntax"> = </span><span class="identifier-syntax">session</span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-ii.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">Read the structure file line by line</span><span class="named-paragraph-number">1.3</span></span><span class="comment-syntax"> =</span>
@ -160,9 +159,9 @@ pages.
</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">InterpretIndex::read_structure</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">InterpretIndex::read_structure</span></span>:<br/><a href="2-ii.html#SP1_3">&#167;1.3</a></span></button><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="identifier-syntax">text_file_position</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tfp</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">state</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InterpretIndex::read_structure</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">InterpretIndex::read_structure</span></span>:<br/><a href="2-ii.html#SP1_3">&#167;1.3</a></span></button><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="identifier-syntax">text_file_position</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tfp</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">state</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">index_generation_state</span><span class="plain-syntax"> *</span><span class="identifier-syntax">igs</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">index_generation_state</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">state</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><span class="identifier-syntax">igs</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">dict</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">igs</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">match_results</span><span class="plain-syntax"> </span><span class="identifier-syntax">mr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Regexp::create_mr</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Regexp::match</span><span class="plain-syntax">(&amp;</span><span class="identifier-syntax">mr</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"page (%C+) (%C+)"</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-ii.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Register a new index page</span><span class="named-paragraph-number">2.1</span></a></span><span class="plain-syntax">;</span>
@ -194,7 +193,7 @@ will be <span class="extract"><span class="extract-syntax">Kinds.html</span></sp
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">path</span><span class="plain-syntax">, </span><span class="string-syntax">"Index.Pages.%S.Caption"</span><span class="plain-syntax">, </span><span class="identifier-syntax">key</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">explanation</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Localisation::read</span><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="identifier-syntax">path</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">path</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">index_page</span><span class="plain-syntax"> *</span><span class="identifier-syntax">new_page</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP4" class="function-link"><span class="function-syntax">InterpretIndex::register_page</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">col</span><span class="plain-syntax">, </span><span class="identifier-syntax">heading</span><span class="plain-syntax">, </span><span class="identifier-syntax">explanation</span><span class="plain-syntax">, </span><span class="identifier-syntax">key</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">index_page</span><span class="plain-syntax"> *</span><span class="identifier-syntax">new_page</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP3" class="function-link"><span class="function-syntax">InterpretIndex::register_page</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">col</span><span class="plain-syntax">, </span><span class="identifier-syntax">heading</span><span class="plain-syntax">, </span><span class="identifier-syntax">explanation</span><span class="plain-syntax">, </span><span class="identifier-syntax">key</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">new_page</span><span class="plain-syntax">, </span><span class="reserved-syntax">index_page</span><span class="plain-syntax">, </span><span class="identifier-syntax">igs</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">pages</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-ii.html#SP2">&#167;2</a> (twice).</li></ul>
@ -209,7 +208,7 @@ will be <span class="extract"><span class="extract-syntax">Kinds.html</span></sp
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">hkey</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">tkey</span><span class="plain-syntax">, </span><span class="string-syntax">"Index.Elements.%S.Title"</span><span class="plain-syntax">, </span><span class="identifier-syntax">elt</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">hkey</span><span class="plain-syntax">, </span><span class="string-syntax">"Index.Elements.%S.Heading"</span><span class="plain-syntax">, </span><span class="identifier-syntax">elt</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ii.html#SP5" class="function-link"><span class="function-syntax">InterpretIndex::register_element</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">latest</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="2-ii.html#SP4" class="function-link"><span class="function-syntax">InterpretIndex::register_element</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">latest</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Localisation::read</span><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="identifier-syntax">tkey</span><span class="plain-syntax">), </span><span class="identifier-syntax">hkey</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">tkey</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">hkey</span><span class="plain-syntax">)</span>
@ -225,31 +224,17 @@ will be <span class="extract"><span class="extract-syntax">Kinds.html</span></sp
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">leafname</span><span class="plain-syntax">, </span><span class="string-syntax">"%S.html"</span><span class="plain-syntax">, </span><span class="identifier-syntax">page</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">page_leafname</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">key</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">key</span><span class="plain-syntax">, </span><span class="string-syntax">"Index.Pages.%S.Title"</span><span class="plain-syntax">, </span><span class="identifier-syntax">page</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">page_leafname</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">OUT</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><a href="2-ii.html#SP9" class="function-link"><span class="function-syntax">InterpretIndex::open_file</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">page</span><span class="plain-syntax">, </span><span class="identifier-syntax">leafname</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Localisation::read</span><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="identifier-syntax">key</span><span class="plain-syntax">), -1, </span><span class="identifier-syntax">D</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-tpt.html#SP2" class="function-link"><span class="function-syntax">Elements::periodic_table</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">page</span><span class="plain-syntax">, </span><span class="identifier-syntax">leafname</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-ii.html#SP10" class="function-link"><span class="function-syntax">InterpretIndex::close_index_file</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">text_stream</span><span class="plain-syntax"> </span><span class="identifier-syntax">index_file_struct</span><span class="plain-syntax">; </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax"> = &amp;</span><span class="identifier-syntax">index_file_struct</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-ii.html#SP5" class="function-link"><span class="function-syntax">InterpretIndex::open_file</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">page</span><span class="plain-syntax">, </span><span class="identifier-syntax">leafname</span><span class="plain-syntax">, </span><span class="identifier-syntax">Localisation::read</span><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="identifier-syntax">key</span><span class="plain-syntax">), -1, </span><span class="identifier-syntax">D</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-tpt.html#SP2" class="function-link"><span class="function-syntax">Elements::periodic_table</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">page</span><span class="plain-syntax">, </span><span class="identifier-syntax">leafname</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ii.html#SP6" class="function-link"><span class="function-syntax">InterpretIndex::close_index_file</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">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">key</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">leafname</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><a href="3-ge2.html#SP2" class="function-link"><span class="function-syntax">GroupedElement::detail_pages</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-ge2.html#SP2" class="function-link"><span class="function-syntax">GroupedElement::detail_pages</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-ii.html#SP1">&#167;1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. </b>This is a one-off function for generating the content of an index element
(without its heading, or any HTML surround): it's used for unit-testing those
elements.
</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">InterpretIndex::generate_one_element</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">elt</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</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-ii.html#SP6" class="function-link"><span class="function-syntax">InterpretIndex::set_tree</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="3-tpt.html#SP3" class="function-link"><span class="function-syntax">Elements::test_card</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">elt</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-ii.html#SP6" class="function-link"><span class="function-syntax">InterpretIndex::set_tree</span></a><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="SP4" class="paragraph-anchor"></a><b>&#167;4. Registering. </b>So, then, here are the objects representing the index pages and their elements
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. Registering. </b>So, then, here are the objects representing the index pages and their elements
of content:
</p>
@ -263,7 +248,7 @@ of content:
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">index_page</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">index_page</span><span class="plain-syntax"> *</span><span class="function-syntax">InterpretIndex::register_page</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">InterpretIndex::register_page</span></span>:<br/><a href="2-ii.html#SP2_1">&#167;2.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">col</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">title</span><span class="plain-syntax">,</span>
<span class="reserved-syntax">index_page</span><span class="plain-syntax"> *</span><span class="function-syntax">InterpretIndex::register_page</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">InterpretIndex::register_page</span></span>:<br/><a href="2-ii.html#SP2_1">&#167;2.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">col</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">title</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">exp</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">index_page</span><span class="plain-syntax"> *</span><span class="identifier-syntax">new_page</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">index_page</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">new_page</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">no_elements</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
@ -275,7 +260,7 @@ of content:
<span class="plain-syntax">}</span>
</pre>
<ul class="endnotetexts"><li>The structure index_page is accessed in 2/sas, 3/tpt and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>&#167;5. </b></p>
<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">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">index_element</span><span class="plain-syntax"> {</span>
@ -287,7 +272,7 @@ of content:
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
<span class="plain-syntax">} </span><span class="reserved-syntax">index_element</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">index_element</span><span class="plain-syntax"> *</span><span class="function-syntax">InterpretIndex::register_element</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">InterpretIndex::register_element</span></span>:<br/><a href="2-ii.html#SP2_2">&#167;2.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">abb</span><span class="plain-syntax">, </span><span class="reserved-syntax">index_page</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax">,</span>
<span class="reserved-syntax">index_element</span><span class="plain-syntax"> *</span><span class="function-syntax">InterpretIndex::register_element</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">InterpretIndex::register_element</span></span>:<br/><a href="2-ii.html#SP2_2">&#167;2.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">abb</span><span class="plain-syntax">, </span><span class="reserved-syntax">index_page</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</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">title</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">explanation</span><span 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">NULL</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">"template creates index elements improperly"</span><span class="plain-syntax">);</span>
@ -303,60 +288,14 @@ of content:
<span class="plain-syntax">}</span>
</pre>
<ul class="endnotetexts"><li>The structure index_element is accessed in 2/sas, 3/tpt and here.</li></ul>
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>&#167;6. Current. </b>A clumsy convenience: keeping track of the page currently being written, and
of the Inter tree currently being indexed.
</p>
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>&#167;5. Opening and closing HTML files. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">index_page</span><span class="plain-syntax"> *</span><span class="identifier-syntax">current_index_page</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">InterpretIndex::set_page</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">InterpretIndex::set_page</span></span>:<br/><a href="2-ii.html#SP9">&#167;9</a>, <a href="2-ii.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">index_page</span><span class="plain-syntax"> *</span><span class="identifier-syntax">page</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">current_index_page</span><span class="plain-syntax"> = </span><span class="identifier-syntax">page</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">index_page</span><span class="plain-syntax"> *</span><span class="function-syntax">InterpretIndex::get_page</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">InterpretIndex::get_page</span></span>:<br/>Styles and Scripts - <a href="2-sas.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">current_index_page</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">indexing_tree</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">InterpretIndex::set_tree</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">InterpretIndex::set_tree</span></span>:<br/><a href="2-ii.html#SP1">&#167;1</a>, <a href="2-ii.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</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_tree</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">inter_tree</span><span class="plain-syntax"> *</span><span class="function-syntax">InterpretIndex::get_tree</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">InterpretIndex::get_tree</span></span>:<br/>Alphabetic Element - <a href="3-ae.html#SP1">&#167;1</a><br/>Arithmetic Element - <a href="3-ae2.html#SP1">&#167;1</a><br/>Behaviour Element - <a href="3-be.html#SP1">&#167;1</a><br/>Card Element - <a href="3-ce.html#SP1">&#167;1</a><br/>Chart Element - <a href="3-ce2.html#SP1">&#167;1</a><br/>Commands Element - <a href="3-ce3.html#SP1">&#167;1</a><br/>Contents Element - <a href="3-ce4.html#SP1">&#167;1</a><br/>Events Element - <a href="3-ee.html#SP1">&#167;1</a><br/>Extras Element - <a href="3-ee2.html#SP1">&#167;1</a><br/>Figures Element - <a href="3-fe.html#SP1">&#167;1</a><br/>Grouped Element - <a href="3-ge2.html#SP1">&#167;1</a>, <a href="3-ge2.html#SP2">&#167;2</a><br/>Innards Element - <a href="3-ie.html#SP1">&#167;1</a><br/>Phrasebook Element - <a href="3-pe.html#SP1">&#167;1</a><br/>Plot Element - <a href="3-pe2.html#SP1">&#167;1</a><br/>Relations Element - <a href="3-re.html#SP1">&#167;1</a><br/>Rules for Scenes Element - <a href="3-rfse.html#SP1">&#167;1</a><br/>Standards Element - <a href="3-se.html#SP1">&#167;1</a><br/>Tables Element - <a href="3-te.html#SP1">&#167;1</a><br/>Tokens Element - <a href="3-te2.html#SP1">&#167;1</a><br/>Values Element - <a href="3-ve.html#SP1">&#167;1</a><br/>Render EPS Map - <a href="4-rem.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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">indexing_tree</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 indexing tree"</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_tree</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></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inter_lexicon</span><span class="plain-syntax"> *</span><span class="identifier-syntax">indexing_lexicon</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">inter_lexicon</span><span class="plain-syntax"> *</span><span class="function-syntax">InterpretIndex::get_lexicon</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">InterpretIndex::get_lexicon</span></span>:<br/>Gazetteer Element - <a href="3-ge.html#SP1">&#167;1</a><br/>Lexicon Element - <a href="3-le.html#SP1">&#167;1</a><br/>Verbs Element - <a href="3-ve2.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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">indexing_lexicon</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">indexing_tree</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 indexing lexicon"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">indexing_lexicon</span><span class="plain-syntax"> = </span><a href="2-lxc.html#SP3" class="function-link"><span class="function-syntax">IndexLexicon::stock</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">indexing_tree</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">indexing_lexicon</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></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">indexing_fis</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="function-syntax">InterpretIndex::get_faux_instances</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">InterpretIndex::get_faux_instances</span></span>:<br/>Faux Instances - <a href="2-fi.html#SP11">&#167;11</a>, <a href="2-fi.html#SP12">&#167;12</a><br/>Map Element - <a href="3-me.html#SP1">&#167;1</a>, <a href="3-me.html#SP6">&#167;6</a>, <a href="3-me.html#SP7">&#167;7</a><br/>Spatial Map - <a href="4-sm.html#SP7">&#167;7</a>, <a href="4-sm.html#SP7_5">&#167;7.5</a>, <a href="4-sm.html#SP7_21">&#167;7.21</a>, <a href="4-sm.html#SP7_22">&#167;7.22</a>, <a href="4-sm.html#SP41">&#167;41</a>, <a href="4-sm.html#SP42">&#167;42</a><br/>Render HTML Map - <a href="4-rhm.html#SP1">&#167;1</a>, <a href="4-rhm.html#SP6">&#167;6</a>, <a href="4-rhm.html#SP10">&#167;10</a>, <a href="4-rhm.html#SP13">&#167;13</a><br/>Render EPS Map - <a href="4-rem.html#SP1_1">&#167;1.1</a>, <a href="4-rem.html#SP2">&#167;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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">indexing_fis</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">indexing_tree</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 indexing lexicon"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">indexing_fis</span><span class="plain-syntax"> = </span><a href="2-fi.html#SP8" class="function-link"><span class="function-syntax">FauxInstances::make_faux</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">indexing_tree</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">indexing_fis</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. Opening and closing HTML files. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> </span><span class="identifier-syntax">index_file_struct</span><span class="plain-syntax">; </span><span class="comment-syntax"> The current index file being written</span>
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">InterpretIndex::open_file</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">InterpretIndex::open_file</span></span>:<br/><a href="2-ii.html#SP1_4">&#167;1.4</a><br/>Grouped Element - <a href="3-ge2.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">index_page</span><span class="plain-syntax"> *</span><span class="identifier-syntax">page</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">index_leaf</span><span class="plain-syntax">,</span>
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">InterpretIndex::open_file</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">InterpretIndex::open_file</span></span>:<br/><a href="2-ii.html#SP1_4">&#167;1.4</a><br/>Grouped Element - <a href="3-ge2.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">IF</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">index_page</span><span class="plain-syntax"> *</span><span class="identifier-syntax">page</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">index_leaf</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">title</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">sub</span><span class="plain-syntax">, </span><span class="identifier-syntax">localisation_dictionary</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">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><a href="2-il.html#SP3" class="function-link"><span class="function-syntax">IndexLocations::filename</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">index_leaf</span><span class="plain-syntax">, </span><span class="identifier-syntax">sub</span><span 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">(&amp;</span><span class="identifier-syntax">index_file_struct</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">UTF8_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="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">IF</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">UTF8_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">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">CORE_MODULE</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 index file"</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
@ -364,21 +303,19 @@ of the Inter tree currently being indexed.
<span class="plain-syntax"> </span><span class="identifier-syntax">Errors::fatal_with_file</span><span class="plain-syntax">(</span><span class="string-syntax">"can't open index file"</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</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">OUT</span><span class="plain-syntax"> = &amp;</span><span class="identifier-syntax">index_file_struct</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-ii.html#SP6" class="function-link"><span class="function-syntax">InterpretIndex::set_page</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">page</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::header</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">title</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::header</span><span class="plain-syntax">(</span><span class="identifier-syntax">IF</span><span class="plain-syntax">, </span><span class="identifier-syntax">title</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InstalledFiles::filename</span><span class="plain-syntax">(</span><span class="identifier-syntax">CSS_FOR_STANDARD_PAGES_IRES</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InstalledFiles::filename</span><span class="plain-syntax">(</span><span class="identifier-syntax">JAVASCRIPT_FOR_STANDARD_PAGES_IRES</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">OUT</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InstalledFiles::filename</span><span class="plain-syntax">(</span><span class="identifier-syntax">JAVASCRIPT_FOR_STANDARD_PAGES_IRES</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> (</span><span class="reserved-syntax">void</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">page</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">IF</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></p>
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>&#167;6. </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">InterpretIndex::close_index_file</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">InterpretIndex::close_index_file</span></span>:<br/><a href="2-ii.html#SP1_4">&#167;1.4</a><br/>Grouped Element - <a href="3-ge2.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ifl</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InterpretIndex::close_index_file</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">InterpretIndex::close_index_file</span></span>:<br/><a href="2-ii.html#SP1_4">&#167;1.4</a><br/>Grouped Element - <a href="3-ge2.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ifl</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::footer</span><span class="plain-syntax">(</span><span class="identifier-syntax">ifl</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">ifl</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-ii.html#SP6" class="function-link"><span class="function-syntax">InterpretIndex::set_page</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">

View file

@ -104,7 +104,7 @@ provides details page number 21 about actions, derived from the leafname <span c
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="function-syntax">IndexLocations::filename</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">IndexLocations::filename</span></span>:<br/>Index Interpreter - <a href="2-ii.html#SP9">&#167;9</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</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="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="function-syntax">IndexLocations::filename</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">IndexLocations::filename</span></span>:<br/>Index Interpreter - <a href="2-ii.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</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">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">full_leafname</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">full_leafname</span><span class="plain-syntax">, </span><span class="string-syntax">"%d_%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
@ -128,7 +128,7 @@ provides details page number 21 about actions, derived from the leafname <span c
<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">il</li><li class="progresssection"><a href="2-ii.html">ii</a></li><li class="progresssection"><a href="2-sas.html">sas</a></li><li class="progresssection"><a href="2-iu.html">iu</a></li><li class="progresssection"><a href="2-ir.html">ir</a></li><li class="progresssection"><a href="2-lxc.html">lxc</a></li><li class="progresssection"><a href="2-fi.html">fi</a></li><li class="progresssection"><a href="2-fs.html">fs</a></li><li class="progresschapter"><a href="3-tpt.html">3</a></li><li class="progresschapter"><a href="4-mc.html">4</a></li><li class="progressnext"><a href="2-ii.html">&#10095;</a></li></ul></div>
<ul class="progressbar"><li class="progressprev"><a href="1-ia.html">&#10094;</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresscurrent">il</li><li class="progresssection"><a href="2-ii.html">ii</a></li><li class="progresssection"><a href="2-sas.html">sas</a></li><li class="progresssection"><a href="2-iu.html">iu</a></li><li class="progresssection"><a href="2-ir.html">ir</a></li><li class="progresssection"><a href="2-lxc.html">lxc</a></li><li class="progresssection"><a href="2-fi.html">fi</a></li><li class="progresssection"><a href="2-fs.html">fs</a></li><li class="progresschapter"><a href="3-tpt.html">3</a></li><li class="progresschapter"><a href="4-mc.html">4</a></li><li class="progressnext"><a href="2-ii.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
</main>

View file

@ -125,11 +125,10 @@ order, then sorted.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inter_lexicon</span><span class="plain-syntax"> *</span><span class="function-syntax">IndexLexicon::stock</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">IndexLexicon::stock</span></span>:<br/>Index Interpreter - <a href="2-ii.html#SP7">&#167;7</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">inter_lexicon</span><span class="plain-syntax"> *</span><span class="function-syntax">IndexLexicon::stock</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">IndexLexicon::stock</span></span>:<br/>Indexing API - <a href="1-ia.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_lexicon</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lexicon</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">inter_lexicon</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">lexicon</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">first</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">lexicon</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">unsorted</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">index_lexicon_entry</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Synoptic::inv</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="2-lxc.html#SP3_1" class="named-paragraph-link"><span class="named-paragraph">Add verb entries</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="2-lxc.html#SP3_2" class="named-paragraph-link"><span class="named-paragraph">Add preposition entries</span><span class="named-paragraph-number">3.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-lxc.html#SP3_3" class="named-paragraph-link"><span class="named-paragraph">Add adjective entries</span><span class="named-paragraph-number">3.3</span></a></span><span class="plain-syntax">;</span>

View file

@ -72,17 +72,21 @@ failing to link to said files correctly.
<p class="commentary">But it means every HTML page in the index has to embed its own CSS and
Javascript, and this is done with a callback function which allows us to insert
material into the head of an HTML page when it is opened for output:
material into the head of an HTML page when it is opened for output. Note that
the function acts only when the page was created with <span class="extract"><span class="extract-syntax">state</span></span>, which will only
happen when it was created by <a href="index.html" class="internal">index</a>.
</p>
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">ADDITIONAL_SCRIPTING_HTML_CALLBACK</span><span class="plain-syntax"> </span><a href="2-sas.html#SP1" class="function-link"><span class="function-syntax">IndexStyles::incorporate</span></a>
</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">IndexStyles::incorporate</span><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">index_page</span><span class="plain-syntax"> *</span><span class="identifier-syntax">current_page</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP6" class="function-link"><span class="function-syntax">InterpretIndex::get_page</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">current_page</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="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-sas.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Incorporate some CSS</span><span class="named-paragraph-number">1.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-sas.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Incorporate some Javascript</span><span class="named-paragraph-number">1.2</span></a></span><span class="plain-syntax">;</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IndexStyles::incorporate</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">state</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">state</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">index_page</span><span class="plain-syntax"> *</span><span class="identifier-syntax">current_page</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">index_page</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">state</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">current_page</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="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-sas.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Incorporate some CSS</span><span class="named-paragraph-number">1.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-sas.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Incorporate some Javascript</span><span class="named-paragraph-number">1.2</span></a></span><span class="plain-syntax">;</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>The CSS is mostly the same every time and is therefore mostly loaded from an

View file

@ -76,9 +76,9 @@ function togglePopup(material_id) {
</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">AlphabeticElement::render</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">AlphabeticElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP6" class="function-link"><span class="function-syntax">InterpretIndex::get_tree</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Synoptic::inv</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">AlphabeticElement::render</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">AlphabeticElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">action_nodes</span><span class="plain-syntax">, </span><a href="3-ae.html#SP4" class="function-link"><span class="function-syntax">AlphabeticElement::alphabetical_order</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::begin_html_table</span><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">FALSE</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">0</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>

View file

@ -77,9 +77,9 @@ so we do little more than tabulate that data here.
</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">ArithmeticElement::render</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">ArithmeticElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP6" class="function-link"><span class="function-syntax">InterpretIndex::get_tree</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Synoptic::inv</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">ArithmeticElement::render</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">ArithmeticElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">kind_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">multiplication_rule_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</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">"hr"</span><span class="plain-syntax">);</span>

View file

@ -76,9 +76,10 @@ function togglePopup(material_id) {
</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">BehaviourElement::render</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">BehaviourElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP6" class="function-link"><span class="function-syntax">InterpretIndex::get_tree</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Synoptic::inv</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">BehaviourElement::render</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">BehaviourElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_tree</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</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">num_naps</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TreeLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">named_action_pattern_nodes</span><span class="plain-syntax">);</span>

View file

@ -78,8 +78,8 @@ simplified form of the iFiction record, without the XML overhead.
</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">CardElement::render</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">CardElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP6" class="function-link"><span class="function-syntax">InterpretIndex::get_tree</span></a><span class="plain-syntax">();</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CardElement::render</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">CardElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_tree</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::by_url</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"/main/completion/bibliographic"</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>

View file

@ -79,9 +79,9 @@ and it is quite dense with information.
</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">ChartElement::render</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">ChartElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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">localisation_dictionary</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">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP6" class="function-link"><span class="function-syntax">InterpretIndex::get_tree</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Synoptic::inv</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">ChartElement::render</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">ChartElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">kind_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">instance_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::begin_wide_html_table</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>

View file

@ -77,8 +77,9 @@ 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">CommandsElement::render</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">CommandsElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP6" class="function-link"><span class="function-syntax">InterpretIndex::get_tree</span></a><span class="plain-syntax">();</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CommandsElement::render</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">CommandsElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_tree</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">entries</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">command_index_entry</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-ce3.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Create the entries for the command list</span><span class="named-paragraph-number">1.1</span></a></span><span class="plain-syntax">;</span>

View file

@ -76,9 +76,10 @@ function togglePopup(material_id) {
</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">ContentsElement::render</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">ContentsElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP6" class="function-link"><span class="function-syntax">InterpretIndex::get_tree</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Synoptic::inv</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">ContentsElement::render</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">ContentsElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_tree</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">extension_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::category_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">heading_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>

View file

@ -76,9 +76,9 @@ function togglePopup(material_id) {
</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">EventsElement::render</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">EventsElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP6" class="function-link"><span class="function-syntax">InterpretIndex::get_tree</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Synoptic::inv</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">EventsElement::render</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">EventsElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">rule_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</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">when_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">tt_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>

View file

@ -77,9 +77,10 @@ really, and most of the code here is just to arrange them in some logical 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">ExtrasElement::render</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">ExtrasElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP6" class="function-link"><span class="function-syntax">InterpretIndex::get_tree</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Synoptic::inv</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">ExtrasElement::render</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">ExtrasElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_tree</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">rulebook_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">activity_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>

View file

@ -78,9 +78,10 @@ function togglePopup(material_id) {
</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">FiguresElement::render</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">FiguresElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP6" class="function-link"><span class="function-syntax">InterpretIndex::get_tree</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Synoptic::inv</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">FiguresElement::render</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">FiguresElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_tree</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">figure_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">sound_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">file_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>

View file

@ -75,8 +75,9 @@ 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">GazetteerElement::render</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">GazetteerElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-lxc.html#SP6" class="function-link"><span class="function-syntax">IndexLexicon::listing</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><a href="2-ii.html#SP7" class="function-link"><span class="function-syntax">InterpretIndex::get_lexicon</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">GazetteerElement::render</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">GazetteerElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-lxc.html#SP6" class="function-link"><span class="function-syntax">IndexLexicon::listing</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><a href="1-ia.html#SP5" class="function-link"><span class="function-syntax">Indexing::get_lexicon</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">), </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">

View file

@ -76,9 +76,8 @@ function togglePopup(material_id) {
</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">GroupedElement::render</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">GroupedElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP6" class="function-link"><span class="function-syntax">InterpretIndex::get_tree</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Synoptic::inv</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">GroupedElement::render</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">GroupedElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">action_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</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">f</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
@ -125,16 +124,18 @@ page for each action.
</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">GroupedElement::detail_pages</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">GroupedElement::detail_pages</span></span>:<br/>Index Interpreter - <a href="2-ii.html#SP1_4">&#167;1.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP6" class="function-link"><span class="function-syntax">InterpretIndex::get_tree</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Synoptic::inv</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">GroupedElement::detail_pages</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">GroupedElement::detail_pages</span></span>:<br/>Index Interpreter - <a href="2-ii.html#SP1_4">&#167;1.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_tree</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">action_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">an_pack</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_INVENTORY_PACKAGES</span><span class="plain-syntax">(</span><span class="identifier-syntax">an_pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">action_nodes</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">OUT</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP9" class="function-link"><span class="function-syntax">InterpretIndex::open_file</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"A.html"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"&lt;Actions"</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</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">index_file_struct</span><span class="plain-syntax">; </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax"> = &amp;</span><span class="identifier-syntax">index_file_struct</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-ii.html#SP5" class="function-link"><span class="function-syntax">InterpretIndex::open_file</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">I</span><span class="string-syntax">"A.html"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"&lt;Actions"</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-ge2.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Write details page for the action</span><span class="named-paragraph-number">2.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-ii.html#SP10" class="function-link"><span class="function-syntax">InterpretIndex::close_index_file</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="2-ii.html#SP6" class="function-link"><span class="function-syntax">InterpretIndex::close_index_file</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="plain-syntax">}</span>
</pre>

View file

@ -77,9 +77,10 @@ technical implementation rather than the content of a work.
</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">InnardsElement::render</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">InnardsElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP6" class="function-link"><span class="function-syntax">InterpretIndex::get_tree</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Synoptic::inv</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">InnardsElement::render</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">InnardsElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_tree</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">use_option_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-ie.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Show the virtual machine compiled for</span><span class="named-paragraph-number">1.1</span></a></span><span class="plain-syntax">;</span>

View file

@ -75,14 +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">LexiconElement::render</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">LexiconElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">LexiconElement::render</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">LexiconElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-iu.html#SP5" class="function-link"><span class="function-syntax">IndexUtilities::anchor</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="string-syntax">"LEXICON"</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">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"span"</span><span class="plain-syntax">, </span><span class="string-syntax">"class=\"smaller\""</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Localisation::roman</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Index.Elements.Lx.Explanation"</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">"span"</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>
<span class="plain-syntax"> </span><a href="2-lxc.html#SP6" class="function-link"><span class="function-syntax">IndexLexicon::listing</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><a href="2-ii.html#SP7" class="function-link"><span class="function-syntax">InterpretIndex::get_lexicon</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-lxc.html#SP6" class="function-link"><span class="function-syntax">IndexLexicon::listing</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><a href="1-ia.html#SP5" class="function-link"><span class="function-syntax">Indexing::get_lexicon</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">), </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">

View file

@ -81,16 +81,17 @@ cues all of that up; but even that code is fairly long.
<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">MapElement::render</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">MapElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">MapElement::render</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">MapElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</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="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-sm.html#SP7_4" class="function-link"><span class="function-syntax">SpatialMap::initialise_page_directions</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP8" class="function-link"><span class="function-syntax">InterpretIndex::get_faux_instances</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="4-sm.html#SP7" class="function-link"><span class="function-syntax">SpatialMap::establish_spatial_coordinates</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP5" class="function-link"><span class="function-syntax">Indexing::get_set_of_instances</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-sm.html#SP7" class="function-link"><span class="function-syntax">SpatialMap::establish_spatial_coordinates</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span 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#SP43" class="function-link"><span class="function-syntax">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#SP43" class="function-link"><span class="function-syntax">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="identifier-syntax">session</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-rhm.html#SP6" class="function-link"><span class="function-syntax">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="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP13" class="function-link"><span class="function-syntax">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="3-me.html#SP7" class="function-link"><span class="function-syntax">MapElement::index_backdrop_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><span class="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP6" class="function-link"><span class="function-syntax">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="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP13" class="function-link"><span class="function-syntax">HTMLMap::add_region_key</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-me.html#SP7" class="function-link"><span class="function-syntax">MapElement::index_backdrop_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><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-iu.html#SP5" class="function-link"><span class="function-syntax">IndexUtilities::anchor</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="string-syntax">"MDETAILS"</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">unruly</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
@ -126,11 +127,11 @@ cues all of that up; but even that code is fairly long.
<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="3-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="3-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>
<span class="plain-syntax"> </span><a href="3-me.html#SP7" class="function-link"><span class="function-syntax">MapElement::index_backdrop_further</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="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-me.html#SP7" class="function-link"><span class="function-syntax">MapElement::index_backdrop_further</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="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</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">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-rhm.html#SP8" class="function-link"><span class="function-syntax">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="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP8" class="function-link"><span class="function-syntax">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="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-fi.html#SP14" class="function-link"><span class="function-syntax">FauxInstances::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>
@ -157,7 +158,7 @@ cues all of that up; but even that code is fairly long.
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_FAUX_ROOMS</span><span class="plain-syntax">(</span><span class="identifier-syntax">faux_set</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-fi.html#SP14" class="function-link"><span class="function-syntax">FauxInstances::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="3-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-rhm.html#SP8" class="function-link"><span class="function-syntax">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="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP8" class="function-link"><span class="function-syntax">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="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-me.html#SP1">&#167;1</a>.</li></ul>
@ -182,7 +183,7 @@ will be things which are offstage (and their contents and any parts thereof):
<span class="plain-syntax"> </span><span class="identifier-syntax">Localisation::bold</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Index.Elements.Mp.NowhereHeading"</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>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><a href="3-me.html#SP2" class="function-link"><span class="function-syntax">MapElement::index</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="constant-syntax">2</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-me.html#SP2" class="function-link"><span class="function-syntax">MapElement::index</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="constant-syntax">2</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">);</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">FALSE</span><span class="plain-syntax">;</span>
</pre>
@ -212,7 +213,8 @@ will be things which are offstage (and their contents and any parts thereof):
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">MapElement::index</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">MapElement::index</span></span>:<br/><a href="3-me.html#SP1_4">&#167;1.4</a>, <a href="3-me.html#SP6">&#167;6</a>, <a href="3-me.html#SP7">&#167;7</a><br/>Render HTML Map - <a href="4-rhm.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="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span 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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">depth</span><span class="plain-syntax"> &gt; </span><span class="identifier-syntax">NUMBER_CREATED</span><span class="plain-syntax">(</span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax">) + </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">; </span><span class="comment-syntax"> to recover from errors</span>
@ -233,7 +235,7 @@ will be things which are offstage (and their contents and any parts thereof):
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-me.html#SP2_8" class="named-paragraph-link"><span class="named-paragraph">Add the chain of kinds</span><span class="named-paragraph-number">2.8</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-me.html#SP2_9" class="named-paragraph-link"><span class="named-paragraph">Add the catalogue of specific properties</span><span class="named-paragraph-number">2.9</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-me.html#SP2_10" class="named-paragraph-link"><span class="named-paragraph">Add details depending on the kind</span><span class="named-paragraph-number">2.10</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="3-me.html#SP3" class="function-link"><span class="function-syntax">MapElement::index_usages</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">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-me.html#SP3" class="function-link"><span class="function-syntax">MapElement::index_usages</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">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-iu.html#SP7" class="function-link"><span class="function-syntax">IndexUtilities::extra_div_close</span></a><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="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-me.html#SP2_6" class="named-paragraph-link"><span class="named-paragraph">Recurse the index citation for the object as necessary</span><span class="named-paragraph-number">2.6</span></a></span><span class="plain-syntax">;</span>
@ -248,7 +250,7 @@ will be things which are offstage (and their contents and any parts thereof):
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax"> != </span><span class="identifier-syntax">indexing_room</span><span class="plain-syntax">) </span><a href="2-iu.html#SP5" class="function-link"><span class="function-syntax">IndexUtilities::anchor</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">-&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-me.html#SP4" class="function-link"><span class="function-syntax">MapElement::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><span class="identifier-syntax">LD</span><span 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="3-me.html#SP4" class="function-link"><span class="function-syntax">MapElement::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><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
<span class="plain-syntax"> }</span>
</pre>
@ -303,8 +305,8 @@ 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="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="3-me.html#SP3" class="function-link"><span class="function-syntax">MapElement::annotate_door</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">LD</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-me.html#SP3" class="function-link"><span class="function-syntax">MapElement::annotate_player</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">LD</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-me.html#SP3" class="function-link"><span class="function-syntax">MapElement::annotate_door</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">session</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-me.html#SP3" class="function-link"><span class="function-syntax">MapElement::annotate_player</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">session</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-fi.html#SP13" class="function-link"><span class="function-syntax">FauxInstances::specify_kind</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">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-fi.html#SP13" class="function-link"><span class="function-syntax">FauxInstances::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>
@ -329,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">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">IF_MODULE</span>
<span class="plain-syntax"> </span><a href="3-me.html#SP6" class="function-link"><span class="function-syntax">MapElement::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="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-me.html#SP6" class="function-link"><span class="function-syntax">MapElement::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="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-me.html#SP2">&#167;2</a>.</li></ul>
@ -370,15 +372,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="3-me.html#SP3" class="function-link"><span class="function-syntax">MapElement::add_room_to_World_index</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="3-me.html#SP3" class="function-link"><span class="function-syntax">MapElement::add_room_to_World_index</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">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-me.html#SP3" class="function-link"><span class="function-syntax">MapElement::add_region_to_World_index</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="3-me.html#SP7" class="function-link"><span class="function-syntax">MapElement::add_to_World_index</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">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-me.html#SP7" class="function-link"><span class="function-syntax">MapElement::add_to_World_index</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">session</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-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">MapElement::index_usages</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">MapElement::index_usages</span></span>:<br/><a href="3-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="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">MapElement::index_usages</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">MapElement::index_usages</span></span>:<br/><a href="3-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="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</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">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">package</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Metadata::read_optional_list</span><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^backdrop_presences"</span><span class="plain-syntax">);</span>
@ -401,9 +404,10 @@ will be things which are offstage (and their contents and any parts thereof):
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">k</span><span class="plain-syntax"> &gt; </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>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">MapElement::add_room_to_World_index</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">MapElement::add_room_to_World_index</span></span>:<br/><a href="3-me.html#SP2_10">&#167;2.10</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">O</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">MapElement::add_room_to_World_index</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">MapElement::add_room_to_World_index</span></span>:<br/><a href="3-me.html#SP2_10">&#167;2.10</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">O</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span 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-fi.html#SP13" class="function-link"><span class="function-syntax">FauxInstances::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#SP42" class="function-link"><span class="function-syntax">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><a href="4-sm.html#SP42" class="function-link"><span class="function-syntax">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="identifier-syntax">session</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>
@ -417,8 +421,9 @@ will be things which are offstage (and their contents and any parts thereof):
<span class="plain-syntax">}</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">MapElement::annotate_player</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">MapElement::annotate_player</span></span>:<br/><a href="3-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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span 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-fi.html#SP11" class="function-link"><span class="function-syntax">FauxInstances::start_room</span></a><span class="plain-syntax">()) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span 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-fi.html#SP11" class="function-link"><span class="function-syntax">FauxInstances::start_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</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="identifier-syntax">Localisation::italic</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Index.Elements.Mp.RoomWherePlayBegins"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">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>
@ -428,7 +433,8 @@ will be things which are offstage (and their contents and any parts thereof):
<span class="plain-syntax">}</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">MapElement::annotate_door</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">MapElement::annotate_door</span></span>:<br/><a href="3-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">O</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span 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-fi.html#SP13" class="function-link"><span class="function-syntax">FauxInstances::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-fi.html#SP13" class="function-link"><span class="function-syntax">FauxInstances::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>
@ -451,7 +457,8 @@ will be things which are offstage (and their contents and any parts thereof):
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">MapElement::index_spatial_relationship</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">MapElement::index_spatial_relationship</span></span>:<br/><a href="3-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="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</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">rel</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-fi.html#SP13" class="function-link"><span class="function-syntax">FauxInstances::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>
@ -482,18 +489,18 @@ it already turns up under its owner.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">MapElement::index_object_further</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">MapElement::index_object_further</span></span>:<br/><a href="3-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="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="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP8" class="function-link"><span class="function-syntax">InterpretIndex::get_faux_instances</span></a><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">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP5" class="function-link"><span class="function-syntax">Indexing::get_set_of_instances</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span 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-fi.html#SP13" class="function-link"><span class="function-syntax">FauxInstances::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-fi.html#SP13" class="function-link"><span class="function-syntax">FauxInstances::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="3-me.html#SP2" class="function-link"><span class="function-syntax">MapElement::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="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-me.html#SP2" class="function-link"><span class="function-syntax">MapElement::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="identifier-syntax">session</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-fi.html#SP13" class="function-link"><span class="function-syntax">FauxInstances::incorp_sibling</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I2</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-fi.html#SP13" class="function-link"><span class="function-syntax">FauxInstances::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="3-me.html#SP2" class="function-link"><span class="function-syntax">MapElement::index</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><a href="2-fi.html#SP13" class="function-link"><span class="function-syntax">FauxInstances::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="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-me.html#SP2" class="function-link"><span class="function-syntax">MapElement::index</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><a href="2-fi.html#SP13" class="function-link"><span class="function-syntax">FauxInstances::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="identifier-syntax">session</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-fi.html#SP13" class="function-link"><span class="function-syntax">FauxInstances::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-fi.html#SP13" class="function-link"><span class="function-syntax">FauxInstances::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>
@ -501,16 +508,16 @@ it already turns up under its owner.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="2-fi.html#SP13" class="function-link"><span class="function-syntax">FauxInstances::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-fi.html#SP13" class="function-link"><span class="function-syntax">FauxInstances::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-fi.html#SP13" class="function-link"><span class="function-syntax">FauxInstances::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="3-me.html#SP2" class="function-link"><span class="function-syntax">MapElement::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="identifier-syntax">LD</span><span 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="3-me.html#SP2" class="function-link"><span class="function-syntax">MapElement::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="identifier-syntax">LD</span><span 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="3-me.html#SP2" class="function-link"><span class="function-syntax">MapElement::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="identifier-syntax">session</span><span 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="3-me.html#SP2" class="function-link"><span class="function-syntax">MapElement::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="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><a href="3-me.html#SP7" class="function-link"><span class="function-syntax">MapElement::index_player_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="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-me.html#SP7" class="function-link"><span class="function-syntax">MapElement::index_backdrop_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="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-me.html#SP7" class="function-link"><span class="function-syntax">MapElement::index_player_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="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-me.html#SP7" class="function-link"><span class="function-syntax">MapElement::index_backdrop_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="identifier-syntax">session</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-fi.html#SP13" class="function-link"><span class="function-syntax">FauxInstances::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="3-me.html#SP2" class="function-link"><span class="function-syntax">MapElement::index</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><a href="2-fi.html#SP13" class="function-link"><span class="function-syntax">FauxInstances::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="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-me.html#SP2" class="function-link"><span class="function-syntax">MapElement::index</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><a href="2-fi.html#SP13" class="function-link"><span class="function-syntax">FauxInstances::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="identifier-syntax">session</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>And also:
@ -518,7 +525,8 @@ it already turns up under its owner.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">MapElement::add_to_World_index</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">MapElement::add_to_World_index</span></span>:<br/><a href="3-me.html#SP2_10">&#167;2.10</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">O</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span 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-fi.html#SP13" class="function-link"><span class="function-syntax">FauxInstances::is_a_thing</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">O</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::open_indented_p</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="string-syntax">"tight"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="2-fi.html#SP13" class="function-link"><span class="function-syntax">FauxInstances::progenitor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">O</span><span class="plain-syntax">);</span>
@ -544,28 +552,29 @@ it already turns up under its owner.
<span class="plain-syntax">}</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">MapElement::index_player_further</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">MapElement::index_player_further</span></span>:<br/><a href="3-me.html#SP6">&#167;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="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="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</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-fi.html#SP11" class="function-link"><span class="function-syntax">FauxInstances::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-fi.html#SP11" class="function-link"><span class="function-syntax">FauxInstances::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><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">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</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-fi.html#SP11" class="function-link"><span class="function-syntax">FauxInstances::yourself</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span 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-fi.html#SP11" class="function-link"><span class="function-syntax">FauxInstances::start_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><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-fi.html#SP14" class="function-link"><span class="function-syntax">FauxInstances::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="3-me.html#SP2" class="function-link"><span class="function-syntax">MapElement::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="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-me.html#SP2" class="function-link"><span class="function-syntax">MapElement::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="identifier-syntax">session</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">MapElement::index_backdrop_further</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">MapElement::index_backdrop_further</span></span>:<br/><a href="3-me.html#SP1">&#167;1</a>, <a href="3-me.html#SP1_2">&#167;1.2</a>, <a href="3-me.html#SP6">&#167;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">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="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP8" class="function-link"><span class="function-syntax">InterpretIndex::get_faux_instances</span></a><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="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP5" class="function-link"><span class="function-syntax">Indexing::get_set_of_instances</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</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="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_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-me.html#SP7_1" class="named-paragraph-link"><span class="named-paragraph">Insert fore-matter</span><span class="named-paragraph-number">7.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="3-me.html#SP2" class="function-link"><span class="function-syntax">MapElement::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="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-me.html#SP2" class="function-link"><span class="function-syntax">MapElement::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="identifier-syntax">session</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_FAUX_BACKDROPS</span><span class="plain-syntax">(</span><span class="identifier-syntax">faux_set</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><a href="2-fi.html#SP13" class="function-link"><span class="function-syntax">FauxInstances::is_everywhere</span></a><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">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-me.html#SP7_1" class="named-paragraph-link"><span class="named-paragraph">Insert fore-matter</span><span class="named-paragraph-number">7.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="3-me.html#SP2" class="function-link"><span class="function-syntax">MapElement::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="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-me.html#SP2" class="function-link"><span class="function-syntax">MapElement::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="identifier-syntax">session</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-me.html#SP7_2" class="named-paragraph-link"><span class="named-paragraph">Insert after-matter</span><span class="named-paragraph-number">7.2</span></a></span><span class="plain-syntax">;</span>

View file

@ -75,8 +75,8 @@ 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">PhrasebookElement::render</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">PhrasebookElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP6" class="function-link"><span class="function-syntax">InterpretIndex::get_tree</span></a><span class="plain-syntax">();</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PhrasebookElement::render</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">PhrasebookElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_tree</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::by_url</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"/main/completion/phrases"</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">pass</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">; </span><span class="identifier-syntax">pass</span><span class="plain-syntax"> &lt;= </span><span class="constant-syntax">2</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">grand_c</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>

View file

@ -83,16 +83,11 @@ seems natural enough to learn in practice.
</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">PlotElement::render</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">PlotElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP6" class="function-link"><span class="function-syntax">InterpretIndex::get_tree</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Synoptic::inv</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">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">scene_nodes</span><span class="plain-syntax">, </span><a href="3-pe2.html#SP4" class="function-link"><span class="function-syntax">PlotElement::scene_order</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">rulebook_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">scene_pack</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_INVENTORY_PACKAGES</span><span class="plain-syntax">(</span><span class="identifier-syntax">scene_pack</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">scene_nodes</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="2-fs.html#SP1" class="function-link"><span class="function-syntax">FauxScenes::simplified</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">scene_pack</span><span class="plain-syntax">);</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PlotElement::render</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">PlotElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_tree</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP5" class="function-link"><span class="function-syntax">Indexing::get_list_of_scenes</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-pe2.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Tabulate the scenes</span><span class="named-paragraph-number">1.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-pe2.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Show the legend for the scene table icons</span><span class="named-paragraph-number">1.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-pe2.html#SP1_3" class="named-paragraph-link"><span class="named-paragraph">Give details of each scene in turn</span><span class="named-paragraph-number">1.3</span></a></span><span class="plain-syntax">;</span>
@ -112,15 +107,17 @@ about and created but never made use of.)
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">simplified_scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ssc</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">ssc</span><span class="plain-syntax">, </span><span class="reserved-syntax">simplified_scene</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">ssc</span><span class="plain-syntax">, </span><span class="reserved-syntax">simplified_scene</span><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">ssc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">indexed_already</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">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">ssc</span><span class="plain-syntax">, </span><span class="reserved-syntax">simplified_scene</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="2-fs.html#SP1" class="function-link"><span class="function-syntax">FauxScenes::starts_at_start_of_play</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ssc</span><span class="plain-syntax">)) || (</span><a href="2-fs.html#SP1" class="function-link"><span class="function-syntax">FauxScenes::is_entire_game</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ssc</span><span class="plain-syntax">)))</span>
<span class="plain-syntax"> </span><a href="3-pe2.html#SP2" class="function-link"><span class="function-syntax">PlotElement::index_from_scene</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">ssc</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">START_OF_PLAY_END</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">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">ssc</span><span class="plain-syntax">, </span><span class="reserved-syntax">simplified_scene</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="3-pe2.html#SP2" class="function-link"><span class="function-syntax">PlotElement::index_from_scene</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">ssc</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">START_OF_PLAY_END</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</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">ssc</span><span class="plain-syntax">, </span><span class="reserved-syntax">simplified_scene</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="2-fs.html#SP1" class="function-link"><span class="function-syntax">FauxScenes::starts_on_condition</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ssc</span><span class="plain-syntax">)) &amp;&amp; (</span><a href="2-fs.html#SP1" class="function-link"><span class="function-syntax">FauxScenes::is_entire_game</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ssc</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><a href="3-pe2.html#SP2" class="function-link"><span class="function-syntax">PlotElement::index_from_scene</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">ssc</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">START_OF_PLAY_END</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">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">ssc</span><span class="plain-syntax">, </span><span class="reserved-syntax">simplified_scene</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="3-pe2.html#SP2" class="function-link"><span class="function-syntax">PlotElement::index_from_scene</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">ssc</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">START_OF_PLAY_END</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</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">ssc</span><span class="plain-syntax">, </span><span class="reserved-syntax">simplified_scene</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ssc</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">indexed_already</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="3-pe2.html#SP2" class="function-link"><span class="function-syntax">PlotElement::index_from_scene</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">ssc</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">NEVER_HAPPENS_END</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-pe2.html#SP2" class="function-link"><span class="function-syntax">PlotElement::index_from_scene</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">ssc</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">NEVER_HAPPENS_END</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-pe2.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">Show the legend for the scene table icons</span><span class="named-paragraph-number">1.2</span></span><span class="comment-syntax"> =</span>
@ -154,7 +151,7 @@ about and created but never made use of.)
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="2-iu.html#SP5" class="function-link"><span class="function-syntax">IndexUtilities::anchor</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="string-syntax">"SDETAILS"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">simplified_scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ssc</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">ssc</span><span class="plain-syntax">, </span><span class="reserved-syntax">simplified_scene</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">ssc</span><span class="plain-syntax">, </span><span class="reserved-syntax">simplified_scene</span><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">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="named-paragraph-container code-font"><a href="3-pe2.html#SP1_3_1" class="named-paragraph-link"><span class="named-paragraph">Give details of a specific scene</span><span class="named-paragraph-number">1.3.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
@ -334,7 +331,8 @@ on the initial call when <span class="extract"><span class="extract-syntax">dept
</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">PlotElement::index_from_scene</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">PlotElement::index_from_scene</span></span>:<br/><a href="3-pe2.html#SP1_1">&#167;1.1</a>, <a href="3-pe2.html#SP2_5">&#167;2.5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">simplified_scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ssc</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">end</span><span class="plain-syntax">, </span><span class="reserved-syntax">simplified_scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc_from</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">end</span><span class="plain-syntax">, </span><span class="reserved-syntax">simplified_scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc_from</span><span class="plain-syntax">, </span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP5" class="function-link"><span class="function-syntax">Indexing::get_list_of_scenes</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</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">+1, </span><span class="string-syntax">"tight"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-pe2.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Indicate the route by which this scene was reached</span><span class="named-paragraph-number">2.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-pe2.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Name the scene in the table, italicised if we've seen it already</span><span class="named-paragraph-number">2.2</span></a></span><span class="plain-syntax">;</span>
@ -405,14 +403,14 @@ this one does; then to scenes which begin when this one ends.
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">simplified_scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ssc2</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">ssc2</span><span class="plain-syntax">, </span><span class="reserved-syntax">simplified_scene</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">ssc2</span><span class="plain-syntax">, </span><span class="reserved-syntax">simplified_scene</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">simplified_connector</span><span class="plain-syntax"> *</span><span class="identifier-syntax">scon</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ssc2</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ends</span><span class="plain-syntax">[0]-&gt;</span><span class="element-syntax">anchor_connectors</span><span class="plain-syntax">; </span><span class="identifier-syntax">scon</span><span class="plain-syntax">; </span><span class="identifier-syntax">scon</span><span class="plain-syntax">=</span><span class="identifier-syntax">scon</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</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-fs.html#SP1" class="function-link"><span class="function-syntax">FauxScenes::connects_to</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">scon</span><span class="plain-syntax">) == </span><span class="identifier-syntax">ssc</span><span class="plain-syntax">) &amp;&amp; (</span><a href="2-fs.html#SP1" class="function-link"><span class="function-syntax">FauxScenes::scon_end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">scon</span><span class="plain-syntax">) &gt;= </span><span class="constant-syntax">1</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><a href="3-pe2.html#SP2" class="function-link"><span class="function-syntax">PlotElement::index_from_scene</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">ssc2</span><span class="plain-syntax">, </span><span class="identifier-syntax">depth</span><span class="plain-syntax"> + </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><a href="2-fs.html#SP1" class="function-link"><span class="function-syntax">FauxScenes::scon_end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">scon</span><span class="plain-syntax">), </span><span class="identifier-syntax">ssc</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">ssc2</span><span class="plain-syntax">, </span><span class="reserved-syntax">simplified_scene</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="3-pe2.html#SP2" class="function-link"><span class="function-syntax">PlotElement::index_from_scene</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">ssc2</span><span class="plain-syntax">, </span><span class="identifier-syntax">depth</span><span class="plain-syntax"> + </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><a href="2-fs.html#SP1" class="function-link"><span class="function-syntax">FauxScenes::scon_end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">scon</span><span class="plain-syntax">), </span><span class="identifier-syntax">ssc</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</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">ssc2</span><span class="plain-syntax">, </span><span class="reserved-syntax">simplified_scene</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">simplified_connector</span><span class="plain-syntax"> *</span><span class="identifier-syntax">scon</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ssc2</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">ends</span><span class="plain-syntax">[0]-&gt;</span><span class="element-syntax">anchor_connectors</span><span class="plain-syntax">; </span><span class="identifier-syntax">scon</span><span class="plain-syntax">; </span><span class="identifier-syntax">scon</span><span class="plain-syntax">=</span><span class="identifier-syntax">scon</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">next</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-fs.html#SP1" class="function-link"><span class="function-syntax">FauxScenes::connects_to</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">scon</span><span class="plain-syntax">) == </span><span class="identifier-syntax">ssc</span><span class="plain-syntax">) &amp;&amp; (</span><a href="2-fs.html#SP1" class="function-link"><span class="function-syntax">FauxScenes::scon_end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">scon</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><a href="3-pe2.html#SP2" class="function-link"><span class="function-syntax">PlotElement::index_from_scene</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">ssc2</span><span class="plain-syntax">, </span><span class="identifier-syntax">depth</span><span class="plain-syntax">, </span><a href="2-fs.html#SP1" class="function-link"><span class="function-syntax">FauxScenes::scon_end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">scon</span><span class="plain-syntax">), </span><span class="identifier-syntax">ssc</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-pe2.html#SP2" class="function-link"><span class="function-syntax">PlotElement::index_from_scene</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">ssc2</span><span class="plain-syntax">, </span><span class="identifier-syntax">depth</span><span class="plain-syntax">, </span><a href="2-fs.html#SP1" class="function-link"><span class="function-syntax">FauxScenes::scon_end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">scon</span><span class="plain-syntax">), </span><span class="identifier-syntax">ssc</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="3-pe2.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. </b>We have been using:
@ -444,7 +442,7 @@ rest in ascending alphabetical order.
</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">PlotElement::scene_order</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">PlotElement::scene_order</span></span>:<br/><a href="3-pe2.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ent1</span><span class="plain-syntax">, </span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ent2</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">PlotElement::scene_order</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">PlotElement::scene_order</span></span>:<br/>Faux Scenes - <a href="2-fs.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ent1</span><span class="plain-syntax">, </span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ent2</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">itl_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E1</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">itl_entry</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">ent1</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">itl_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E2</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">itl_entry</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">ent2</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E1</span><span class="plain-syntax"> == </span><span class="identifier-syntax">E2</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>

View file

@ -76,9 +76,9 @@ function togglePopup(material_id) {
</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">RelationsElement::render</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">RelationsElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP6" class="function-link"><span class="function-syntax">InterpretIndex::get_tree</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Synoptic::inv</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">RelationsElement::render</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">RelationsElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">relation_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</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>

View file

@ -75,9 +75,9 @@ 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">RulesForScenesElement::render</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">RulesForScenesElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP6" class="function-link"><span class="function-syntax">InterpretIndex::get_tree</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Synoptic::inv</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">RulesForScenesElement::render</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">RulesForScenesElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">rulebook_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</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>

View file

@ -77,9 +77,9 @@ their contents in logical 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">StandardsElement::render</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">StandardsElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP6" class="function-link"><span class="function-syntax">InterpretIndex::get_tree</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Synoptic::inv</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">StandardsElement::render</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">StandardsElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">rulebook_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">activity_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>

View file

@ -78,9 +78,9 @@ main source text, all the tables in the Standard Rules, 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">TablesElement::render</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">TablesElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP6" class="function-link"><span class="function-syntax">InterpretIndex::get_tree</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Synoptic::inv</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">TablesElement::render</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">TablesElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">table_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::category_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">current_mod</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">mc</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">first_ext</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>

View file

@ -75,14 +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">TokensElement::render</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">TokensElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TokensElement::render</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">TokensElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</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">Localisation::roman</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Index.Elements.To.Explanation1"</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>
<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">Localisation::roman</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Index.Elements.To.Explanation2"</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>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP6" class="function-link"><span class="function-syntax">InterpretIndex::get_tree</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_tree</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-te2.html#SP2" class="function-link"><span class="function-syntax">TokensElement::token</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="string-syntax">"anybody"</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="string-syntax">"someone_token"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"[someone]"</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-te2.html#SP2" class="function-link"><span class="function-syntax">TokensElement::token</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="string-syntax">"anyone"</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="string-syntax">"someone_token"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"[someone]"</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">);</span>

View file

@ -118,7 +118,8 @@ and text underneath in another of class "headingrubric".
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Elements::periodic_table</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">Elements::periodic_table</span></span>:<br/>Index Interpreter - <a href="2-ii.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="reserved-syntax">index_page</span><span class="plain-syntax"> *</span><span class="identifier-syntax">current_page</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">index_leaf</span><span class="plain-syntax">, </span><span class="identifier-syntax">localisation_dictionary</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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">index_leaf</span><span class="plain-syntax">, </span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</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">max_elements</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">index_page</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ip</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">ip</span><span class="plain-syntax">, </span><span class="reserved-syntax">index_page</span><span class="plain-syntax">)</span>
@ -260,7 +261,7 @@ content at last; and then a rule.
<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><a href="2-iu.html#SP1" class="function-link"><span class="function-syntax">IndexUtilities::banner_line</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">current_page</span><span class="plain-syntax">, </span><span class="identifier-syntax">ie</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">atomic_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">ie</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">chemical_symbol</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ie</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">element_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">ie</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">explanation_key</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">D</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-tpt.html#SP4" class="function-link"><span class="function-syntax">Elements::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">ie</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">chemical_symbol</span><span class="plain-syntax">, </span><span class="identifier-syntax">D</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-tpt.html#SP4" class="function-link"><span class="function-syntax">Elements::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">ie</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">chemical_symbol</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</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">"div"</span><span class="plain-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">"hr"</span><span class="plain-syntax">);</span>
@ -271,10 +272,10 @@ text file from the content of a single element.
</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">Elements::test_card</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">Elements::test_card</span></span>:<br/>Index Interpreter - <a href="2-ii.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">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Elements::test_card</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">Elements::test_card</span></span>:<br/>Indexing API - <a href="1-ia.html#SP3_2">&#167;3.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">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</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">elt</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">elt</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><a href="3-tpt.html#SP4" class="function-link"><span class="function-syntax">Elements::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-tpt.html#SP4" class="function-link"><span class="function-syntax">Elements::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</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">elt</span><span class="plain-syntax">)</span>
<span class="plain-syntax">}</span>
</pre>
@ -282,32 +283,32 @@ text file from the content of a single element.
</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">Elements::render</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">Elements::render</span></span>:<br/><a href="3-tpt.html#SP2_5">&#167;2.5</a>, <a href="3-tpt.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">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"A1"</span><span class="plain-syntax">)) { </span><a href="3-ge2.html#SP1" class="function-link"><span class="function-syntax">GroupedElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"A2"</span><span class="plain-syntax">)) { </span><a href="3-ae.html#SP1" class="function-link"><span class="function-syntax">AlphabeticElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Ar"</span><span class="plain-syntax">)) { </span><a href="3-ae2.html#SP1" class="function-link"><span class="function-syntax">ArithmeticElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Bh"</span><span class="plain-syntax">)) { </span><a href="3-be.html#SP1" class="function-link"><span class="function-syntax">BehaviourElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"C"</span><span class="plain-syntax">)) { </span><a href="3-ce4.html#SP1" class="function-link"><span class="function-syntax">ContentsElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Cd"</span><span class="plain-syntax">)) { </span><a href="3-ce.html#SP1" class="function-link"><span class="function-syntax">CardElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Ch"</span><span class="plain-syntax">)) { </span><a href="3-ce2.html#SP1" class="function-link"><span class="function-syntax">ChartElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Cm"</span><span class="plain-syntax">)) { </span><a href="3-ce3.html#SP1" class="function-link"><span class="function-syntax">CommandsElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Ev"</span><span class="plain-syntax">)) { </span><a href="3-ee.html#SP1" class="function-link"><span class="function-syntax">EventsElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Fi"</span><span class="plain-syntax">)) { </span><a href="3-fe.html#SP1" class="function-link"><span class="function-syntax">FiguresElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Gz"</span><span class="plain-syntax">)) { </span><a href="3-ge.html#SP1" class="function-link"><span class="function-syntax">GazetteerElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"In"</span><span class="plain-syntax">)) { </span><a href="3-ie.html#SP1" class="function-link"><span class="function-syntax">InnardsElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Lx"</span><span class="plain-syntax">)) { </span><a href="3-le.html#SP1" class="function-link"><span class="function-syntax">LexiconElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Mp"</span><span class="plain-syntax">)) { </span><a href="3-me.html#SP1" class="function-link"><span class="function-syntax">MapElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"MT"</span><span class="plain-syntax">)) { </span><a href="3-me.html#SP1" class="function-link"><span class="function-syntax">MapElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Ph"</span><span class="plain-syntax">)) { </span><a href="3-pe.html#SP1" class="function-link"><span class="function-syntax">PhrasebookElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Pl"</span><span class="plain-syntax">)) { </span><a href="3-pe2.html#SP1" class="function-link"><span class="function-syntax">PlotElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Rl"</span><span class="plain-syntax">)) { </span><a href="3-re.html#SP1" class="function-link"><span class="function-syntax">RelationsElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"RS"</span><span class="plain-syntax">)) { </span><a href="3-rfse.html#SP1" class="function-link"><span class="function-syntax">RulesForScenesElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"St"</span><span class="plain-syntax">)) { </span><a href="3-se.html#SP1" class="function-link"><span class="function-syntax">StandardsElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Tb"</span><span class="plain-syntax">)) { </span><a href="3-te.html#SP1" class="function-link"><span class="function-syntax">TablesElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"To"</span><span class="plain-syntax">)) { </span><a href="3-te2.html#SP1" class="function-link"><span class="function-syntax">TokensElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Vb"</span><span class="plain-syntax">)) { </span><a href="3-ve2.html#SP1" class="function-link"><span class="function-syntax">VerbsElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Vl"</span><span class="plain-syntax">)) { </span><a href="3-ve.html#SP1" class="function-link"><span class="function-syntax">ValuesElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Xt"</span><span class="plain-syntax">)) { </span><a href="3-ee2.html#SP1" class="function-link"><span class="function-syntax">ExtrasElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span class="plain-syntax">; }</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Elements::render</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">Elements::render</span></span>:<br/><a href="3-tpt.html#SP2_5">&#167;2.5</a>, <a href="3-tpt.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">elt</span><span class="plain-syntax">, </span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"A1"</span><span class="plain-syntax">)) { </span><a href="3-ge2.html#SP1" class="function-link"><span class="function-syntax">GroupedElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"A2"</span><span class="plain-syntax">)) { </span><a href="3-ae.html#SP1" class="function-link"><span class="function-syntax">AlphabeticElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Ar"</span><span class="plain-syntax">)) { </span><a href="3-ae2.html#SP1" class="function-link"><span class="function-syntax">ArithmeticElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Bh"</span><span class="plain-syntax">)) { </span><a href="3-be.html#SP1" class="function-link"><span class="function-syntax">BehaviourElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"C"</span><span class="plain-syntax">)) { </span><a href="3-ce4.html#SP1" class="function-link"><span class="function-syntax">ContentsElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Cd"</span><span class="plain-syntax">)) { </span><a href="3-ce.html#SP1" class="function-link"><span class="function-syntax">CardElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Ch"</span><span class="plain-syntax">)) { </span><a href="3-ce2.html#SP1" class="function-link"><span class="function-syntax">ChartElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Cm"</span><span class="plain-syntax">)) { </span><a href="3-ce3.html#SP1" class="function-link"><span class="function-syntax">CommandsElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Ev"</span><span class="plain-syntax">)) { </span><a href="3-ee.html#SP1" class="function-link"><span class="function-syntax">EventsElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Fi"</span><span class="plain-syntax">)) { </span><a href="3-fe.html#SP1" class="function-link"><span class="function-syntax">FiguresElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Gz"</span><span class="plain-syntax">)) { </span><a href="3-ge.html#SP1" class="function-link"><span class="function-syntax">GazetteerElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"In"</span><span class="plain-syntax">)) { </span><a href="3-ie.html#SP1" class="function-link"><span class="function-syntax">InnardsElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Lx"</span><span class="plain-syntax">)) { </span><a href="3-le.html#SP1" class="function-link"><span class="function-syntax">LexiconElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Mp"</span><span class="plain-syntax">)) { </span><a href="3-me.html#SP1" class="function-link"><span class="function-syntax">MapElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"MT"</span><span class="plain-syntax">)) { </span><a href="3-me.html#SP1" class="function-link"><span class="function-syntax">MapElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Ph"</span><span class="plain-syntax">)) { </span><a href="3-pe.html#SP1" class="function-link"><span class="function-syntax">PhrasebookElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Pl"</span><span class="plain-syntax">)) { </span><a href="3-pe2.html#SP1" class="function-link"><span class="function-syntax">PlotElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Rl"</span><span class="plain-syntax">)) { </span><a href="3-re.html#SP1" class="function-link"><span class="function-syntax">RelationsElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"RS"</span><span class="plain-syntax">)) { </span><a href="3-rfse.html#SP1" class="function-link"><span class="function-syntax">RulesForScenesElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"St"</span><span class="plain-syntax">)) { </span><a href="3-se.html#SP1" class="function-link"><span class="function-syntax">StandardsElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Tb"</span><span class="plain-syntax">)) { </span><a href="3-te.html#SP1" class="function-link"><span class="function-syntax">TablesElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"To"</span><span class="plain-syntax">)) { </span><a href="3-te2.html#SP1" class="function-link"><span class="function-syntax">TokensElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Vb"</span><span class="plain-syntax">)) { </span><a href="3-ve2.html#SP1" class="function-link"><span class="function-syntax">VerbsElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Vl"</span><span class="plain-syntax">)) { </span><a href="3-ve.html#SP1" class="function-link"><span class="function-syntax">ValuesElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span 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::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Xt"</span><span class="plain-syntax">)) { </span><a href="3-ee2.html#SP1" class="function-link"><span class="function-syntax">ExtrasElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</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">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">"NO CONTENT"</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>
<span class="plain-syntax">}</span>

View file

@ -77,9 +77,9 @@ quite different.
</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">ValuesElement::render</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">ValuesElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP6" class="function-link"><span class="function-syntax">InterpretIndex::get_tree</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Synoptic::inv</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">ValuesElement::render</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">ValuesElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">tree_inventory</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inv</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_inventory</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">variable_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-ve.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Index the variables</span><span class="named-paragraph-number">1.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TreeLists::sort</span><span class="plain-syntax">(</span><span class="identifier-syntax">inv</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">equation_nodes</span><span class="plain-syntax">, </span><span class="identifier-syntax">Synoptic::module_order</span><span class="plain-syntax">);</span>

View file

@ -77,13 +77,14 @@ be more usefully informative.
</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">VerbsElement::render</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">VerbsElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">VerbsElement::render</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">VerbsElement::render</span></span>:<br/>The Periodic Table - <a href="3-tpt.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="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</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">Localisation::italic</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Index.Elements.Vb.About"</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>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">verb_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_lexicon</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lexicon</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP7" class="function-link"><span class="function-syntax">InterpretIndex::get_lexicon</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_lexicon</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lexicon</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP5" class="function-link"><span class="function-syntax">Indexing::get_lexicon</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</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">index_lexicon_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lex</span><span class="plain-syntax"> = </span><span class="identifier-syntax">lexicon</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">first</span><span class="plain-syntax">; </span><span class="identifier-syntax">lex</span><span class="plain-syntax">; </span><span class="identifier-syntax">lex</span><span class="plain-syntax"> = </span><span class="identifier-syntax">lex</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">sorted_next</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">lex</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">part_of_speech</span><span class="plain-syntax"> == </span><span class="constant-syntax">VERB_TLEXE</span><span class="plain-syntax">) ||</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">lex</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">part_of_speech</span><span class="plain-syntax"> == </span><span class="constant-syntax">MVERB_TLEXE</span><span class="plain-syntax">) ||</span>

View file

@ -270,7 +270,7 @@ If all are null, then the global scope is used.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">ConfigureIndexMap::get_text_mp</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">ConfigureIndexMap::get_text_mp</span></span>:<br/>Render EPS Map - <a href="4-rem.html#SP2">&#167;2</a>, <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_6_1_2">&#167;2.6.1.2</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></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="reserved-syntax">map_parameter_scope</span><span class="plain-syntax"> *</span><span class="identifier-syntax">scope</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">ConfigureIndexMap::get_text_mp</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">ConfigureIndexMap::get_text_mp</span></span>:<br/>Render EPS Map - <a href="4-rem.html#SP1_2_1">&#167;1.2.1</a>, <a href="4-rem.html#SP1_2_1_4">&#167;1.2.1.4</a>, <a href="4-rem.html#SP1_2_1_6_1">&#167;1.2.1.6.1</a>, <a href="4-rem.html#SP1_2_1_6_1_2">&#167;1.2.1.6.1.2</a>, <a href="4-rem.html#SP1_2_1_7_1">&#167;1.2.1.7.1</a>, <a href="4-rem.html#SP1_2_1_7_2">&#167;1.2.1.7.2</a>, <a href="4-rem.html#SP1_2_1_7_3">&#167;1.2.1.7.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="reserved-syntax">map_parameter_scope</span><span class="plain-syntax"> *</span><span class="identifier-syntax">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">Str::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"&lt;font&gt;"</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-mc.html#SP7" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_text_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">s</span><span class="plain-syntax"> = </span><a href="4-mc.html#SP5" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_map_variable_index</span></a><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">scope</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">scope</span><span class="plain-syntax"> = </span><a href="4-mc.html#SP3" class="function-link"><span class="function-syntax">ConfigureIndexMap::global</span></a><span class="plain-syntax">();</span>
@ -293,7 +293,7 @@ If all are null, then the global scope is used.
</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">ConfigureIndexMap::get_int_mp</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">ConfigureIndexMap::get_int_mp</span></span>:<br/>Render EPS Map - <a href="4-rem.html#SP1_1_1">&#167;1.1.1</a>, <a href="4-rem.html#SP2">&#167;2</a>, <a href="4-rem.html#SP2_1">&#167;2.1</a>, <a href="4-rem.html#SP2_4">&#167;2.4</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_6_1_2">&#167;2.6.1.2</a>, <a href="4-rem.html#SP2_7">&#167;2.7</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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="reserved-syntax">map_parameter_scope</span><span class="plain-syntax"> *</span><span class="identifier-syntax">scope</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">ConfigureIndexMap::get_int_mp</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">ConfigureIndexMap::get_int_mp</span></span>:<br/>Render EPS Map - <a href="4-rem.html#SP1_1_1">&#167;1.1.1</a>, <a href="4-rem.html#SP1_2_1">&#167;1.2.1</a>, <a href="4-rem.html#SP1_2_1_1">&#167;1.2.1.1</a>, <a href="4-rem.html#SP1_2_1_4">&#167;1.2.1.4</a>, <a href="4-rem.html#SP1_2_1_5">&#167;1.2.1.5</a>, <a href="4-rem.html#SP1_2_1_6">&#167;1.2.1.6</a>, <a href="4-rem.html#SP1_2_1_6_1">&#167;1.2.1.6.1</a>, <a href="4-rem.html#SP1_2_1_6_1_2">&#167;1.2.1.6.1.2</a>, <a href="4-rem.html#SP1_2_1_7">&#167;1.2.1.7</a>, <a href="4-rem.html#SP1_2_1_7_1">&#167;1.2.1.7.1</a>, <a href="4-rem.html#SP1_2_1_7_2">&#167;1.2.1.7.2</a>, <a href="4-rem.html#SP1_2_1_7_3">&#167;1.2.1.7.3</a>, <a href="4-rem.html#SP1_2_2">&#167;1.2.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="reserved-syntax">map_parameter_scope</span><span class="plain-syntax"> *</span><span class="identifier-syntax">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">s</span><span class="plain-syntax"> = </span><a href="4-mc.html#SP5" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_map_variable_index</span></a><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">scope</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">scope</span><span class="plain-syntax"> = </span><a href="4-mc.html#SP3" class="function-link"><span class="function-syntax">ConfigureIndexMap::global</span></a><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">scope</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">values</span><span class="plain-syntax">[</span><span class="identifier-syntax">s</span><span class="plain-syntax">].</span><span class="element-syntax">specified</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>

View file

@ -86,13 +86,13 @@ MathJax = {
<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">index</a></li><li><a href="index.html#4">Chapter 4: Spatial Mapping</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">
<ul class="toc"><li><a href="4-rem.html#SP2">&#167;2. Writing text in EPS</a></li><li><a href="4-rem.html#SP4">&#167;4. EPS header</a></li><li><a href="4-rem.html#SP5">&#167;5. Circles and rectangles</a></li><li><a href="4-rem.html#SP7">&#167;7. Straight lines</a></li><li><a href="4-rem.html#SP8">&#167;8. Dashed arrows</a></li><li><a href="4-rem.html#SP9">&#167;9. Bezier curves</a></li><li><a href="4-rem.html#SP10">&#167;10. Line thickness</a></li><li><a href="4-rem.html#SP11">&#167;11. Text</a></li><li><a href="4-rem.html#SP12">&#167;12. 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><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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP6" class="function-link"><span class="function-syntax">InterpretIndex::get_tree</span></a><span class="plain-syntax">();</span>
<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/>Indexing API - <a href="1-ia.html#SP3_3">&#167;3.3</a></span></button><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="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</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">Prepare the EPS levels</span><span class="named-paragraph-number">1.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#SP1_2" 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.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
@ -101,12 +101,12 @@ MathJax = {
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP8" class="function-link"><span class="function-syntax">InterpretIndex::get_faux_instances</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP5" class="function-link"><span class="function-syntax">Indexing::get_set_of_instances</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</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_1" class="named-paragraph-link"><span class="named-paragraph">Create the main EPS map super-level</span><span class="named-paragraph-number">1.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="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="named-paragraph-container code-font"><a href="4-rem.html#SP1_1_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.1.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="2-fi.html#SP10" class="function-link"><span class="function-syntax">FauxInstances::decode_hints</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-fi.html#SP10" class="function-link"><span class="function-syntax">FauxInstances::decode_hints</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</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">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_1_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.1.3</span></a></span><span class="plain-syntax">;</span>
</pre>
@ -144,7 +144,7 @@ MathJax = {
<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="element-syntax">titling</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP7" class="function-link"><span class="function-syntax">HTMLMap::devise_level_rubric</span></a><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="element-syntax">titling</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP7" class="function-link"><span class="function-syntax">HTMLMap::devise_level_rubric</span></a><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="element-syntax">titling</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span 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="element-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="element-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="element-syntax">contains_titling</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
@ -172,8 +172,8 @@ MathJax = {
</p>
<pre class="displayed-code all-displayed-code code-font">
<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">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">OUT</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">OUT</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">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">CORE_MODULE</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 index file"</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
@ -181,28 +181,29 @@ MathJax = {
<span class="plain-syntax"> </span><span class="identifier-syntax">Errors::fatal_with_file</span><span class="plain-syntax">(</span><span class="string-syntax">"can't open index file"</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</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>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP5" class="function-link"><span class="function-syntax">Indexing::get_set_of_instances</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</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_1" class="named-paragraph-link"><span class="named-paragraph">Plot the map itself</span><span class="named-paragraph-number">1.2.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#SP1_2_2" class="named-paragraph-link"><span class="named-paragraph">Plot all of the rubrics onto the EPS map</span><span class="named-paragraph-number">1.2.2</span></a></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">OUT</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>
<p class="commentary firstcommentary"><a id="SP1_2_1" class="paragraph-anchor"></a><b>&#167;1.2.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Plot the map itself</span><span class="named-paragraph-number">1.2.1</span></span><span class="comment-syntax"> =</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_map</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::EPS_compile_map</span></span>:<br/><a href="4-rem.html#SP1_2">&#167;1.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="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><a href="4-mc.html#SP8" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_int_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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><a href="4-mc.html#SP8" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_int_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP8" class="function-link"><span class="function-syntax">InterpretIndex::get_faux_instances</span></a><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="named-paragraph-container code-font"><a href="4-rem.html#SP1_2_1_1" class="named-paragraph-link"><span class="named-paragraph">Compute the dimensions of the EPS map</span><span class="named-paragraph-number">1.2.1.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><a href="4-rem.html#SP4" 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><a href="4-mc.html#SP7" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_text_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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="plain-syntax"> </span><a href="4-mc.html#SP8" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_int_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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><a href="4-mc.html#SP8" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_int_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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="named-paragraph-container code-font"><a href="4-rem.html#SP1_2_1_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">1.2.1.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-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="reserved-syntax">EPS_map_level</span><span class="plain-syntax">) {</span>
@ -210,27 +211,25 @@ MathJax = {
<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><a href="4-mc.html#SP8" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_int_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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="element-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><a href="4-mc.html#SP8" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_int_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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="named-paragraph-container code-font"><a href="4-rem.html#SP1_2_1_3" class="named-paragraph-link"><span class="named-paragraph">Draw an intermediate strut in the big rectangular outline</span><span class="named-paragraph-number">1.2.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">eml</span><span class="plain-syntax">-&gt;</span><span class="element-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="named-paragraph-container code-font"><a href="4-rem.html#SP1_2_1_4" class="named-paragraph-link"><span class="named-paragraph">Draw the title for this EPS map level</span><span class="named-paragraph-number">1.2.1.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="element-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_FAUX_ROOMS</span><span class="plain-syntax">(</span><span class="identifier-syntax">faux_set</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="element-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="named-paragraph-container code-font"><a href="4-rem.html#SP1_2_1_5" class="named-paragraph-link"><span class="named-paragraph">Establish EPS coordinates for this room</span><span class="named-paragraph-number">1.2.1.5</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_FAUX_ROOMS</span><span class="plain-syntax">(</span><span class="identifier-syntax">faux_set</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="element-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="named-paragraph-container code-font"><a href="4-rem.html#SP1_2_1_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">1.2.1.6</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_FAUX_ROOMS</span><span class="plain-syntax">(</span><span class="identifier-syntax">faux_set</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="element-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="named-paragraph-container code-font"><a href="4-rem.html#SP1_2_1_7" class="named-paragraph-link"><span class="named-paragraph">Draw the boxes for the rooms themselves</span><span class="named-paragraph-number">1.2.1.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>
<ul class="endnotetexts"><li>This code is used in <a href="4-rem.html#SP1_2">&#167;1.2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_2_1_1" class="paragraph-anchor"></a><b>&#167;1.2.1.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">1.2.1.1</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -255,45 +254,45 @@ MathJax = {
<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
<ul class="endnotetexts"><li>This code is used in <a href="4-rem.html#SP1_2_1">&#167;1.2.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_2_1_2" class="paragraph-anchor"></a><b>&#167;1.2.1.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 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">1.2.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">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><a href="4-rem.html#SP5" 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.
<ul class="endnotetexts"><li>This code is used in <a href="4-rem.html#SP1_2_1">&#167;1.2.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_2_1_3" class="paragraph-anchor"></a><b>&#167;1.2.1.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 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">1.2.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="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="element-syntax">eps_origin</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_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="element-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>
<ul class="endnotetexts"><li>This code is used in <a href="4-rem.html#SP1_2_1">&#167;1.2.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_2_1_4" class="paragraph-anchor"></a><b>&#167;1.2.1.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">1.2.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="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="element-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="element-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="element-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><a href="4-mc.html#SP8" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_int_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"monochrome"</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#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><a href="4-rem.html#SP13" 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="plain-syntax"> </span><a href="4-rem.html#SP12" 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="plain-syntax"> </span><a href="4-mc.html#SP7" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_text_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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><a href="4-rem.html#SP3" 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><a href="4-mc.html#SP7" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_text_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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><a href="4-mc.html#SP7" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_text_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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>
@ -302,10 +301,10 @@ rectangle around the whole thing...
<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><a href="4-mc.html#SP8" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_int_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"monochrome"</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#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="plain-syntax"> </span><a href="4-rem.html#SP13" 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#SP12" 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="plain-syntax"> </span><a href="4-mc.html#SP7" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_text_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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><a href="4-rem.html#SP3" 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><a href="4-mc.html#SP7" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_text_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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><a href="4-mc.html#SP7" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_text_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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>
@ -314,8 +313,8 @@ rectangle around the whole thing...
<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>
<ul class="endnotetexts"><li>This code is used in <a href="4-rem.html#SP1_2_1">&#167;1.2.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_2_1_5" class="paragraph-anchor"></a><b>&#167;1.2.1.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">1.2.1.5</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -336,13 +335,13 @@ rectangle around the whole thing...
<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>
<ul class="endnotetexts"><li>This code is used in <a href="4-rem.html#SP1_2_1">&#167;1.2.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_2_1_6" class="paragraph-anchor"></a><b>&#167;1.2.1.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">1.2.1.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="reserved-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-fi.html#SP13" class="function-link"><span class="function-syntax">FauxInstances::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="plain-syntax"> </span><a href="4-rem.html#SP10" 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="plain-syntax"> </span><a href="4-mc.html#SP8" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_int_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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>
@ -354,49 +353,49 @@ rectangle around the whole thing...
<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">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-fi.html#SP13" class="function-link"><span class="function-syntax">FauxInstances::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="named-paragraph-container code-font"><a href="4-rem.html#SP1_2_1_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">1.2.1.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>
<span class="plain-syntax"> </span><a href="4-rem.html#SP10" 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>
<ul class="endnotetexts"><li>This code is used in <a href="4-rem.html#SP1_2_1">&#167;1.2.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_2_1_6_1" class="paragraph-anchor"></a><b>&#167;1.2.1.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">1.2.1.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><a href="4-mc.html#SP8" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_int_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"route-stiffness"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="2-fi.html#SP13" class="function-link"><span class="function-syntax">FauxInstances::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><a href="4-mc.html#SP8" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_int_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"monochrome"</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#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><a href="4-rem.html#SP13" 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="plain-syntax"> </span><a href="4-rem.html#SP12" 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="plain-syntax"> </span><a href="4-mc.html#SP7" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_text_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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">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">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="named-paragraph-container code-font"><a href="4-rem.html#SP1_2_1_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">1.2.1.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>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-rem.html#SP1_2_1_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">1.2.1.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
<ul class="endnotetexts"><li>This code is used in <a href="4-rem.html#SP1_2_1_6">&#167;1.2.1.6</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_2_1_6_1_1" class="paragraph-anchor"></a><b>&#167;1.2.1.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 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">1.2.1.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><a href="4-rem.html#SP9" 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">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
<ul class="endnotetexts"><li>This code is used in <a href="4-rem.html#SP1_2_1_6_1">&#167;1.2.1.6.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_2_1_6_1_2" class="paragraph-anchor"></a><b>&#167;1.2.1.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 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">1.2.1.6.1.2</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -408,16 +407,16 @@ actually go there in any visual way.
<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><a href="4-rem.html#SP8" 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#SP2" 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><a href="4-mc.html#SP8" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_int_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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><a href="4-mc.html#SP7" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_text_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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="element-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><a href="4-mc.html#SP8" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_int_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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>
<ul class="endnotetexts"><li>This code is used in <a href="4-rem.html#SP1_2_1_6_1">&#167;1.2.1.6.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_2_1_7" class="paragraph-anchor"></a><b>&#167;1.2.1.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">1.2.1.7</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -425,45 +424,45 @@ actually go there in any visual way.
<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><a href="4-mc.html#SP8" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_int_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-rem.html#SP1_2_1_7_1" class="named-paragraph-link"><span class="named-paragraph">Draw the filled box for the room</span><span class="named-paragraph-number">1.2.1.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#SP1_2_1_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">1.2.1.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#SP1_2_1_7_3" class="named-paragraph-link"><span class="named-paragraph">Write in the name of the room</span><span class="named-paragraph-number">1.2.1.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>
<ul class="endnotetexts"><li>This code is used in <a href="4-rem.html#SP1_2_1">&#167;1.2.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_2_1_7_1" class="paragraph-anchor"></a><b>&#167;1.2.1.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">1.2.1.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><a href="4-mc.html#SP8" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_int_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"monochrome"</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#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="plain-syntax"> </span><a href="4-rem.html#SP13" 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#SP12" 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="plain-syntax"> </span><a href="4-mc.html#SP7" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_text_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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="plain-syntax"> </span><a href="4-rem.html#SP6" 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="plain-syntax"> </span><a href="4-mc.html#SP7" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_text_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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>
<ul class="endnotetexts"><li>This code is used in <a href="4-rem.html#SP1_2_1_7">&#167;1.2.1.7</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_2_1_7_2" class="paragraph-anchor"></a><b>&#167;1.2.1.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">1.2.1.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><a href="4-mc.html#SP8" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_int_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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="plain-syntax"> </span><a href="4-rem.html#SP10" 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="plain-syntax"> </span><a href="4-mc.html#SP8" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_int_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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><a href="4-mc.html#SP8" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_int_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"monochrome"</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#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="plain-syntax"> </span><a href="4-rem.html#SP13" 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#SP12" 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="plain-syntax"> </span><a href="4-mc.html#SP7" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_text_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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="plain-syntax"> </span><a href="4-rem.html#SP6" 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="plain-syntax"> </span><a href="4-mc.html#SP7" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_text_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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><a href="4-rem.html#SP10" 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>
<ul class="endnotetexts"><li>This code is used in <a href="4-rem.html#SP1_2_1_7">&#167;1.2.1.7</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_2_1_7_3" class="paragraph-anchor"></a><b>&#167;1.2.1.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">1.2.1.7.3</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -475,20 +474,20 @@ actually go there in any visual way.
<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><a href="4-mc.html#SP8" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_int_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"monochrome"</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#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="plain-syntax"> </span><a href="4-rem.html#SP13" 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#SP12" 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="plain-syntax"> </span><a href="4-mc.html#SP7" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_text_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">legend</span><span class="plain-syntax"> = </span><a href="4-mc.html#SP7" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_text_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">legend</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><a href="4-rem.html#SP2" 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><a href="4-mc.html#SP8" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_int_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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><a href="4-mc.html#SP7" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_text_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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><a href="4-mc.html#SP8" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_int_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</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>
<ul class="endnotetexts"><li>This code is used in <a href="4-rem.html#SP1_2_1_7">&#167;1.2.1.7</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP1_2_2" class="paragraph-anchor"></a><b>&#167;1.2.2. </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">1.2.2</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -500,20 +499,20 @@ actually go there in any visual way.
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> (</span><span class="identifier-syntax">xpart</span><span class="plain-syntax"> &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><a href="4-mc.html#SP8" class="function-link"><span class="function-syntax">ConfigureIndexMap::get_int_mp</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"monochrome"</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#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><a href="4-rem.html#SP13" 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#SP12" 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><span class="identifier-syntax">rh</span><span class="plain-syntax">-&gt;</span><span class="element-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="element-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="element-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="plain-syntax"> </span><a href="4-rem.html#SP2" 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="element-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="element-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="plain-syntax"> </span><span class="identifier-syntax">rh</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">point_size</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
<ul class="endnotetexts"><li>This code is used in <a href="4-rem.html#SP1_2">&#167;1.2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. 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>
@ -521,21 +520,21 @@ on &mdash; come from here.
<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('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">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">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">void</span><span class="plain-syntax"> </span><span class="function-syntax">RenderEPSMap::plot_text_at</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::plot_text_at</span></span>:<br/><a href="4-rem.html#SP1_2_1_6_1_2">&#167;1.2.1.6.1.2</a>, <a href="4-rem.html#SP1_2_1_7_3">&#167;1.2.1.7.3</a>, <a href="4-rem.html#SP1_2_2">&#167;1.2.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">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="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="identifier-syntax">text_stream</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">"%S"</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="named-paragraph-container code-font"><a href="4-rem.html#SP2_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">2.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_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">2.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="plain-syntax"> </span><a href="4-rem.html#SP3" 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="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 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">Try taking the name from the printed name property of the room</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">
@ -543,8 +542,8 @@ on &mdash; come from here.
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">txt</span><span class="plain-syntax">, </span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">printed_name</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>
<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><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">2.2</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -554,28 +553,28 @@ on &mdash; come from here.
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">txt</span><span class="plain-syntax">, </span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">N</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-rem.html#SP3">&#167;3</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>&#167;4. </b></p>
<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. </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('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">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">void</span><span class="plain-syntax"> </span><span class="function-syntax">RenderEPSMap::plot_stream_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_stream_at</span></span>:<br/><a href="4-rem.html#SP1_2_1_4">&#167;1.2.1.4</a>, <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="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="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="identifier-syntax">text_stream</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="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="named-paragraph-container code-font"><a href="4-rem.html#SP3_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">3.1</span></a></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_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,
<p class="commentary firstcommentary"><a id="SP3_1" class="paragraph-anchor"></a><b>&#167;3.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 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">3.1</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
@ -595,12 +594,12 @@ is "PsyNn".
<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.
<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. 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('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">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">void</span><span class="plain-syntax"> </span><span class="function-syntax">RenderEPSMap::EPS_compile_header</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::EPS_compile_header</span></span>:<br/><a href="4-rem.html#SP1_2_1">&#167;1.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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">bounding_box_width</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_height</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</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>
@ -608,20 +607,20 @@ is "PsyNn".
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"/%S 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
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>&#167;5. 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('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RenderEPSMap::EPS_compile_circular_path</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_circular_path</span></span>:<br/><a href="4-rem.html#SP6">&#167;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">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('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">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">void</span><span class="plain-syntax"> </span><span class="function-syntax">RenderEPSMap::EPS_compile_rectangular_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_rectangular_path</span></span>:<br/><a href="4-rem.html#SP1_2_1_2">&#167;1.2.1.2</a>, <a href="4-rem.html#SP6">&#167;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">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="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>
@ -630,38 +629,38 @@ closed (joined up back to the start position) with a <span class="extract"><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 class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>&#167;6. </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('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">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">void</span><span class="plain-syntax"> </span><span class="function-syntax">RenderEPSMap::EPS_compile_room_boundary_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_room_boundary_path</span></span>:<br/><a href="4-rem.html#SP1_2_1_7_1">&#167;1.2.1.7.1</a>, <a href="4-rem.html#SP1_2_1_7_2">&#167;1.2.1.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="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">text_stream</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">Str::cmp</span><span class="plain-syntax">(</span><span class="identifier-syntax">shape</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</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="plain-syntax"> </span><a href="4-rem.html#SP5" 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="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">Str::cmp</span><span class="plain-syntax">(</span><span class="identifier-syntax">shape</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</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="plain-syntax"> </span><a href="4-rem.html#SP5" 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="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">Str::cmp</span><span class="plain-syntax">(</span><span class="identifier-syntax">shape</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</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><a href="4-rem.html#SP5" 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="plain-syntax"> </span><a href="4-rem.html#SP5" 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="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>
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>&#167;7. 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('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">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="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('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">RenderEPSMap::EPS_compile_horizontal_line_path</span></span>:<br/><a href="4-rem.html#SP1_2_1_3">&#167;1.2.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">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>
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>&#167;8. 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('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">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="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">Dir</span><span class="plain-syntax">,</span>
<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('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">RenderEPSMap::EPS_compile_dashed_arrow</span></span>:<br/><a href="4-rem.html#SP1_2_1_6_1_2">&#167;1.2.1.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="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">Dir</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">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>
@ -670,13 +669,13 @@ closed (joined up back to the start position) with a <span class="extract"><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
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>&#167;9. 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('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RenderEPSMap::EPS_compile_Bezier_curve</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_Bezier_curve</span></span>:<br/><a href="4-rem.html#SP1_2_1_6_1_1">&#167;1.2.1.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="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">SpatialMap::direction_as_vector</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">exit0</span><span class="plain-syntax">);</span>
@ -689,25 +688,25 @@ reference book on PostScript.
<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
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>&#167;10. 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('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">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="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('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">RenderEPSMap::EPS_compile_line_width_setting</span></span>:<br/><a href="4-rem.html#SP1_2_1_6">&#167;1.2.1.6</a>, <a href="4-rem.html#SP1_2_1_7_2">&#167;1.2.1.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('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_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="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('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_unsetting</span></span>:<br/><a href="4-rem.html#SP1_2_1_6">&#167;1.2.1.6</a>, <a href="4-rem.html#SP1_2_1_7_2">&#167;1.2.1.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 class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>&#167;11. 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('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RenderEPSMap::EPS_compile_text</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_text</span></span>:<br/><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</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">text_stream</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">"/%S 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>
@ -718,7 +717,7 @@ stack is kept in order.
<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
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>&#167;12. 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>
@ -727,16 +726,16 @@ are written as triples of floating point numbers \(0 \leq b \leq 1\).
</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('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">htmlcolour</span><span class="plain-syntax">) {</span>
<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('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">RenderEPSMap::EPS_compile_set_colour</span></span>:<br/><a href="4-rem.html#SP1_2_1_4">&#167;1.2.1.4</a>, <a href="4-rem.html#SP1_2_1_6_1">&#167;1.2.1.6.1</a>, <a href="4-rem.html#SP1_2_1_7_1">&#167;1.2.1.7.1</a>, <a href="4-rem.html#SP1_2_1_7_2">&#167;1.2.1.7.2</a>, <a href="4-rem.html#SP1_2_1_7_3">&#167;1.2.1.7.3</a>, <a href="4-rem.html#SP1_2_2">&#167;1.2.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">text_stream</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">Str::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">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">htmlcolour</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">), </span><span class="identifier-syntax">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">htmlcolour</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-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">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">htmlcolour</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">), </span><span class="identifier-syntax">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">htmlcolour</span><span class="plain-syntax">, </span><span class="constant-syntax">3</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">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">htmlcolour</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">), </span><span class="identifier-syntax">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">htmlcolour</span><span class="plain-syntax">, </span><span class="constant-syntax">5</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::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">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">htmlcolour</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">), </span><span class="identifier-syntax">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">htmlcolour</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-rem.html#SP12" 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">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">htmlcolour</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">), </span><span class="identifier-syntax">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">htmlcolour</span><span class="plain-syntax">, </span><span class="constant-syntax">3</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::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">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">htmlcolour</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">), </span><span class="identifier-syntax">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">htmlcolour</span><span class="plain-syntax">, </span><span class="constant-syntax">5</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">"setrgbcolor %% From HTML colour %S\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="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#SP12" 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#SP12" 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>
@ -763,11 +762,11 @@ are written as triples of floating point numbers \(0 \leq b \leq 1\).
<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 class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>&#167;13. </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('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_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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RenderEPSMap::EPS_compile_set_greyscale</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_greyscale</span></span>:<br/><a href="4-rem.html#SP1_2_1_4">&#167;1.2.1.4</a>, <a href="4-rem.html#SP1_2_1_6_1">&#167;1.2.1.6.1</a>, <a href="4-rem.html#SP1_2_1_7_1">&#167;1.2.1.7.1</a>, <a href="4-rem.html#SP1_2_1_7_2">&#167;1.2.1.7.2</a>, <a href="4-rem.html#SP1_2_1_7_3">&#167;1.2.1.7.3</a>, <a href="4-rem.html#SP1_2_2">&#167;1.2.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">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>

View file

@ -115,8 +115,8 @@ this icon position, and has the same indexing as the icon grid.
<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">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">HTMLMap::calculate_map_grid</span></span>:<br/><a href="4-rhm.html#SP6">&#167;6</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">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP8" class="function-link"><span class="function-syntax">InterpretIndex::get_faux_instances</span></a><span class="plain-syntax">();</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">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">HTMLMap::calculate_map_grid</span></span>:<br/><a href="4-rhm.html#SP6">&#167;6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP5" class="function-link"><span class="function-syntax">Indexing::get_set_of_instances</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-rhm.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Allocate the three mapping grids</span><span class="named-paragraph-number">1.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-rhm.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Populate the room grid</span><span class="named-paragraph-number">1.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-rhm.html#SP1_3" class="named-paragraph-link"><span class="named-paragraph">Populate the icon and exit grids</span><span class="named-paragraph-number">1.3</span></a></span><span class="plain-syntax">;</span>
@ -551,14 +551,15 @@ the details part of the World Index page) will be all right.
</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">HTMLMap::render_map_as_HTML</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">HTMLMap::render_map_as_HTML</span></span>:<br/>Map Element - <a href="3-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="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP8" class="function-link"><span class="function-syntax">InterpretIndex::get_faux_instances</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP1" class="function-link"><span class="function-syntax">HTMLMap::calculate_map_grid</span></a><span class="plain-syntax">();</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">HTMLMap::render_map_as_HTML</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">HTMLMap::render_map_as_HTML</span></span>:<br/>Map Element - <a href="3-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="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP5" class="function-link"><span class="function-syntax">Indexing::get_set_of_instances</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP1" class="function-link"><span class="function-syntax">HTMLMap::calculate_map_grid</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-rhm.html#SP6_1" class="named-paragraph-link"><span class="named-paragraph">Choose a map colour for each region</span><span class="named-paragraph-number">6.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-rhm.html#SP6_2" class="named-paragraph-link"><span class="named-paragraph">Choose a map colour for each room, based on its region membership</span><span class="named-paragraph-number">6.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><a href="2-fi.html#SP12" class="function-link"><span class="function-syntax">FauxInstances::no_rooms</span></a><span class="plain-syntax">() &gt;= </span><span class="constant-syntax">2</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-fi.html#SP12" class="function-link"><span class="function-syntax">FauxInstances::no_rooms</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">) &gt;= </span><span class="constant-syntax">2</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::comment</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">"WORLD WRITE MAP BEGINS"</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>
@ -639,7 +640,7 @@ from each other.)
<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">level_rubric</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP7" class="function-link"><span class="function-syntax">HTMLMap::devise_level_rubric</span></a><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="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP7" class="function-link"><span class="function-syntax">HTMLMap::devise_level_rubric</span></a><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="identifier-syntax">session</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>
@ -666,7 +667,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-rhm.html#SP9" class="function-link"><span class="function-syntax">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="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP9" class="function-link"><span class="function-syntax">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="identifier-syntax">session</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-rhm.html#SP6_3">&#167;6.3</a>.</li></ul>
@ -686,7 +687,7 @@ from each other.)
<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">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_FAUX_DIRECTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">faux_set</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">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">A</span><span class="plain-syntax"> = </span><a href="4-sm.html#SP7_5" class="function-link"><span class="function-syntax">SpatialMap::mapped_as_if</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span 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="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</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>
@ -701,7 +702,8 @@ from each other.)
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">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">HTMLMap::devise_level_rubric</span></span>:<br/><a href="4-rhm.html#SP6_3_1">&#167;6.3.1</a><br/>Render EPS Map - <a href="4-rem.html#SP1_1_2">&#167;1.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="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">level_rubric</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</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">key</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="string-syntax">"Index.Elements.Mp.DefaultLevel"</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">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>
@ -711,7 +713,7 @@ from each other.)
<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">key</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="string-syntax">"Index.Elements.Mp.UpperLevel"</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><a href="4-sm.html#SP4" class="function-link"><span class="function-syntax">SpatialMap::benchmark_level</span></a><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">SpatialMap::benchmark_level</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</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">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">key</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="string-syntax">"Index.Elements.Mp.StartingLevel"</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">key</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="string-syntax">"Index.Elements.Mp.FirstLevelUp"</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
@ -746,7 +748,7 @@ that the grids are calculated, the region colours decided, and so on.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">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">HTMLMap::render_single_room_as_HTML</span></span>:<br/>Map Element - <a href="3-me.html#SP1_2">&#167;1.2</a>, <a href="3-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">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</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><a href="2-iu.html#SP5" class="function-link"><span class="function-syntax">IndexUtilities::anchor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">anchor_text</span><span class="plain-syntax">);</span>
@ -754,11 +756,11 @@ that the grids are calculated, the region colours decided, and so on.
<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-rhm.html#SP9" class="function-link"><span class="function-syntax">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="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP9" class="function-link"><span class="function-syntax">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="identifier-syntax">session</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>
<span class="plain-syntax"> </span><a href="3-me.html#SP2" class="function-link"><span class="function-syntax">MapElement::index</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="3-me.html#SP2" class="function-link"><span class="function-syntax">MapElement::index</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::end_html_row</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::end_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_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
@ -772,7 +774,7 @@ index page.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">HTMLMap::plot_map_level</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">HTMLMap::plot_map_level</span></span>:<br/><a href="4-rhm.html#SP6_3_2">&#167;6.3.2</a>, <a href="4-rhm.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">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">y0</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">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">pass</span><span class="plain-syntax">, </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</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">pass</span><span class="plain-syntax">, </span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span 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="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>
@ -918,15 +920,15 @@ height, and they're drawn with a single stripe.
<span class="plain-syntax"> </span><a href="4-rhm.html#SP4" class="function-link"><span class="function-syntax">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>
<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-rhm.html#SP10" class="function-link"><span class="function-syntax">HTMLMap::plot_map_cell</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</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">2</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP10" class="function-link"><span class="function-syntax">HTMLMap::plot_map_cell</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</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">2</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span 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">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">)] &amp; </span><span class="constant-syntax">CONNECTIVE_BITMAP</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP5" class="function-link"><span class="function-syntax">HTMLMap::plot_map_icon</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="string-syntax">"s_dot"</span><span class="plain-syntax">); </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="4-rhm.html#SP5" class="function-link"><span class="function-syntax">HTMLMap::plot_map_icon</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="string-syntax">"ns_spacer"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP10" class="function-link"><span class="function-syntax">HTMLMap::plot_map_cell</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">8</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP10" class="function-link"><span class="function-syntax">HTMLMap::plot_map_cell</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</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">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP10" class="function-link"><span class="function-syntax">HTMLMap::plot_map_cell</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">3</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, -1, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP10" class="function-link"><span class="function-syntax">HTMLMap::plot_map_cell</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">8</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP10" class="function-link"><span class="function-syntax">HTMLMap::plot_map_cell</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</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">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP10" class="function-link"><span class="function-syntax">HTMLMap::plot_map_cell</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">3</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, -1, </span><span class="identifier-syntax">session</span><span 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">4</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">)] &amp; </span><span class="constant-syntax">CONNECTIVE_BITMAP</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP5" class="function-link"><span class="function-syntax">HTMLMap::plot_map_icon</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="string-syntax">"s_dot"</span><span class="plain-syntax">); </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="4-rhm.html#SP5" class="function-link"><span class="function-syntax">HTMLMap::plot_map_icon</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="string-syntax">"ns_spacer"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP10" class="function-link"><span class="function-syntax">HTMLMap::plot_map_cell</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</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">1</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP10" class="function-link"><span class="function-syntax">HTMLMap::plot_map_cell</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</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">1</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</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>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP4_1" class="function-link"><span class="function-syntax">HTMLMap::end_map_table</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
@ -948,11 +950,11 @@ height, and they're drawn with a single stripe.
<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">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">)] &amp; </span><span class="constant-syntax">CONNECTIVE_BITMAP</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP5" class="function-link"><span class="function-syntax">HTMLMap::plot_map_icon</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="string-syntax">"e_dot"</span><span class="plain-syntax">); </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="4-rhm.html#SP5" class="function-link"><span class="function-syntax">HTMLMap::plot_map_icon</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="string-syntax">"ew_spacer"</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>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP10" class="function-link"><span class="function-syntax">HTMLMap::plot_map_cell</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</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">1</span><span class="plain-syntax">, </span><span class="constant-syntax">11</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP10" class="function-link"><span class="function-syntax">HTMLMap::plot_map_cell</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</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">1</span><span class="plain-syntax">, </span><span class="constant-syntax">11</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</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>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP10" class="function-link"><span class="function-syntax">HTMLMap::plot_map_cell</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</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">7</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP10" class="function-link"><span class="function-syntax">HTMLMap::plot_map_cell</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</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">7</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</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>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP10" class="function-link"><span class="function-syntax">HTMLMap::plot_map_cell</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</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">3</span><span class="plain-syntax">, -1, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP10" class="function-link"><span class="function-syntax">HTMLMap::plot_map_cell</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</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">3</span><span class="plain-syntax">, -1, </span><span class="identifier-syntax">session</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>
<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">0</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">)] &amp; </span><span class="constant-syntax">CONNECTIVE_BITMAP</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP5" class="function-link"><span class="function-syntax">HTMLMap::plot_map_icon</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="string-syntax">"e_dot"</span><span class="plain-syntax">); </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="4-rhm.html#SP5" class="function-link"><span class="function-syntax">HTMLMap::plot_map_icon</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="string-syntax">"ew_spacer"</span><span class="plain-syntax">);</span>
@ -970,11 +972,11 @@ height, and they're drawn with a single stripe.
<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">4</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">)] &amp; </span><span class="constant-syntax">CONNECTIVE_BITMAP</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP5" class="function-link"><span class="function-syntax">HTMLMap::plot_map_icon</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="string-syntax">"w_dot"</span><span class="plain-syntax">); </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="4-rhm.html#SP5" class="function-link"><span class="function-syntax">HTMLMap::plot_map_icon</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="string-syntax">"ew_spacer"</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>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP10" class="function-link"><span class="function-syntax">HTMLMap::plot_map_cell</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</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">1</span><span class="plain-syntax">, -1, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP10" class="function-link"><span class="function-syntax">HTMLMap::plot_map_cell</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</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">1</span><span class="plain-syntax">, -1, </span><span class="identifier-syntax">session</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>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP10" class="function-link"><span class="function-syntax">HTMLMap::plot_map_cell</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</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">6</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP10" class="function-link"><span class="function-syntax">HTMLMap::plot_map_cell</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</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">6</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</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>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP10" class="function-link"><span class="function-syntax">HTMLMap::plot_map_cell</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</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">3</span><span class="plain-syntax">, </span><span class="constant-syntax">10</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP10" class="function-link"><span class="function-syntax">HTMLMap::plot_map_cell</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</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">3</span><span class="plain-syntax">, </span><span class="constant-syntax">10</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</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>
<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">4</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">)] &amp; </span><span class="constant-syntax">CONNECTIVE_BITMAP</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP5" class="function-link"><span class="function-syntax">HTMLMap::plot_map_icon</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="string-syntax">"w_dot"</span><span class="plain-syntax">); </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="4-rhm.html#SP5" class="function-link"><span class="function-syntax">HTMLMap::plot_map_icon</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="string-syntax">"ew_spacer"</span><span class="plain-syntax">);</span>
@ -999,7 +1001,7 @@ There are 15 possibilities, and their icons are named as the following shows:
<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">bits</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">LONGS_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">bits</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-rhm.html#SP11" class="function-link"><span class="function-syntax">HTMLMap::index_room_square</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</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">P</span><span class="plain-syntax">)], </span><span class="identifier-syntax">pass</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP11" class="function-link"><span class="function-syntax">HTMLMap::index_room_square</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</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">P</span><span class="plain-syntax">)], </span><span class="identifier-syntax">pass</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</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">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">icon_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">icon_name</span><span class="plain-syntax">, </span><span class="string-syntax">"long"</span><span class="plain-syntax">);</span>
@ -1022,15 +1024,15 @@ There are 15 possibilities, and their icons are named as the following shows:
<span class="plain-syntax"> </span><a href="4-rhm.html#SP4" class="function-link"><span class="function-syntax">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>
<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-rhm.html#SP10" class="function-link"><span class="function-syntax">HTMLMap::plot_map_cell</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</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">5</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP10" class="function-link"><span class="function-syntax">HTMLMap::plot_map_cell</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</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">5</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span 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">0</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">)] &amp; </span><span class="constant-syntax">CONNECTIVE_BITMAP</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP5" class="function-link"><span class="function-syntax">HTMLMap::plot_map_icon</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="string-syntax">"n_dot"</span><span class="plain-syntax">); </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="4-rhm.html#SP5" class="function-link"><span class="function-syntax">HTMLMap::plot_map_icon</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="string-syntax">"ns_spacer"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP10" class="function-link"><span class="function-syntax">HTMLMap::plot_map_cell</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">, -1, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP10" class="function-link"><span class="function-syntax">HTMLMap::plot_map_cell</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</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">3</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP10" class="function-link"><span class="function-syntax">HTMLMap::plot_map_cell</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">3</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">, </span><span class="constant-syntax">9</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP10" class="function-link"><span class="function-syntax">HTMLMap::plot_map_cell</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">, -1, </span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP10" class="function-link"><span class="function-syntax">HTMLMap::plot_map_cell</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</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">3</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP10" class="function-link"><span class="function-syntax">HTMLMap::plot_map_cell</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">3</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">, </span><span class="constant-syntax">9</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span 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">4</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">)] &amp; </span><span class="constant-syntax">CONNECTIVE_BITMAP</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP5" class="function-link"><span class="function-syntax">HTMLMap::plot_map_icon</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="string-syntax">"n_dot"</span><span class="plain-syntax">); </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="4-rhm.html#SP5" class="function-link"><span class="function-syntax">HTMLMap::plot_map_icon</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="string-syntax">"ns_spacer"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP10" class="function-link"><span class="function-syntax">HTMLMap::plot_map_cell</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</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">4</span><span class="plain-syntax">, </span><span class="identifier-syntax">LD</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP10" class="function-link"><span class="function-syntax">HTMLMap::plot_map_cell</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">pass</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">4</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</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>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP4_1" class="function-link"><span class="function-syntax">HTMLMap::end_map_table</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
@ -1095,8 +1097,9 @@ of the cell. First, the eight cells around the outside:
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">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">HTMLMap::plot_map_cell</span></span>:<br/><a href="4-rhm.html#SP9_3_1_1">&#167;9.3.1.1</a>, <a href="4-rhm.html#SP9_3_2_1">&#167;9.3.2.1</a>, <a href="4-rhm.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="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="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP8" class="function-link"><span class="function-syntax">InterpretIndex::get_faux_instances</span></a><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">faux_exit</span><span class="plain-syntax">, </span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">localisation_dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">LD</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP4" class="function-link"><span class="function-syntax">Indexing::get_localisation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP5" class="function-link"><span class="function-syntax">Indexing::get_set_of_instances</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</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-rhm.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>
@ -1200,10 +1203,10 @@ 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">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">HTMLMap::index_room_square</span></span>:<br/><a href="4-rhm.html#SP9_3_2_1_1">&#167;9.3.2.1.1</a>, <a href="4-rhm.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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">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">HTMLMap::index_room_square</span></span>:<br/><a href="4-rhm.html#SP9_3_2_1_1">&#167;9.3.2.1.1</a>, <a href="4-rhm.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="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span 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><a href="2-fi.html#SP11" class="function-link"><span class="function-syntax">FauxInstances::benchmark</span></a><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><a href="2-fi.html#SP11" class="function-link"><span class="function-syntax">FauxInstances::benchmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</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\" title=\"%S\""</span><span class="plain-syntax">,</span>
@ -1237,7 +1240,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><a href="2-fi.html#SP11" class="function-link"><span class="function-syntax">FauxInstances::benchmark</span></a><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><a href="2-fi.html#SP11" class="function-link"><span class="function-syntax">FauxInstances::benchmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</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="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">abbrev</span><span class="plain-syntax">, </span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">abbrev</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">HTML_MAP_FONT_SIZE</span>
@ -1248,7 +1251,7 @@ 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><a href="2-fi.html#SP11" class="function-link"><span class="function-syntax">FauxInstances::benchmark</span></a><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><a href="2-fi.html#SP11" class="function-link"><span class="function-syntax">FauxInstances::benchmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</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>
@ -1281,17 +1284,17 @@ that nothing is shown if all of the rooms are outside of regions.
</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">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">HTMLMap::add_region_key</span></span>:<br/>Map Element - <a href="3-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="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP8" class="function-link"><span class="function-syntax">InterpretIndex::get_faux_instances</span></a><span class="plain-syntax">();</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">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">HTMLMap::add_region_key</span></span>:<br/>Map Element - <a href="3-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="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP5" class="function-link"><span class="function-syntax">Indexing::get_set_of_instances</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</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_FAUX_REGIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">faux_set</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-rhm.html#SP13" class="function-link"><span class="function-syntax">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-rhm.html#SP13" class="function-link"><span class="function-syntax">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="identifier-syntax">count</span><span class="plain-syntax"> += </span><a href="4-rhm.html#SP13" class="function-link"><span class="function-syntax">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="identifier-syntax">session</span><span 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-rhm.html#SP13" class="function-link"><span class="function-syntax">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="identifier-syntax">session</span><span 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">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">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP8" class="function-link"><span class="function-syntax">InterpretIndex::get_faux_instances</span></a><span class="plain-syntax">();</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">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="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP5" class="function-link"><span class="function-syntax">Indexing::get_set_of_instances</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</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="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_FAUX_ROOMS</span><span class="plain-syntax">(</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">) {</span>
@ -1316,7 +1319,7 @@ that nothing is shown if all of the rooms are outside of regions.
<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_OPEN</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>
<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">"width=\"40\" valign=\"middle\" align=\"left\""</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP11" class="function-link"><span class="function-syntax">HTMLMap::index_room_square</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-rhm.html#SP11" class="function-link"><span class="function-syntax">HTMLMap::index_room_square</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</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">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>

View file

@ -165,6 +165,7 @@ as the "heat", a term to be explained later.
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">incidence_cache_size</span><span class="plain-syntax">; </span><span class="comment-syntax"> how large that cache is</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">cuboid</span><span class="plain-syntax"> </span><span class="identifier-syntax">incidence_cache_bounds</span><span class="plain-syntax">; </span><span class="comment-syntax"> bounds of the incidence cache array</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">superpositions</span><span class="plain-syntax">; </span><span class="comment-syntax"> number of pairs of rooms which share the same grid location</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">for_session</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">connected_submap</span><span class="plain-syntax">;</span>
</pre>
@ -180,9 +181,9 @@ This is usually the room in which the player begins.
</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">SpatialMap::benchmark_level</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">SpatialMap::benchmark_level</span></span>:<br/><a href="4-sm.html#SP7_31_1_1">&#167;7.31.1.1</a>, <a href="4-sm.html#SP7_31_1_2">&#167;7.31.1.2</a>, <a href="4-sm.html#SP7_31_1_3">&#167;7.31.1.3</a><br/>Faux Instances - <a href="2-fi.html#SP10_4">&#167;10.4</a><br/>Render HTML Map - <a href="4-rhm.html#SP7">&#167;7</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">if</span><span class="plain-syntax"> (</span><a href="2-fi.html#SP11" class="function-link"><span class="function-syntax">FauxInstances::benchmark</span></a><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="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">Room_position</span><span class="plain-syntax">(</span><a href="2-fi.html#SP11" class="function-link"><span class="function-syntax">FauxInstances::benchmark</span></a><span class="plain-syntax">()).</span><span class="identifier-syntax">z</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">SpatialMap::benchmark_level</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">SpatialMap::benchmark_level</span></span>:<br/><a href="4-sm.html#SP7_31_1_1">&#167;7.31.1.1</a>, <a href="4-sm.html#SP7_31_1_2">&#167;7.31.1.2</a>, <a href="4-sm.html#SP7_31_1_3">&#167;7.31.1.3</a><br/>Faux Instances - <a href="2-fi.html#SP10_4">&#167;10.4</a><br/>Render HTML Map - <a href="4-rhm.html#SP7">&#167;7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</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-fi.html#SP11" class="function-link"><span class="function-syntax">FauxInstances::benchmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</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="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">Room_position</span><span class="plain-syntax">(</span><a href="2-fi.html#SP11" class="function-link"><span class="function-syntax">FauxInstances::benchmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">)).</span><span class="identifier-syntax">z</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>&#167;5. </b>We are going to be iterating through the set of rooms often. Looping over
@ -231,9 +232,9 @@ to get the results in time to write them in the story file.
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">spatial_coordinates_established</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">partitioned_into_components</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">SpatialMap::establish_spatial_coordinates</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">SpatialMap::establish_spatial_coordinates</span></span>:<br/>Map Element - <a href="3-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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SpatialMap::establish_spatial_coordinates</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">SpatialMap::establish_spatial_coordinates</span></span>:<br/>Map Element - <a href="3-me.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span 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_coordinates_established</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP8" class="function-link"><span class="function-syntax">InterpretIndex::get_faux_instances</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP5" class="function-link"><span class="function-syntax">Indexing::get_set_of_instances</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Universe</span><span class="plain-syntax"> = </span><a href="4-sg.html#SP10" class="function-link"><span class="function-syntax">Geometry::empty_cuboid</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-sm.html#SP7_16" class="named-paragraph-link"><span class="named-paragraph">(1) Create the spatial relationship arrays</span><span class="named-paragraph-number">7.16</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-sm.html#SP7_23" class="named-paragraph-link"><span class="named-paragraph">(2) Partition the set of rooms into component submaps</span><span class="named-paragraph-number">7.23</span></a></span><span class="plain-syntax">;</span>
@ -318,8 +319,8 @@ direction) with page direction 6:
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="function-syntax">SpatialMap::mapped_as_if</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">SpatialMap::mapped_as_if</span></span>:<br/>Render HTML Map - <a href="4-rhm.html#SP6_3_4">&#167;6.3.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">I</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP8" class="function-link"><span class="function-syntax">InterpretIndex::get_faux_instances</span></a><span class="plain-syntax">();</span>
<span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="function-syntax">SpatialMap::mapped_as_if</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">SpatialMap::mapped_as_if</span></span>:<br/>Render HTML Map - <a href="4-rhm.html#SP6_3_4">&#167;6.3.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">I</span><span class="plain-syntax">, </span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP5" class="function-link"><span class="function-syntax">Indexing::get_set_of_instances</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> = </span><span class="identifier-syntax">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="reserved-syntax">if</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">i</span><span class="plain-syntax">] == </span><span class="identifier-syntax">i</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax">;</span>
@ -348,7 +349,7 @@ unchanged.
</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">SpatialMap::direction_as_vector</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">SpatialMap::direction_as_vector</span></span>:<br/><a href="4-sm.html#SP7_10">&#167;7.10</a>, <a href="4-sm.html#SP7_11">&#167;7.11</a>, <a href="4-sm.html#SP7_26">&#167;7.26</a>, <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">&#167;22.1.4</a>, <a href="4-sm.html#SP32">&#167;32</a>, <a href="4-sm.html#SP36_1">&#167;36.1</a><br/>Render HTML Map - <a href="4-rhm.html#SP1_3_4">&#167;1.3.4</a><br/>Render EPS Map - <a href="4-rem.html#SP2_6_1_2">&#167;2.6.1.2</a>, <a href="4-rem.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">story_direction</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="function-syntax">SpatialMap::direction_as_vector</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">SpatialMap::direction_as_vector</span></span>:<br/><a href="4-sm.html#SP7_10">&#167;7.10</a>, <a href="4-sm.html#SP7_11">&#167;7.11</a>, <a href="4-sm.html#SP7_26">&#167;7.26</a>, <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">&#167;22.1.4</a>, <a href="4-sm.html#SP32">&#167;32</a>, <a href="4-sm.html#SP36_1">&#167;36.1</a><br/>Render HTML Map - <a href="4-rhm.html#SP1_3_4">&#167;1.3.4</a><br/>Render EPS Map - <a href="4-rem.html#SP1_2_1_6_1_2">&#167;1.2.1.6.1.2</a>, <a href="4-rem.html#SP9">&#167;9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">story_direction</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">story_direction</span><span class="plain-syntax"> &lt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">story_direction</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">MAX_DIRECTIONS</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">Zero_vector</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">page_direction</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">story_direction</span><span class="plain-syntax">];</span>
@ -371,7 +372,7 @@ unchanged.
</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">SpatialMap::opposite</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">SpatialMap::opposite</span></span>:<br/><a href="4-sm.html#SP7_2">&#167;7.2</a>, <a href="4-sm.html#SP7_16_1">&#167;7.16.1</a>, <a href="4-sm.html#SP7_16_1_1">&#167;7.16.1.1</a>, <a href="4-sm.html#SP7_16_1_3">&#167;7.16.1.3</a>, <a href="4-sm.html#SP7_16_1_4">&#167;7.16.1.4</a>, <a href="4-sm.html#SP8">&#167;8</a>, <a href="4-sm.html#SP24_2_3_2">&#167;24.2.3.2</a>, <a href="4-sm.html#SP7_29">&#167;7.29</a><br/>Render EPS Map - <a href="4-rem.html#SP2_6_1">&#167;2.6.1</a>, <a href="4-rem.html#SP2_6_1_1">&#167;2.6.1.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">story_direction</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">SpatialMap::opposite</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">SpatialMap::opposite</span></span>:<br/><a href="4-sm.html#SP7_2">&#167;7.2</a>, <a href="4-sm.html#SP7_16_1">&#167;7.16.1</a>, <a href="4-sm.html#SP7_16_1_1">&#167;7.16.1.1</a>, <a href="4-sm.html#SP7_16_1_3">&#167;7.16.1.3</a>, <a href="4-sm.html#SP7_16_1_4">&#167;7.16.1.4</a>, <a href="4-sm.html#SP8">&#167;8</a>, <a href="4-sm.html#SP24_2_3_2">&#167;24.2.3.2</a>, <a href="4-sm.html#SP7_29">&#167;7.29</a><br/>Render EPS Map - <a href="4-rem.html#SP1_2_1_6_1">&#167;1.2.1.6.1</a>, <a href="4-rem.html#SP1_2_1_6_1_1">&#167;1.2.1.6.1.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">story_direction</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">story_direction</span><span class="plain-syntax"> &lt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">story_direction</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">MAX_DIRECTIONS</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">page_direction</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">story_direction</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">page_direction</span><span class="plain-syntax">) {</span>
@ -445,7 +446,7 @@ we use these hard-wired macros instead.
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="identifier-syntax">LOOP_OVER_DIRECTION_NUMBERS</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">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;12; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++)</span>
<span class="definition-keyword">define</span> <span class="identifier-syntax">LOOP_OVER_STORY_DIRECTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</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><a href="2-fi.html#SP12" class="function-link"><span class="function-syntax">FauxInstances::no_directions</span></a><span class="plain-syntax">()) &amp;&amp; (</span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="constant-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="reserved-syntax">for</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><a href="2-fi.html#SP12" class="function-link"><span class="function-syntax">FauxInstances::no_directions</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">)) &amp;&amp; (</span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="constant-syntax">MAX_DIRECTIONS</span><span class="plain-syntax">)); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++)</span>
<span class="definition-keyword">define</span> <span class="identifier-syntax">LOOP_OVER_LATTICE_DIRECTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</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;10; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++)</span>
<span class="definition-keyword">define</span> <span class="identifier-syntax">LOOP_OVER_NONLATTICE_DIRECTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">)</span>
@ -529,7 +530,7 @@ door, which we take a note of if asked to do so.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="function-syntax">SpatialMap::room_exit</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">SpatialMap::room_exit</span></span>:<br/><a href="4-sm.html#SP9">&#167;9</a>, <a href="4-sm.html#SP42">&#167;42</a><br/>Render HTML Map - <a href="4-rhm.html#SP1_3">&#167;1.3</a>, <a href="4-rhm.html#SP10_2_2">&#167;10.2.2</a><br/>Render EPS Map - <a href="4-rem.html#SP2_6">&#167;2.6</a>, <a href="4-rem.html#SP2_6_1">&#167;2.6.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">origin</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">dir_num</span><span class="plain-syntax">,</span>
<span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="function-syntax">SpatialMap::room_exit</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">SpatialMap::room_exit</span></span>:<br/><a href="4-sm.html#SP9">&#167;9</a>, <a href="4-sm.html#SP42">&#167;42</a><br/>Render HTML Map - <a href="4-rhm.html#SP1_3">&#167;1.3</a>, <a href="4-rhm.html#SP10_2_2">&#167;10.2.2</a><br/>Render EPS Map - <a href="4-rem.html#SP1_2_1_6">&#167;1.2.1.6</a>, <a href="4-rem.html#SP1_2_1_6_1">&#167;1.2.1.6.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">origin</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">dir_num</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> **</span><span class="identifier-syntax">via</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">via</span><span class="plain-syntax">) *</span><span class="identifier-syntax">via</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">origin</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><a href="2-fi.html#SP13" class="function-link"><span class="function-syntax">FauxInstances::is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">origin</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) ||</span>
@ -770,7 +771,7 @@ boundaries, and will be needed when we place submaps on the global grid.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">connected_submap</span><span class="plain-syntax"> *</span><span class="function-syntax">SpatialMap::new_submap</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">SpatialMap::new_submap</span></span>:<br/><a href="4-sm.html#SP7_24">&#167;7.24</a>, <a href="4-sm.html#SP22_1_3">&#167;22.1.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">connected_submap</span><span class="plain-syntax"> *</span><span class="function-syntax">SpatialMap::new_submap</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">SpatialMap::new_submap</span></span>:<br/><a href="4-sm.html#SP7_24">&#167;7.24</a>, <a href="4-sm.html#SP22_1_3">&#167;22.1.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">connected_submap</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sub</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">connected_submap</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">sub</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">bounds</span><span class="plain-syntax"> = </span><a href="4-sg.html#SP10" class="function-link"><span class="function-syntax">Geometry::empty_cuboid</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">sub</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">first_room_in_submap</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
@ -778,6 +779,7 @@ boundaries, and will be needed when we place submaps on the global grid.
<span class="plain-syntax"> </span><span class="identifier-syntax">sub</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">incidence_cache</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">sub</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">incidence_cache_bounds</span><span class="plain-syntax"> = </span><a href="4-sg.html#SP10" class="function-link"><span class="function-syntax">Geometry::empty_cuboid</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">sub</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">superpositions</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">sub</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">for_session</span><span class="plain-syntax"> = </span><span class="identifier-syntax">session</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">sub</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
@ -968,7 +970,7 @@ since its rooms have all moved out.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SpatialMap::create_submaps_from_zones</span><button class="popup" onclick="togglePopup('usagePopup32')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup32">Usage of <span class="code-font"><span class="function-syntax">SpatialMap::create_submaps_from_zones</span></span>:<br/><a href="4-sm.html#SP22_1_3">&#167;22.1.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">connected_submap</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sub</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">Z1_number</span><span class="plain-syntax">, </span><span class="reserved-syntax">connected_submap</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Zone1</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">Z2_number</span><span class="plain-syntax">, </span><span class="reserved-syntax">connected_submap</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Zone2</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP8" class="function-link"><span class="function-syntax">InterpretIndex::get_faux_instances</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP5" class="function-link"><span class="function-syntax">Indexing::get_set_of_instances</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sub</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">for_session</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_FAUX_ROOMS</span><span class="plain-syntax">(</span><span class="identifier-syntax">faux_set</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">zone</span><span class="plain-syntax"> == </span><span class="identifier-syntax">Z1_number</span><span class="plain-syntax">)</span>
@ -987,7 +989,7 @@ reverse process exactly.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SpatialMap::create_zones_from_submaps</span><button class="popup" onclick="togglePopup('usagePopup33')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup33">Usage of <span class="code-font"><span class="function-syntax">SpatialMap::create_zones_from_submaps</span></span>:<br/><a href="4-sm.html#SP22_1_3">&#167;22.1.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">connected_submap</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sub</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">Z1_number</span><span class="plain-syntax">, </span><span class="reserved-syntax">connected_submap</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Zone1</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">Z2_number</span><span class="plain-syntax">, </span><span class="reserved-syntax">connected_submap</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Zone2</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP8" class="function-link"><span class="function-syntax">InterpretIndex::get_faux_instances</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP5" class="function-link"><span class="function-syntax">Indexing::get_set_of_instances</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sub</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">for_session</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_FAUX_ROOMS</span><span class="plain-syntax">(</span><span class="identifier-syntax">faux_set</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">submap</span><span class="plain-syntax"> == </span><span class="identifier-syntax">Zone1</span><span class="plain-syntax">) {</span>
@ -1015,11 +1017,11 @@ benchmark room.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="4-sm.html#SP7_24" class="function-link"><span class="function-syntax">SpatialMap::create_map_component_around</span></a><span class="plain-syntax">(</span><a href="2-fi.html#SP11" class="function-link"><span class="function-syntax">FauxInstances::benchmark</span></a><span class="plain-syntax">());</span>
<span class="plain-syntax"> </span><a href="4-sm.html#SP7_24" class="function-link"><span class="function-syntax">SpatialMap::create_map_component_around</span></a><span class="plain-syntax">(</span><a href="2-fi.html#SP11" class="function-link"><span class="function-syntax">FauxInstances::benchmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">), </span><span class="identifier-syntax">session</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_FAUX_ROOMS</span><span class="plain-syntax">(</span><span class="identifier-syntax">faux_set</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">submap</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-sm.html#SP7_24" class="function-link"><span class="function-syntax">SpatialMap::create_map_component_around</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-sm.html#SP7_24" class="function-link"><span class="function-syntax">SpatialMap::create_map_component_around</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-sm.html#SP7">&#167;7</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP7_24" class="paragraph-anchor"></a><b>&#167;7.24. </b>The following grows a component outwards from <span class="extract"><span class="extract-syntax">at</span></span>, so that it also includes
@ -1033,21 +1035,21 @@ each room, so phase (2) has running time \(O(R)\).
</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">SpatialMap::create_map_component_around</span><button class="popup" onclick="togglePopup('usagePopup34')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup34">Usage of <span class="code-font"><span class="function-syntax">SpatialMap::create_map_component_around</span></span>:<br/><a href="4-sm.html#SP7_23">&#167;7.23</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">faux_instance</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">SpatialMap::create_map_component_around</span><button class="popup" onclick="togglePopup('usagePopup34')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup34">Usage of <span class="code-font"><span class="function-syntax">SpatialMap::create_map_component_around</span></span>:<br/><a href="4-sm.html#SP7_23">&#167;7.23</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">at</span><span class="plain-syntax">, </span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span 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="element-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><a href="4-sm.html#SP12" class="function-link"><span class="function-syntax">SpatialMap::add_room_to_submap</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">at</span><span class="plain-syntax">, </span><a href="4-sm.html#SP11" class="function-link"><span class="function-syntax">SpatialMap::new_submap</span></a><span class="plain-syntax">());</span>
<span class="plain-syntax"> </span><a href="4-sm.html#SP12" class="function-link"><span class="function-syntax">SpatialMap::add_room_to_submap</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">at</span><span class="plain-syntax">, </span><a href="4-sm.html#SP11" class="function-link"><span class="function-syntax">SpatialMap::new_submap</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LATTICE_DIRECTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">i</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">locked_to</span><span class="plain-syntax"> = </span><a href="4-sm.html#SP10" class="function-link"><span class="function-syntax">SpatialMap::read_slock</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">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">locked_to</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">locked_to</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">submap</span><span class="plain-syntax"> != </span><span class="identifier-syntax">at</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">submap</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><a href="4-sm.html#SP12" class="function-link"><span class="function-syntax">SpatialMap::add_room_to_submap</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">locked_to</span><span class="plain-syntax">, </span><span class="identifier-syntax">at</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">submap</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-sm.html#SP7_24" class="function-link"><span class="function-syntax">SpatialMap::create_map_component_around</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">locked_to</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-sm.html#SP7_24" class="function-link"><span class="function-syntax">SpatialMap::create_map_component_around</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">locked_to</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</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">dest</span><span class="plain-syntax"> = </span><a href="4-sm.html#SP9" class="function-link"><span class="function-syntax">SpatialMap::read_smap</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">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">dest</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">dest</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">submap</span><span class="plain-syntax"> != </span><span class="identifier-syntax">at</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">submap</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><a href="4-sm.html#SP12" class="function-link"><span class="function-syntax">SpatialMap::add_room_to_submap</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dest</span><span class="plain-syntax">, </span><span class="identifier-syntax">at</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">fimd</span><span class="plain-syntax">.</span><span class="element-syntax">submap</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-sm.html#SP7_24" class="function-link"><span class="function-syntax">SpatialMap::create_map_component_around</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dest</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-sm.html#SP7_24" class="function-link"><span class="function-syntax">SpatialMap::create_map_component_around</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dest</span><span class="plain-syntax">, </span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
@ -1460,8 +1462,8 @@ dividing at one relationship F1-to-T1 or at two, F1-to-T1 and F2-to-T2.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="reserved-syntax">connected_submap</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Zone1</span><span class="plain-syntax"> = </span><a href="4-sm.html#SP11" class="function-link"><span class="function-syntax">SpatialMap::new_submap</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">connected_submap</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Zone2</span><span class="plain-syntax"> = </span><a href="4-sm.html#SP11" class="function-link"><span class="function-syntax">SpatialMap::new_submap</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">connected_submap</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Zone1</span><span class="plain-syntax"> = </span><a href="4-sm.html#SP11" class="function-link"><span class="function-syntax">SpatialMap::new_submap</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sub</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">for_session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">connected_submap</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Zone2</span><span class="plain-syntax"> = </span><a href="4-sm.html#SP11" class="function-link"><span class="function-syntax">SpatialMap::new_submap</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sub</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">for_session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-sm.html#SP7_21" class="function-link"><span class="function-syntax">SpatialMap::create_submaps_from_zones</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sub</span><span class="plain-syntax">, </span><span class="identifier-syntax">Z1_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">Zone1</span><span class="plain-syntax">, </span><span class="identifier-syntax">Z2_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">Zone2</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">SPATIAL_MAP</span><span class="plain-syntax">, </span><span class="string-syntax">"Zone 1 becomes submap %d; zone 2 becomes submap %d\n"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Zone1</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">, </span><span class="identifier-syntax">Zone2</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">);</span>
@ -2732,7 +2734,7 @@ predecessor, with the same baseline, and on the level of the benchmark room.
<span class="plain-syntax"> </span><span class="identifier-syntax">sub</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">, </span><span class="identifier-syntax">sub</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">bounds</span><span class="plain-syntax">.</span><span class="element-syntax">population</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="4-sm.html#SP7_20" class="function-link"><span class="function-syntax">SpatialMap::move_component</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sub</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="4-sg.html#SP5" class="function-link"><span class="function-syntax">Geometry::vec</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">x_max</span><span class="plain-syntax">, </span><span class="identifier-syntax">box</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="identifier-syntax">sub</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">bounds</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">,</span>
<span class="plain-syntax"> </span><a href="4-sm.html#SP4" class="function-link"><span class="function-syntax">SpatialMap::benchmark_level</span></a><span class="plain-syntax">() - </span><span class="identifier-syntax">sub</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">bounds</span><span class="plain-syntax">.</span><span class="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><a href="4-sm.html#SP4" class="function-link"><span class="function-syntax">SpatialMap::benchmark_level</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">) - </span><span class="identifier-syntax">sub</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">bounds</span><span class="plain-syntax">.</span><span class="element-syntax">corner0</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax">));</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="4-sm.html#SP7_31_1">&#167;7.31.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP7_31_1_2" class="paragraph-anchor"></a><b>&#167;7.31.1.2. </b>The drill square is a way to place large numbers of single-room components,
@ -2752,7 +2754,7 @@ one big component.
<span class="plain-syntax"> </span><span class="identifier-syntax">sub</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">, </span><span class="identifier-syntax">sub</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">bounds</span><span class="plain-syntax">.</span><span class="element-syntax">population</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">drill_square_side</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">Drill_square_O</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><a href="4-sg.html#SP5" class="function-link"><span class="function-syntax">Geometry::vec</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">box</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="constant-syntax">1</span><span class="plain-syntax">, </span><span class="identifier-syntax">box</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">, </span><a href="4-sm.html#SP4" class="function-link"><span class="function-syntax">SpatialMap::benchmark_level</span></a><span class="plain-syntax">());</span>
<span class="plain-syntax"> </span><a href="4-sg.html#SP5" class="function-link"><span class="function-syntax">Geometry::vec</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">box</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="constant-syntax">1</span><span class="plain-syntax">, </span><span class="identifier-syntax">box</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">, </span><a href="4-sm.html#SP4" class="function-link"><span class="function-syntax">SpatialMap::benchmark_level</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Drill_square_At</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Drill_square_O</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">connected_submap</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sing</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">N</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
@ -2788,7 +2790,7 @@ with.
<span class="plain-syntax"> </span><a href="4-sm.html#SP40" class="function-link"><span class="function-syntax">SpatialMap::find_link_to_placed_components</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sub</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">outer</span><span class="plain-syntax">, &amp;</span><span class="identifier-syntax">inner</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">Best_offset</span><span class="plain-syntax"> =</span>
<span class="plain-syntax"> </span><a href="4-sg.html#SP5" class="function-link"><span class="function-syntax">Geometry::vec</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">x_max</span><span class="plain-syntax">, </span><span class="identifier-syntax">box</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="identifier-syntax">sub</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">bounds</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">,</span>
<span class="plain-syntax"> </span><a href="4-sm.html#SP4" class="function-link"><span class="function-syntax">SpatialMap::benchmark_level</span></a><span class="plain-syntax">() - </span><span class="identifier-syntax">sub</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">bounds</span><span class="plain-syntax">.</span><span class="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><a href="4-sm.html#SP4" class="function-link"><span class="function-syntax">SpatialMap::benchmark_level</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">) - </span><span class="identifier-syntax">sub</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">bounds</span><span class="plain-syntax">.</span><span class="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">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">outer</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">inner</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">dx</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">dy</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">dz</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">min_s</span><span class="plain-syntax"> = </span><span class="constant-syntax">FUSION_POINT</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">dx</span><span class="plain-syntax"> = -</span><span class="constant-syntax">MAX_OFFSET</span><span class="plain-syntax">; </span><span class="identifier-syntax">dx</span><span class="plain-syntax"> &lt;= </span><span class="constant-syntax">MAX_OFFSET</span><span class="plain-syntax">; </span><span class="identifier-syntax">dx</span><span class="plain-syntax">++)</span>
@ -2931,7 +2933,7 @@ rooms connected that way are by definition in the same component.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">SpatialMap::cross_component_links</span><button class="popup" onclick="togglePopup('usagePopup73')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup73">Usage of <span class="code-font"><span class="function-syntax">SpatialMap::cross_component_links</span></span>:<br/><a href="4-sm.html#SP40">&#167;40</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">connected_submap</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sub</span><span class="plain-syntax">, </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> **</span><span class="identifier-syntax">outer</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">inner</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">heat</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">posnd</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP8" class="function-link"><span class="function-syntax">InterpretIndex::get_faux_instances</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP5" class="function-link"><span class="function-syntax">Indexing::get_set_of_instances</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sub</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">for_session</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">no_links</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">heat</span><span class="plain-syntax">) *</span><span class="identifier-syntax">heat</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax">;</span>
@ -3084,9 +3086,10 @@ locking means that blank planes are inevitable.
<p class="commentary firstcommentary"><a id="SP42" class="paragraph-anchor"></a><b>&#167;42. </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">SpatialMap::index_room_connections</span><button class="popup" onclick="togglePopup('usagePopup75')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup75">Usage of <span class="code-font"><span class="function-syntax">SpatialMap::index_room_connections</span></span>:<br/>Map Element - <a href="3-me.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">R</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SpatialMap::index_room_connections</span><button class="popup" onclick="togglePopup('usagePopup75')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup75">Usage of <span class="code-font"><span class="function-syntax">SpatialMap::index_room_connections</span></span>:<br/>Map Element - <a href="3-me.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">R</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">RW</span><span class="plain-syntax"> = </span><a href="2-fi.html#SP13" class="function-link"><span class="function-syntax">FauxInstances::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">); </span><span class="comment-syntax"> name of the origin room</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="2-ii.html#SP8" class="function-link"><span class="function-syntax">InterpretIndex::get_faux_instances</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax"> = </span><a href="1-ia.html#SP5" class="function-link"><span class="function-syntax">Indexing::get_set_of_instances</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">faux_instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dir</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_FAUX_DIRECTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">faux_set</span><span class="plain-syntax">, </span><span class="identifier-syntax">dir</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> = </span><span class="identifier-syntax">dir</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">direction_index</span><span class="plain-syntax">;</span>
@ -3165,7 +3168,7 @@ locking means that blank planes are inevitable.
<p class="commentary firstcommentary"><a id="SP43" class="paragraph-anchor"></a><b>&#167;43. Unit testing. </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">SpatialMap::perform_map_internal_test</span><button class="popup" onclick="togglePopup('usagePopup76')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup76">Usage of <span class="code-font"><span class="function-syntax">SpatialMap::perform_map_internal_test</span></span>:<br/>Map Element - <a href="3-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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SpatialMap::perform_map_internal_test</span><button class="popup" onclick="togglePopup('usagePopup76')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup76">Usage of <span class="code-font"><span class="function-syntax">SpatialMap::perform_map_internal_test</span></span>:<br/>Map Element - <a href="3-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="reserved-syntax">index_session</span><span class="plain-syntax"> *</span><span class="identifier-syntax">session</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">connected_submap</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sub</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">sub</span><span class="plain-syntax">, </span><span class="reserved-syntax">connected_submap</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">"Map component %d: extent (%d...%d, %d...%d, %d...%d): population %d\n"</span><span class="plain-syntax">,</span>
@ -3181,7 +3184,7 @@ locking means that blank planes are inevitable.
<span class="plain-syntax"> </span><span class="identifier-syntax">Room_position</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">).</span><span class="identifier-syntax">y</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Room_position</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">).</span><span class="identifier-syntax">z</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-fi.html#SP13" class="function-link"><span class="function-syntax">FauxInstances::write_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">R</span><span class="plain-syntax"> == </span><a href="2-fi.html#SP11" class="function-link"><span class="function-syntax">FauxInstances::benchmark</span></a><span class="plain-syntax">()) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" (benchmark)"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">R</span><span class="plain-syntax"> == </span><a href="2-fi.html#SP11" class="function-link"><span class="function-syntax">FauxInstances::benchmark</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">session</span><span class="plain-syntax">)) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" (benchmark)"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\n"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<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>

View file

@ -71,6 +71,11 @@
<spon class="sectiontitle">Index Module</span></a> -
<span class="sectionpurpose">Setting up the use of this module.</span></p>
</li>
<li>
<p class="sectionentry"><a href="1-ia.html">
<spon class="sectiontitle">Indexing API</span></a> -
<span class="sectionpurpose">How the parent tool can ask for an Inter tree to be indexed.</span></p>
</li>
</ul>
</li>
<li>

View file

@ -89,7 +89,7 @@ function togglePopup(material_id) {
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::header</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">"Extensions"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InstalledFiles::filename</span><span class="plain-syntax">(</span><span class="identifier-syntax">CSS_FOR_STANDARD_PAGES_IRES</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InstalledFiles::filename</span><span class="plain-syntax">(</span><span class="identifier-syntax">JAVASCRIPT_FOR_EXTENSIONS_IRES</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InstalledFiles::filename</span><span class="plain-syntax">(</span><span class="identifier-syntax">JAVASCRIPT_FOR_EXTENSIONS_IRES</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="7-ip.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Write the body of the HTML</span><span class="named-paragraph-number">1.1</span></a></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">OUT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::footer</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>

View file

@ -165,7 +165,7 @@ our E, and return 0 in response to the ECD call to prevent further ECD calls.
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::header</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">"Extension"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InstalledFiles::filename</span><span class="plain-syntax">(</span><span class="identifier-syntax">CSS_FOR_STANDARD_PAGES_IRES</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InstalledFiles::filename</span><span class="plain-syntax">(</span><span class="identifier-syntax">JAVASCRIPT_FOR_ONE_EXTENSION_IRES</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">InstalledFiles::filename</span><span class="plain-syntax">(</span><span class="identifier-syntax">JAVASCRIPT_FOR_ONE_EXTENSION_IRES</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">HTML::incorporate_HTML</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">InstalledFiles::filename</span><span class="plain-syntax">(</span><span class="identifier-syntax">EXTENSION_DOCUMENTATION_MODEL_IRES</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-ip2.html#SP2_2_1" class="named-paragraph-link"><span class="named-paragraph">Write documentation for a specific extension into the page</span><span class="named-paragraph-number">2.2.1</span></a></span><span class="plain-syntax">;</span>

View file

@ -17,7 +17,7 @@ void ExtensionIndex::write(filename *F, int content, extension_census *C) {
HTML::header(OUT, I"Extensions",
InstalledFiles::filename(CSS_FOR_STANDARD_PAGES_IRES),
InstalledFiles::filename(JAVASCRIPT_FOR_EXTENSIONS_IRES));
InstalledFiles::filename(JAVASCRIPT_FOR_EXTENSIONS_IRES), NULL);
@<Write the body of the HTML@>;
STREAM_CLOSE(OUT);
HTML::footer(OUT);

View file

@ -84,7 +84,7 @@ our E, and return 0 in response to the ECD call to prevent further ECD calls.
@<Write the actual extension documentation page@> =
HTML::header(OUT, I"Extension",
InstalledFiles::filename(CSS_FOR_STANDARD_PAGES_IRES),
InstalledFiles::filename(JAVASCRIPT_FOR_ONE_EXTENSION_IRES));
InstalledFiles::filename(JAVASCRIPT_FOR_ONE_EXTENSION_IRES), NULL);
HTML::incorporate_HTML(OUT,
InstalledFiles::filename(EXTENSION_DOCUMENTATION_MODEL_IRES));
@<Write documentation for a specific extension into the page@>;

View file

@ -175,11 +175,11 @@ Total memory consumption was 391746K = 383 MB
---- target_vm 6 objects, 816 bytes
---- generated_segment 25 objects, 800 bytes
---- inter_data_type 14 objects, 784 bytes
---- internal_test 14 objects, 672 bytes
---- inform_language 6 objects, 672 bytes
---- internal_test 14 objects, 672 bytes
---- inter_warehouse_room 10 objects, 640 bytes
---- I6T_intervention 8 objects, 640 bytes
---- relation_guard 5 objects, 640 bytes
---- inter_warehouse_room 10 objects, 640 bytes
---- inbuild_search_result 15 objects, 600 bytes
---- rulebook_outcome 17 objects, 544 bytes
---- small_word_set 11 objects, 528 bytes
@ -193,43 +193,43 @@ Total memory consumption was 391746K = 383 MB
---- bp_family 12 objects, 384 bytes
---- source_file 5 objects, 360 bytes
---- inbuild_genre 7 objects, 336 bytes
---- door_dir_notice 5 objects, 320 bytes
---- grammatical_category 8 objects, 320 bytes
---- door_dir_notice 5 objects, 320 bytes
---- pronoun 8 objects, 320 bytes
---- tree_inventory 1 object, 312 bytes
---- build_step 4 objects, 288 bytes
---- up_family 9 objects, 288 bytes
---- compilation_unit 5 objects, 280 bytes
---- build_step 4 objects, 288 bytes
---- door_to_notice 5 objects, 280 bytes
---- contents_entry 7 objects, 280 bytes
---- compilation_unit 5 objects, 280 bytes
---- explicit_bp_data 5 objects, 280 bytes
---- contents_entry 7 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
---- inference_subject_family 5 objects, 160 bytes
---- inter_architecture 4 objects, 160 bytes
---- code_generation_target 4 objects, 160 bytes
---- link_instruction 4 objects, 160 bytes
---- code_generation_target 4 objects, 160 bytes
---- imperative_defn_family 4 objects, 160 bytes
---- element_activation 4 objects, 128 bytes
---- codegen_pipeline 1 object, 128 bytes
---- element_activation 4 objects, 128 bytes
---- inbuild_nest 3 objects, 120 bytes
---- local_block_value 2 objects, 112 bytes
---- inform_kit_ittt 2 objects, 96 bytes
---- group_together_function 2 objects, 80 bytes
---- compile_task_data 1 object, 80 bytes
---- article 2 objects, 80 bytes
---- figures_data 1 object, 56 bytes
---- build_methodology 1 object, 56 bytes
---- inter_warehouse 1 object, 56 bytes
---- HTML_file_state 1 object, 48 bytes
---- figures_data 1 object, 56 bytes
---- star_invention 1 object, 48 bytes
---- HTML_file_state 1 object, 48 bytes
---- kind_template_definition 1 object, 40 bytes
---- loop_over_scope 1 object, 40 bytes
---- by_function_bp_data 1 object, 40 bytes

View file

@ -11,26 +11,26 @@
0.4% in //Sequence::undertake_queued_tasks//
0.4% in //Sequence::undertake_queued_tasks//
0.4% in //World::stage_V//
0.1% in //CompletionModule::compile//
0.2% in //CompletionModule::compile//
0.1% in //InferenceSubjects::emit_all//
0.1% in //RTKindConstructors::compile_permissions//
0.1% in //Task::make_built_in_kind_constructors//
0.1% in //World::stages_II_and_III//
2.0% not specifically accounted for
42.2% in running Inter pipeline
11.3% in step preparation
9.9% in inter step 7/14: consolidate-text
8.1% in inter step 2/14: link
6.9% in inter step 14/14: generate inform6 -> auto.inf
1.9% not specifically accounted for
42.0% in running Inter pipeline
11.2% in step preparation
9.8% in inter step 7/14: consolidate-text
8.2% in inter step 2/14: link
7.0% in inter step 14/14: generate inform6 -> auto.inf
1.6% 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.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
2.1% not specifically accounted for
0.1% in inter step 9/14: inspect-plugs
2.0% not specifically accounted for
1.7% in supervisor
0.2% not specifically accounted for
0.3% not specifically accounted for

View file

@ -216,11 +216,11 @@ void InternalTests::perform_ing_internal_test(OUTPUT_STREAM,
void InternalTests::perform_index_internal_test(OUTPUT_STREAM,
struct internal_test_case *itc) {
localisation_dictionary *D = Localisation::new();
index_session *session = Indexing::open_session(Emit::tree());
inform_language *L = Projects::get_language_of_index(Task::project());
Localisation::stock_from_file(
Filenames::in(Languages::path_to_bundle(L), I"Index.txt"), D);
InterpretIndex::generate_one_element(OUT, Emit::tree(), itc->text_supplying_the_case, D);
Indexing::localise(session, Filenames::in(Languages::path_to_bundle(L), I"Index.txt"));
Indexing::generate_one_element(session, OUT, itc->text_supplying_the_case);
Indexing::close_session(session);
}
@ And here's a set of six tests of the kinds system. This is quite old code,

View file

@ -444,20 +444,17 @@ void Task::disable_or_enable_census(int which) {
void Task::produce_index(void) {
inform_project *project = Task::project();
if ((do_not_generate_index == FALSE) || (write_EPS_format_map)) {
index_session *session = Indexing::open_session(Emit::tree());
inform_language *L = Projects::get_language_of_index(project);
localisation_dictionary *D = Localisation::new();
Localisation::stock_from_file(
Filenames::in(Languages::path_to_bundle(L), I"Index.txt"), D);
Indexing::localise(session,
Filenames::in(Languages::path_to_bundle(L), I"Index.txt"));
if (do_not_generate_index == FALSE) {
InterpretIndex::generate(
Emit::tree(),
Projects::index_structure(project),
D);
Indexing::generate_index_website(session, Projects::index_structure(project));
if (do_not_update_census == FALSE)
ExtensionWebsite::index_after_compilation(Task::project());
}
if (write_EPS_format_map) {
RenderEPSMap::render_map_as_EPS(Task::epsmap_file(), D);
}
if (write_EPS_format_map)
Indexing::generate_EPS_map(session, Task::epsmap_file());
Indexing::close_session(session);
}
}

View file

@ -18,7 +18,7 @@ void Problems::Using::start_problems_report(filename *F, text_stream *P) {
Problems::fatal_on_file("Can't open problem log", F);
HTML::header(P, I"Translating the Source",
InstalledFiles::filename(CSS_FOR_STANDARD_PAGES_IRES),
InstalledFiles::filename(JAVASCRIPT_FOR_STANDARD_PAGES_IRES));
InstalledFiles::filename(JAVASCRIPT_FOR_STANDARD_PAGES_IRES), NULL);
}
void Problems::Using::final_report(int disaster_struck, int problems_count) {

View file

@ -30,6 +30,7 @@ void IndexModule::end(void) {
@
@e index_session_CLASS
@e index_page_CLASS
@e index_element_CLASS
@e inter_lexicon_CLASS
@ -45,6 +46,7 @@ void IndexModule::end(void) {
@e rubric_holder_CLASS
=
DECLARE_CLASS(index_session)
DECLARE_CLASS(index_element)
DECLARE_CLASS(index_page)
DECLARE_CLASS(inter_lexicon)

View file

@ -0,0 +1,158 @@
[Indexing::] Indexing API.
How the parent tool can ask for an Inter tree to be indexed.
@h Public API.
This is a large and complex module of code, but it really only does one thing,
and so it is simple to control. Other modules or tools should do this only by
calling the functions below.
To produce one or more index products (see below), first open a session; then
set its localisation -- essentially, choose what language it should be written
in; then call functions to make the actual products; and finally close the session.
Note that:
(1) If you want to index the same tree of code to two different languages, you
will need to do this as two sessions. However, an Index website and an EPS map
which are in the same language can both be made in the same session, and this
is more efficient than using two.
(2) Only one session can be open at a time. In some abstract sense it would be tidy
to make this whole module threadsafe, but in concrete terms, it's hard to see
what problem that would solve for anyone. If a user needs to make multiple
indexes simultaneously, the simplest way would be to start multiple |inter|
processes, each working on one project at a time. However, the API is designed
so that this decision could be reversed if we wanted to.
@ So, then, opening:
=
typedef struct index_session {
struct inter_tree *tree;
struct tree_inventory *inv;
struct inter_lexicon *indexing_lexicon;
struct faux_instance_set *indexing_fis;
struct linked_list *indexing_fs;
struct localisation_dictionary *dict;
int session_closed;
CLASS_DEFINITION
} index_session;
int index_sessions_open = 0;
index_session *Indexing::open_session(inter_tree *I) {
if (I == NULL) internal_error("no tree to index");
if (index_sessions_open++ > 0) internal_error("one indexing session at a time");
index_session *session = CREATE(index_session);
session->tree = I;
session->inv = Synoptic::inv(I);
session->indexing_lexicon = NULL;
session->indexing_fis = NULL;
session->indexing_fs = NULL;
session->dict = Localisation::new();
session->session_closed = FALSE;
return session;
}
@ Now localising. You can either set an existing dictionary which you happen
to have to hand, or else ask to read definitions from a file. See //html: Localisation//
for how all of this works.
=
void Indexing::set_localisation_dictionary(index_session *session, localisation_dictionary *LD) {
@<Check this is an open session@>;
session->dict = LD;
}
void Indexing::localise(index_session *session, filename *F) {
@<Check this is an open session@>;
Localisation::stock_from_file(F, session->dict);
}
@ Now for the productive part. You can make an entire index mini-website with
the following function, which may generate several hundred HTML files. This is
what is used in the Inform GUI apps on every compilation.
=
void Indexing::generate_index_website(index_session *session, text_stream *structure) {
@<Check this is an open session@>;
InterpretIndex::generate(structure, session);
}
@ This is a one-off function for generating the content of an index element
(without its heading, or any HTML surround): it's used for unit-testing those
elements, but is never used by the Inform GUI app.
=
void Indexing::generate_one_element(index_session *session, text_stream *OUT, wording elt) {
@<Check this is an open session@>;
Elements::test_card(OUT, elt, session);
}
@ This is used by the Inform GUI apps to "release along with an EPS file".
Essentially it makes a print-suitable version of the Map element of the index,
though there are also many bells and whistles for customising the appearance
of this.
=
void Indexing::generate_EPS_map(index_session *session, filename *F) {
@<Check this is an open session@>;
RenderEPSMap::render_map_as_EPS(F, session);
}
@ And lastly closing. The only thing this now does is to enable a new session
to be opened afterwards, in fact, but that might change in future.
=
void Indexing::close_session(index_session *session) {
@<Check this is an open session@>;
session->session_closed = TRUE;
index_sessions_open--;
}
@<Check this is an open session@> =
if (session == NULL) internal_error("no indexing session");
if (session->session_closed) internal_error("closed indexing session");
@h Private API.
The remaining functions in this section are for use only within the //index//
module.
=
inter_tree *Indexing::get_tree(index_session *session) {
@<Check this is an open session@>;
return session->tree;
}
localisation_dictionary *Indexing::get_localisation(index_session *session) {
@<Check this is an open session@>;
return session->dict;
}
tree_inventory *Indexing::get_inventory(index_session *session) {
@<Check this is an open session@>;
return session->inv;
}
@ These more substantial resources are calculated only on demand:
=
inter_lexicon *Indexing::get_lexicon(index_session *session) {
@<Check this is an open session@>;
if (session->indexing_lexicon == NULL)
session->indexing_lexicon = IndexLexicon::stock(session->tree, session->inv);
return session->indexing_lexicon;
}
faux_instance_set *Indexing::get_set_of_instances(index_session *session) {
@<Check this is an open session@>;
if (session->indexing_fis == NULL) FauxInstances::make_faux(session);
return session->indexing_fis;
}
linked_list *Indexing::get_list_of_scenes(index_session *session) {
@<Check this is an open session@>;
if (session->indexing_fs == NULL)
session->indexing_fs = FauxScenes::list_of_faux_scenes(session);
return session->indexing_fs;
}

View file

@ -176,10 +176,11 @@ faux_instance_set *FauxInstances::new_empty_set(void) {
@ And here is the code to make a fully cross-referenced set from a given tree:
=
faux_instance_set *FauxInstances::make_faux(inter_tree *IT) {
void FauxInstances::make_faux(index_session *session) {
faux_instance_set *faux_set = FauxInstances::new_empty_set();
session->indexing_fis = faux_set;
tree_inventory *inv = Synoptic::inv(IT);
tree_inventory *inv = Indexing::get_inventory(session);
TreeLists::sort(inv->instance_nodes, Synoptic::module_order);
inter_package *pack;
LOOP_OVER_INVENTORY_PACKAGES(pack, i, inv->instance_nodes)
@ -195,8 +196,7 @@ faux_instance_set *FauxInstances::make_faux(inter_tree *IT) {
if (FauxInstances::is_a_door(I)) @<Cross-reference door adjacencies@>;
}
FauxInstances::decode_hints(faux_set, IT, 1);
return faux_set;
FauxInstances::decode_hints(session, 1);
}
@<Add a faux instance to the set for this object-instance package@> =
@ -296,7 +296,9 @@ being made; |pass| 2 only after the spatial grid layout has been calculated,
and only if needed.
=
void FauxInstances::decode_hints(faux_instance_set *faux_set, inter_tree *I, int pass) {
void FauxInstances::decode_hints(index_session *session, int pass) {
faux_instance_set *faux_set = Indexing::get_set_of_instances(session);
inter_tree *I = Indexing::get_tree(session);
inter_package *pack = Inter::Packages::by_url(I, I"/main/completion/mapping_hints");
inter_package *hint_pack;
LOOP_THROUGH_SUBPACKAGES(hint_pack, pack, I"_mapping_hint") {
@ -367,36 +369,36 @@ can only be known once the spatial grid has been found, i.e., on |pass| 2.
EPS_map_level *eml;
LOOP_OVER(eml, EPS_map_level)
if ((eml->contains_rooms)
&& (eml->map_level - SpatialMap::benchmark_level() == scope_level))
&& (eml->map_level - SpatialMap::benchmark_level(session) == scope_level))
scope = &(eml->map_parameters);
if (scope) ConfigureIndexMap::put_mp(name, scope, scope_I, text_val, int_val);
@h Instance set properties.
=
faux_instance *FauxInstances::start_room(void) {
faux_instance_set *faux_set = InterpretIndex::get_faux_instances();
faux_instance *FauxInstances::start_room(index_session *session) {
faux_instance_set *faux_set = Indexing::get_set_of_instances(session);
return faux_set->start_faux_instance;
}
faux_instance *FauxInstances::yourself(void) {
faux_instance_set *faux_set = InterpretIndex::get_faux_instances();
faux_instance *FauxInstances::yourself(index_session *session) {
faux_instance_set *faux_set = Indexing::get_set_of_instances(session);
return faux_set->faux_yourself;
}
faux_instance *FauxInstances::benchmark(void) {
faux_instance_set *faux_set = InterpretIndex::get_faux_instances();
faux_instance *FauxInstances::benchmark(index_session *session) {
faux_instance_set *faux_set = Indexing::get_set_of_instances(session);
return faux_set->faux_benchmark;
}
@ =
int FauxInstances::no_directions(void) {
faux_instance_set *faux_set = InterpretIndex::get_faux_instances();
int FauxInstances::no_directions(index_session *session) {
faux_instance_set *faux_set = Indexing::get_set_of_instances(session);
return faux_set->no_direction_fi;
}
int FauxInstances::no_rooms(void) {
faux_instance_set *faux_set = InterpretIndex::get_faux_instances();
int FauxInstances::no_rooms(index_session *session) {
faux_instance_set *faux_set = Indexing::get_set_of_instances(session);
return faux_set->no_room_fi;
}

View file

@ -30,6 +30,19 @@ typedef struct simplified_connector {
CLASS_DEFINITION
} simplified_connector;
linked_list *FauxScenes::list_of_faux_scenes(index_session *session) {
linked_list *L = NEW_LINKED_LIST(simplified_scene);
inter_tree *I = Indexing::get_tree(session);
tree_inventory *inv = Indexing::get_inventory(session);
TreeLists::sort(inv->scene_nodes, PlotElement::scene_order);
TreeLists::sort(inv->rulebook_nodes, Synoptic::module_order);
inter_package *scene_pack;
LOOP_OVER_INVENTORY_PACKAGES(scene_pack, i, inv->scene_nodes)
ADD_TO_LINKED_LIST(FauxScenes::simplified(I, scene_pack), simplified_scene, L);
return L;
}
simplified_scene *FauxScenes::simplified(inter_tree *I, inter_package *sc_pack) {
simplified_scene *ssc = CREATE(simplified_scene);
ssc->pack = sc_pack;

View file

@ -32,14 +32,13 @@ begin writing some HTML when this scanning is done, i.e., when the whole structu
file has been read.
=
void InterpretIndex::generate(inter_tree *I, text_stream *structure, localisation_dictionary *D) {
InterpretIndex::set_tree(I);
void InterpretIndex::generate(text_stream *structure, index_session *session) {
localisation_dictionary *D = Indexing::get_localisation(session);
filename *index_structure = InstalledFiles::index_structure_file(structure);
index_generation_state igs;
@<Initialise IGS@>;
@<Read the structure file line by line@>;
@<Actually generate the index files@>;
InterpretIndex::set_tree(NULL);
}
@ This little structure is just some state being carried by the reader-function
@ -47,13 +46,13 @@ which goes through the |.indext| file line by line.
=
typedef struct index_generation_state {
struct localisation_dictionary *dict;
struct index_session *session;
struct linked_list *pages; /* of |index_page| */
} index_generation_state;
@<Initialise IGS@> =
igs.pages = NEW_LINKED_LIST(index_page);
igs.dict = D;
igs.session = session;
@<Read the structure file line by line@> =
TextFiles::read(index_structure, FALSE, "unable to read index structure file", TRUE,
@ -71,7 +70,7 @@ pages.
=
void InterpretIndex::read_structure(text_stream *text, text_file_position *tfp, void *state) {
index_generation_state *igs = (index_generation_state *) state;
localisation_dictionary *D = igs->dict;
localisation_dictionary *D = Indexing::get_localisation(igs->session);
match_results mr = Regexp::create_mr();
if (Regexp::match(&mr, text, L"page (%C+) (%C+)")) {
@<Register a new index page@>;
@ -122,27 +121,14 @@ will be |Kinds.html| either way.
WRITE_TO(leafname, "%S.html", page->page_leafname);
TEMPORARY_TEXT(key)
WRITE_TO(key, "Index.Pages.%S.Title", page->page_leafname);
text_stream *OUT =
InterpretIndex::open_file(page, leafname,
Localisation::read(D, key), -1, D);
Elements::periodic_table(OUT, page, leafname, D);
text_stream index_file_struct; text_stream *OUT = &index_file_struct;
InterpretIndex::open_file(OUT, page, leafname, Localisation::read(D, key), -1, D);
Elements::periodic_table(OUT, page, leafname, session);
InterpretIndex::close_index_file(OUT);
DISCARD_TEXT(key)
DISCARD_TEXT(leafname)
}
GroupedElement::detail_pages(D);
@ This is a one-off function for generating the content of an index element
(without its heading, or any HTML surround): it's used for unit-testing those
elements.
=
void InterpretIndex::generate_one_element(OUTPUT_STREAM, inter_tree *I, wording elt,
localisation_dictionary *D) {
InterpretIndex::set_tree(I);
Elements::test_card(OUT, elt, D);
InterpretIndex::set_tree(NULL);
}
GroupedElement::detail_pages(session);
@h Registering.
So, then, here are the objects representing the index pages and their elements
@ -194,56 +180,14 @@ index_element *InterpretIndex::register_element(text_stream *abb, index_page *ow
return ie;
}
@h Current.
A clumsy convenience: keeping track of the page currently being written, and
of the Inter tree currently being indexed.
=
index_page *current_index_page = NULL;
void InterpretIndex::set_page(index_page *page) {
current_index_page = page;
}
index_page *InterpretIndex::get_page(void) {
return current_index_page;
}
inter_tree *indexing_tree = NULL;
void InterpretIndex::set_tree(inter_tree *I) {
indexing_tree = I;
}
inter_tree *InterpretIndex::get_tree(void) {
if (indexing_tree == NULL) internal_error("no indexing tree");
return indexing_tree;
}
@ =
inter_lexicon *indexing_lexicon = NULL;
inter_lexicon *InterpretIndex::get_lexicon(void) {
if (indexing_lexicon == NULL) {
if (indexing_tree == NULL) internal_error("no indexing lexicon");
indexing_lexicon = IndexLexicon::stock(indexing_tree);
}
return indexing_lexicon;
}
@ =
faux_instance_set *indexing_fis = NULL;
faux_instance_set *InterpretIndex::get_faux_instances(void) {
if (indexing_fis == NULL) {
if (indexing_tree == NULL) internal_error("no indexing lexicon");
indexing_fis = FauxInstances::make_faux(indexing_tree);
}
return indexing_fis;
}
@h Opening and closing HTML files.
=
text_stream index_file_struct; /* The current index file being written */
text_stream *InterpretIndex::open_file(index_page *page, text_stream *index_leaf,
text_stream *InterpretIndex::open_file(text_stream *IF,
index_page *page, text_stream *index_leaf,
text_stream *title, int sub, localisation_dictionary *D) {
filename *F = IndexLocations::filename(index_leaf, sub);
if (STREAM_OPEN_TO_FILE(&index_file_struct, F, UTF8_ENC) == FALSE) {
if (STREAM_OPEN_TO_FILE(IF, F, UTF8_ENC) == FALSE) {
#ifdef CORE_MODULE
Problems::fatal_on_file("Can't open index file", F);
#endif
@ -251,17 +195,15 @@ text_stream *InterpretIndex::open_file(index_page *page, text_stream *index_leaf
Errors::fatal_with_file("can't open index file", F);
#endif
}
text_stream *OUT = &index_file_struct;
InterpretIndex::set_page(page);
HTML::header(OUT, title,
HTML::header(IF, title,
InstalledFiles::filename(CSS_FOR_STANDARD_PAGES_IRES),
InstalledFiles::filename(JAVASCRIPT_FOR_STANDARD_PAGES_IRES));
return OUT;
InstalledFiles::filename(JAVASCRIPT_FOR_STANDARD_PAGES_IRES),
(void *) page);
return IF;
}
@ =
void InterpretIndex::close_index_file(text_stream *ifl) {
HTML::footer(ifl);
STREAM_CLOSE(ifl);
InterpretIndex::set_page(NULL);
}

View file

@ -44,11 +44,10 @@ typedef struct inter_lexicon {
And this is where that happens:
=
inter_lexicon *IndexLexicon::stock(inter_tree *I) {
inter_lexicon *IndexLexicon::stock(inter_tree *I, tree_inventory *inv) {
inter_lexicon *lexicon = CREATE(inter_lexicon);
lexicon->first = NULL;
lexicon->unsorted = NEW_LINKED_LIST(index_lexicon_entry);
tree_inventory *inv = Synoptic::inv(I);
@<Add verb entries@>;
@<Add preposition entries@>;
@<Add adjective entries@>;

View file

@ -9,16 +9,20 @@ failing to link to said files correctly.
But it means every HTML page in the index has to embed its own CSS and
Javascript, and this is done with a callback function which allows us to insert
material into the head of an HTML page when it is opened for output:
material into the head of an HTML page when it is opened for output. Note that
the function acts only when the page was created with |state|, which will only
happen when it was created by //index//.
@d ADDITIONAL_SCRIPTING_HTML_CALLBACK IndexStyles::incorporate
=
void IndexStyles::incorporate(OUTPUT_STREAM) {
index_page *current_page = InterpretIndex::get_page();
if (current_page == NULL) return;
@<Incorporate some CSS@>;
@<Incorporate some Javascript@>;
void IndexStyles::incorporate(OUTPUT_STREAM, void *state) {
if (state) {
index_page *current_page = (index_page *) state;
if (current_page == NULL) return;
@<Incorporate some CSS@>;
@<Incorporate some Javascript@>;
}
}
@ The CSS is mostly the same every time and is therefore mostly loaded from an

View file

@ -5,9 +5,9 @@ To write the Alphabetic actions element (A2) in the index.
@ This element is a simple three-column table.
=
void AlphabeticElement::render(OUTPUT_STREAM, localisation_dictionary *LD) {
inter_tree *I = InterpretIndex::get_tree();
tree_inventory *inv = Synoptic::inv(I);
void AlphabeticElement::render(OUTPUT_STREAM, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
tree_inventory *inv = Indexing::get_inventory(session);
TreeLists::sort(inv->action_nodes, AlphabeticElement::alphabetical_order);
HTML::begin_html_table(OUT, NULL, FALSE, 0, 0, 0, 0, 0);

View file

@ -6,9 +6,9 @@ To write the Arithmetic element (Ar) in the index.
so we do little more than tabulate that data here.
=
void ArithmeticElement::render(OUTPUT_STREAM, localisation_dictionary *LD) {
inter_tree *I = InterpretIndex::get_tree();
tree_inventory *inv = Synoptic::inv(I);
void ArithmeticElement::render(OUTPUT_STREAM, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
tree_inventory *inv = Indexing::get_inventory(session);
TreeLists::sort(inv->kind_nodes, Synoptic::module_order);
TreeLists::sort(inv->multiplication_rule_nodes, Synoptic::module_order);
HTML_TAG("hr");

View file

@ -5,9 +5,10 @@ To write the Behaviour element (Bh) in the index.
@ This simply itemises kinds of action, and what defines them.
=
void BehaviourElement::render(OUTPUT_STREAM, localisation_dictionary *LD) {
inter_tree *I = InterpretIndex::get_tree();
tree_inventory *inv = Synoptic::inv(I);
void BehaviourElement::render(OUTPUT_STREAM, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
inter_tree *I = Indexing::get_tree(session);
tree_inventory *inv = Indexing::get_inventory(session);
int num_naps = TreeLists::len(inv->named_action_pattern_nodes);

View file

@ -7,8 +7,8 @@ natural way to present bibliographic data to the user. In effect, it's a
simplified form of the iFiction record, without the XML overhead.
=
void CardElement::render(OUTPUT_STREAM, localisation_dictionary *LD) {
inter_tree *I = InterpretIndex::get_tree();
void CardElement::render(OUTPUT_STREAM, index_session *session) {
inter_tree *I = Indexing::get_tree(session);
inter_package *pack = Inter::Packages::by_url(I, I"/main/completion/bibliographic");
HTML_OPEN("p");

View file

@ -6,9 +6,9 @@ To write the Chart element (Ch) in the index.
and it is quite dense with information.
=
void ChartElement::render(OUTPUT_STREAM, localisation_dictionary *D) {
inter_tree *I = InterpretIndex::get_tree();
tree_inventory *inv = Synoptic::inv(I);
void ChartElement::render(OUTPUT_STREAM, index_session *session) {
localisation_dictionary *D = Indexing::get_localisation(session);
tree_inventory *inv = Indexing::get_inventory(session);
TreeLists::sort(inv->kind_nodes, Synoptic::module_order);
TreeLists::sort(inv->instance_nodes, Synoptic::module_order);
HTML::begin_wide_html_table(OUT);

View file

@ -3,8 +3,9 @@
To write the Commands element (Cm) in the index.
@ =
void CommandsElement::render(OUTPUT_STREAM, localisation_dictionary *LD) {
inter_tree *I = InterpretIndex::get_tree();
void CommandsElement::render(OUTPUT_STREAM, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
inter_tree *I = Indexing::get_tree(session);
linked_list *entries = NEW_LINKED_LIST(command_index_entry);
@<Create the entries for the command list@>;

View file

@ -5,9 +5,10 @@ To write the Contents element (C) in the index.
@ This is a hierarchical contents page.
=
void ContentsElement::render(OUTPUT_STREAM, localisation_dictionary *LD) {
inter_tree *I = InterpretIndex::get_tree();
tree_inventory *inv = Synoptic::inv(I);
void ContentsElement::render(OUTPUT_STREAM, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
inter_tree *I = Indexing::get_tree(session);
tree_inventory *inv = Indexing::get_inventory(session);
TreeLists::sort(inv->extension_nodes, Synoptic::category_order);
TreeLists::sort(inv->heading_nodes, Synoptic::module_order);

View file

@ -5,9 +5,9 @@ To write the Events element (Ev) in the index.
@ There are two tables, one for timed events, the other for those of no fixed time.
=
void EventsElement::render(OUTPUT_STREAM, localisation_dictionary *LD) {
inter_tree *I = InterpretIndex::get_tree();
tree_inventory *inv = Synoptic::inv(I);
void EventsElement::render(OUTPUT_STREAM, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
tree_inventory *inv = Indexing::get_inventory(session);
TreeLists::sort(inv->rule_nodes, Synoptic::module_order);
int when_count = 0, tt_count = 0;

View file

@ -6,9 +6,10 @@ To write the Extras element (Xt) in the index.
really, and most of the code here is just to arrange them in some logical order.
=
void ExtrasElement::render(OUTPUT_STREAM, localisation_dictionary *LD) {
inter_tree *I = InterpretIndex::get_tree();
tree_inventory *inv = Synoptic::inv(I);
void ExtrasElement::render(OUTPUT_STREAM, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
inter_tree *I = Indexing::get_tree(session);
tree_inventory *inv = Indexing::get_inventory(session);
TreeLists::sort(inv->rulebook_nodes, Synoptic::module_order);
TreeLists::sort(inv->activity_nodes, Synoptic::module_order);

View file

@ -5,9 +5,10 @@ To write the Figures element (Fi) in the index.
@ Not only figures but also sounds and external files, a little questionably.
=
void FiguresElement::render(OUTPUT_STREAM, localisation_dictionary *LD) {
inter_tree *I = InterpretIndex::get_tree();
tree_inventory *inv = Synoptic::inv(I);
void FiguresElement::render(OUTPUT_STREAM, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
inter_tree *I = Indexing::get_tree(session);
tree_inventory *inv = Indexing::get_inventory(session);
TreeLists::sort(inv->figure_nodes, Synoptic::module_order);
TreeLists::sort(inv->sound_nodes, Synoptic::module_order);
TreeLists::sort(inv->file_nodes, Synoptic::module_order);

View file

@ -3,6 +3,7 @@
To write the Gazetteer element (Gz) in the index.
@ =
void GazetteerElement::render(OUTPUT_STREAM, localisation_dictionary *LD) {
IndexLexicon::listing(OUT, InterpretIndex::get_lexicon(), TRUE, LD);
void GazetteerElement::render(OUTPUT_STREAM, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
IndexLexicon::listing(OUT, Indexing::get_lexicon(session), TRUE, LD);
}

View file

@ -6,9 +6,8 @@ per-action pages linked from it.
@ The element itself is easily made:
=
void GroupedElement::render(OUTPUT_STREAM, localisation_dictionary *LD) {
inter_tree *I = InterpretIndex::get_tree();
tree_inventory *inv = Synoptic::inv(I);
void GroupedElement::render(OUTPUT_STREAM, index_session *session) {
tree_inventory *inv = Indexing::get_inventory(session);
TreeLists::sort(inv->action_nodes, Synoptic::module_order);
int f = FALSE;
@ -54,14 +53,16 @@ void GroupedElement::render(OUTPUT_STREAM, localisation_dictionary *LD) {
page for each action.
=
void GroupedElement::detail_pages(localisation_dictionary *LD) {
inter_tree *I = InterpretIndex::get_tree();
tree_inventory *inv = Synoptic::inv(I);
void GroupedElement::detail_pages(index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
inter_tree *I = Indexing::get_tree(session);
tree_inventory *inv = Indexing::get_inventory(session);
TreeLists::sort(inv->action_nodes, Synoptic::module_order);
inter_package *an_pack;
LOOP_OVER_INVENTORY_PACKAGES(an_pack, i, inv->action_nodes) {
text_stream *OUT = InterpretIndex::open_file(NULL, I"A.html", I"<Actions", i, LD);
text_stream index_file_struct; text_stream *OUT = &index_file_struct;
InterpretIndex::open_file(OUT, NULL, I"A.html", I"<Actions", i, LD);
@<Write details page for the action@>;
InterpretIndex::close_index_file(OUT);
}

View file

@ -6,9 +6,10 @@ To write the Innards element (In) in the index.
technical implementation rather than the content of a work.
=
void InnardsElement::render(OUTPUT_STREAM, localisation_dictionary *LD) {
inter_tree *I = InterpretIndex::get_tree();
tree_inventory *inv = Synoptic::inv(I);
void InnardsElement::render(OUTPUT_STREAM, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
inter_tree *I = Indexing::get_tree(session);
tree_inventory *inv = Indexing::get_inventory(session);
TreeLists::sort(inv->use_option_nodes, Synoptic::module_order);
@<Show the virtual machine compiled for@>;

View file

@ -3,12 +3,13 @@
To write the Lexicon element (Lx) in the index.
@ =
void LexiconElement::render(OUTPUT_STREAM, localisation_dictionary *LD) {
void LexiconElement::render(OUTPUT_STREAM, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
IndexUtilities::anchor(OUT, I"LEXICON");
HTML_OPEN("p");
HTML_OPEN_WITH("span", "class=\"smaller\"");
Localisation::roman(OUT, LD, I"Index.Elements.Lx.Explanation");
HTML_CLOSE("span");
HTML_CLOSE("p");
IndexLexicon::listing(OUT, InterpretIndex::get_lexicon(), FALSE, LD);
IndexLexicon::listing(OUT, Indexing::get_lexicon(session), FALSE, LD);
}

View file

@ -8,16 +8,17 @@ cues all of that up; but even that code is fairly long.
=
int suppress_panel_changes = FALSE;
void MapElement::render(OUTPUT_STREAM, localisation_dictionary *LD, int test_only) {
void MapElement::render(OUTPUT_STREAM, index_session *session, int test_only) {
localisation_dictionary *LD = Indexing::get_localisation(session);
SpatialMap::initialise_page_directions();
faux_instance_set *faux_set = InterpretIndex::get_faux_instances();
SpatialMap::establish_spatial_coordinates();
faux_instance_set *faux_set = Indexing::get_set_of_instances(session);
SpatialMap::establish_spatial_coordinates(session);
if (test_only) {
SpatialMap::perform_map_internal_test(OUT);
SpatialMap::perform_map_internal_test(OUT, session);
} else {
HTMLMap::render_map_as_HTML(OUT, LD);
HTMLMap::add_region_key(OUT);
MapElement::index_backdrop_further(OUT, NULL, 0, FALSE, 1, LD);
HTMLMap::render_map_as_HTML(OUT, session);
HTMLMap::add_region_key(OUT, session);
MapElement::index_backdrop_further(OUT, NULL, 0, FALSE, 1, session);
IndexUtilities::anchor(OUT, I"MDETAILS");
int unruly = FALSE;
@ -46,11 +47,11 @@ void MapElement::render(OUTPUT_STREAM, localisation_dictionary *LD, int test_onl
if (subheaded == FALSE) {
@<Start a new details panel on the World index@>;
@<Index the name and super-region of the region@>;
MapElement::index_backdrop_further(OUT, reg, 0, FALSE, 2, LD);
MapElement::index_backdrop_further(OUT, reg, 0, FALSE, 2, session);
HTML_OPEN("p");
subheaded = TRUE;
}
HTMLMap::render_single_room_as_HTML(OUT, rm, LD);
HTMLMap::render_single_room_as_HTML(OUT, rm, session);
FauxInstances::increment_indexing_count(rm);
}
}
@ -69,7 +70,7 @@ void MapElement::render(OUTPUT_STREAM, localisation_dictionary *LD, int test_onl
LOOP_OVER_FAUX_ROOMS(faux_set, I)
if (FauxInstances::indexed_yet(I) == FALSE) {
@<Start a new details panel on the World index@>;
HTMLMap::render_single_room_as_HTML(OUT, I, LD);
HTMLMap::render_single_room_as_HTML(OUT, I, session);
}
@ By this point we've accounted for rooms (and their contents and any parts
@ -89,7 +90,7 @@ will be things which are offstage (and their contents and any parts thereof):
Localisation::bold(OUT, LD, I"Index.Elements.Mp.NowhereHeading");
HTML_TAG("br");
}
MapElement::index(OUT, I, 2, FALSE, LD);
MapElement::index(OUT, I, 2, FALSE, session);
}
suppress_panel_changes = FALSE;
@ -114,7 +115,8 @@ void MapElement::set_room_being_indexed(faux_instance *I) {
}
void MapElement::index(OUTPUT_STREAM, faux_instance *I, int depth, int details,
localisation_dictionary *LD) {
index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
if (depth == MAX_OBJECT_INDEX_DEPTH) internal_error("MAX_OBJECT_INDEX_DEPTH exceeded");
if (I) {
if (depth > NUMBER_CREATED(faux_instance) + 1) return; /* to recover from errors */
@ -135,7 +137,7 @@ void MapElement::index(OUTPUT_STREAM, faux_instance *I, int depth, int details,
@<Add the chain of kinds@>;
@<Add the catalogue of specific properties@>;
@<Add details depending on the kind@>;
MapElement::index_usages(OUT, I, LD);
MapElement::index_usages(OUT, I, session);
IndexUtilities::extra_div_close(OUT, "e0e0e0");
}
@<Recurse the index citation for the object as necessary@>;
@ -147,7 +149,7 @@ void MapElement::index(OUTPUT_STREAM, faux_instance *I, int depth, int details,
if (I != indexing_room) IndexUtilities::anchor(OUT, I->anchor_text);
} else {
#ifdef IF_MODULE
if (I) MapElement::index_spatial_relationship(OUT, I, LD);
if (I) MapElement::index_spatial_relationship(OUT, I, session);
#endif
}
@ -182,8 +184,8 @@ void MapElement::index(OUTPUT_STREAM, faux_instance *I, int depth, int details,
}
@<Index the kind attribution part of the object citation@> =
if ((MapElement::annotate_door(OUT, I, LD) == FALSE) &&
(MapElement::annotate_player(OUT, I, LD) == FALSE)) {
if ((MapElement::annotate_door(OUT, I, session) == FALSE) &&
(MapElement::annotate_player(OUT, I, session) == FALSE)) {
if (FauxInstances::specify_kind(I)) {
WRITE(" - <i>");
FauxInstances::write_kind(OUT, I);
@ -199,7 +201,7 @@ void MapElement::index(OUTPUT_STREAM, faux_instance *I, int depth, int details,
@<Recurse the index citation for the object as necessary@> =
#ifdef IF_MODULE
MapElement::index_object_further(OUT, I, depth, details, LD);
MapElement::index_object_further(OUT, I, depth, details, session);
#endif
@<Add a subsidiary paragraph of details about this object@> =
@ -224,14 +226,15 @@ void MapElement::index(OUTPUT_STREAM, faux_instance *I, int depth, int details,
WRITE("%S", material);
@<Add details depending on the kind@> =
MapElement::add_room_to_World_index(OUT, I);
MapElement::add_room_to_World_index(OUT, I, session);
MapElement::add_region_to_World_index(OUT, I);
MapElement::add_to_World_index(OUT, I, LD);
MapElement::add_to_World_index(OUT, I, session);
@
=
void MapElement::index_usages(OUTPUT_STREAM, faux_instance *I, localisation_dictionary *LD) {
void MapElement::index_usages(OUTPUT_STREAM, faux_instance *I, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
int k = 0;
inter_package *pack = I->package;
inter_tree_node *P = Metadata::read_optional_list(pack, I"^backdrop_presences");
@ -254,9 +257,10 @@ void MapElement::index_usages(OUTPUT_STREAM, faux_instance *I, localisation_dict
if (k > 0) HTML_CLOSE("p");
}
int MapElement::add_room_to_World_index(OUTPUT_STREAM, faux_instance *O) {
int MapElement::add_room_to_World_index(OUTPUT_STREAM, faux_instance *O,
index_session *session) {
if ((O) && (FauxInstances::is_a_room(O))) {
SpatialMap::index_room_connections(OUT, O);
SpatialMap::index_room_connections(OUT, O, session);
}
return FALSE;
}
@ -270,8 +274,9 @@ int MapElement::add_region_to_World_index(OUTPUT_STREAM, faux_instance *O) {
}
int MapElement::annotate_player(OUTPUT_STREAM, faux_instance *I,
localisation_dictionary *LD) {
if (I == FauxInstances::start_room()) {
index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
if (I == FauxInstances::start_room(session)) {
WRITE(" - ");
Localisation::italic(OUT, LD, I"Index.Elements.Mp.RoomWherePlayBegins");
DocReferences::link(OUT, I"ROOMPLAYBEGINS");
@ -281,7 +286,8 @@ int MapElement::annotate_player(OUTPUT_STREAM, faux_instance *I,
}
int MapElement::annotate_door(OUTPUT_STREAM, faux_instance *O,
localisation_dictionary *LD) {
index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
if ((O) && (FauxInstances::is_a_door(O))) {
faux_instance *A = NULL, *B = NULL;
FauxInstances::get_door_data(O, &A, &B);
@ -302,7 +308,8 @@ int MapElement::annotate_door(OUTPUT_STREAM, faux_instance *O,
@ =
void MapElement::index_spatial_relationship(OUTPUT_STREAM, faux_instance *I,
localisation_dictionary *LD) {
index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
text_stream *rel = NULL;
faux_instance *P = FauxInstances::progenitor(I);
if (P) {
@ -331,18 +338,18 @@ int MapElement::no_detail_index(faux_instance *I) {
=
void MapElement::index_object_further(OUTPUT_STREAM, faux_instance *I, int depth,
int details, localisation_dictionary *LD) {
faux_instance_set *faux_set = InterpretIndex::get_faux_instances();
int details, index_session *session) {
faux_instance_set *faux_set = Indexing::get_set_of_instances(session);
if (depth > NUMBER_CREATED(faux_instance) + 1) return; /* to recover from errors */
if (FauxInstances::incorp_child(I)) {
faux_instance *I2 = FauxInstances::incorp_child(I);
while (I2) {
MapElement::index(OUT, I2, depth+1, details, LD);
MapElement::index(OUT, I2, depth+1, details, session);
I2 = FauxInstances::incorp_sibling(I2);
}
}
if (FauxInstances::child(I))
MapElement::index(OUT, FauxInstances::child(I), depth+1, details, LD);
MapElement::index(OUT, FauxInstances::child(I), depth+1, details, session);
if ((FauxInstances::is_a_room(I)) &&
(FauxInstances::is_a_door(I) == FALSE)) {
faux_instance *I2;
@ -350,23 +357,24 @@ void MapElement::index_object_further(OUTPUT_STREAM, faux_instance *I, int depth
if ((FauxInstances::is_a_door(I2)) && (FauxInstances::progenitor(I2) != I)) {
faux_instance *A = NULL, *B = NULL;
FauxInstances::get_door_data(I2, &A, &B);
if (A == I) MapElement::index(OUT, I2, depth+1, details, LD);
if (B == I) MapElement::index(OUT, I2, depth+1, details, LD);
if (A == I) MapElement::index(OUT, I2, depth+1, details, session);
if (B == I) MapElement::index(OUT, I2, depth+1, details, session);
}
}
}
MapElement::index_player_further(OUT, I, depth, details, LD);
MapElement::index_backdrop_further(OUT, I, depth, details, 0, LD);
MapElement::index_player_further(OUT, I, depth, details, session);
MapElement::index_backdrop_further(OUT, I, depth, details, 0, session);
if (FauxInstances::sibling(I))
MapElement::index(OUT, FauxInstances::sibling(I), depth, details, LD);
MapElement::index(OUT, FauxInstances::sibling(I), depth, details, session);
}
@ And also:
=
int MapElement::add_to_World_index(OUTPUT_STREAM, faux_instance *O,
localisation_dictionary *LD) {
index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
if ((O) && (FauxInstances::is_a_thing(O))) {
HTML::open_indented_p(OUT, 1, "tight");
faux_instance *P = FauxInstances::progenitor(O);
@ -392,28 +400,29 @@ int MapElement::add_to_World_index(OUTPUT_STREAM, faux_instance *O,
}
void MapElement::index_player_further(OUTPUT_STREAM, faux_instance *I, int depth,
int details, localisation_dictionary *LD) {
faux_instance *yourself = FauxInstances::yourself();
if ((I == FauxInstances::start_room()) && (yourself) &&
int details, index_session *session) {
faux_instance *yourself = FauxInstances::yourself(session);
if ((I == FauxInstances::start_room(session)) && (yourself) &&
(FauxInstances::indexed_yet(yourself) == FALSE))
MapElement::index(OUT, yourself, depth+1, details, LD);
MapElement::index(OUT, yourself, depth+1, details, session);
}
void MapElement::index_backdrop_further(OUTPUT_STREAM, faux_instance *loc, int depth,
int details, int how, localisation_dictionary *LD) {
faux_instance_set *faux_set = InterpretIndex::get_faux_instances();
int details, int how, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
faux_instance_set *faux_set = Indexing::get_set_of_instances(session);
int discoveries = 0;
faux_instance *bd;
if (loc) {
LOOP_OVER_LINKED_LIST(bd, faux_instance, loc->backdrop_presences) {
if (++discoveries == 1) @<Insert fore-matter@>;
MapElement::index(OUT, bd, depth+1, details, LD);
MapElement::index(OUT, bd, depth+1, details, session);
}
} else {
LOOP_OVER_FAUX_BACKDROPS(faux_set, bd)
if (FauxInstances::is_everywhere(bd)) {
if (++discoveries == 1) @<Insert fore-matter@>;
MapElement::index(OUT, bd, depth+1, details, LD);
MapElement::index(OUT, bd, depth+1, details, session);
}
}
if (discoveries > 0) @<Insert after-matter@>;

View file

@ -3,8 +3,8 @@
To write the Phrasebook element (Pb) in the index.
@ =
void PhrasebookElement::render(OUTPUT_STREAM, localisation_dictionary *LD) {
inter_tree *I = InterpretIndex::get_tree();
void PhrasebookElement::render(OUTPUT_STREAM, index_session *session) {
inter_tree *I = Indexing::get_tree(session);
inter_package *pack = Inter::Packages::by_url(I, I"/main/completion/phrases");
for (int pass = 1; pass <= 2; pass++) {
int grand_c = 0;

View file

@ -10,16 +10,11 @@ with a notation which takes a little bit of on-screen explanation, but
seems natural enough to learn in practice.
=
void PlotElement::render(OUTPUT_STREAM, localisation_dictionary *LD) {
inter_tree *I = InterpretIndex::get_tree();
tree_inventory *inv = Synoptic::inv(I);
TreeLists::sort(inv->scene_nodes, PlotElement::scene_order);
TreeLists::sort(inv->rulebook_nodes, Synoptic::module_order);
inter_package *scene_pack;
LOOP_OVER_INVENTORY_PACKAGES(scene_pack, i, inv->scene_nodes)
FauxScenes::simplified(I, scene_pack);
void PlotElement::render(OUTPUT_STREAM, index_session *session) {
tree_inventory *inv = Indexing::get_inventory(session);
inter_tree *I = Indexing::get_tree(session);
localisation_dictionary *LD = Indexing::get_localisation(session);
linked_list *L = Indexing::get_list_of_scenes(session);
@<Tabulate the scenes@>;
@<Show the legend for the scene table icons@>;
@<Give details of each scene in turn@>;
@ -35,15 +30,17 @@ about and created but never made use of.)
@<Tabulate the scenes@> =
simplified_scene *ssc;
LOOP_OVER(ssc, simplified_scene)
LOOP_OVER_LINKED_LIST(ssc, simplified_scene, L)
ssc->indexed_already = FALSE;
LOOP_OVER_LINKED_LIST(ssc, simplified_scene, L)
if ((FauxScenes::starts_at_start_of_play(ssc)) || (FauxScenes::is_entire_game(ssc)))
PlotElement::index_from_scene(OUT, ssc, 0, START_OF_PLAY_END, NULL);
LOOP_OVER(ssc, simplified_scene)
PlotElement::index_from_scene(OUT, ssc, 0, START_OF_PLAY_END, NULL, session);
LOOP_OVER_LINKED_LIST(ssc, simplified_scene, L)
if ((FauxScenes::starts_on_condition(ssc)) && (FauxScenes::is_entire_game(ssc) == FALSE))
PlotElement::index_from_scene(OUT, ssc, 0, START_OF_PLAY_END, NULL);
LOOP_OVER(ssc, simplified_scene)
PlotElement::index_from_scene(OUT, ssc, 0, START_OF_PLAY_END, NULL, session);
LOOP_OVER_LINKED_LIST(ssc, simplified_scene, L)
if (ssc->indexed_already == FALSE)
PlotElement::index_from_scene(OUT, ssc, 0, NEVER_HAPPENS_END, NULL);
PlotElement::index_from_scene(OUT, ssc, 0, NEVER_HAPPENS_END, NULL, session);
@<Show the legend for the scene table icons@> =
HTML_OPEN("p");
@ -69,7 +66,7 @@ about and created but never made use of.)
@<Give details of each scene in turn@> =
IndexUtilities::anchor(OUT, I"SDETAILS");
simplified_scene *ssc;
LOOP_OVER(ssc, simplified_scene) {
LOOP_OVER_LINKED_LIST(ssc, simplified_scene, L) {
HTML_TAG("hr");
@<Give details of a specific scene@>;
}
@ -210,7 +207,8 @@ on the initial call when |depth| is 0.
=
void PlotElement::index_from_scene(OUTPUT_STREAM, simplified_scene *ssc, int depth,
int end, simplified_scene *sc_from) {
int end, simplified_scene *sc_from, index_session *session) {
linked_list *L = Indexing::get_list_of_scenes(session);
HTML::open_indented_p(OUT, depth+1, "tight");
@<Indicate the route by which this scene was reached@>;
@<Name the scene in the table, italicised if we've seen it already@>;
@ -261,14 +259,14 @@ this one does; then to scenes which begin when this one ends.
@<Indent to tabulate other scenes connected to the ends of this one@> =
simplified_scene *ssc2;
LOOP_OVER(ssc2, simplified_scene)
LOOP_OVER_LINKED_LIST(ssc2, simplified_scene, L)
for (simplified_connector *scon = ssc2->ends[0]->anchor_connectors; scon; scon=scon->next)
if ((FauxScenes::connects_to(scon) == ssc) && (FauxScenes::scon_end(scon) >= 1))
PlotElement::index_from_scene(OUT, ssc2, depth + 1, FauxScenes::scon_end(scon), ssc);
LOOP_OVER(ssc2, simplified_scene)
PlotElement::index_from_scene(OUT, ssc2, depth + 1, FauxScenes::scon_end(scon), ssc, session);
LOOP_OVER_LINKED_LIST(ssc2, simplified_scene, L)
for (simplified_connector *scon = ssc2->ends[0]->anchor_connectors; scon; scon=scon->next)
if ((FauxScenes::connects_to(scon) == ssc) && (FauxScenes::scon_end(scon) == 0))
PlotElement::index_from_scene(OUT, ssc2, depth, FauxScenes::scon_end(scon), ssc);
PlotElement::index_from_scene(OUT, ssc2, depth, FauxScenes::scon_end(scon), ssc, session);
@ We have been using:

View file

@ -5,9 +5,9 @@ To write the Relations element (Rl) in the index.
@ A four-column table of relations.
=
void RelationsElement::render(OUTPUT_STREAM, localisation_dictionary *LD) {
inter_tree *I = InterpretIndex::get_tree();
tree_inventory *inv = Synoptic::inv(I);
void RelationsElement::render(OUTPUT_STREAM, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
tree_inventory *inv = Indexing::get_inventory(session);
TreeLists::sort(inv->relation_nodes, Synoptic::module_order);
HTML_OPEN("p");

View file

@ -5,9 +5,9 @@ To write the Rules for Scenes element (RS) in the index.
@
=
void RulesForScenesElement::render(OUTPUT_STREAM, localisation_dictionary *LD) {
inter_tree *I = InterpretIndex::get_tree();
tree_inventory *inv = Synoptic::inv(I);
void RulesForScenesElement::render(OUTPUT_STREAM, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
tree_inventory *inv = Indexing::get_inventory(session);
TreeLists::sort(inv->rulebook_nodes, Synoptic::module_order);
HTML_OPEN("p");

View file

@ -6,9 +6,9 @@ To write the Standards element (St) in the index.
their contents in logical order.
=
void StandardsElement::render(OUTPUT_STREAM, localisation_dictionary *LD) {
inter_tree *I = InterpretIndex::get_tree();
tree_inventory *inv = Synoptic::inv(I);
void StandardsElement::render(OUTPUT_STREAM, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
tree_inventory *inv = Indexing::get_inventory(session);
TreeLists::sort(inv->rulebook_nodes, Synoptic::module_order);
TreeLists::sort(inv->activity_nodes, Synoptic::module_order);

View file

@ -7,9 +7,9 @@ corresponds to one of the compilation modules: thus, all the tables in the
main source text, all the tables in the Standard Rules, and so on.
=
void TablesElement::render(OUTPUT_STREAM, localisation_dictionary *LD) {
inter_tree *I = InterpretIndex::get_tree();
tree_inventory *inv = Synoptic::inv(I);
void TablesElement::render(OUTPUT_STREAM, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
tree_inventory *inv = Indexing::get_inventory(session);
TreeLists::sort(inv->table_nodes, Synoptic::category_order);
inter_package *current_mod = NULL; int mc = 0, first_ext = TRUE;

View file

@ -39,7 +39,8 @@ and text underneath in another of class "headingrubric".
=
void Elements::periodic_table(OUTPUT_STREAM, index_page *current_page,
text_stream *index_leaf, localisation_dictionary *D) {
text_stream *index_leaf, index_session *session) {
localisation_dictionary *D = Indexing::get_localisation(session);
int max_elements = 0;
index_page *ip;
LOOP_OVER(ip, index_page)
@ -162,7 +163,7 @@ content at last; and then a rule.
HTML_TAG("hr");
IndexUtilities::banner_line(OUT, current_page, ie->atomic_number, ie->chemical_symbol,
ie->element_name, ie->explanation_key, NULL, D);
Elements::render(OUT, ie->chemical_symbol, D);
Elements::render(OUT, ie->chemical_symbol, session);
HTML_CLOSE("div");
}
HTML_TAG("hr");
@ -171,42 +172,42 @@ content at last; and then a rule.
text file from the content of a single element.
=
void Elements::test_card(OUTPUT_STREAM, wording W, localisation_dictionary *LD) {
void Elements::test_card(OUTPUT_STREAM, wording W, index_session *session) {
TEMPORARY_TEXT(elt)
WRITE_TO(elt, "%+W", W);
Elements::render(OUT, elt, LD);
Elements::render(OUT, elt, session);
DISCARD_TEXT(elt)
}
@ In general, then, these are the elements:
=
void Elements::render(OUTPUT_STREAM, text_stream *elt, localisation_dictionary *LD) {
if (Str::eq_wide_string(elt, L"A1")) { GroupedElement::render(OUT, LD); return; }
if (Str::eq_wide_string(elt, L"A2")) { AlphabeticElement::render(OUT, LD); return; }
if (Str::eq_wide_string(elt, L"Ar")) { ArithmeticElement::render(OUT, LD); return; }
if (Str::eq_wide_string(elt, L"Bh")) { BehaviourElement::render(OUT, LD); return; }
if (Str::eq_wide_string(elt, L"C")) { ContentsElement::render(OUT, LD); return; }
if (Str::eq_wide_string(elt, L"Cd")) { CardElement::render(OUT, LD); return; }
if (Str::eq_wide_string(elt, L"Ch")) { ChartElement::render(OUT, LD); return; }
if (Str::eq_wide_string(elt, L"Cm")) { CommandsElement::render(OUT, LD); return; }
if (Str::eq_wide_string(elt, L"Ev")) { EventsElement::render(OUT, LD); return; }
if (Str::eq_wide_string(elt, L"Fi")) { FiguresElement::render(OUT, LD); return; }
if (Str::eq_wide_string(elt, L"Gz")) { GazetteerElement::render(OUT, LD); return; }
if (Str::eq_wide_string(elt, L"In")) { InnardsElement::render(OUT, LD); return; }
if (Str::eq_wide_string(elt, L"Lx")) { LexiconElement::render(OUT, LD); return; }
if (Str::eq_wide_string(elt, L"Mp")) { MapElement::render(OUT, LD, FALSE); return; }
if (Str::eq_wide_string(elt, L"MT")) { MapElement::render(OUT, LD, TRUE); return; }
if (Str::eq_wide_string(elt, L"Ph")) { PhrasebookElement::render(OUT, LD); return; }
if (Str::eq_wide_string(elt, L"Pl")) { PlotElement::render(OUT, LD); return; }
if (Str::eq_wide_string(elt, L"Rl")) { RelationsElement::render(OUT, LD); return; }
if (Str::eq_wide_string(elt, L"RS")) { RulesForScenesElement::render(OUT, LD); return; }
if (Str::eq_wide_string(elt, L"St")) { StandardsElement::render(OUT, LD); return; }
if (Str::eq_wide_string(elt, L"Tb")) { TablesElement::render(OUT, LD); return; }
if (Str::eq_wide_string(elt, L"To")) { TokensElement::render(OUT, LD); return; }
if (Str::eq_wide_string(elt, L"Vb")) { VerbsElement::render(OUT, LD); return; }
if (Str::eq_wide_string(elt, L"Vl")) { ValuesElement::render(OUT, LD); return; }
if (Str::eq_wide_string(elt, L"Xt")) { ExtrasElement::render(OUT, LD); return; }
void Elements::render(OUTPUT_STREAM, text_stream *elt, index_session *session) {
if (Str::eq_wide_string(elt, L"A1")) { GroupedElement::render(OUT, session); return; }
if (Str::eq_wide_string(elt, L"A2")) { AlphabeticElement::render(OUT, session); return; }
if (Str::eq_wide_string(elt, L"Ar")) { ArithmeticElement::render(OUT, session); return; }
if (Str::eq_wide_string(elt, L"Bh")) { BehaviourElement::render(OUT, session); return; }
if (Str::eq_wide_string(elt, L"C")) { ContentsElement::render(OUT, session); return; }
if (Str::eq_wide_string(elt, L"Cd")) { CardElement::render(OUT, session); return; }
if (Str::eq_wide_string(elt, L"Ch")) { ChartElement::render(OUT, session); return; }
if (Str::eq_wide_string(elt, L"Cm")) { CommandsElement::render(OUT, session); return; }
if (Str::eq_wide_string(elt, L"Ev")) { EventsElement::render(OUT, session); return; }
if (Str::eq_wide_string(elt, L"Fi")) { FiguresElement::render(OUT, session); return; }
if (Str::eq_wide_string(elt, L"Gz")) { GazetteerElement::render(OUT, session); return; }
if (Str::eq_wide_string(elt, L"In")) { InnardsElement::render(OUT, session); return; }
if (Str::eq_wide_string(elt, L"Lx")) { LexiconElement::render(OUT, session); return; }
if (Str::eq_wide_string(elt, L"Mp")) { MapElement::render(OUT, session, FALSE); return; }
if (Str::eq_wide_string(elt, L"MT")) { MapElement::render(OUT, session, TRUE); return; }
if (Str::eq_wide_string(elt, L"Ph")) { PhrasebookElement::render(OUT, session); return; }
if (Str::eq_wide_string(elt, L"Pl")) { PlotElement::render(OUT, session); return; }
if (Str::eq_wide_string(elt, L"Rl")) { RelationsElement::render(OUT, session); return; }
if (Str::eq_wide_string(elt, L"RS")) { RulesForScenesElement::render(OUT, session); return; }
if (Str::eq_wide_string(elt, L"St")) { StandardsElement::render(OUT, session); return; }
if (Str::eq_wide_string(elt, L"Tb")) { TablesElement::render(OUT, session); return; }
if (Str::eq_wide_string(elt, L"To")) { TokensElement::render(OUT, session); return; }
if (Str::eq_wide_string(elt, L"Vb")) { VerbsElement::render(OUT, session); return; }
if (Str::eq_wide_string(elt, L"Vl")) { ValuesElement::render(OUT, session); return; }
if (Str::eq_wide_string(elt, L"Xt")) { ExtrasElement::render(OUT, session); return; }
HTML_OPEN("p"); WRITE("NO CONTENT"); HTML_CLOSE("p");
}

View file

@ -3,14 +3,15 @@
To write the Tokens element (To) in the index.
@ =
void TokensElement::render(OUTPUT_STREAM, localisation_dictionary *LD) {
void TokensElement::render(OUTPUT_STREAM, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
HTML_OPEN("p");
Localisation::roman(OUT, LD, I"Index.Elements.To.Explanation1");
HTML_CLOSE("p");
HTML_OPEN("p");
Localisation::roman(OUT, LD, I"Index.Elements.To.Explanation2");
HTML_CLOSE("p");
inter_tree *I = InterpretIndex::get_tree();
inter_tree *I = Indexing::get_tree(session);
TokensElement::token(OUT, I, "anybody", NULL, I"someone_token", I"[someone]", LD);
TokensElement::token(OUT, I, "anyone", NULL, I"someone_token", I"[someone]", LD);

View file

@ -6,9 +6,9 @@ To write the Values element (Vl) in the index.
quite different.
=
void ValuesElement::render(OUTPUT_STREAM, localisation_dictionary *LD) {
inter_tree *I = InterpretIndex::get_tree();
tree_inventory *inv = Synoptic::inv(I);
void ValuesElement::render(OUTPUT_STREAM, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
tree_inventory *inv = Indexing::get_inventory(session);
TreeLists::sort(inv->variable_nodes, Synoptic::module_order);
@<Index the variables@>;
TreeLists::sort(inv->equation_nodes, Synoptic::module_order);

View file

@ -6,13 +6,14 @@ To write the Verbs element (Vb) in the index.
be more usefully informative.
=
void VerbsElement::render(OUTPUT_STREAM, localisation_dictionary *LD) {
void VerbsElement::render(OUTPUT_STREAM, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
HTML_OPEN("p");
Localisation::italic(OUT, LD, I"Index.Elements.Vb.About");
HTML_CLOSE("p");
int verb_count = 0;
inter_lexicon *lexicon = InterpretIndex::get_lexicon();
inter_lexicon *lexicon = Indexing::get_lexicon(session);
for (index_lexicon_entry *lex = lexicon->first; lex; lex = lex->sorted_next)
if ((lex->part_of_speech == VERB_TLEXE) ||
(lex->part_of_speech == MVERB_TLEXE) ||

View file

@ -3,19 +3,19 @@
To render the spatial map of rooms as an EPS (Encapsulated PostScript) file.
@ =
void RenderEPSMap::render_map_as_EPS(filename *F, localisation_dictionary *LD) {
inter_tree *I = InterpretIndex::get_tree();
void RenderEPSMap::render_map_as_EPS(filename *F, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
@<Prepare the EPS levels@>;
@<Open a stream and write the EPS map to it@>;
}
@<Prepare the EPS levels@> =
faux_instance_set *faux_set = InterpretIndex::get_faux_instances();
faux_instance_set *faux_set = Indexing::get_set_of_instances(session);
@<Create the main EPS map super-level@>;
for (int z=Universe.corner1.z; z>=Universe.corner0.z; z--)
@<Create an EPS map level for this z-slice@>;
FauxInstances::decode_hints(faux_set, I, 2);
FauxInstances::decode_hints(session, 2);
if (changed_global_room_colour == FALSE)
@<Inherit EPS room colours from those used in the World Index@>;
@ -45,7 +45,7 @@ void RenderEPSMap::render_map_as_EPS(filename *F, localisation_dictionary *LD) {
}
Str::clear(eml->titling);
HTMLMap::devise_level_rubric(z, eml->titling, LD);
HTMLMap::devise_level_rubric(z, eml->titling, session);
if (Str::len(eml->titling) == 0) eml->contains_titling = FALSE;
else eml->contains_titling = TRUE;
@ -65,8 +65,8 @@ void RenderEPSMap::render_map_as_EPS(filename *F, localisation_dictionary *LD) {
R->fimd.colour);
@<Open a stream and write the EPS map to it@> =
text_stream EPS_struct; text_stream *EPS = &EPS_struct;
if (STREAM_OPEN_TO_FILE(EPS, F, ISO_ENC) == FALSE) {
text_stream EPS_struct; text_stream *OUT = &EPS_struct;
if (STREAM_OPEN_TO_FILE(OUT, F, ISO_ENC) == FALSE) {
#ifdef CORE_MODULE
Problems::fatal_on_file("Can't open index file", F);
#endif
@ -74,16 +74,16 @@ void RenderEPSMap::render_map_as_EPS(filename *F, localisation_dictionary *LD) {
Errors::fatal_with_file("can't open index file", F);
#endif
}
RenderEPSMap::EPS_compile_map(EPS);
STREAM_CLOSE(EPS);
faux_instance_set *faux_set = Indexing::get_set_of_instances(session);
@<Plot the map itself@>;
@<Plot all of the rubrics onto the EPS map@>;
STREAM_CLOSE(OUT);
@ =
void RenderEPSMap::EPS_compile_map(OUTPUT_STREAM) {
@<Plot the map itself@> =
int blh, /* total height of the EPS map area (not counting border) */
blw, /* total width of the EPS map area (not counting border) */
border = ConfigureIndexMap::get_int_mp(I"border-size", NULL),
vskip = ConfigureIndexMap::get_int_mp(I"vertical-spacing", NULL);
faux_instance_set *faux_set = InterpretIndex::get_faux_instances();
@<Compute the dimensions of the EPS map@>;
int bounding_box_width = blw+2*border, bounding_box_height = blh+2*border;
@ -117,9 +117,6 @@ void RenderEPSMap::EPS_compile_map(OUTPUT_STREAM) {
}
}
@<Plot all of the rubrics onto the EPS map@>;
}
@<Compute the dimensions of the EPS map@> =
int total_chunk_height = 0, max_chunk_width = 0;
EPS_map_level *eml;

View file

@ -27,8 +27,8 @@ this icon position, and has the same indexing as the icon grid.
faux_instance **room_grid = NULL;
int *icon_grid = NULL, *exit_grid = NULL;
void HTMLMap::calculate_map_grid(void) {
faux_instance_set *faux_set = InterpretIndex::get_faux_instances();
void HTMLMap::calculate_map_grid(index_session *session) {
faux_instance_set *faux_set = Indexing::get_set_of_instances(session);
@<Allocate the three mapping grids@>;
@<Populate the room grid@>;
@<Populate the icon and exit grids@>;
@ -386,14 +386,15 @@ as the icon grid in order to be sure that the little 1 by 1 map for it (in
the details part of the World Index page) will be all right.
=
void HTMLMap::render_map_as_HTML(OUTPUT_STREAM, localisation_dictionary *LD) {
faux_instance_set *faux_set = InterpretIndex::get_faux_instances();
HTMLMap::calculate_map_grid();
void HTMLMap::render_map_as_HTML(OUTPUT_STREAM, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
faux_instance_set *faux_set = Indexing::get_set_of_instances(session);
HTMLMap::calculate_map_grid(session);
@<Choose a map colour for each region@>;
@<Choose a map colour for each room, based on its region membership@>;
if (FauxInstances::no_rooms() >= 2) {
if (FauxInstances::no_rooms(session) >= 2) {
WRITE("\n\n");
HTML::comment(OUT, I"WORLD WRITE MAP BEGINS");
HTML_OPEN("p");
@ -458,7 +459,7 @@ from each other.)
@<Draw the rubric row which labels this level of the map@> =
TEMPORARY_TEXT(level_rubric)
HTMLMap::devise_level_rubric(z, level_rubric, LD);
HTMLMap::devise_level_rubric(z, level_rubric, session);
HTML_OPEN("tr"); HTML_OPEN("td");
int rounding = 0;
if (z == Universe.corner1.z) rounding = ROUND_BOX_TOP;
@ -481,7 +482,7 @@ from each other.)
LOGIF(SPATIAL_MAP, "Level %d has rooms with %d <= y <= %d\n", z, y_min, y_max);
HTML_OPEN("tr"); HTML_OPEN("td");
HTMLMap::plot_map_level(OUT, Universe.corner0.x, Universe.corner1.x, y_min, y_max, z, 1, LD);
HTMLMap::plot_map_level(OUT, Universe.corner0.x, Universe.corner1.x, y_min, y_max, z, 1, session);
HTML_CLOSE("td"); HTML_CLOSE("tr"); WRITE("\n");
@<Draw the baseline rubric row which concludes the map@> =
@ -493,7 +494,7 @@ from each other.)
@<Add a paragraph describing how non-standard directions are mapped@> =
faux_instance *D; int k = 0;
LOOP_OVER_FAUX_DIRECTIONS(faux_set, D) {
faux_instance *A = SpatialMap::mapped_as_if(D);
faux_instance *A = SpatialMap::mapped_as_if(D, session);
if (A) {
k++;
if (k == 1) { HTML_OPEN("p"); } else WRITE("; ");
@ -507,7 +508,8 @@ from each other.)
=
void HTMLMap::devise_level_rubric(int z, text_stream *level_rubric,
localisation_dictionary *LD) {
index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
text_stream *key = I"Index.Elements.Mp.DefaultLevel";
int par = 0;
switch(Universe.corner1.z - Universe.corner0.z) {
@ -517,7 +519,7 @@ void HTMLMap::devise_level_rubric(int z, text_stream *level_rubric,
if (z == Universe.corner1.z) key = I"Index.Elements.Mp.UpperLevel";
break;
default: {
int z_offset = z - SpatialMap::benchmark_level();
int z_offset = z - SpatialMap::benchmark_level(session);
switch(z_offset) {
case 0: key = I"Index.Elements.Mp.StartingLevel"; break;
case 1: key = I"Index.Elements.Mp.FirstLevelUp"; break;
@ -551,7 +553,7 @@ that the grids are calculated, the region colours decided, and so on.
=
void HTMLMap::render_single_room_as_HTML(OUTPUT_STREAM, faux_instance *R,
localisation_dictionary *LD) {
index_session *session) {
WRITE("\n\n");
HTML_OPEN("p");
IndexUtilities::anchor(OUT, R->anchor_text);
@ -559,11 +561,11 @@ void HTMLMap::render_single_room_as_HTML(OUTPUT_STREAM, faux_instance *R,
HTML::begin_plain_html_table(OUT);
HTML::first_html_column(OUT, 0);
vector P = Room_position(R);
HTMLMap::plot_map_level(OUT, P.x, P.x, P.y, P.y, P.z, 2, LD);
HTMLMap::plot_map_level(OUT, P.x, P.x, P.y, P.y, P.z, 2, session);
HTML::next_html_column(OUT, 0);
WRITE("&nbsp;");
HTML::next_html_column(OUT, 0);
MapElement::index(OUT, R, 1, FALSE, LD);
MapElement::index(OUT, R, 1, FALSE, session);
HTML::end_html_row(OUT);
HTML::end_html_table(OUT);
HTML_CLOSE("p");
@ -577,7 +579,7 @@ index page.
=
void HTMLMap::plot_map_level(OUTPUT_STREAM, int x0, int x1, int y0, int y1, int z,
int pass, localisation_dictionary *LD) {
int pass, index_session *session) {
if (pass == 1)
LOGIF(SPATIAL_MAP, "Plot: [%d, %d] x [%d, %d] x {%d}\n", x0, x1, y0, y1, z);
@ -694,15 +696,15 @@ height, and they're drawn with a single stripe.
HTMLMap::begin_map_table(OUT, MAP_CELL_SIZE, MAP_CELL_OUTER_SIZE);
HTML_OPEN("tr");
HTML_OPEN("td");
HTMLMap::plot_map_cell(OUT, pass, P, 0, 0, 2, LD);
HTMLMap::plot_map_cell(OUT, pass, P, 0, 0, 2, session);
if (icon_grid[ICON_GRID_POS(P, 0, 0)] & CONNECTIVE_BITMAP)
HTMLMap::plot_map_icon(OUT, I"s_dot"); else HTMLMap::plot_map_icon(OUT, I"ns_spacer");
HTMLMap::plot_map_cell(OUT, pass, P, 1, 0, 8, LD);
HTMLMap::plot_map_cell(OUT, pass, P, 2, 0, 0, LD);
HTMLMap::plot_map_cell(OUT, pass, P, 3, 0, -1, LD);
HTMLMap::plot_map_cell(OUT, pass, P, 1, 0, 8, session);
HTMLMap::plot_map_cell(OUT, pass, P, 2, 0, 0, session);
HTMLMap::plot_map_cell(OUT, pass, P, 3, 0, -1, session);
if (icon_grid[ICON_GRID_POS(P, 4, 0)] & CONNECTIVE_BITMAP)
HTMLMap::plot_map_icon(OUT, I"s_dot"); else HTMLMap::plot_map_icon(OUT, I"ns_spacer");
HTMLMap::plot_map_cell(OUT, pass, P, 4, 0, 1, LD);
HTMLMap::plot_map_cell(OUT, pass, P, 4, 0, 1, session);
HTML_CLOSE("td");
HTML_CLOSE("tr");
HTMLMap::end_map_table(OUT);
@ -720,11 +722,11 @@ height, and they're drawn with a single stripe.
if (icon_grid[ICON_GRID_POS(P, 0, 0)] & CONNECTIVE_BITMAP)
HTMLMap::plot_map_icon(OUT, I"e_dot"); else HTMLMap::plot_map_icon(OUT, I"ew_spacer");
HTML_TAG("br");
HTMLMap::plot_map_cell(OUT, pass, P, 0, 1, 11, LD);
HTMLMap::plot_map_cell(OUT, pass, P, 0, 1, 11, session);
HTML_TAG("br");
HTMLMap::plot_map_cell(OUT, pass, P, 0, 2, 7, LD);
HTMLMap::plot_map_cell(OUT, pass, P, 0, 2, 7, session);
HTML_TAG("br");
HTMLMap::plot_map_cell(OUT, pass, P, 0, 3, -1, LD);
HTMLMap::plot_map_cell(OUT, pass, P, 0, 3, -1, session);
HTML_TAG("br");
if (icon_grid[ICON_GRID_POS(P, 0, 4)] & CONNECTIVE_BITMAP)
HTMLMap::plot_map_icon(OUT, I"e_dot"); else HTMLMap::plot_map_icon(OUT, I"ew_spacer");
@ -742,11 +744,11 @@ height, and they're drawn with a single stripe.
if (icon_grid[ICON_GRID_POS(P, 4, 0)] & CONNECTIVE_BITMAP)
HTMLMap::plot_map_icon(OUT, I"w_dot"); else HTMLMap::plot_map_icon(OUT, I"ew_spacer");
HTML_TAG("br");
HTMLMap::plot_map_cell(OUT, pass, P, 4, 1, -1, LD);
HTMLMap::plot_map_cell(OUT, pass, P, 4, 1, -1, session);
HTML_TAG("br");
HTMLMap::plot_map_cell(OUT, pass, P, 4, 2, 6, LD);
HTMLMap::plot_map_cell(OUT, pass, P, 4, 2, 6, session);
HTML_TAG("br");
HTMLMap::plot_map_cell(OUT, pass, P, 4, 3, 10, LD);
HTMLMap::plot_map_cell(OUT, pass, P, 4, 3, 10, session);
HTML_TAG("br");
if (icon_grid[ICON_GRID_POS(P, 4, 4)] & CONNECTIVE_BITMAP)
HTMLMap::plot_map_icon(OUT, I"w_dot"); else HTMLMap::plot_map_icon(OUT, I"ew_spacer");
@ -766,7 +768,7 @@ There are 15 possibilities, and their icons are named as the following shows:
HTML_OPEN("td");
int bits = (icon_grid[ICON_GRID_POS(P, 2, 2)]) & LONGS_BITMAP;
if (bits == 0)
HTMLMap::index_room_square(OUT, room_grid[ROOM_GRID_POS(P)], pass);
HTMLMap::index_room_square(OUT, room_grid[ROOM_GRID_POS(P)], pass, session);
else {
TEMPORARY_TEXT(icon_name)
WRITE_TO(icon_name, "long");
@ -785,15 +787,15 @@ There are 15 possibilities, and their icons are named as the following shows:
HTMLMap::begin_map_table(OUT, MAP_CELL_SIZE, MAP_CELL_OUTER_SIZE);
HTML_OPEN("tr");
HTML_OPEN("td");
HTMLMap::plot_map_cell(OUT, pass, P, 0, 4, 5, LD);
HTMLMap::plot_map_cell(OUT, pass, P, 0, 4, 5, session);
if (icon_grid[ICON_GRID_POS(P, 0, 4)] & CONNECTIVE_BITMAP)
HTMLMap::plot_map_icon(OUT, I"n_dot"); else HTMLMap::plot_map_icon(OUT, I"ns_spacer");
HTMLMap::plot_map_cell(OUT, pass, P, 1, 4, -1, LD);
HTMLMap::plot_map_cell(OUT, pass, P, 2, 4, 3, LD);
HTMLMap::plot_map_cell(OUT, pass, P, 3, 4, 9, LD);
HTMLMap::plot_map_cell(OUT, pass, P, 1, 4, -1, session);
HTMLMap::plot_map_cell(OUT, pass, P, 2, 4, 3, session);
HTMLMap::plot_map_cell(OUT, pass, P, 3, 4, 9, session);
if (icon_grid[ICON_GRID_POS(P, 4, 4)] & CONNECTIVE_BITMAP)
HTMLMap::plot_map_icon(OUT, I"n_dot"); else HTMLMap::plot_map_icon(OUT, I"ns_spacer");
HTMLMap::plot_map_cell(OUT, pass, P, 4, 4, 4, LD);
HTMLMap::plot_map_cell(OUT, pass, P, 4, 4, 4, session);
HTML_CLOSE("td");
HTML_CLOSE("tr");
HTMLMap::end_map_table(OUT);
@ -848,8 +850,9 @@ of the cell. First, the eight cells around the outside:
=
void HTMLMap::plot_map_cell(OUTPUT_STREAM, int pass, vector P, int i1, int i2,
int faux_exit, localisation_dictionary *LD) {
faux_instance_set *faux_set = InterpretIndex::get_faux_instances();
int faux_exit, index_session *session) {
localisation_dictionary *LD = Indexing::get_localisation(session);
faux_instance_set *faux_set = Indexing::get_set_of_instances(session);
int bitmap = icon_grid[ICON_GRID_POS(P, i1, i2)];
if (pass == 2) bitmap &= CONNECTIVE_BITMAP;
if (bitmap == 0) @<This map cell is empty@>
@ -937,10 +940,10 @@ which are bordered and coloured single-cell tables.
@d ROOM_TEXT_COLOUR "000000"
=
void HTMLMap::index_room_square(OUTPUT_STREAM, faux_instance *I, int pass) {
void HTMLMap::index_room_square(OUTPUT_STREAM, faux_instance *I, int pass, index_session *session) {
if (I) {
int b = ROOM_BORDER_SIZE;
if ((I == FauxInstances::benchmark()) && (pass == 1)) b = B_ROOM_BORDER_SIZE;
if ((I == FauxInstances::benchmark(session)) && (pass == 1)) b = B_ROOM_BORDER_SIZE;
HTML_OPEN_WITH("table",
"border=\"%d\" cellpadding=\"0\" cellspacing=\"0\" "
"bordercolor=\"#%s\" width=\"%d\" height=\"%d\" title=\"%S\"",
@ -971,7 +974,7 @@ void HTMLMap::index_room_square(OUTPUT_STREAM, faux_instance *I, int pass) {
I->allocation_id);
HTML::begin_colour(OUT, col);
}
if ((pass == 1) && (I == FauxInstances::benchmark())) HTML_OPEN("b");
if ((pass == 1) && (I == FauxInstances::benchmark(session))) HTML_OPEN("b");
TEMPORARY_TEXT(abbrev)
WRITE_TO(abbrev, "%S", I->abbrev);
#ifdef HTML_MAP_FONT_SIZE
@ -982,7 +985,7 @@ void HTMLMap::index_room_square(OUTPUT_STREAM, faux_instance *I, int pass) {
#ifdef HTML_MAP_FONT_SIZE
HTML_CLOSE("span");
#endif
if ((pass == 1) && (I == FauxInstances::benchmark())) HTML_CLOSE("b");
if ((pass == 1) && (I == FauxInstances::benchmark(session))) HTML_CLOSE("b");
if (pass == 1) { HTML::end_colour(OUT); HTML_CLOSE("a"); }
DISCARD_TEXT(abbrev)
@ -1014,17 +1017,17 @@ The part of the World Index showing which rooms belong to which regions. Note
that nothing is shown if all of the rooms are outside of regions.
=
void HTMLMap::add_region_key(OUTPUT_STREAM) {
faux_instance_set *faux_set = InterpretIndex::get_faux_instances();
void HTMLMap::add_region_key(OUTPUT_STREAM, index_session *session) {
faux_instance_set *faux_set = Indexing::get_set_of_instances(session);
faux_instance *reg; int count = 0;
LOOP_OVER_FAUX_REGIONS(faux_set, reg)
count += HTMLMap::add_key_for(OUT, reg);
if (count > 0) count += HTMLMap::add_key_for(OUT, NULL);
count += HTMLMap::add_key_for(OUT, reg, session);
if (count > 0) count += HTMLMap::add_key_for(OUT, NULL, session);
if (count > 0) HTML_TAG("hr");
}
int HTMLMap::add_key_for(OUTPUT_STREAM, faux_instance *reg) {
faux_instance_set *faux_set = InterpretIndex::get_faux_instances();
int HTMLMap::add_key_for(OUTPUT_STREAM, faux_instance *reg, index_session *session) {
faux_instance_set *faux_set = Indexing::get_set_of_instances(session);
int count = 0;
faux_instance *R;
LOOP_OVER_FAUX_ROOMS(faux_set, R) {
@ -1046,7 +1049,7 @@ int HTMLMap::add_key_for(OUTPUT_STREAM, faux_instance *reg) {
HTML::begin_plain_html_table(OUT);
HTML_OPEN("tr"); WRITE("\n");
HTML_OPEN_WITH("td", "width=\"40\" valign=\"middle\" align=\"left\"");
HTMLMap::index_room_square(OUT, R, 1);
HTMLMap::index_room_square(OUT, R, 1, session);
HTML_CLOSE("td"); WRITE("\n");
HTML_OPEN_WITH("td", "valign=\"middle\" align=\"left\"");
WRITE("<b>");

View file

@ -73,6 +73,7 @@ typedef struct connected_submap {
int incidence_cache_size; /* how large that cache is */
struct cuboid incidence_cache_bounds; /* bounds of the incidence cache array */
int superpositions; /* number of pairs of rooms which share the same grid location */
struct index_session *for_session;
CLASS_DEFINITION
} connected_submap;
@ -85,9 +86,9 @@ cuboid Universe;
This is usually the room in which the player begins.
=
int SpatialMap::benchmark_level(void) {
if (FauxInstances::benchmark() == NULL) return 0;
return Room_position(FauxInstances::benchmark()).z;
int SpatialMap::benchmark_level(index_session *session) {
if (FauxInstances::benchmark(session) == NULL) return 0;
return Room_position(FauxInstances::benchmark(session)).z;
}
@ We are going to be iterating through the set of rooms often. Looping over
@ -133,9 +134,9 @@ to get the results in time to write them in the story file.
int spatial_coordinates_established = FALSE;
int partitioned_into_components = FALSE;
void SpatialMap::establish_spatial_coordinates(void) {
void SpatialMap::establish_spatial_coordinates(index_session *session) {
if (spatial_coordinates_established) return;
faux_instance_set *faux_set = InterpretIndex::get_faux_instances();
faux_instance_set *faux_set = Indexing::get_set_of_instances(session);
Universe = Geometry::empty_cuboid();
@<(1) Create the spatial relationship arrays@>;
@<(2) Partition the set of rooms into component submaps@>;
@ -211,8 +212,8 @@ When we read this, we associate direction object 13, say (the starboard
direction) with page direction 6:
=
faux_instance *SpatialMap::mapped_as_if(faux_instance *I) {
faux_instance_set *faux_set = InterpretIndex::get_faux_instances();
faux_instance *SpatialMap::mapped_as_if(faux_instance *I, index_session *session) {
faux_instance_set *faux_set = Indexing::get_set_of_instances(session);
int i = I->direction_index;
if (story_dir_to_page_dir[i] == i) return NULL;
faux_instance *D;
@ -332,7 +333,7 @@ we use these hard-wired macros instead.
for (i=0; i<12; i++)
@d LOOP_OVER_STORY_DIRECTIONS(i)
for (i=0; ((i<FauxInstances::no_directions()) && (i<MAX_DIRECTIONS)); i++)
for (i=0; ((i<FauxInstances::no_directions(session)) && (i<MAX_DIRECTIONS)); i++)
@d LOOP_OVER_LATTICE_DIRECTIONS(i)
for (i=0; i<10; i++)
@ -618,7 +619,7 @@ faux_instance *SpatialMap::read_slock(faux_instance *from, int dir) {
Here's an empty submap, with no rooms.
=
connected_submap *SpatialMap::new_submap(void) {
connected_submap *SpatialMap::new_submap(index_session *session) {
connected_submap *sub = CREATE(connected_submap);
sub->bounds = Geometry::empty_cuboid();
sub->first_room_in_submap = NULL;
@ -626,6 +627,7 @@ connected_submap *SpatialMap::new_submap(void) {
sub->incidence_cache = NULL;
sub->incidence_cache_bounds = Geometry::empty_cuboid();
sub->superpositions = 0;
sub->for_session = session;
return sub;
}
@ -797,7 +799,7 @@ since its rooms have all moved out.
=
void SpatialMap::create_submaps_from_zones(connected_submap *sub,
int Z1_number, connected_submap *Zone1, int Z2_number, connected_submap *Zone2) {
faux_instance_set *faux_set = InterpretIndex::get_faux_instances();
faux_instance_set *faux_set = Indexing::get_set_of_instances(sub->for_session);
faux_instance *R;
LOOP_OVER_FAUX_ROOMS(faux_set, R) {
if (R->fimd.zone == Z1_number)
@ -815,7 +817,7 @@ reverse process exactly.
=
void SpatialMap::create_zones_from_submaps(connected_submap *sub,
int Z1_number, connected_submap *Zone1, int Z2_number, connected_submap *Zone2) {
faux_instance_set *faux_set = InterpretIndex::get_faux_instances();
faux_instance_set *faux_set = Indexing::get_set_of_instances(sub->for_session);
faux_instance *R;
LOOP_OVER_FAUX_ROOMS(faux_set, R) {
if (R->fimd.submap == Zone1) {
@ -839,11 +841,11 @@ We ensure that the first-created component is the one containing the
benchmark room.
@<(2) Partition the set of rooms into component submaps@> =
SpatialMap::create_map_component_around(FauxInstances::benchmark());
SpatialMap::create_map_component_around(FauxInstances::benchmark(session), session);
faux_instance *R;
LOOP_OVER_FAUX_ROOMS(faux_set, R)
if (R->fimd.submap == NULL)
SpatialMap::create_map_component_around(R);
SpatialMap::create_map_component_around(R, session);
@ The following grows a component outwards from |at|, so that it also includes
all rooms locked to |at| or with a SR to it. If |at| is currently not in a
@ -854,21 +856,21 @@ doesn't depend on $R$, the number of rooms. It is called exactly once for
each room, so phase (2) has running time $O(R)$.
=
void SpatialMap::create_map_component_around(faux_instance *at) {
void SpatialMap::create_map_component_around(faux_instance *at, index_session *session) {
if (at->fimd.submap == NULL)
SpatialMap::add_room_to_submap(at, SpatialMap::new_submap());
SpatialMap::add_room_to_submap(at, SpatialMap::new_submap(session));
int i;
LOOP_OVER_LATTICE_DIRECTIONS(i) {
faux_instance *locked_to = SpatialMap::read_slock(at, i);
if ((locked_to) && (locked_to->fimd.submap != at->fimd.submap)) {
SpatialMap::add_room_to_submap(locked_to, at->fimd.submap);
SpatialMap::create_map_component_around(locked_to);
SpatialMap::create_map_component_around(locked_to, session);
}
faux_instance *dest = SpatialMap::read_smap(at, i);
if ((dest) && (dest->fimd.submap != at->fimd.submap)) {
SpatialMap::add_room_to_submap(dest, at->fimd.submap);
SpatialMap::create_map_component_around(dest);
SpatialMap::create_map_component_around(dest, session);
}
}
}
@ -1245,8 +1247,8 @@ dividing at one relationship F1-to-T1 or at two, F1-to-T1 and F2-to-T2.
Z1_count, Z2_count);
@<Divide the submap into zones, recurse to position those, then merge back@> =
connected_submap *Zone1 = SpatialMap::new_submap();
connected_submap *Zone2 = SpatialMap::new_submap();
connected_submap *Zone1 = SpatialMap::new_submap(sub->for_session);
connected_submap *Zone2 = SpatialMap::new_submap(sub->for_session);
SpatialMap::create_submaps_from_zones(sub, Z1_number, Zone1, Z2_number, Zone2);
LOGIF(SPATIAL_MAP, "Zone 1 becomes submap %d; zone 2 becomes submap %d\n",
Zone1->allocation_id, Zone2->allocation_id);
@ -2368,7 +2370,7 @@ predecessor, with the same baseline, and on the level of the benchmark room.
sub->allocation_id, sub->bounds.population);
SpatialMap::move_component(sub,
Geometry::vec(x_max, box.corner0.y - sub->bounds.corner0.y,
SpatialMap::benchmark_level() - sub->bounds.corner0.z));
SpatialMap::benchmark_level(session) - sub->bounds.corner0.z));
@ The drill square is a way to place large numbers of single-room components,
such as exist in IF works where rooms are being plaited together live during
@ -2383,7 +2385,7 @@ one big component.
sub->allocation_id, sub->bounds.population);
if (drill_square_side == 0) {
Drill_square_O =
Geometry::vec(box.corner1.x + 1, box.corner0.y, SpatialMap::benchmark_level());
Geometry::vec(box.corner1.x + 1, box.corner0.y, SpatialMap::benchmark_level(session));
Drill_square_At = Drill_square_O;
connected_submap *sing;
int N = 0;
@ -2414,7 +2416,7 @@ with.
SpatialMap::find_link_to_placed_components(sub, &outer, &inner);
vector Best_offset =
Geometry::vec(x_max, box.corner0.y - sub->bounds.corner0.y,
SpatialMap::benchmark_level() - sub->bounds.corner0.z);
SpatialMap::benchmark_level(session) - sub->bounds.corner0.z);
if ((outer) && (inner)) {
int dx = 0, dy = 0, dz = 0, min_s = FUSION_POINT;
for (dx = -MAX_OFFSET; dx <= MAX_OFFSET; dx++)
@ -2542,7 +2544,7 @@ rooms connected that way are by definition in the same component.
=
int SpatialMap::cross_component_links(connected_submap *sub, faux_instance **outer,
faux_instance **inner, int *heat, int posnd) {
faux_instance_set *faux_set = InterpretIndex::get_faux_instances();
faux_instance_set *faux_set = Indexing::get_set_of_instances(sub->for_session);
int no_links = 0;
if (heat) *heat = 0;
faux_instance *R;
@ -2681,9 +2683,10 @@ locking means that blank planes are inevitable.
@
=
void SpatialMap::index_room_connections(OUTPUT_STREAM, faux_instance *R) {
void SpatialMap::index_room_connections(OUTPUT_STREAM, faux_instance *R,
index_session *session) {
text_stream *RW = FauxInstances::get_name(R); /* name of the origin room */
faux_instance_set *faux_set = InterpretIndex::get_faux_instances();
faux_instance_set *faux_set = Indexing::get_set_of_instances(session);
faux_instance *dir;
LOOP_OVER_FAUX_DIRECTIONS(faux_set, dir) {
int i = dir->direction_index;
@ -2762,7 +2765,7 @@ void SpatialMap::index_room_connections(OUTPUT_STREAM, faux_instance *R) {
@h Unit testing.
=
void SpatialMap::perform_map_internal_test(OUTPUT_STREAM) {
void SpatialMap::perform_map_internal_test(OUTPUT_STREAM, index_session *session) {
connected_submap *sub;
LOOP_OVER(sub, connected_submap) {
WRITE("Map component %d: extent (%d...%d, %d...%d, %d...%d): population %d\n",
@ -2778,7 +2781,7 @@ void SpatialMap::perform_map_internal_test(OUTPUT_STREAM) {
Room_position(R).y,
Room_position(R).z);
FauxInstances::write_name(OUT, R);
if (R == FauxInstances::benchmark()) WRITE(" (benchmark)");
if (R == FauxInstances::benchmark(session)) WRITE(" (benchmark)");
WRITE("\n");
}
WRITE("\n");

View file

@ -6,6 +6,7 @@ Licence: Artistic License 2.0
Chapter 1: Starting Up
Index Module
Indexing API
Chapter 2: Utilities
Index Locations