mirror of
https://github.com/ganelson/inform.git
synced 2024-07-05 08:34:22 +03:00
Completed refactor of space-time
This commit is contained in:
parent
aa9fc07f4a
commit
627a989e73
|
@ -1389,8 +1389,8 @@ in this case.
|
|||
|
||||
<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><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">PL::MapDirections::get_mapping_relationship</span><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">PL::MapDirections::get_mapping_relationship</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">MapRelations::get_mapping_relationship</span><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">MapRelations::get_mapping_relationship</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Map::enter_one_way_mode</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="4-ass.html#SP6" class="function-link"><span class="function-syntax">Assertions::make_coupling</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="identifier-syntax">py</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="4-ass.html#SP6" class="function-link"><span class="function-syntax">Assertions::make_coupling</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</span><span class="plain-syntax">, </span><span class="identifier-syntax">py</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -107,7 +107,7 @@ objects or values, but there are two exceptional cases to take care of.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</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">PL::MapDirections::get_mapping_relationship</span><span class="plain-syntax">(</span><span class="identifier-syntax">relationship_subtree</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">MapRelations::get_mapping_relationship</span><span class="plain-syntax">(</span><span class="identifier-syntax">relationship_subtree</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-rk.html#SP1_3" class="named-paragraph-link"><span class="named-paragraph">Exceptional relationship nodes for map connections</span><span class="named-paragraph-number">1.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pronoun_usage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pro</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_pronoun</span><span class="plain-syntax">(</span><span class="identifier-syntax">relationship_subtree</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">pro</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">pro</span><span class="plain-syntax">-></span><span class="identifier-syntax">pronoun_used</span><span class="plain-syntax"> == </span><span class="identifier-syntax">here_pronoun</span><span class="plain-syntax">))</span>
|
||||
|
|
|
@ -498,7 +498,7 @@ has the marble and the box as its children, the relationship being containment.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">p</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="4-rpt.html#SP10" class="function-link"><span class="function-syntax">Refiner::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</span><span class="plain-syntax">, </span><span class="identifier-syntax">creation_rule</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">IF_MODULE</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dir</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PL::MapDirections::get_mapping_relationship</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dir</span><span class="plain-syntax"> = </span><span class="identifier-syntax">MapRelations::get_mapping_relationship</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">dir</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="4-rpt.html#SP11_5_1" class="named-paragraph-link"><span class="named-paragraph">Make the relation one which refers to a map direction</span><span class="named-paragraph-number">11.5.1</span></a></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">p</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax">) </span><a href="4-rpt.html#SP10" class="function-link"><span class="function-syntax">Refiner::refine</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax">, </span><span class="identifier-syntax">creation_rule</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -287,18 +287,24 @@ We begin with <a href="index.html" class="internal">core</a> itself.
|
|||
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>§7. </b><a href="../index-module/index.html" class="internal">index</a> —
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">contents_entry_CLASS</span>
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">connected_submap_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">contents_entry_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">documentation_ref_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">EPS_map_level_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">index_lexicon_entry_CLASS</span>
|
||||
<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="identifier-syntax">connected_submap</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">contents_entry</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">documentation_ref</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">EPS_map_level</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">index_element</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">index_page</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">index_lexicon_entry</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">rubric_holder</span><span class="plain-syntax">)</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>§8. </b><a href="../if-module/index.html" class="internal">if</a> —
|
||||
</p>
|
||||
|
@ -307,9 +313,7 @@ We begin with <a href="index.html" class="internal">core</a> itself.
|
|||
<span class="definition-keyword">enum</span> <span class="constant-syntax">auxiliary_file_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">cached_understanding_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">command_index_entry_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">connected_submap_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">direction_inference_data_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">EPS_map_level_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">found_in_inference_data_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">grammar_line_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">grammar_verb_CLASS</span>
|
||||
|
@ -326,7 +330,6 @@ We begin with <a href="index.html" class="internal">core</a> itself.
|
|||
<span class="definition-keyword">enum</span> <span class="constant-syntax">regions_data_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">release_instructions_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">reserved_command_verb_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">rubric_holder_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">scene_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">slash_gpr_CLASS</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">spatial_data_CLASS</span>
|
||||
|
@ -342,9 +345,7 @@ We begin with <a href="index.html" class="internal">core</a> itself.
|
|||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">auxiliary_file</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">cached_understanding</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">command_index_entry</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">connected_submap</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">direction_inference_data</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">EPS_map_level</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">found_in_inference_data</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">grammar_line</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">grammar_verb</span><span class="plain-syntax">)</span>
|
||||
|
@ -361,7 +362,6 @@ We begin with <a href="index.html" class="internal">core</a> itself.
|
|||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">regions_data</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">release_instructions</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">reserved_command_verb</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">rubric_holder</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">scene</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">slash_gpr</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_CLASS</span><span class="plain-syntax">(</span><span class="identifier-syntax">spatial_data</span><span class="plain-syntax">)</span>
|
||||
|
|
|
@ -96,7 +96,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><a href="2-ri.html#SP3" class="function-link"><span class="function-syntax">ReleaseInstructions::start</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="3-enah.html#SP2" class="function-link"><span class="function-syntax">WherePredicates::start</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="3-sr.html#SP2" class="function-link"><span class="function-syntax">SpatialRelations::start</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="3-mcr.html#SP1" class="function-link"><span class="function-syntax">PL::MapDirections::start</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="3-mcr.html#SP1" class="function-link"><span class="function-syntax">MapRelations::start</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP2_1" class="paragraph-anchor"></a><b>§2.1. </b></p>
|
||||
|
@ -165,19 +165,19 @@ nothing except to be a parent to them; it has no activation function.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">backdrops_plugin</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PluginManager::new</span><span class="plain-syntax">(&</span><a href="3-bck.html#SP1" class="function-link"><span class="function-syntax">Backdrops::start</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"backdrops"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ifp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">bibliographic_plugin</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PluginManager::new</span><span class="plain-syntax">(&</span><a href="2-bd.html#SP1" class="function-link"><span class="function-syntax">BibliographicData::start</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"bibliographic data"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ifp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">chronology_plugin</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PluginManager::new</span><span class="plain-syntax">(&</span><span class="identifier-syntax">Chronology::start_plugin</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"chronology"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ifp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">devices_plugin</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PluginManager::new</span><span class="plain-syntax">(&</span><a href="3-dvc.html#SP2" class="function-link"><span class="function-syntax">PL::Devices::start</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"devices"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ifp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">devices_plugin</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PluginManager::new</span><span class="plain-syntax">(&</span><a href="3-dvc.html#SP1" class="function-link"><span class="function-syntax">PL::Devices::start</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"devices"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ifp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">map_plugin</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PluginManager::new</span><span class="plain-syntax">(&</span><a href="3-tm.html#SP1" class="function-link"><span class="function-syntax">Map::start</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"mapping"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ifp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">persons_plugin</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PluginManager::new</span><span class="plain-syntax">(&</span><a href="3-prs.html#SP1" class="function-link"><span class="function-syntax">PL::Persons::start</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"persons"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ifp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">player_plugin</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PluginManager::new</span><span class="plain-syntax">(&</span><a href="3-tp.html#SP1" class="function-link"><span class="function-syntax">Player::start</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"player"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ifp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">regions_plugin</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PluginManager::new</span><span class="plain-syntax">(&</span><a href="3-rgn.html#SP1" class="function-link"><span class="function-syntax">Regions::start</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"regions"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ifp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">scenes_plugin</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PluginManager::new</span><span class="plain-syntax">(&</span><a href="3-scn.html#SP7" class="function-link"><span class="function-syntax">PL::Scenes::start</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"scenes"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ifp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">scoring_plugin</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PluginManager::new</span><span class="plain-syntax">(&</span><a href="3-ts.html#SP1" class="function-link"><span class="function-syntax">PL::Score::start</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"scoring"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ifp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">showme_plugin</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PluginManager::new</span><span class="plain-syntax">(&</span><a href="3-sc.html#SP1" class="function-link"><span class="function-syntax">PL::Showme::start</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"showme"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ifp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">scenes_plugin</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PluginManager::new</span><span class="plain-syntax">(&</span><a href="3-scn.html#SP1" class="function-link"><span class="function-syntax">Scenes::start</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"scenes"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ifp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">scoring_plugin</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PluginManager::new</span><span class="plain-syntax">(&</span><a href="3-ts.html#SP1" class="function-link"><span class="function-syntax">TheScore::start</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"scoring"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ifp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">times_plugin</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PluginManager::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">TimesOfDay::start</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"times of day"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ifp</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">actions_plugin</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PluginManager::new</span><span class="plain-syntax">(&</span><a href="4-ap.html#SP2" class="function-link"><span class="function-syntax">ActionsPlugin::start</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"actions"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ifp</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parsing_plugin</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PluginManager::new</span><span class="plain-syntax">(&</span><a href="5-pp.html#SP1" class="function-link"><span class="function-syntax">ParsingPlugin::start</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"command"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ifp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">showme_plugin</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PluginManager::new</span><span class="plain-syntax">(&</span><span class="identifier-syntax">RTShowmeCommand::start</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"showme"</span><span class="plain-syntax">, </span><span class="identifier-syntax">parsing_plugin</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
|
|
|
@ -113,7 +113,7 @@ everything to do with a release into a singleton instance of the following.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">release_instructions</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure release_instructions is accessed in 2/tir, 2/tbf, 3/em and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure release_instructions is accessed in 2/tir, 2/tbf and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
|
|
@ -405,7 +405,7 @@ backdrop.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-dvc.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-bd.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresssection"><a href="3-enah.html">enah</a></li><li class="progresssection"><a href="3-sr.html">sr</a></li><li class="progresssection"><a href="3-si.html">si</a></li><li class="progresssection"><a href="3-prs.html">prs</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-dvc.html">dvc</a></li><li class="progresscurrent">bck</li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-mcr.html">mcr</a></li><li class="progresssection"><a href="3-sg.html">sg</a></li><li class="progresssection"><a href="3-sm2.html">sm2</a></li><li class="progresssection"><a href="3-hm.html">hm</a></li><li class="progresssection"><a href="3-em.html">em</a></li><li class="progresssection"><a href="3-sc.html">sc</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-tm2.html">tm2</a></li><li class="progresssection"><a href="3-ts.html">ts</a></li><li class="progresschapter"><a href="4-ap.html">4</a></li><li class="progresschapter"><a href="5-pp.html">5</a></li><li class="progressnext"><a href="3-rgn.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-dvc.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-bd.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresssection"><a href="3-enah.html">enah</a></li><li class="progresssection"><a href="3-sr.html">sr</a></li><li class="progresssection"><a href="3-si.html">si</a></li><li class="progresssection"><a href="3-prs.html">prs</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-dvc.html">dvc</a></li><li class="progresscurrent">bck</li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-mcr.html">mcr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</a></li><li class="progresschapter"><a href="4-ap.html">4</a></li><li class="progresschapter"><a href="5-pp.html">5</a></li><li class="progressnext"><a href="3-rgn.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -79,15 +79,13 @@ Rules in a clumsy sort of way (with a direct I6 code injection), but in the
|
|||
age of Inter we want to avoid that sort of tomfoolery.
|
||||
</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Devices::start</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">PL::Devices::start</span></span>:<br/>IF Module - <a href="1-im.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">NEW_BASE_KIND_NOTIFY_PLUG</span><span class="plain-syntax">, </span><a href="3-dvc.html#SP4" class="function-link"><span class="function-syntax">PL::Devices::new_base_kind_notify</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">COMPLETE_MODEL_PLUG</span><span class="plain-syntax">, </span><a href="3-dvc.html#SP4" class="function-link"><span class="function-syntax">PL::Devices::IF_complete_model</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">NEW_BASE_KIND_NOTIFY_PLUG</span><span class="plain-syntax">, </span><a href="3-dvc.html#SP3" class="function-link"><span class="function-syntax">PL::Devices::new_base_kind_notify</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">COMPLETE_MODEL_PLUG</span><span class="plain-syntax">, </span><a href="3-dvc.html#SP3" class="function-link"><span class="function-syntax">PL::Devices::IF_complete_model</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. </b>As usual with notable kinds, this is recognised by its English name, so there
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>As usual with notable kinds, this is recognised by its English name, so there
|
||||
is no need to translate this.
|
||||
</p>
|
||||
|
||||
|
@ -96,16 +94,16 @@ is no need to translate this.
|
|||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">device</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. </b></p>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K_device</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Devices::new_base_kind_notify</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">PL::Devices::new_base_kind_notify</span></span>:<br/><a href="3-dvc.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">new_base</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Devices::new_base_kind_notify</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">PL::Devices::new_base_kind_notify</span></span>:<br/><a href="3-dvc.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">new_base</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><notable-device-kinds></span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) { </span><span class="identifier-syntax">K_device</span><span class="plain-syntax"> = </span><span class="identifier-syntax">new_base</span><span class="plain-syntax">; </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">; }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Devices::IF_complete_model</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">PL::Devices::IF_complete_model</span></span>:<br/><a href="3-dvc.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">stage</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Devices::IF_complete_model</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">PL::Devices::IF_complete_model</span></span>:<br/><a href="3-dvc.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">stage</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">stage</span><span class="plain-syntax"> == </span><span class="identifier-syntax">WORLD_STAGE_III</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P_switchable</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EitherOrProperties::new_nameless</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="string-syntax">"switchable"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RTProperties::implement_as_attribute</span><span class="plain-syntax">(</span><span class="identifier-syntax">P_switchable</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
|
||||
|
@ -119,7 +117,7 @@ is no need to translate this.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-tp.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-bd.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresssection"><a href="3-enah.html">enah</a></li><li class="progresssection"><a href="3-sr.html">sr</a></li><li class="progresssection"><a href="3-si.html">si</a></li><li class="progresssection"><a href="3-prs.html">prs</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresscurrent">dvc</li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-mcr.html">mcr</a></li><li class="progresssection"><a href="3-sg.html">sg</a></li><li class="progresssection"><a href="3-sm2.html">sm2</a></li><li class="progresssection"><a href="3-hm.html">hm</a></li><li class="progresssection"><a href="3-em.html">em</a></li><li class="progresssection"><a href="3-sc.html">sc</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-tm2.html">tm2</a></li><li class="progresssection"><a href="3-ts.html">ts</a></li><li class="progresschapter"><a href="4-ap.html">4</a></li><li class="progresschapter"><a href="5-pp.html">5</a></li><li class="progressnext"><a href="3-bck.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-tp.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-bd.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresssection"><a href="3-enah.html">enah</a></li><li class="progresssection"><a href="3-sr.html">sr</a></li><li class="progresssection"><a href="3-si.html">si</a></li><li class="progresssection"><a href="3-prs.html">prs</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresscurrent">dvc</li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-mcr.html">mcr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</a></li><li class="progresschapter"><a href="4-ap.html">4</a></li><li class="progresschapter"><a href="5-pp.html">5</a></li><li class="progressnext"><a href="3-bck.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -304,7 +304,7 @@ and put the issue aside for now.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-sm.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-bd.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresscurrent">enah</li><li class="progresssection"><a href="3-sr.html">sr</a></li><li class="progresssection"><a href="3-si.html">si</a></li><li class="progresssection"><a href="3-prs.html">prs</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-dvc.html">dvc</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-mcr.html">mcr</a></li><li class="progresssection"><a href="3-sg.html">sg</a></li><li class="progresssection"><a href="3-sm2.html">sm2</a></li><li class="progresssection"><a href="3-hm.html">hm</a></li><li class="progresssection"><a href="3-em.html">em</a></li><li class="progresssection"><a href="3-sc.html">sc</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-tm2.html">tm2</a></li><li class="progresssection"><a href="3-ts.html">ts</a></li><li class="progresschapter"><a href="4-ap.html">4</a></li><li class="progresschapter"><a href="5-pp.html">5</a></li><li class="progressnext"><a href="3-sr.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-sm.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-bd.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresscurrent">enah</li><li class="progresssection"><a href="3-sr.html">sr</a></li><li class="progresssection"><a href="3-si.html">si</a></li><li class="progresssection"><a href="3-prs.html">prs</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-dvc.html">dvc</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-mcr.html">mcr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</a></li><li class="progresschapter"><a href="4-ap.html">4</a></li><li class="progresschapter"><a href="5-pp.html">5</a></li><li class="progressnext"><a href="3-sr.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -87,12 +87,12 @@ Metro" tests the "mapped-north" BP.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">bp_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">map_connecting_bp_family</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::MapDirections::start</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">PL::MapDirections::start</span></span>:<br/>IF Module - <a href="1-im.html#SP2">§2</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">MapRelations::start</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">MapRelations::start</span></span>:<br/>IF Module - <a href="1-im.html#SP2">§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="identifier-syntax">map_connecting_bp_family</span><span class="plain-syntax"> = </span><span class="identifier-syntax">BinaryPredicateFamilies::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">map_connecting_bp_family</span><span class="plain-syntax">, </span><span class="identifier-syntax">TYPECHECK_BPF_MTID</span><span class="plain-syntax">, </span><a href="3-mcr.html#SP4" class="function-link"><span class="function-syntax">PL::MapDirections::typecheck</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">map_connecting_bp_family</span><span class="plain-syntax">, </span><span class="identifier-syntax">ASSERT_BPF_MTID</span><span class="plain-syntax">, </span><a href="3-mcr.html#SP5" class="function-link"><span class="function-syntax">PL::MapDirections::assert</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">map_connecting_bp_family</span><span class="plain-syntax">, </span><span class="identifier-syntax">TYPECHECK_BPF_MTID</span><span class="plain-syntax">, </span><a href="3-mcr.html#SP4" class="function-link"><span class="function-syntax">MapRelations::typecheck</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">map_connecting_bp_family</span><span class="plain-syntax">, </span><span class="identifier-syntax">ASSERT_BPF_MTID</span><span class="plain-syntax">, </span><a href="3-mcr.html#SP5" class="function-link"><span class="function-syntax">MapRelations::assert</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">map_connecting_bp_family</span><span class="plain-syntax">, </span><span class="identifier-syntax">DESCRIBE_FOR_INDEX_BPF_MTID</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="3-mcr.html#SP6" class="function-link"><span class="function-syntax">PL::MapDirections::describe_for_index</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-mcr.html#SP6" class="function-link"><span class="function-syntax">MapRelations::describe_for_index</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. Subsequent creations. </b>Every direction created has a relation associated with it: for instance,
|
||||
|
@ -103,7 +103,7 @@ at an earlier stage in Inform's run, so another two-step is needed:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="function-syntax">PL::MapDirections::create_sketchy_mapping_direction</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">PL::MapDirections::create_sketchy_mapping_direction</span></span>:<br/>The Map - <a href="3-tm.html#SP3">§3</a></span></button><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">binary_predicate</span><span class="plain-syntax"> *</span><span class="function-syntax">MapRelations::create_sketchy_mapping_direction</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">MapRelations::create_sketchy_mapping_direction</span></span>:<br/>The Map - <a href="3-tm.html#SP3">§3</a></span></button><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="plain-syntax"> </span><span class="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bp</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-mcr.html#SP2_3" class="named-paragraph-link"><span class="named-paragraph">Create the mapping BP for the new direction</span><span class="named-paragraph-number">2.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">bp</span><span class="plain-syntax">;</span>
|
||||
|
@ -122,7 +122,7 @@ is done to avoid ambiguities with the already-existing meanings of inside
|
|||
and outside to do with spatial containment.
|
||||
</p>
|
||||
|
||||
<p class="commentary">The use of the word "mapped" may seem itself off. Why define "to be mapped
|
||||
<p class="commentary">The use of the word "mapped" may seem itself odd. Why define "to be mapped
|
||||
east of" rather than "to be east of"? After all, that seems to be what is
|
||||
used in assertions like:
|
||||
</p>
|
||||
|
@ -131,8 +131,8 @@ used in assertions like:
|
|||
<p>The Bakery is east of Pudding Lane.</p>
|
||||
</blockquote>
|
||||
|
||||
<p class="commentary">In fact, the A-parser reads sentences like that by looking out specially for
|
||||
direction names plus "of" — so this is parsed without using the mapping
|
||||
<p class="commentary">In fact, the assertion parser reads sentences like that by looking out specially
|
||||
for direction names plus "of" — so this is parsed without using the mapping
|
||||
predicate for "east". But it cannot read:
|
||||
</p>
|
||||
|
||||
|
@ -144,14 +144,6 @@ predicate for "east". But it cannot read:
|
|||
"down", and anyway there is no "of".
|
||||
</p>
|
||||
|
||||
<p class="commentary">We do not allow direction names with unexpected capital letters because we
|
||||
want to allow room names to contain direction names on occasion:
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
<p>The fire hydrant is in West from 47th Street.</p>
|
||||
</blockquote>
|
||||
|
||||
<pre class="Preform-displayed-code all-displayed-code code-font">
|
||||
<span class="Preform-function-syntax"><mapping-relation-construction></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">mapping</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span>
|
||||
|
@ -229,7 +221,7 @@ makes it possible to complete the details of the BP.
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">mmp_call_counter</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::MapDirections::make_mapped_predicate</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">PL::MapDirections::make_mapped_predicate</span></span>:<br/>The Map - <a href="3-tm.html#SP17_2">§17.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">MapRelations::make_mapped_predicate</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">MapRelations::make_mapped_predicate</span></span>:<br/>The Map - <a href="3-tm.html#SP17_2">§17.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::get_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Wordings::empty</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) || (</span><span class="identifier-syntax">Wordings::length</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">) > </span><span class="constant-syntax">MAX_WORDS_IN_DIRECTION</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"bad direction name"</span><span class="plain-syntax">);</span>
|
||||
|
@ -258,7 +250,7 @@ remaining anomalies.
|
|||
</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">PL::MapDirections::typecheck</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">PL::MapDirections::typecheck</span></span>:<br/><a href="3-mcr.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">bp_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bp</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">MapRelations::typecheck</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">MapRelations::typecheck</span></span>:<br/><a href="3-mcr.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">bp_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bp</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> **</span><span class="identifier-syntax">kinds_of_terms</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> **</span><span class="identifier-syntax">kinds_required</span><span class="plain-syntax">, </span><span class="identifier-syntax">tc_problem_kit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tck</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</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">t</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">t</span><span class="plain-syntax"><2; </span><span class="identifier-syntax">t</span><span class="plain-syntax">++)</span>
|
||||
|
@ -280,10 +272,10 @@ such.
|
|||
</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">PL::MapDirections::assert</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">PL::MapDirections::assert</span></span>:<br/><a href="3-mcr.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">bp_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bp</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">MapRelations::assert</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">MapRelations::assert</span></span>:<br/><a href="3-mcr.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">bp_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bp</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">infs0</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">spec0</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">infs1</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">spec1</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">o_dir</span><span class="plain-syntax"> = </span><a href="3-mcr.html#SP7" class="function-link"><span class="function-syntax">PL::MapDirections::get_mapping_direction</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">bp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">o_dir</span><span class="plain-syntax"> = </span><a href="3-mcr.html#SP7" class="function-link"><span class="function-syntax">MapRelations::get_mapping_direction</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">bp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">infs_from</span><span class="plain-syntax"> = </span><span class="identifier-syntax">infs0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">infs_to</span><span class="plain-syntax"> = </span><span class="identifier-syntax">infs1</span><span class="plain-syntax">;</span>
|
||||
|
||||
|
@ -297,7 +289,7 @@ such.
|
|||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. Indexing. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::MapDirections::describe_for_index</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">PL::MapDirections::describe_for_index</span></span>:<br/><a href="3-mcr.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">bp_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</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="function-syntax">MapRelations::describe_for_index</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">MapRelations::describe_for_index</span></span>:<br/><a href="3-mcr.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">bp_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</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="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bp</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"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -306,12 +298,12 @@ such.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="function-syntax">PL::MapDirections::get_mapping_relation</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">PL::MapDirections::get_mapping_relation</span></span>:<br/>The Map - <a href="3-tm.html#SP33">§33</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dir</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="function-syntax">MapRelations::get_mapping_relation</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">MapRelations::get_mapping_relation</span></span>:<br/>The Map - <a href="3-tm.html#SP33">§33</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">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="reserved-syntax">if</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="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">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">dir</span><span class="plain-syntax">)-></span><span class="element-syntax">direction_relation</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">PL::MapDirections::get_mapping_direction</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">PL::MapDirections::get_mapping_direction</span></span>:<br/><a href="3-mcr.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bp</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">MapRelations::get_mapping_direction</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">MapRelations::get_mapping_direction</span></span>:<br/><a href="3-mcr.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bp</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">bp</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="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_INSTANCES</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">)</span>
|
||||
|
@ -320,12 +312,12 @@ such.
|
|||
<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="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">PL::MapDirections::get_mapping_relationship</span><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">MapRelations::get_mapping_relationship</span><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bp</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_relationship</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">bp</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">PluginManager::active</span><span class="plain-syntax">(</span><span class="identifier-syntax">map_plugin</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dir</span><span class="plain-syntax"> = </span><a href="3-mcr.html#SP7" class="function-link"><span class="function-syntax">PL::MapDirections::get_mapping_direction</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dir</span><span class="plain-syntax"> = </span><a href="3-mcr.html#SP7" class="function-link"><span class="function-syntax">MapRelations::get_mapping_direction</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BinaryPredicates::get_reversal</span><span class="plain-syntax">(</span><span class="identifier-syntax">bp</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">dir</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">dir</span><span class="plain-syntax"> = </span><a href="3-mcr.html#SP7" class="function-link"><span class="function-syntax">PL::MapDirections::get_mapping_direction</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">bp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">dir</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">dir</span><span class="plain-syntax"> = </span><a href="3-mcr.html#SP7" class="function-link"><span class="function-syntax">MapRelations::get_mapping_direction</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">bp</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">dir</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">NULL</span><span class="plain-syntax">;</span>
|
||||
|
@ -335,7 +327,7 @@ such.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::MapDirections::create_relations</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">PL::MapDirections::create_relations</span></span>:<br/>Spatial Relations - <a href="3-sr.html#SP2">§2</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">MapRelations::create_relations</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">MapRelations::create_relations</span></span>:<br/>Spatial Relations - <a href="3-sr.html#SP2">§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="identifier-syntax">BinaryPredicates::make_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">spatial_bp_family</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BPTerms::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">infs_room</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BPTerms::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">infs_room</span><span class="plain-syntax">),</span>
|
||||
|
@ -345,7 +337,7 @@ such.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-tm.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-bd.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresssection"><a href="3-enah.html">enah</a></li><li class="progresssection"><a href="3-sr.html">sr</a></li><li class="progresssection"><a href="3-si.html">si</a></li><li class="progresssection"><a href="3-prs.html">prs</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-dvc.html">dvc</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresscurrent">mcr</li><li class="progresssection"><a href="3-sg.html">sg</a></li><li class="progresssection"><a href="3-sm2.html">sm2</a></li><li class="progresssection"><a href="3-hm.html">hm</a></li><li class="progresssection"><a href="3-em.html">em</a></li><li class="progresssection"><a href="3-sc.html">sc</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-tm2.html">tm2</a></li><li class="progresssection"><a href="3-ts.html">ts</a></li><li class="progresschapter"><a href="4-ap.html">4</a></li><li class="progresschapter"><a href="5-pp.html">5</a></li><li class="progressnext"><a href="3-sg.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-tm.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-bd.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresssection"><a href="3-enah.html">enah</a></li><li class="progresssection"><a href="3-sr.html">sr</a></li><li class="progresssection"><a href="3-si.html">si</a></li><li class="progresssection"><a href="3-prs.html">prs</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-dvc.html">dvc</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresscurrent">mcr</li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</a></li><li class="progresschapter"><a href="4-ap.html">4</a></li><li class="progresschapter"><a href="5-pp.html">5</a></li><li class="progressnext"><a href="3-scn.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -102,7 +102,7 @@ tomfoolery.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-si.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-bd.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresssection"><a href="3-enah.html">enah</a></li><li class="progresssection"><a href="3-sr.html">sr</a></li><li class="progresssection"><a href="3-si.html">si</a></li><li class="progresscurrent">prs</li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-dvc.html">dvc</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-mcr.html">mcr</a></li><li class="progresssection"><a href="3-sg.html">sg</a></li><li class="progresssection"><a href="3-sm2.html">sm2</a></li><li class="progresssection"><a href="3-hm.html">hm</a></li><li class="progresssection"><a href="3-em.html">em</a></li><li class="progresssection"><a href="3-sc.html">sc</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-tm2.html">tm2</a></li><li class="progresssection"><a href="3-ts.html">ts</a></li><li class="progresschapter"><a href="4-ap.html">4</a></li><li class="progresschapter"><a href="5-pp.html">5</a></li><li class="progressnext"><a href="3-tp.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-si.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-bd.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresssection"><a href="3-enah.html">enah</a></li><li class="progresssection"><a href="3-sr.html">sr</a></li><li class="progresssection"><a href="3-si.html">si</a></li><li class="progresscurrent">prs</li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-dvc.html">dvc</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-mcr.html">mcr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</a></li><li class="progresschapter"><a href="4-ap.html">4</a></li><li class="progresschapter"><a href="5-pp.html">5</a></li><li class="progressnext"><a href="3-tp.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -165,7 +165,7 @@ region is either the next broadest region containing it, or else <span class="ex
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">Regions::enclosing</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">Regions::enclosing</span></span>:<br/>Spatial Map - <a href="3-sm2.html#SP37">§37</a>, <a href="3-sm2.html#SP41_1">§41.1</a>, <a href="3-sm2.html#SP42_2">§42.2</a><br/>HTML Map - <a href="3-hm.html#SP6_2">§6.2</a>, <a href="3-hm.html#SP13">§13</a><br/>EPS Map - <a href="3-em.html#SP10">§10</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">reg</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">Regions::enclosing</span><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">reg</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">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="3-sm.html#SP7" class="function-link"><span class="function-syntax">Spatial::object_is_a_room</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">reg</span><span class="plain-syntax">)) </span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">REGIONS_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">reg</span><span class="plain-syntax">)-></span><span class="element-syntax">in_region</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-rgn.html#SP9" class="function-link"><span class="function-syntax">Regions::object_is_a_region</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">reg</span><span class="plain-syntax">)) </span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="3-sm.html#SP28" class="function-link"><span class="function-syntax">Spatial::progenitor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">reg</span><span class="plain-syntax">);</span>
|
||||
|
@ -180,7 +180,7 @@ domains.)
|
|||
</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">Regions::more_specific</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">Regions::more_specific</span></span>:<br/><a href="3-rgn.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I1</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I2</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Regions::more_specific</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">Regions::more_specific</span></span>:<br/><a href="3-rgn.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I1</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I2</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">r1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">I1</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_room</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">r2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">I2</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_room</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">reg1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">I1</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_region</span><span class="plain-syntax">);</span>
|
||||
|
@ -199,7 +199,7 @@ domains.)
|
|||
</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">Regions::object_is_a_region</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">Regions::object_is_a_region</span></span>:<br/><a href="3-rgn.html#SP7">§7</a><br/>Spatial Model - <a href="3-sm.html#SP30_2">§30.2</a><br/>EPS Map - <a href="3-em.html#SP10">§10</a>, <a href="3-em.html#SP22_4_1">§22.4.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Regions::object_is_a_region</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">Regions::object_is_a_region</span></span>:<br/><a href="3-rgn.html#SP7">§7</a><br/>Spatial Model - <a href="3-sm.html#SP30_2">§30.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">K_region</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">I</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Instances::of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_region</span><span class="plain-syntax">))) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -219,7 +219,7 @@ following minimal structure, though it will only be relevant for instances of
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">regions_data</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Regions::new_subject_notify</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">Regions::new_subject_notify</span></span>:<br/><a href="3-rgn.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subj</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Regions::new_subject_notify</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">Regions::new_subject_notify</span></span>:<br/><a href="3-rgn.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subj</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">regions_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rd</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">regions_data</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">rd</span><span class="plain-syntax">-></span><span class="element-syntax">in_region</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">rd</span><span class="plain-syntax">-></span><span class="element-syntax">in_region_set_at</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
@ -243,7 +243,7 @@ Standard Rules. (So there is no need to translate this to other languages.)
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P_map_region</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> a value property giving the region of a room</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Regions::new_property_notify</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">Regions::new_property_notify</span></span>:<br/><a href="3-rgn.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Regions::new_property_notify</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">Regions::new_property_notify</span></span>:<br/><a href="3-rgn.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><notable-regions-properties>(prn-></span><span class="element-syntax">name</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">P_map_region</span><span class="plain-syntax"> = </span><span class="identifier-syntax">prn</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
|
@ -254,7 +254,7 @@ messages which would have been less helpful if core Inform had produced them.
|
|||
</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">Regions::intervene_in_assertion</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">Regions::intervene_in_assertion</span></span>:<br/><a href="3-rgn.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">py</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Regions::intervene_in_assertion</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">Regions::intervene_in_assertion</span></span>:<br/><a href="3-rgn.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">py</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">) == </span><span class="identifier-syntax">PROPER_NOUN_NT</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">) == </span><span class="identifier-syntax">COMMON_NOUN_NT</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">left_subject</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">);</span>
|
||||
|
@ -296,7 +296,7 @@ messages which would have been less helpful if core Inform had produced them.
|
|||
</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">Regions::complete_model</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">Regions::complete_model</span></span>:<br/><a href="3-rgn.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">stage</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Regions::complete_model</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">Regions::complete_model</span></span>:<br/><a href="3-rgn.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">stage</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">stage</span><span class="plain-syntax"> == </span><span class="identifier-syntax">WORLD_STAGE_II</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="3-rgn.html#SP14_1" class="named-paragraph-link"><span class="named-paragraph">Assert map-region properties of rooms and regions</span><span class="named-paragraph-number">14.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">stage</span><span class="plain-syntax"> == </span><span class="identifier-syntax">WORLD_STAGE_III</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="3-rgn.html#SP14_2" class="named-paragraph-link"><span class="named-paragraph">Assert regional-found-in properties of regions</span><span class="named-paragraph-number">14.2</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">FALSE</span><span class="plain-syntax">;</span>
|
||||
|
@ -354,7 +354,7 @@ define it separately, even though there's no difference in English syntax. So:
|
|||
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>§16. </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">Regions::create_relations</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">Regions::create_relations</span></span>:<br/>Spatial Relations - <a href="3-sr.html#SP2">§2</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">Regions::create_relations</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">Regions::create_relations</span></span>:<br/>Spatial Relations - <a href="3-sr.html#SP2">§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="identifier-syntax">R_regional_containment</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BinaryPredicates::make_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">spatial_bp_family</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BPTerms::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">infs_region</span><span class="plain-syntax">),</span>
|
||||
|
@ -373,7 +373,7 @@ to participate in nonspatial relations.)
|
|||
</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">Regions::assert_relations</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">Regions::assert_relations</span></span>:<br/>Spatial Relations - <a href="3-sr.html#SP4_1">§4.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">relation</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Regions::assert_relations</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">Regions::assert_relations</span></span>:<br/>Spatial Relations - <a href="3-sr.html#SP4_1">§4.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">relation</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I0</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I1</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">I0_is_region</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">Instances::of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">I0</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_region</span><span class="plain-syntax">)) </span><span class="identifier-syntax">I0_is_region</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
|
@ -450,7 +450,7 @@ to be a region already:
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-rgn.html#SP17">§17</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-bck.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-bd.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresssection"><a href="3-enah.html">enah</a></li><li class="progresssection"><a href="3-sr.html">sr</a></li><li class="progresssection"><a href="3-si.html">si</a></li><li class="progresssection"><a href="3-prs.html">prs</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-dvc.html">dvc</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresscurrent">rgn</li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-mcr.html">mcr</a></li><li class="progresssection"><a href="3-sg.html">sg</a></li><li class="progresssection"><a href="3-sm2.html">sm2</a></li><li class="progresssection"><a href="3-hm.html">hm</a></li><li class="progresssection"><a href="3-em.html">em</a></li><li class="progresssection"><a href="3-sc.html">sc</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-tm2.html">tm2</a></li><li class="progresssection"><a href="3-ts.html">ts</a></li><li class="progresschapter"><a href="4-ap.html">4</a></li><li class="progresschapter"><a href="5-pp.html">5</a></li><li class="progressnext"><a href="3-tm.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-bck.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-bd.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresssection"><a href="3-enah.html">enah</a></li><li class="progresssection"><a href="3-sr.html">sr</a></li><li class="progresssection"><a href="3-si.html">si</a></li><li class="progresssection"><a href="3-prs.html">prs</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-dvc.html">dvc</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresscurrent">rgn</li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-mcr.html">mcr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</a></li><li class="progresschapter"><a href="4-ap.html">4</a></li><li class="progresschapter"><a href="5-pp.html">5</a></li><li class="progressnext"><a href="3-tm.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -315,7 +315,7 @@ single function to return this:
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-sr.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-bd.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresssection"><a href="3-enah.html">enah</a></li><li class="progresssection"><a href="3-sr.html">sr</a></li><li class="progresscurrent">si</li><li class="progresssection"><a href="3-prs.html">prs</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-dvc.html">dvc</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-mcr.html">mcr</a></li><li class="progresssection"><a href="3-sg.html">sg</a></li><li class="progresssection"><a href="3-sm2.html">sm2</a></li><li class="progresssection"><a href="3-hm.html">hm</a></li><li class="progresssection"><a href="3-em.html">em</a></li><li class="progresssection"><a href="3-sc.html">sc</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-tm2.html">tm2</a></li><li class="progresssection"><a href="3-ts.html">ts</a></li><li class="progresschapter"><a href="4-ap.html">4</a></li><li class="progresschapter"><a href="5-pp.html">5</a></li><li class="progressnext"><a href="3-prs.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-sr.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-bd.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresssection"><a href="3-enah.html">enah</a></li><li class="progresssection"><a href="3-sr.html">sr</a></li><li class="progresscurrent">si</li><li class="progresssection"><a href="3-prs.html">prs</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-dvc.html">dvc</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-mcr.html">mcr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</a></li><li class="progresschapter"><a href="4-ap.html">4</a></li><li class="progresschapter"><a href="5-pp.html">5</a></li><li class="progressnext"><a href="3-prs.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -209,7 +209,7 @@ of vehicle, and so on, but this would cause mayhem in the model world. So:
|
|||
</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">Spatial::object_is_a_room</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">Spatial::object_is_a_room</span></span>:<br/><a href="3-sm.html#SP30_3_2">§30.3.2</a>, <a href="3-sm.html#SP30_3_3">§30.3.3</a>, <a href="3-sm.html#SP31">§31</a>, <a href="3-sm.html#SP39">§39</a><br/>The Player - <a href="3-tp.html#SP10_1">§10.1</a>, <a href="3-tp.html#SP10_3">§10.3</a><br/>Regions - <a href="3-rgn.html#SP7">§7</a><br/>The Map - <a href="3-tm.html#SP34_1">§34.1</a>, <a href="3-tm.html#SP34_2">§34.2</a>, <a href="3-tm.html#SP34_4">§34.4</a><br/>Spatial Map - <a href="3-sm2.html#SP5">§5</a>, <a href="3-sm2.html#SP7_16">§7.16</a><br/>EPS Map - <a href="3-em.html#SP10">§10</a>, <a href="3-em.html#SP22_2">§22.2</a>, <a href="3-em.html#SP22_4_1">§22.4.1</a>, <a href="3-em.html#SP25_6">§25.6</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Spatial::object_is_a_room</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">Spatial::object_is_a_room</span></span>:<br/><a href="3-sm.html#SP30_3_2">§30.3.2</a>, <a href="3-sm.html#SP30_3_3">§30.3.3</a>, <a href="3-sm.html#SP31">§31</a>, <a href="3-sm.html#SP39">§39</a><br/>The Player - <a href="3-tp.html#SP10_1">§10.1</a>, <a href="3-tp.html#SP10_3">§10.3</a><br/>Regions - <a href="3-rgn.html#SP7">§7</a><br/>The Map - <a href="3-tm.html#SP34_1">§34.1</a>, <a href="3-tm.html#SP34_2">§34.2</a>, <a href="3-tm.html#SP34_4">§34.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">K_room</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">I</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Instances::of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_room</span><span class="plain-syntax">))) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -1466,7 +1466,7 @@ empty.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-tbf.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-bd.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresscurrent">sm</li><li class="progresssection"><a href="3-enah.html">enah</a></li><li class="progresssection"><a href="3-sr.html">sr</a></li><li class="progresssection"><a href="3-si.html">si</a></li><li class="progresssection"><a href="3-prs.html">prs</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-dvc.html">dvc</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-mcr.html">mcr</a></li><li class="progresssection"><a href="3-sg.html">sg</a></li><li class="progresssection"><a href="3-sm2.html">sm2</a></li><li class="progresssection"><a href="3-hm.html">hm</a></li><li class="progresssection"><a href="3-em.html">em</a></li><li class="progresssection"><a href="3-sc.html">sc</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-tm2.html">tm2</a></li><li class="progresssection"><a href="3-ts.html">ts</a></li><li class="progresschapter"><a href="4-ap.html">4</a></li><li class="progresschapter"><a href="5-pp.html">5</a></li><li class="progressnext"><a href="3-enah.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-tbf.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-bd.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresscurrent">sm</li><li class="progresssection"><a href="3-enah.html">enah</a></li><li class="progresssection"><a href="3-sr.html">sr</a></li><li class="progresssection"><a href="3-si.html">si</a></li><li class="progresssection"><a href="3-prs.html">prs</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-dvc.html">dvc</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-mcr.html">mcr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</a></li><li class="progresschapter"><a href="4-ap.html">4</a></li><li class="progresschapter"><a href="5-pp.html">5</a></li><li class="progressnext"><a href="3-enah.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -123,7 +123,7 @@ MathJax = {
|
|||
<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"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-sr.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Make built-in spatial relationships</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-sr.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Make built-in indirect spatial relationships</span><span class="named-paragraph-number">2.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="3-mcr.html#SP8" class="function-link"><span class="function-syntax">PL::MapDirections::create_relations</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="3-mcr.html#SP8" class="function-link"><span class="function-syntax">MapRelations::create_relations</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="3-rgn.html#SP16" class="function-link"><span class="function-syntax">Regions::create_relations</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -388,7 +388,7 @@ special to make it work, so this doesn't seem worth the trouble.)
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-enah.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-bd.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresssection"><a href="3-enah.html">enah</a></li><li class="progresscurrent">sr</li><li class="progresssection"><a href="3-si.html">si</a></li><li class="progresssection"><a href="3-prs.html">prs</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-dvc.html">dvc</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-mcr.html">mcr</a></li><li class="progresssection"><a href="3-sg.html">sg</a></li><li class="progresssection"><a href="3-sm2.html">sm2</a></li><li class="progresssection"><a href="3-hm.html">hm</a></li><li class="progresssection"><a href="3-em.html">em</a></li><li class="progresssection"><a href="3-sc.html">sc</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-tm2.html">tm2</a></li><li class="progresssection"><a href="3-ts.html">ts</a></li><li class="progresschapter"><a href="4-ap.html">4</a></li><li class="progresschapter"><a href="5-pp.html">5</a></li><li class="progressnext"><a href="3-si.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-enah.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-bd.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresssection"><a href="3-enah.html">enah</a></li><li class="progresscurrent">sr</li><li class="progresssection"><a href="3-si.html">si</a></li><li class="progresssection"><a href="3-prs.html">prs</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-dvc.html">dvc</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-mcr.html">mcr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</a></li><li class="progresschapter"><a href="4-ap.html">4</a></li><li class="progresschapter"><a href="5-pp.html">5</a></li><li class="progressnext"><a href="3-si.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -127,12 +127,12 @@ quite specific problem messages.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>This special sentence is used as a hint in making map documents; it has no
|
||||
effect on the world model itself, and so is dealt with elsewhere, in <a href="3-em.html" class="internal">EPS Map</a>.
|
||||
effect on the world model itself, and so is dealt with elsewhere, in <a href="../index-module/4-em.html" class="internal">EPS Map (in index)</a>.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Map::make_special_meanings</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">Map::make_special_meanings</span></span>:<br/><a href="3-tm.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><a href="3-em.html#SP14" class="function-link"><span class="function-syntax">PL::EPSMap::index_map_with_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"index-map-with"</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><span class="identifier-syntax">PL::EPSMap::index_map_with_SMF</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"index-map-with"</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
@ -163,7 +163,7 @@ using directions to imply relations, as in "East of Eden is the Land of Nod."
|
|||
<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="plain-syntax"> </span><span class="identifier-syntax">direction_relations_noticed</span><span class="plain-syntax">[</span><span class="identifier-syntax">no_directions_noticed</span><span class="plain-syntax">] =</span>
|
||||
<span class="plain-syntax"> </span><a href="3-mcr.html#SP2" class="function-link"><span class="function-syntax">PL::MapDirections::create_sketchy_mapping_direction</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="3-mcr.html#SP2" class="function-link"><span class="function-syntax">MapRelations::create_sketchy_mapping_direction</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">directions_noticed</span><span class="plain-syntax">[</span><span class="identifier-syntax">no_directions_noticed</span><span class="plain-syntax">++] = </span><span class="identifier-syntax">pn</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -174,7 +174,7 @@ makes for more legible code if we use a special inference family of our own:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">inference_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">direction_inf</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> 100; where do map connections from O lead?</span>
|
||||
<span class="identifier-syntax">inference_family</span><span class="plain-syntax"> *</span><span class="identifier-syntax">direction_inf</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> where do map connections from O lead?</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. </b></p>
|
||||
|
||||
|
@ -338,7 +338,7 @@ Rules. (So there is no need to translate this to other languages.)
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">InstanceSubjects::to_object_instance</span><span class="plain-syntax">(</span><span class="identifier-syntax">infs</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Map::instance_is_a_door</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">Map::instance_is_a_door</span></span>:<br/><a href="3-tm.html#SP34_2">§34.2</a>, <a href="3-tm.html#SP34_3">§34.3</a>, <a href="3-tm.html#SP34_4">§34.4</a>, <a href="3-tm.html#SP34_5">§34.5</a>, <a href="3-tm.html#SP34_6">§34.6</a>, <a href="3-tm.html#SP34_7">§34.7</a>, <a href="3-tm.html#SP34_8">§34.8</a><br/>Spatial Model - <a href="3-sm.html#SP30_3_3">§30.3.3</a><br/>Spatial Map - <a href="3-sm2.html#SP7_16">§7.16</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Map::instance_is_a_door</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">Map::instance_is_a_door</span></span>:<br/><a href="3-tm.html#SP34_2">§34.2</a>, <a href="3-tm.html#SP34_3">§34.3</a>, <a href="3-tm.html#SP34_4">§34.4</a>, <a href="3-tm.html#SP34_5">§34.5</a>, <a href="3-tm.html#SP34_6">§34.6</a>, <a href="3-tm.html#SP34_7">§34.7</a>, <a href="3-tm.html#SP34_8">§34.8</a><br/>Spatial Model - <a href="3-sm.html#SP30_3_3">§30.3.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">PluginManager::active</span><span class="plain-syntax">(</span><span class="identifier-syntax">map_plugin</span><span class="plain-syntax">)) && (</span><span class="identifier-syntax">K_door</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">I</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Instances::of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_door</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
|
@ -365,7 +365,7 @@ we will assign it a number:
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">registered_directions</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">; </span><span class="comment-syntax"> next direction number to be free</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Map::number_of_directions</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Map::number_of_directions</span></span>:<br/>Spatial Map - <a href="3-sm2.html#SP7_4">§7.4</a>, <a href="3-sm2.html#SP7_12">§7.12</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Map::number_of_directions</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">registered_directions</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
@ -392,7 +392,7 @@ direction, but implies both.
|
|||
<p class="commentary firstcommentary"><a id="SP17" class="paragraph-anchor"></a><b>§17. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Map::set_kind_notify</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Map::set_kind_notify</span></span>:<br/><a href="3-tm.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">k</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Map::set_kind_notify</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Map::set_kind_notify</span></span>:<br/><a href="3-tm.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">k</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kw</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::to_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((!(</span><span class="identifier-syntax">Kinds::Behaviour::is_object_of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">kw</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_direction</span><span class="plain-syntax">))) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_object_of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">k</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_direction</span><span class="plain-syntax">))) {</span>
|
||||
|
@ -435,7 +435,7 @@ direction, but implies both.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">registered_directions</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RTMap::new_direction_iname</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)-></span><span class="element-syntax">direction_iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">dname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="3-mcr.html#SP3" class="function-link"><span class="function-syntax">PL::MapDirections::make_mapped_predicate</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-mcr.html#SP3" class="function-link"><span class="function-syntax">MapRelations::make_mapped_predicate</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-tm.html#SP17">§17</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>§18. Map data on instances. </b>We will use quite a lot of temporary work-space to put all of this together,
|
||||
|
@ -465,24 +465,24 @@ isn't.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">spatial_relationship</span><span class="plain-syntax">[12];</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">exit_lengths</span><span class="plain-syntax">[</span><span class="constant-syntax">MAX_DIRECTIONS</span><span class="plain-syntax">];</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lock_exits</span><span class="plain-syntax">[</span><span class="constant-syntax">MAX_DIRECTIONS</span><span class="plain-syntax">];</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">position</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">saved_gridpos</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">position</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">saved_gridpos</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">cooled</span><span class="plain-syntax">, </span><span class="identifier-syntax">shifted</span><span class="plain-syntax">, </span><span class="identifier-syntax">zone</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">connected_submap</span><span class="plain-syntax"> *</span><span class="identifier-syntax">submap</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">connected_submap</span><span class="plain-syntax"> *</span><span class="identifier-syntax">submap</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next_room_in_submap</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">world_index_colour</span><span class="plain-syntax">; </span><span class="comment-syntax"> an HTML colour for the room square (rooms only)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">world_index_text_colour</span><span class="plain-syntax">; </span><span class="comment-syntax"> an HTML colour for the room text (rooms only)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">map_parameter_scope</span><span class="plain-syntax"> </span><span class="identifier-syntax">local_map_parameters</span><span class="plain-syntax">; </span><span class="comment-syntax"> temporary: used in EPS mapping</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">map_parameter_scope</span><span class="plain-syntax"> </span><span class="identifier-syntax">local_map_parameters</span><span class="plain-syntax">; </span><span class="comment-syntax"> temporary: used in EPS mapping</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">eps_x</span><span class="plain-syntax">, </span><span class="identifier-syntax">eps_y</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">map_data</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure map_data is accessed in 3/mcr, 3/sm2, 3/hm, 3/em and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure map_data is accessed in 3/mcr and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP19" class="paragraph-anchor"></a><b>§19. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Map::new_subject_notify</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Map::new_subject_notify</span></span>:<br/><a href="3-tm.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subj</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Map::new_subject_notify</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Map::new_subject_notify</span></span>:<br/><a href="3-tm.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subj</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">map_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">md</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">map_data</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">map_connection_a</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="identifier-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">map_connection_b</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">map_direction_a</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="identifier-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">map_direction_b</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
@ -496,7 +496,7 @@ isn't.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">exits</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">] = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
||||
<span class="plain-syntax"> </span><a href="3-sm2.html#SP7_1" class="function-link"><span class="function-syntax">PL::SpatialMap::initialise_mapping_data</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">md</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PL::SpatialMap::initialise_mapping_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">md</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ATTACH_PLUGIN_DATA_TO_SUBJECT</span><span class="plain-syntax">(</span><span class="identifier-syntax">map</span><span class="plain-syntax">, </span><span class="identifier-syntax">subj</span><span class="plain-syntax">, </span><span class="identifier-syntax">md</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -530,7 +530,7 @@ Standard Rules. (So there is no need to translate this to other languages.)
|
|||
<p class="commentary firstcommentary"><a id="SP22" class="paragraph-anchor"></a><b>§22. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Map::new_property_notify</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">Map::new_property_notify</span></span>:<br/><a href="3-tm.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Map::new_property_notify</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Map::new_property_notify</span></span>:<br/><a href="3-tm.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><notable-map-properties>(prn-></span><span class="element-syntax">name</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="function-syntax"><<r>></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">P_opposite</span><span class="plain-syntax"> = </span><span class="identifier-syntax">prn</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
|
@ -546,7 +546,7 @@ the map plugin is inactive; so you can still have backdrops without a map.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Map::set_found_in</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">Map::set_found_in</span></span>:<br/><a href="3-tm.html#SP34_8_1">§34.8.1</a><br/>Backdrops - <a href="3-bck.html#SP11">§11</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Map::set_found_in</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">Map::set_found_in</span></span>:<br/><a href="3-tm.html#SP34_8_1">§34.8.1</a><br/>Backdrops - <a href="3-bck.html#SP11">§11</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P_found_in</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">P_found_in</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ValueProperties::new_nameless</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"found_in"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">);</span>
|
||||
|
@ -561,7 +561,7 @@ always another direction: for example, the opposite of northwest is southeast.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">Map::get_value_of_opposite_property</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">Map::get_value_of_opposite_property</span></span>:<br/><a href="3-tm.html#SP33">§33</a>, <a href="3-tm.html#SP34_8_4">§34.8.4</a><br/>Spatial Map - <a href="3-sm2.html#SP42_1">§42.1</a>, <a href="3-sm2.html#SP42_3">§42.3</a>, <a href="3-sm2.html#SP44">§44</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">Map::get_value_of_opposite_property</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">Map::get_value_of_opposite_property</span></span>:<br/><a href="3-tm.html#SP33">§33</a>, <a href="3-tm.html#SP34_8_4">§34.8.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PropertyInferences::value_of</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Instances::as_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">P_opposite</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">val</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">Rvalues::to_object_instance</span><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">);</span>
|
||||
|
@ -576,14 +576,14 @@ noted above are keys into these arrays.
|
|||
<p class="commentary">It might look a little wasteful of I7's memory to expand the direction
|
||||
inferences, a nicely compact representation, into large and sparse arrays.
|
||||
But it's convenient, and profiling suggests that the memory overhead is not
|
||||
significant. It also means that the <a href="3-sm2.html" class="internal">Spatial Map</a> mapping code, which contains
|
||||
quite crunchy algorithms, has the fastest possible access to the layout.
|
||||
significant. It also means that the <a href="../index-module/4-sm.html" class="internal">Spatial Map (in index)</a> mapping code, which
|
||||
contains quite crunchy algorithms, has the fastest possible access to the layout.
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="identifier-syntax">MAP_EXIT</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">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">X</span><span class="plain-syntax">)-></span><span class="element-syntax">exits</span><span class="plain-syntax">[</span><span class="identifier-syntax">Y</span><span class="plain-syntax">]</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">Map::build_exits_array</span><button class="popup" onclick="togglePopup('usagePopup18')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup18">Usage of <span class="code-font"><span class="function-syntax">Map::build_exits_array</span></span>:<br/><a href="3-tm.html#SP34">§34</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">Map::build_exits_array</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">Map::build_exits_array</span></span>:<br/><a href="3-tm.html#SP34">§34</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">d</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_INSTANCES</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">) {</span>
|
||||
|
@ -619,7 +619,7 @@ object has four pieces of data attached:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Map::get_door_data</span><button class="popup" onclick="togglePopup('usagePopup19')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup19">Usage of <span class="code-font"><span class="function-syntax">Map::get_door_data</span></span>:<br/>Spatial Map - <a href="3-sm2.html#SP7_16">§7.16</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">door</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> **</span><span class="identifier-syntax">c1</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> **</span><span class="identifier-syntax">c2</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Map::get_door_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">door</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> **</span><span class="identifier-syntax">c1</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> **</span><span class="identifier-syntax">c2</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">c1</span><span class="plain-syntax">) *</span><span class="identifier-syntax">c1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">door</span><span class="plain-syntax">)-></span><span class="element-syntax">map_connection_a</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">c2</span><span class="plain-syntax">) *</span><span class="identifier-syntax">c2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">MAP_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">door</span><span class="plain-syntax">)-></span><span class="element-syntax">map_connection_b</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -637,7 +637,7 @@ deduction is made:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Map::inference_drawn</span><button class="popup" onclick="togglePopup('usagePopup20')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup20">Usage of <span class="code-font"><span class="function-syntax">Map::inference_drawn</span></span>:<br/><a href="3-tm.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inference</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subj</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Map::inference_drawn</span><button class="popup" onclick="togglePopup('usagePopup18')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup18">Usage of <span class="code-font"><span class="function-syntax">Map::inference_drawn</span></span>:<br/><a href="3-tm.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inference</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subj</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PropertyInferences::get_property</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">prn</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">prn</span><span class="plain-syntax"> == </span><span class="identifier-syntax">P_other_side</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PropertyInferences::get_value</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
|
@ -659,7 +659,7 @@ deduction is made:
|
|||
<p class="commentary firstcommentary"><a id="SP29" class="paragraph-anchor"></a><b>§29. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Map::act_on_special_NPs</span><button class="popup" onclick="togglePopup('usagePopup21')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup21">Usage of <span class="code-font"><span class="function-syntax">Map::act_on_special_NPs</span></span>:<br/><a href="3-tm.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Map::act_on_special_NPs</span><button class="popup" onclick="togglePopup('usagePopup19')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup19">Usage of <span class="code-font"><span class="function-syntax">Map::act_on_special_NPs</span></span>:<br/><a href="3-tm.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><notable-map-noun-phrases></span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="function-syntax"><<r>></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>
|
||||
|
@ -683,7 +683,7 @@ deduction is made:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Map::check_going</span><button class="popup" onclick="togglePopup('usagePopup22')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup22">Usage of <span class="code-font"><span class="function-syntax">Map::check_going</span></span>:<br/><a href="3-tm.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Map::check_going</span><button class="popup" onclick="togglePopup('usagePopup20')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup20">Usage of <span class="code-font"><span class="function-syntax">Map::check_going</span></span>:<br/><a href="3-tm.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">by</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">through</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pushing</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-ap2.html#SP5" class="function-link"><span class="function-syntax">PL::Actions::Patterns::check_going</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="string-syntax">"from"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">K_room</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_region</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="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
|
@ -725,7 +725,7 @@ because, of course, that does set its kind.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Map::intervene_in_assertion</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">Map::intervene_in_assertion</span></span>:<br/><a href="3-tm.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">py</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Map::intervene_in_assertion</span><button class="popup" onclick="togglePopup('usagePopup21')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup21">Usage of <span class="code-font"><span class="function-syntax">Map::intervene_in_assertion</span></span>:<br/><a href="3-tm.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">px</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">py</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">) == </span><span class="identifier-syntax">PROPER_NOUN_NT</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">py</span><span class="plain-syntax">) == </span><span class="identifier-syntax">COMMON_NOUN_NT</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">left_object</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">px</span><span class="plain-syntax">);</span>
|
||||
|
@ -809,7 +809,7 @@ pairs.
|
|||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Map::oneway_map_connection</span><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">go_from</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">go_to</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">forwards_dir</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">certainty_level</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bp</span><span class="plain-syntax"> = </span><a href="3-mcr.html#SP7" class="function-link"><span class="function-syntax">PL::MapDirections::get_mapping_relation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">forwards_dir</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bp</span><span class="plain-syntax"> = </span><a href="3-mcr.html#SP7" class="function-link"><span class="function-syntax">MapRelations::get_mapping_relation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">forwards_dir</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">bp</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">"map connection in non-direction"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">x</span><span class="plain-syntax"> = </span><span class="identifier-syntax">prevailing_mood</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">prevailing_mood</span><span class="plain-syntax"> = </span><span class="identifier-syntax">certainty_level</span><span class="plain-syntax">;</span>
|
||||
|
@ -824,7 +824,7 @@ the map as might be thought.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Map::complete_model</span><button class="popup" onclick="togglePopup('usagePopup24')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup24">Usage of <span class="code-font"><span class="function-syntax">Map::complete_model</span></span>:<br/><a href="3-tm.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">stage</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Map::complete_model</span><button class="popup" onclick="togglePopup('usagePopup22')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup22">Usage of <span class="code-font"><span class="function-syntax">Map::complete_model</span></span>:<br/><a href="3-tm.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">stage</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">stage</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span><span class="plain-syntax">:</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-tm.html#SP34_1" class="named-paragraph-link"><span class="named-paragraph">Give each room a room-index property as workspace for route finding</span><span class="named-paragraph-number">34.1</span></a></span><span class="plain-syntax">;</span>
|
||||
|
@ -1191,7 +1191,7 @@ why we don't need to compile <span class="extract"><span class="extract-syntax">
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-tm.html#SP34_8">§34.8</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-rgn.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-bd.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresssection"><a href="3-enah.html">enah</a></li><li class="progresssection"><a href="3-sr.html">sr</a></li><li class="progresssection"><a href="3-si.html">si</a></li><li class="progresssection"><a href="3-prs.html">prs</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-dvc.html">dvc</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresscurrent">tm</li><li class="progresssection"><a href="3-mcr.html">mcr</a></li><li class="progresssection"><a href="3-sg.html">sg</a></li><li class="progresssection"><a href="3-sm2.html">sm2</a></li><li class="progresssection"><a href="3-hm.html">hm</a></li><li class="progresssection"><a href="3-em.html">em</a></li><li class="progresssection"><a href="3-sc.html">sc</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-tm2.html">tm2</a></li><li class="progresssection"><a href="3-ts.html">ts</a></li><li class="progresschapter"><a href="4-ap.html">4</a></li><li class="progresschapter"><a href="5-pp.html">5</a></li><li class="progressnext"><a href="3-mcr.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-rgn.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-bd.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresssection"><a href="3-enah.html">enah</a></li><li class="progresssection"><a href="3-sr.html">sr</a></li><li class="progresssection"><a href="3-si.html">si</a></li><li class="progresssection"><a href="3-prs.html">prs</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-dvc.html">dvc</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresscurrent">tm</li><li class="progresssection"><a href="3-mcr.html">mcr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</a></li><li class="progresschapter"><a href="4-ap.html">4</a></li><li class="progresschapter"><a href="5-pp.html">5</a></li><li class="progressnext"><a href="3-mcr.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -180,7 +180,7 @@ is created in English.)
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">Player::get_start_room</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">Player::get_start_room</span></span>:<br/>Spatial Map - <a href="3-sm2.html#SP7_15">§7.15</a>, <a href="3-sm2.html#SP42_2">§42.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">Player::get_start_room</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">start_room</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
@ -236,7 +236,7 @@ aliasing.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Player::variable_set_warning</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Player::variable_set_warning</span></span>:<br/><a href="3-tp.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Player::variable_set_warning</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">Player::variable_set_warning</span></span>:<br/><a href="3-tp.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">nlv</span><span class="plain-syntax"> == </span><span class="identifier-syntax">player_VAR</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">npc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Rvalues::to_object_instance</span><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">npc</span><span class="plain-syntax">) {</span>
|
||||
|
@ -276,7 +276,7 @@ that is, when the source text explicitly sets a value for "player".
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Player::detect_bodysnatching</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Player::detect_bodysnatching</span></span>:<br/><a href="3-tp.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">body</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">snatcher</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Player::detect_bodysnatching</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Player::detect_bodysnatching</span></span>:<br/><a href="3-tp.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">body</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">snatcher</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> **</span><span class="identifier-syntax">counterpart</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">player_character_object</span><span class="plain-syntax"> == </span><span class="identifier-syntax">I_yourself</span><span class="plain-syntax">) ||</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">player_character_object</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">I_yourself</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
|
@ -316,7 +316,7 @@ ensure that assemblies such as "A nose is part of every person" produces
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Player::irregular_genitive</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Player::irregular_genitive</span></span>:<br/><a href="3-tp.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">genitive</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Player::irregular_genitive</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Player::irregular_genitive</span></span>:<br/><a href="3-tp.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">genitive</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">propriety</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">owner</span><span class="plain-syntax"> == </span><span class="identifier-syntax">Instances::as_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">I_yourself</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">genitive</span><span class="plain-syntax">, </span><span class="string-syntax">"your "</span><span class="plain-syntax">);</span>
|
||||
|
@ -351,7 +351,7 @@ and people still sometimes type it.
|
|||
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>§9. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Player::refine_implicit_noun</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Player::refine_implicit_noun</span></span>:<br/><a href="3-tp.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Player::refine_implicit_noun</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Player::refine_implicit_noun</span></span>:<br/><a href="3-tp.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><implicit-player-relationship></span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Refiner::give_subject_to_noun</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">Instances::as_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">player_character_object</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
|
@ -374,7 +374,7 @@ we assume he is freestanding in the earliest defined room.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Player::complete_model</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Player::complete_model</span></span>:<br/><a href="3-tp.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">stage</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Player::complete_model</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Player::complete_model</span></span>:<br/><a href="3-tp.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">stage</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">stage</span><span class="plain-syntax"> == </span><span class="identifier-syntax">WORLD_STAGE_III</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">I_yourself</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P_ssn</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ValueProperties::new_nameless</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"saved_short_name"</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_text</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ValueProperties::assert</span><span class="plain-syntax">(</span><span class="identifier-syntax">P_ssn</span><span class="plain-syntax">, </span><span class="identifier-syntax">Instances::as_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">I_yourself</span><span class="plain-syntax">),</span>
|
||||
|
@ -458,7 +458,7 @@ will do. But otherwise:
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-tp.html#SP10">§10</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-prs.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-bd.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresssection"><a href="3-enah.html">enah</a></li><li class="progresssection"><a href="3-sr.html">sr</a></li><li class="progresssection"><a href="3-si.html">si</a></li><li class="progresssection"><a href="3-prs.html">prs</a></li><li class="progresscurrent">tp</li><li class="progresssection"><a href="3-dvc.html">dvc</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-mcr.html">mcr</a></li><li class="progresssection"><a href="3-sg.html">sg</a></li><li class="progresssection"><a href="3-sm2.html">sm2</a></li><li class="progresssection"><a href="3-hm.html">hm</a></li><li class="progresssection"><a href="3-em.html">em</a></li><li class="progresssection"><a href="3-sc.html">sc</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-tm2.html">tm2</a></li><li class="progresssection"><a href="3-ts.html">ts</a></li><li class="progresschapter"><a href="4-ap.html">4</a></li><li class="progresschapter"><a href="5-pp.html">5</a></li><li class="progressnext"><a href="3-dvc.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-prs.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-bd.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresssection"><a href="3-enah.html">enah</a></li><li class="progresssection"><a href="3-sr.html">sr</a></li><li class="progresssection"><a href="3-si.html">si</a></li><li class="progresssection"><a href="3-prs.html">prs</a></li><li class="progresscurrent">tp</li><li class="progresssection"><a href="3-dvc.html">dvc</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-mcr.html">mcr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-ts.html">ts</a></li><li class="progresschapter"><a href="4-ap.html">4</a></li><li class="progresschapter"><a href="5-pp.html">5</a></li><li class="progressnext"><a href="3-dvc.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -71,27 +71,30 @@ function togglePopup(material_id) {
|
|||
<!--Weave of 'The Score' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">if</a></li><li><a href="index.html#3">Chapter 3: Space and Time</a></li><li><b>The Score</b></li></ul></div>
|
||||
<p class="purpose">A plugin to support the maximum score variable.</p>
|
||||
<p class="purpose">A plugin to support the score variables.</p>
|
||||
|
||||
<ul class="toc"><li><a href="3-ts.html#SP1">§1. Initialisation</a></li><li><a href="3-ts.html#SP5">§5. The maximum score and rankings table</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. Initialisation. </b></p>
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b>At one time, all interactive fiction had a scoring system, because that's
|
||||
what computers did for our entertainment: they rewarded us with points. Having
|
||||
its distant roots in that period, Inform handles a numerical score with just
|
||||
a little compiler support, and this is where.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Score::start</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">PL::Score::start</span></span>:<br/>IF Module - <a href="1-im.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">PRODUCTION_LINE_PLUG</span><span class="plain-syntax">, </span><a href="3-ts.html#SP1" class="function-link"><span class="function-syntax">PL::Score::production_line</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">NEW_VARIABLE_NOTIFY_PLUG</span><span class="plain-syntax">, </span><a href="3-ts.html#SP4" class="function-link"><span class="function-syntax">PL::Score::new_variable_notify</span></a><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TheScore::start</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">TheScore::start</span></span>:<br/>IF Module - <a href="1-im.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">PRODUCTION_LINE_PLUG</span><span class="plain-syntax">, </span><a href="3-ts.html#SP1" class="function-link"><span class="function-syntax">TheScore::production_line</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">NEW_VARIABLE_NOTIFY_PLUG</span><span class="plain-syntax">, </span><a href="3-ts.html#SP4" class="function-link"><span class="function-syntax">TheScore::new_variable_notify</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="function-syntax">PL::Score::production_line</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">stage</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">debugging</span><span class="plain-syntax">, </span><span class="identifier-syntax">stopwatch_timer</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sequence_timer</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">TheScore::production_line</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">stage</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">debugging</span><span class="plain-syntax">, </span><span class="identifier-syntax">stopwatch_timer</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sequence_timer</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">stage</span><span class="plain-syntax"> == </span><span class="identifier-syntax">INTER1_CSEQ</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="3-ts.html#SP6" class="function-link"><span class="function-syntax">PL::Score::compile_max_score</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="3-ts.html#SP6" class="function-link"><span class="function-syntax">TheScore::max_score_and_ranking_table</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>For many years this was a defined I6 constant, but then people sent in bug
|
||||
reports asking why it wouldn't change in play.
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>For many years "maximum score" was compiled to a constant, but then people sent
|
||||
in bug reports asking why it wouldn't change in play. "Score", of course, is
|
||||
more evidently variable.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -106,10 +109,14 @@ reports asking why it wouldn't change in play.
|
|||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">maximum</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">score</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. </b></p>
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. </b>These are marked "initialisable" because of the way they are implemented at
|
||||
run-time, using special variables in <a href="../WorldModelKit/index.html" class="internal">WorldModelKit</a> rather than being
|
||||
storage allocated by I7. Variables stored that way would not ordinarily be
|
||||
possible to give values to in I7 assertions; but these are.
|
||||
</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">PL::Score::new_variable_notify</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">PL::Score::new_variable_notify</span></span>:<br/><a href="3-ts.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">var</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">TheScore::new_variable_notify</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">TheScore::new_variable_notify</span></span>:<br/><a href="3-ts.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">var</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><notable-scoring-variables>(var-></span><span class="element-syntax">name</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax">(</span><span class="function-syntax"><<r>></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>
|
||||
|
@ -125,11 +132,10 @@ reports asking why it wouldn't change in play.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. The maximum score and rankings table. </b>A special rule is that if a table is called "Rankings" and contains a column
|
||||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. </b>A special rule is that if a table is called "Rankings" and contains a column
|
||||
of numbers followed by a column of text, then it is used by the run-time
|
||||
scoring system. In retrospect, Inform really shouldn't support this at the
|
||||
compiler level (not that it does much), and in any case it's a very old-school
|
||||
idea of IF. Still, it does little harm.
|
||||
compiler level (not that it does much), but it does little harm.
|
||||
</p>
|
||||
|
||||
<pre class="Preform-displayed-code all-displayed-code code-font">
|
||||
|
@ -137,53 +143,37 @@ idea of IF. Still, it does little harm.
|
|||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">rankings</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. </b>This can only happen if we declare it somehow in I6 code, which
|
||||
we do with the constant <span class="extract"><span class="Preform-extract-syntax">RANKING_TABLE</span></span>. We also set the <span class="extract"><span class="Preform-extract-syntax">MAX_SCORE</span></span> variable
|
||||
equal to the number in the bottom row of the table, which is assumed to be the
|
||||
score corresponding to successful completion and the highest rank.
|
||||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. </b>Nothing will happen unless a table has both this magic name, and also the
|
||||
right shape: two columns, number then text. If so, the maximum score is
|
||||
initialised to the number in the final row of the table, which is assumed to
|
||||
be the score corresponding to successful completion and the highest rank.
|
||||
</p>
|
||||
|
||||
<p class="commentary">The test case <span class="extract"><span class="Preform-extract-syntax">Cooking</span></span>, an example from the documentation, tests 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">PL::Score::compile_max_score</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">PL::Score::compile_max_score</span></span>:<br/><a href="3-ts.html#SP1">§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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rt_made</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">table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="identifier-syntax">table</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TheScore::max_score_and_ranking_table</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">TheScore::max_score_and_ranking_table</span></span>:<br/><a href="3-ts.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">, *</span><span class="identifier-syntax">ranking_table</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">t</span><span class="plain-syntax">, </span><span class="identifier-syntax">table</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="function-syntax"><rankings-table-name>(t-></span><span class="identifier-syntax">table_name_text</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Tables::get_no_columns</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">) >= </span><span class="constant-syntax">2</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">Tables::kind_of_ith_column</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">Tables::kind_of_ith_column</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">), </span><span class="identifier-syntax">K_text</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Hierarchy::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">RANKING_TABLE_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Emit::named_iname_constant</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">RTTables::identifier</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">PN</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Tables::cells_in_ith_column</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">PN</span><span class="plain-syntax"> != </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">PN</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax"> != </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PN</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PN</span><span class="plain-syntax">-></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><span class="identifier-syntax">PN</span><span class="plain-syntax"> != </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">max_score_VAR</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">VariableSubjects::has_initial_value_set</span><span class="plain-syntax">(</span><span class="identifier-syntax">max_score_VAR</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Assertions::PropertyKnowledge::initialise_global_variable</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">max_score_VAR</span><span class="plain-syntax">, </span><span class="identifier-syntax">Node::get_evaluation</span><span class="plain-syntax">(</span><span class="identifier-syntax">PN</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Hierarchy::make_available</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">global_compilation_settings</span><span class="plain-syntax">.</span><span class="identifier-syntax">ranking_table_given</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">rt_made</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">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">rt_made</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Hierarchy::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">RANKING_TABLE_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Emit::named_generic_constant</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Hierarchy::make_available</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Hierarchy::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">INITIAL_MAX_SCORE_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Hierarchy::make_available</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">VariableSubjects::has_initial_value_set</span><span class="plain-syntax">(</span><span class="identifier-syntax">max_score_VAR</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">v1</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">v2</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">RTVariables::seek_initial_value</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, &</span><span class="identifier-syntax">v1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">v2</span><span class="plain-syntax">, </span><span class="identifier-syntax">max_score_VAR</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Emit::named_generic_constant</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">v1</span><span class="plain-syntax">, </span><span class="identifier-syntax">v2</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">Emit::named_numeric_constant</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</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">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">Tables::kind_of_ith_column</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">), </span><span class="identifier-syntax">K_text</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ranking_table</span><span class="plain-syntax"> = </span><span class="identifier-syntax">t</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ranking_table</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">PN</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Tables::cells_in_ith_column</span><span class="plain-syntax">(</span><span class="identifier-syntax">ranking_table</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">PN</span><span class="plain-syntax"> != </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">PN</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax"> != </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)) </span><span class="identifier-syntax">PN</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PN</span><span class="plain-syntax">-></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><span class="identifier-syntax">PN</span><span class="plain-syntax"> != </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">max_score_VAR</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">VariableSubjects::has_initial_value_set</span><span class="plain-syntax">(</span><span class="identifier-syntax">max_score_VAR</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Assertions::PropertyKnowledge::initialise_global_variable</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">max_score_VAR</span><span class="plain-syntax">, </span><span class="identifier-syntax">Node::get_evaluation</span><span class="plain-syntax">(</span><span class="identifier-syntax">PN</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RTTheScore::support</span><span class="plain-syntax">(</span><span class="identifier-syntax">ranking_table</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-tm2.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-bd.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresssection"><a href="3-enah.html">enah</a></li><li class="progresssection"><a href="3-sr.html">sr</a></li><li class="progresssection"><a href="3-si.html">si</a></li><li class="progresssection"><a href="3-prs.html">prs</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-dvc.html">dvc</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-mcr.html">mcr</a></li><li class="progresssection"><a href="3-sg.html">sg</a></li><li class="progresssection"><a href="3-sm2.html">sm2</a></li><li class="progresssection"><a href="3-hm.html">hm</a></li><li class="progresssection"><a href="3-em.html">em</a></li><li class="progresssection"><a href="3-sc.html">sc</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-tm2.html">tm2</a></li><li class="progresscurrent">ts</li><li class="progresschapter"><a href="4-ap.html">4</a></li><li class="progresschapter"><a href="5-pp.html">5</a></li><li class="progressnext"><a href="4-ap.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-scn.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-bd.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresssection"><a href="3-enah.html">enah</a></li><li class="progresssection"><a href="3-sr.html">sr</a></li><li class="progresssection"><a href="3-si.html">si</a></li><li class="progresssection"><a href="3-prs.html">prs</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-dvc.html">dvc</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-mcr.html">mcr</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresscurrent">ts</li><li class="progresschapter"><a href="4-ap.html">4</a></li><li class="progresschapter"><a href="5-pp.html">5</a></li><li class="progressnext"><a href="4-ap.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -138,7 +138,7 @@ and maximum below are always equal.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">action_name</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure action_name is accessed in 2/bd, 3/sm, 3/tp, 3/bck, 3/rgn, 3/tm, 3/em, 3/sc, 3/scn, 3/ts, 4/anaa, 4/anl, 4/nap, 4/ai, 5/pp, 5/gv, 5/gl, 5/gpr and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure action_name is accessed in 2/bd, 3/sm, 3/tp, 3/bck, 3/rgn, 3/tm, 3/scn, 3/ts, 4/anaa, 4/anl, 4/nap, 4/ai, 5/pp, 5/gv, 5/gl, 5/gpr and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
|
|
@ -107,7 +107,7 @@ MathJax = {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">delete_this_link</span><span class="plain-syntax">; </span><span class="comment-syntax"> used temporarily during parsing</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">action_name_list</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure action_name_list is accessed in 2/ri, 3/tm, 3/em, 3/scn, 3/tm2, 3/ts, 4/act, 4/ap2, 4/nap, 5/tfg, 5/gl and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure action_name_list is accessed in 2/ri, 3/tm, 3/scn, 3/ts, 4/act, 4/ap2, 4/nap, 5/tfg, 5/gl and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>The action name list is the part of an action pattern identifying
|
||||
which actions are allowed: "taking, dropping or examining" for
|
||||
example. The following routine extracts this from a potentially longer
|
||||
|
|
|
@ -151,7 +151,7 @@ not-really-action APs are used in no other context, and employ the
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">ap_optional_clause</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure action_pattern is accessed in 2/ri, 3/tm, 3/em, 3/scn, 3/tm2, 3/ts, 4/act, 4/anl, 4/nap, 5/tfg, 5/gl and here.</li><li>The structure ap_optional_clause is accessed in 2/ri, 3/tm, 3/em, 3/scn, 3/tm2, 3/ts, 4/act, 4/anl, 4/nap, 5/tfg, 5/gl and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure action_pattern is accessed in 2/ri, 3/tm, 3/scn, 3/ts, 4/act, 4/anl, 4/nap, 5/tfg, 5/gl and here.</li><li>The structure ap_optional_clause is accessed in 2/ri, 3/tm, 3/scn, 3/ts, 4/act, 4/anl, 4/nap, 5/tfg, 5/gl and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>When we parse action patterns, we record why they fail, in order to make
|
||||
it easier to produce helpful error messages. (We can't simply fire off
|
||||
errors at the time they occur, because text is often parsed in several
|
||||
|
|
|
@ -85,7 +85,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">named_action_pattern</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure named_action_pattern is accessed in 2/bd, 3/sm, 3/tp, 3/bck, 3/rgn, 3/tm, 3/em, 3/sc, 3/scn, 3/ts, 4/anaa, 4/act, 4/anl, 5/pp, 5/gv, 5/gpr and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure named_action_pattern is accessed in 2/bd, 3/sm, 3/tp, 3/bck, 3/rgn, 3/tm, 3/scn, 3/ts, 4/anaa, 4/act, 4/anl, 5/pp, 5/gv, 5/gpr and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
|
|
@ -126,7 +126,7 @@ of these is associated with a genuine typed-by-the-player command verb:
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">grammar_verb</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure grammar_verb is accessed in 2/bd, 3/sm, 3/tp, 3/bck, 3/rgn, 3/tm, 3/em, 3/sc, 3/scn, 3/ts, 4/anaa, 4/act, 4/anl, 4/nap, 5/pp, 5/gpr and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure grammar_verb is accessed in 2/bd, 3/sm, 3/tp, 3/bck, 3/rgn, 3/tm, 3/scn, 3/ts, 4/anaa, 4/act, 4/anl, 4/nap, 5/pp, 5/gpr and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. </b>A few imperative verbs are reserved for Inform testing, such as SHOWME.
|
||||
We record those as instances of the following:
|
||||
</p>
|
||||
|
|
|
@ -108,7 +108,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">understanding_reference</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">understanding_reference</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure understanding_item is accessed in 2/ri, 3/tm, 3/em, 3/scn, 3/tm2, 3/ts, 4/act, 4/anl, 4/ap2, 4/nap, 5/gl and here.</li><li>The structure understanding_reference is accessed in 2/ri, 3/tm, 3/em, 3/scn, 3/tm2, 3/ts, 4/act, 4/anl, 4/ap2, 4/nap, 5/gl and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure understanding_item is accessed in 2/ri, 3/tm, 3/scn, 3/ts, 4/act, 4/anl, 4/ap2, 4/nap, 5/gl and here.</li><li>The structure understanding_reference is accessed in 2/ri, 3/tm, 3/scn, 3/ts, 4/act, 4/anl, 4/ap2, 4/nap, 5/gl and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. </b>New grammar arrives in the system in two ways: primarily by means of explicit
|
||||
Understand sentences in the source text, but also secondarily in the form
|
||||
of table entries or other values used to match against snippets. For example:
|
||||
|
|
|
@ -171,45 +171,15 @@
|
|||
<spon class="sectiontitle">Map Connection Relations</span></a> -
|
||||
<span class="sectionpurpose">To define one binary predicate for each map direction, such as "mapped north of".</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="3-sg.html">
|
||||
<spon class="sectiontitle">Spatial Geometry</span></a> -
|
||||
<span class="sectionpurpose">To deal with vectors and cuboids in a three-dimensional integer lattice.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="3-sm2.html">
|
||||
<spon class="sectiontitle">Spatial Map</span></a> -
|
||||
<span class="sectionpurpose">To fit the map of the rooms in the game into a cubical grid, preserving distances and angles where possible, and so to give each room approximate coordinate locations.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="3-hm.html">
|
||||
<spon class="sectiontitle">HTML Map</span></a> -
|
||||
<span class="sectionpurpose">To render the spatial map of rooms as HTML.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="3-em.html">
|
||||
<spon class="sectiontitle">EPS Map</span></a> -
|
||||
<span class="sectionpurpose">To render the spatial map of rooms as an EPS (Encapsulated PostScript) file.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="3-sc.html">
|
||||
<spon class="sectiontitle">Showme Command</span></a> -
|
||||
<span class="sectionpurpose">A plugin to provide some support for the SHOWME testing command.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="3-scn.html">
|
||||
<spon class="sectiontitle">Scenes</span></a> -
|
||||
<span class="sectionpurpose">Scenes are periods of time during play: at any given moment, several may be going on, or none. They are started and stopped when certain conditions are met, or by virtue of having been anchored together.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="3-tm2.html">
|
||||
<spon class="sectiontitle">Temporal Map</span></a> -
|
||||
<span class="sectionpurpose">Parallel to the World index of space is the Scenes index of time, and in this section we render it as HTML.</span></p>
|
||||
<span class="sectionpurpose">A plugin to support named periods of time during an interactive story.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="3-ts.html">
|
||||
<spon class="sectiontitle">The Score</span></a> -
|
||||
<span class="sectionpurpose">A plugin to support the maximum score variable.</span></p>
|
||||
<span class="sectionpurpose">A plugin to support the score variables.</span></p>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
|
|
@ -907,7 +907,7 @@ as the definition of the rule in future.
|
|||
<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">rc</span><span class="plain-syntax">.</span><span class="identifier-syntax">scene_context</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">" during "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">SW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PL::Scenes::get_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">rc</span><span class="plain-syntax">.</span><span class="element-syntax">scene_context</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">SW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Scenes::get_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">rc</span><span class="plain-syntax">.</span><span class="element-syntax">scene_context</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">SW</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
|
||||
|
|
|
@ -234,7 +234,7 @@ extracts a single specified scene if there is one:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">phrcd</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Rvalues::is_rvalue</span><span class="plain-syntax">(</span><span class="identifier-syntax">phrcd</span><span class="plain-syntax">-></span><span class="element-syntax">during_scene</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">q</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Rvalues::to_instance</span><span class="plain-syntax">(</span><span class="identifier-syntax">phrcd</span><span class="plain-syntax">-></span><span class="element-syntax">during_scene</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">q</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">PL::Scenes::from_named_constant</span><span class="plain-syntax">(</span><span class="identifier-syntax">q</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">q</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">Scenes::from_named_constant</span><span class="plain-syntax">(</span><span class="identifier-syntax">q</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">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -510,7 +510,7 @@ with the default outcome return (see above).
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">IFELSE_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</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">PL::Scenes::emit_during_clause</span><span class="plain-syntax">(</span><span class="identifier-syntax">phrcd</span><span class="plain-syntax">-></span><span class="element-syntax">during_scene</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RTScenes::emit_during_clause</span><span class="plain-syntax">(</span><span class="identifier-syntax">phrcd</span><span class="plain-syntax">-></span><span class="element-syntax">during_scene</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</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">Produce::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">());</span>
|
||||
|
||||
|
|
|
@ -95,7 +95,7 @@ which use this module:
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprevoff">❮</li><li class="progresscurrentchapter">1</li><li class="progresscurrent">im</li><li class="progresschapter"><a href="2-ifs.html">2</a></li><li class="progresschapter"><a href="3-fgr.html">3</a></li><li class="progressnext"><a href="2-ifs.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprevoff">❮</li><li class="progresscurrentchapter">1</li><li class="progresscurrent">im</li><li class="progresschapter"><a href="2-ifs.html">2</a></li><li class="progresschapter"><a href="3-fgr.html">3</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="2-ifs.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -104,7 +104,7 @@ prefaced "(of a rulebook)", "(of an activity)", and so on.
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-adj.html#SP1">§1</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-ins.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-ifs.html">ifs</a></li><li class="progresssection"><a href="2-dr.html">dr</a></li><li class="progresssection"><a href="2-li.html">li</a></li><li class="progresssection"><a href="2-ipw.html">ipw</a></li><li class="progresssection"><a href="2-ki.html">ki</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-ih.html">ih</a></li><li class="progresssection"><a href="2-ins.html">ins</a></li><li class="progresscurrent">adj</li><li class="progresssection"><a href="2-vrb.html">vrb</a></li><li class="progresssection"><a href="2-prp.html">prp</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresschapter"><a href="3-fgr.html">3</a></li><li class="progressnext"><a href="2-vrb.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-ins.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-ifs.html">ifs</a></li><li class="progresssection"><a href="2-dr.html">dr</a></li><li class="progresssection"><a href="2-li.html">li</a></li><li class="progresssection"><a href="2-ipw.html">ipw</a></li><li class="progresssection"><a href="2-ki.html">ki</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-ih.html">ih</a></li><li class="progresssection"><a href="2-ins.html">ins</a></li><li class="progresscurrent">adj</li><li class="progresssection"><a href="2-vrb.html">vrb</a></li><li class="progresssection"><a href="2-prp.html">prp</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresschapter"><a href="3-fgr.html">3</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="2-vrb.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -472,7 +472,7 @@ and we need to search fairly seldom:
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-dr.html#SP12">§12</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-ifs.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-ifs.html">ifs</a></li><li class="progresscurrent">dr</li><li class="progresssection"><a href="2-li.html">li</a></li><li class="progresssection"><a href="2-ipw.html">ipw</a></li><li class="progresssection"><a href="2-ki.html">ki</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-ih.html">ih</a></li><li class="progresssection"><a href="2-ins.html">ins</a></li><li class="progresssection"><a href="2-adj.html">adj</a></li><li class="progresssection"><a href="2-vrb.html">vrb</a></li><li class="progresssection"><a href="2-prp.html">prp</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresschapter"><a href="3-fgr.html">3</a></li><li class="progressnext"><a href="2-li.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-ifs.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-ifs.html">ifs</a></li><li class="progresscurrent">dr</li><li class="progresssection"><a href="2-li.html">li</a></li><li class="progresssection"><a href="2-ipw.html">ipw</a></li><li class="progresssection"><a href="2-ki.html">ki</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-ih.html">ih</a></li><li class="progresssection"><a href="2-ins.html">ins</a></li><li class="progresssection"><a href="2-adj.html">adj</a></li><li class="progresssection"><a href="2-vrb.html">vrb</a></li><li class="progresssection"><a href="2-prp.html">prp</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresschapter"><a href="3-fgr.html">3</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="2-li.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -246,13 +246,13 @@ documentation page could be forgiven for thinking it a miscellany.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">q</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">kc</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">q</span><span class="plain-syntax">, </span><span class="identifier-syntax">nonlocal_variable</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">q</span><span class="plain-syntax">-></span><span class="identifier-syntax">name</span><span class="plain-syntax">) >= </span><span class="constant-syntax">0</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">q</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">) >= </span><span class="constant-syntax">0</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">NonlocalVariables::is_global</span><span class="plain-syntax">(</span><span class="identifier-syntax">q</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Lexer::file_of_origin</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">q</span><span class="plain-syntax">-></span><span class="identifier-syntax">name</span><span class="plain-syntax">)) == </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="identifier-syntax">read_into_file</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Headings::indexed</span><span class="plain-syntax">(</span><span class="identifier-syntax">Headings::of_wording</span><span class="plain-syntax">(</span><span class="identifier-syntax">q</span><span class="plain-syntax">-></span><span class="identifier-syntax">name</span><span class="plain-syntax">)))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><value-understood-variable-name>(q-></span><span class="identifier-syntax">name</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Lexer::file_of_origin</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">q</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">)) == </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="identifier-syntax">read_into_file</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Headings::indexed</span><span class="plain-syntax">(</span><span class="identifier-syntax">Headings::of_wording</span><span class="plain-syntax">(</span><span class="identifier-syntax">q</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">)))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><value-understood-variable-name>(q-></span><span class="element-syntax">name</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kc</span><span class="plain-syntax"> = </span><a href="2-ie.html#SP3" class="function-link"><span class="function-syntax">IndexExtensions::document_headword</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kc</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="string-syntax">"Values that vary"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"value"</span><span class="plain-syntax">, </span><span class="identifier-syntax">q</span><span class="plain-syntax">-></span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kc</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="string-syntax">"Values that vary"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"value"</span><span class="plain-syntax">, </span><span class="identifier-syntax">q</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">kc</span><span class="plain-syntax"> != </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
|
@ -338,11 +338,11 @@ documentation page could be forgiven for thinking it a miscellany.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">kc</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">property</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">-></span><span class="identifier-syntax">name</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> (</span><a href="2-prp.html#SP2" class="function-link"><span class="function-syntax">IXProperties::is_shown_in_index</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Lexer::file_of_origin</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">-></span><span class="identifier-syntax">name</span><span class="plain-syntax">)) == </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="identifier-syntax">read_into_file</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Lexer::file_of_origin</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">)) == </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="identifier-syntax">read_into_file</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kc</span><span class="plain-syntax"> = </span><a href="2-ie.html#SP3" class="function-link"><span class="function-syntax">IndexExtensions::document_headword</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">kc</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="string-syntax">"Properties"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"property"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">prn</span><span class="plain-syntax">-></span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">prn</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">kc</span><span class="plain-syntax"> != </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-ie.html#SP2">§2</a>.</li></ul>
|
||||
|
@ -356,10 +356,10 @@ documentation page could be forgiven for thinking it a miscellany.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">use_option</span><span class="plain-syntax"> *</span><span class="identifier-syntax">uo</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">kc</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">uo</span><span class="plain-syntax">, </span><span class="identifier-syntax">use_option</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">uo</span><span class="plain-syntax">-></span><span class="identifier-syntax">name</span><span class="plain-syntax">) >= </span><span class="constant-syntax">0</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Lexer::file_of_origin</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">uo</span><span class="plain-syntax">-></span><span class="identifier-syntax">name</span><span class="plain-syntax">)) == </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="identifier-syntax">read_into_file</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">uo</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">) >= </span><span class="constant-syntax">0</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Lexer::file_of_origin</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">uo</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">)) == </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="identifier-syntax">read_into_file</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kc</span><span class="plain-syntax"> = </span><a href="2-ie.html#SP3" class="function-link"><span class="function-syntax">IndexExtensions::document_headword</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">kc</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="string-syntax">"Use options"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"use option"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">uo</span><span class="plain-syntax">-></span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">uo</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">kc</span><span class="plain-syntax"> != </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-ie.html#SP2">§2</a>.</li></ul>
|
||||
|
@ -379,7 +379,7 @@ dictionary.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-ki.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-ifs.html">ifs</a></li><li class="progresssection"><a href="2-dr.html">dr</a></li><li class="progresssection"><a href="2-li.html">li</a></li><li class="progresssection"><a href="2-ipw.html">ipw</a></li><li class="progresssection"><a href="2-ki.html">ki</a></li><li class="progresscurrent">ie</li><li class="progresssection"><a href="2-ih.html">ih</a></li><li class="progresssection"><a href="2-ins.html">ins</a></li><li class="progresssection"><a href="2-adj.html">adj</a></li><li class="progresssection"><a href="2-vrb.html">vrb</a></li><li class="progresssection"><a href="2-prp.html">prp</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresschapter"><a href="3-fgr.html">3</a></li><li class="progressnext"><a href="2-ih.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-ki.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-ifs.html">ifs</a></li><li class="progresssection"><a href="2-dr.html">dr</a></li><li class="progresssection"><a href="2-li.html">li</a></li><li class="progresssection"><a href="2-ipw.html">ipw</a></li><li class="progresssection"><a href="2-ki.html">ki</a></li><li class="progresscurrent">ie</li><li class="progresssection"><a href="2-ih.html">ih</a></li><li class="progresssection"><a href="2-ins.html">ins</a></li><li class="progresssection"><a href="2-adj.html">adj</a></li><li class="progresssection"><a href="2-vrb.html">vrb</a></li><li class="progresssection"><a href="2-prp.html">prp</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresschapter"><a href="3-fgr.html">3</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="2-ih.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -813,7 +813,7 @@ to show, hide and colour things:
|
|||
|
||||
<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>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">IF_MODULE</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PL::Scenes::Index::index</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-scn.html#SP1" class="function-link"><span class="function-syntax">IXScenes::index</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">endif</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -823,7 +823,7 @@ to show, hide and colour things:
|
|||
<span 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>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">IF_MODULE</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PL::Scenes::Index::index_rules</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-scn.html#SP1" class="function-link"><span class="function-syntax">IXScenes::index_rules</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">endif</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -941,7 +941,7 @@ the source text in the application.
|
|||
</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">Index::link</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">Index::link</span></span>:<br/>Lexicon Index - <a href="2-li.html#SP7_11_2">§7.11.2</a>, <a href="2-li.html#SP8">§8</a><br/>Index Physical World - <a href="2-ipw.html#SP3_5">§3.5</a>, <a href="2-ipw.html#SP3_8">§3.8</a>, <a href="2-ipw.html#SP4">§4</a><br/>Kinds Index - <a href="2-ki.html#SP6">§6</a><br/>Index Extensions - <a href="2-ie.html#SP1">§1</a><br/>Instances - <a href="2-ins.html#SP5">§5</a><br/>Adjectives - <a href="2-adj.html#SP1">§1</a><br/>Variables - <a href="2-vrb.html#SP3">§3</a><br/>Inferences - <a href="2-inf.html#SP3">§3</a><br/>Figures - <a href="3-fgr.html#SP1">§1</a><br/>Sound Effects - <a href="3-se.html#SP1">§1</a><br/>External Files - <a href="3-ef.html#SP1">§1</a><br/>Spatial - <a href="3-spt.html#SP4">§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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">wn</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Index::link</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">Index::link</span></span>:<br/>Lexicon Index - <a href="2-li.html#SP7_11_2">§7.11.2</a>, <a href="2-li.html#SP8">§8</a><br/>Index Physical World - <a href="2-ipw.html#SP3_5">§3.5</a>, <a href="2-ipw.html#SP3_8">§3.8</a>, <a href="2-ipw.html#SP4">§4</a><br/>Kinds Index - <a href="2-ki.html#SP6">§6</a><br/>Index Extensions - <a href="2-ie.html#SP1">§1</a><br/>Instances - <a href="2-ins.html#SP5">§5</a><br/>Adjectives - <a href="2-adj.html#SP1">§1</a><br/>Variables - <a href="2-vrb.html#SP3">§3</a><br/>Inferences - <a href="2-inf.html#SP3">§3</a><br/>Figures - <a href="3-fgr.html#SP1">§1</a><br/>Sound Effects - <a href="3-se.html#SP1">§1</a><br/>External Files - <a href="3-ef.html#SP1">§1</a><br/>Spatial - <a href="3-spt.html#SP4">§4</a><br/>Scenes - <a href="3-scn.html#SP1_5_1_1">§1.5.1.1</a>, <a href="3-scn.html#SP1_5_1_4_2">§1.5.1.4.2</a>, <a href="3-scn.html#SP1_5_1_4_3">§1.5.1.4.3</a><br/>Spatial Map - <a href="4-sm.html#SP44">§44</a><br/>HTML Map - <a href="4-hm.html#SP12">§12</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">wn</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ifs.html#SP9" class="function-link"><span class="function-syntax">Index::link_to_location</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Lexer::word_location</span><span class="plain-syntax">(</span><span class="identifier-syntax">wn</span><span class="plain-syntax">), </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
|
@ -994,18 +994,18 @@ code.
|
|||
<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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Index::anchor</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">Index::anchor</span></span>:<br/><a href="2-ifs.html#SP17">§17</a>, <a href="2-ifs.html#SP18">§18</a><br/>Lexicon Index - <a href="2-li.html#SP7">§7</a><br/>Index Physical World - <a href="2-ipw.html#SP2">§2</a>, <a href="2-ipw.html#SP3_1">§3.1</a><br/>Variables - <a href="2-vrb.html#SP2">§2</a><br/>Bibliographic Data - <a href="3-bd.html#SP1">§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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Index::anchor</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">Index::anchor</span></span>:<br/><a href="2-ifs.html#SP17">§17</a>, <a href="2-ifs.html#SP18">§18</a><br/>Lexicon Index - <a href="2-li.html#SP7">§7</a><br/>Index Physical World - <a href="2-ipw.html#SP2">§2</a>, <a href="2-ipw.html#SP3_1">§3.1</a><br/>Variables - <a href="2-vrb.html#SP2">§2</a><br/>Bibliographic Data - <a href="3-bd.html#SP1">§1</a><br/>Scenes - <a href="3-scn.html#SP1_4">§1.4</a>, <a href="3-scn.html#SP1_5">§1.5</a><br/>HTML Map - <a href="4-hm.html#SP8">§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">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">"a"</span><span class="plain-syntax">, </span><span class="string-syntax">"name=%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">p</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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Index::below_link_numbered</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">Index::below_link_numbered</span></span>:<br/>Lexicon Index - <a href="2-li.html#SP7_11_2">§7.11.2</a><br/>Kinds Index - <a href="2-ki.html#SP4">§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">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">Index::below_link_numbered</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">Index::below_link_numbered</span></span>:<br/>Lexicon Index - <a href="2-li.html#SP7_11_2">§7.11.2</a><br/>Kinds Index - <a href="2-ki.html#SP4">§4</a><br/>Scenes - <a href="3-scn.html#SP2_2">§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">"&nbsp;"</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">"a"</span><span class="plain-syntax">, </span><span class="string-syntax">"href=#A%d"</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">HTML_TAG_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"img"</span><span class="plain-syntax">, </span><span class="string-syntax">"border=0 src=inform:/doc_images/Below.png"</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">"a"</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">Index::anchor_numbered</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">Index::anchor_numbered</span></span>:<br/>Lexicon Index - <a href="2-li.html#SP8">§8</a><br/>Kinds Index - <a href="2-ki.html#SP1_7">§1.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">n</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Index::anchor_numbered</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">Index::anchor_numbered</span></span>:<br/>Lexicon Index - <a href="2-li.html#SP8">§8</a><br/>Kinds Index - <a href="2-ki.html#SP1_7">§1.7</a><br/>Scenes - <a href="3-scn.html#SP1_5_1_1">§1.5.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">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">"a"</span><span class="plain-syntax">, </span><span class="string-syntax">"name=A%d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</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>
|
||||
</pre>
|
||||
|
@ -1155,7 +1155,7 @@ quotes.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="1-im.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresscurrent">ifs</li><li class="progresssection"><a href="2-dr.html">dr</a></li><li class="progresssection"><a href="2-li.html">li</a></li><li class="progresssection"><a href="2-ipw.html">ipw</a></li><li class="progresssection"><a href="2-ki.html">ki</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-ih.html">ih</a></li><li class="progresssection"><a href="2-ins.html">ins</a></li><li class="progresssection"><a href="2-adj.html">adj</a></li><li class="progresssection"><a href="2-vrb.html">vrb</a></li><li class="progresssection"><a href="2-prp.html">prp</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresschapter"><a href="3-fgr.html">3</a></li><li class="progressnext"><a href="2-dr.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="1-im.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresscurrent">ifs</li><li class="progresssection"><a href="2-dr.html">dr</a></li><li class="progresssection"><a href="2-li.html">li</a></li><li class="progresssection"><a href="2-ipw.html">ipw</a></li><li class="progresssection"><a href="2-ki.html">ki</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-ih.html">ih</a></li><li class="progresssection"><a href="2-ins.html">ins</a></li><li class="progresssection"><a href="2-adj.html">adj</a></li><li class="progresssection"><a href="2-vrb.html">vrb</a></li><li class="progresssection"><a href="2-prp.html">prp</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresschapter"><a href="3-fgr.html">3</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="2-dr.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -169,7 +169,7 @@ surreptitiously check that it is correctly formed at the same time.
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure contents_entry is accessed in 2/ins and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure contents_entry is accessed in 2/ins, 3/scn, 4/em and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3_1" class="paragraph-anchor"></a><b>§3.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index this entry in the contents</span><span class="named-paragraph-number">3.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
|
@ -350,7 +350,7 @@ but should this arise then the best recourse is to ignore the heading.
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-ih.html#SP4">§4</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-ie.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-ifs.html">ifs</a></li><li class="progresssection"><a href="2-dr.html">dr</a></li><li class="progresssection"><a href="2-li.html">li</a></li><li class="progresssection"><a href="2-ipw.html">ipw</a></li><li class="progresssection"><a href="2-ki.html">ki</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresscurrent">ih</li><li class="progresssection"><a href="2-ins.html">ins</a></li><li class="progresssection"><a href="2-adj.html">adj</a></li><li class="progresssection"><a href="2-vrb.html">vrb</a></li><li class="progresssection"><a href="2-prp.html">prp</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresschapter"><a href="3-fgr.html">3</a></li><li class="progressnext"><a href="2-ins.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-ie.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-ifs.html">ifs</a></li><li class="progresssection"><a href="2-dr.html">dr</a></li><li class="progresssection"><a href="2-li.html">li</a></li><li class="progresssection"><a href="2-ipw.html">ipw</a></li><li class="progresssection"><a href="2-ki.html">ki</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresscurrent">ih</li><li class="progresssection"><a href="2-ins.html">ins</a></li><li class="progresssection"><a href="2-adj.html">adj</a></li><li class="progresssection"><a href="2-vrb.html">vrb</a></li><li class="progresssection"><a href="2-prp.html">prp</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresschapter"><a href="3-fgr.html">3</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="2-ins.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -128,13 +128,13 @@ state of being boolean, and the given certainty levels:
|
|||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">f</span><span class="plain-syntax">) { </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<i>%s</i> "</span><span class="plain-syntax">, </span><span class="identifier-syntax">cert</span><span class="plain-syntax">); </span><span class="identifier-syntax">f</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">; }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">", "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</span><span class="plain-syntax">-></span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-prp.html#SP3" class="function-link"><span class="function-syntax">IXProperties::set_indexed_already_flag</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Properties::is_either_or</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prnbar</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EitherOrProperties::get_negation</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">prnbar</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" <i>not</i> %+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">prnbar</span><span class="plain-syntax">-></span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" <i>not</i> %+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">prnbar</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-prp.html#SP3" class="function-link"><span class="function-syntax">IXProperties::set_indexed_already_flag</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prnbar</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
|
@ -169,7 +169,7 @@ state of being boolean, and the given certainty levels:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">k</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><span class="identifier-syntax">HTML::open_indented_p</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="string-syntax">"hanging"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"; "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">S</span><span class="plain-syntax"> < </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"not "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</span><span class="plain-syntax">-></span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">) </span><a href="2-ifs.html#SP9" class="function-link"><span class="function-syntax">Index::link</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">)));</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -183,7 +183,7 @@ state of being boolean, and the given certainty levels:
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PropertyInferences::value_and_where_without_inheritance</span><span class="plain-syntax">(</span><span class="identifier-syntax">infs</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</span><span class="plain-syntax">, &</span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">S</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">)))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::open_indented_p</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="string-syntax">"hanging"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W: "</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</span><span class="plain-syntax">-></span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W: "</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::begin_colour</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"000080"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::end_colour</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
|
@ -194,7 +194,7 @@ state of being boolean, and the given certainty levels:
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-prp.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-ifs.html">ifs</a></li><li class="progresssection"><a href="2-dr.html">dr</a></li><li class="progresssection"><a href="2-li.html">li</a></li><li class="progresssection"><a href="2-ipw.html">ipw</a></li><li class="progresssection"><a href="2-ki.html">ki</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-ih.html">ih</a></li><li class="progresssection"><a href="2-ins.html">ins</a></li><li class="progresssection"><a href="2-adj.html">adj</a></li><li class="progresssection"><a href="2-vrb.html">vrb</a></li><li class="progresssection"><a href="2-prp.html">prp</a></li><li class="progresscurrent">inf</li><li class="progresschapter"><a href="3-fgr.html">3</a></li><li class="progressnext"><a href="3-fgr.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-prp.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-ifs.html">ifs</a></li><li class="progresssection"><a href="2-dr.html">dr</a></li><li class="progresssection"><a href="2-li.html">li</a></li><li class="progresssection"><a href="2-ipw.html">ipw</a></li><li class="progresssection"><a href="2-ki.html">ki</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-ih.html">ih</a></li><li class="progresssection"><a href="2-ins.html">ins</a></li><li class="progresssection"><a href="2-adj.html">adj</a></li><li class="progresssection"><a href="2-vrb.html">vrb</a></li><li class="progresssection"><a href="2-prp.html">prp</a></li><li class="progresscurrent">inf</li><li class="progresschapter"><a href="3-fgr.html">3</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="3-fgr.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -89,7 +89,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">instance_usage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">instance_usage</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure instance_index_data is private to this section.</li><li>The structure instance_usage is private to this section.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure instance_index_data is private to this section.</li><li>The structure instance_usage is accessed in 3/scn, 4/em and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -116,7 +116,7 @@ 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">IXInstances::index_name</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">IXInstances::index_name</span></span>:<br/>Index Physical World - <a href="2-ipw.html#SP3_8">§3.8</a>, <a href="2-ipw.html#SP4">§4</a><br/>Kinds Index - <a href="2-ki.html#SP5_1">§5.1</a><br/>Spatial - <a href="3-spt.html#SP4">§4</a><br/>The Map - <a href="3-tm.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXInstances::index_name</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">IXInstances::index_name</span></span>:<br/>Index Physical World - <a href="2-ipw.html#SP3_8">§3.8</a>, <a href="2-ipw.html#SP4">§4</a><br/>Kinds Index - <a href="2-ki.html#SP5_1">§5.1</a><br/>Spatial - <a href="3-spt.html#SP4">§4</a><br/>The Map - <a href="3-tm.html#SP1">§1</a><br/>Spatial Map - <a href="4-sm.html#SP44">§44</a><br/>HTML Map - <a href="4-hm.html#SP12">§12</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::get_name_in_play</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
|
@ -183,7 +183,7 @@ constant value.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Properties::get_permissions</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"(of "</span><span class="plain-syntax">); </span><a href="2-prp.html#SP4" class="function-link"><span class="function-syntax">IXProperties::index_permissions</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">); </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">") "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"having this %+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"having this %+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"a condition which is otherwise "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::to_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
|
@ -203,7 +203,7 @@ constant value.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-ih.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-ifs.html">ifs</a></li><li class="progresssection"><a href="2-dr.html">dr</a></li><li class="progresssection"><a href="2-li.html">li</a></li><li class="progresssection"><a href="2-ipw.html">ipw</a></li><li class="progresssection"><a href="2-ki.html">ki</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-ih.html">ih</a></li><li class="progresscurrent">ins</li><li class="progresssection"><a href="2-adj.html">adj</a></li><li class="progresssection"><a href="2-vrb.html">vrb</a></li><li class="progresssection"><a href="2-prp.html">prp</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresschapter"><a href="3-fgr.html">3</a></li><li class="progressnext"><a href="2-adj.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-ih.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-ifs.html">ifs</a></li><li class="progresssection"><a href="2-dr.html">dr</a></li><li class="progresssection"><a href="2-li.html">li</a></li><li class="progresssection"><a href="2-ipw.html">ipw</a></li><li class="progresssection"><a href="2-ki.html">ki</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-ih.html">ih</a></li><li class="progresscurrent">ins</li><li class="progresssection"><a href="2-adj.html">adj</a></li><li class="progresssection"><a href="2-vrb.html">vrb</a></li><li class="progresssection"><a href="2-prp.html">prp</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresschapter"><a href="3-fgr.html">3</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="2-adj.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -118,12 +118,12 @@ instance) Spatial.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Task::wraps_existing_storyfile</span><span class="plain-syntax">()) </span><span class="reserved-syntax">return</span><span class="plain-syntax">; </span><span class="comment-syntax"> in this case there is no model world</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">PluginManager::active</span><span class="plain-syntax">(</span><span class="identifier-syntax">map_plugin</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">; </span><span class="comment-syntax"> in this case there is no model world</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PL::SpatialMap::establish_benchmark_room</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PL::EPSMap::traverse_for_map_parameters</span><span class="plain-syntax">(1);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PL::SpatialMap::establish_spatial_coordinates</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PL::HTMLMap::render_map_as_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">PL::HTMLMap::add_region_key</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">PL::EPSMap::render_map_as_EPS</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="4-sm.html#SP7_15" class="function-link"><span class="function-syntax">PL::SpatialMap::establish_benchmark_room</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="4-em.html#SP13" class="function-link"><span class="function-syntax">PL::EPSMap::traverse_for_map_parameters</span></a><span class="plain-syntax">(1);</span>
|
||||
<span class="plain-syntax"> </span><a href="4-sm.html#SP7" class="function-link"><span class="function-syntax">PL::SpatialMap::establish_spatial_coordinates</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="4-hm.html#SP6" class="function-link"><span class="function-syntax">PL::HTMLMap::render_map_as_HTML</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="4-hm.html#SP13" class="function-link"><span class="function-syntax">PL::HTMLMap::add_region_key</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="4-em.html#SP24" class="function-link"><span class="function-syntax">PL::EPSMap::render_map_as_EPS</span></a><span class="plain-syntax">();</span>
|
||||
|
||||
<span class="plain-syntax"> </span><a href="3-bck.html#SP1" class="function-link"><span class="function-syntax">IXBackdrops::index_object_further</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
|
||||
|
@ -167,7 +167,7 @@ instance) Spatial.
|
|||
<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><span class="identifier-syntax">PL::HTMLMap::render_single_room_as_HTML</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">rm</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="4-hm.html#SP8" class="function-link"><span class="function-syntax">PL::HTMLMap::render_single_room_as_HTML</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">rm</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::increment_indexing_count</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">rm</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -192,7 +192,7 @@ instance) Spatial.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Spatial::object_is_a_room</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> (</span><a href="2-ins.html#SP3" class="function-link"><span class="function-syntax">IXInstances::indexed_yet</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-ipw.html#SP2_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">2.2.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PL::HTMLMap::render_single_room_as_HTML</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="4-hm.html#SP8" class="function-link"><span class="function-syntax">PL::HTMLMap::render_single_room_as_HTML</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-ipw.html#SP2">§2</a>.</li></ul>
|
||||
|
@ -249,7 +249,7 @@ table of Kinds.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">indexing_room</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Data::Objects::index</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">Data::Objects::index</span></span>:<br/><a href="2-ipw.html#SP2_4">§2.4</a>, <a href="2-ipw.html#SP3_6">§3.6</a><br/>Kinds Index - <a href="2-ki.html#SP1_1">§1.1</a><br/>Spatial - <a href="3-spt.html#SP3">§3</a><br/>The Player - <a href="3-tp.html#SP1">§1</a><br/>Backdrops - <a href="3-bck.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">depth</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">details</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Data::Objects::index</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">Data::Objects::index</span></span>:<br/><a href="2-ipw.html#SP2_4">§2.4</a>, <a href="2-ipw.html#SP3_6">§3.6</a><br/>Kinds Index - <a href="2-ki.html#SP1_1">§1.1</a><br/>Spatial - <a href="3-spt.html#SP3">§3</a><br/>The Player - <a href="3-tp.html#SP1">§1</a><br/>Backdrops - <a href="3-bck.html#SP1">§1</a><br/>HTML Map - <a href="4-hm.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">depth</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">details</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">depth</span><span class="plain-syntax"> == </span><span class="constant-syntax">MAX_OBJECT_INDEX_DEPTH</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"MAX_OBJECT_INDEX_DEPTH exceeded"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">noun</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nt</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
|
@ -509,7 +509,7 @@ table of Kinds.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-li.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-ifs.html">ifs</a></li><li class="progresssection"><a href="2-dr.html">dr</a></li><li class="progresssection"><a href="2-li.html">li</a></li><li class="progresscurrent">ipw</li><li class="progresssection"><a href="2-ki.html">ki</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-ih.html">ih</a></li><li class="progresssection"><a href="2-ins.html">ins</a></li><li class="progresssection"><a href="2-adj.html">adj</a></li><li class="progresssection"><a href="2-vrb.html">vrb</a></li><li class="progresssection"><a href="2-prp.html">prp</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresschapter"><a href="3-fgr.html">3</a></li><li class="progressnext"><a href="2-ki.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-li.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-ifs.html">ifs</a></li><li class="progresssection"><a href="2-dr.html">dr</a></li><li class="progresssection"><a href="2-li.html">li</a></li><li class="progresscurrent">ipw</li><li class="progresssection"><a href="2-ki.html">ki</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-ih.html">ih</a></li><li class="progresssection"><a href="2-ins.html">ins</a></li><li class="progresssection"><a href="2-adj.html">adj</a></li><li class="progresssection"><a href="2-vrb.html">vrb</a></li><li class="progresssection"><a href="2-prp.html">prp</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresschapter"><a href="3-fgr.html">3</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="2-ki.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -571,7 +571,7 @@ as "0 kg", "0 hectares", or whatever is appropriate.
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-ki.html#SP6">§6</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-ipw.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-ifs.html">ifs</a></li><li class="progresssection"><a href="2-dr.html">dr</a></li><li class="progresssection"><a href="2-li.html">li</a></li><li class="progresssection"><a href="2-ipw.html">ipw</a></li><li class="progresscurrent">ki</li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-ih.html">ih</a></li><li class="progresssection"><a href="2-ins.html">ins</a></li><li class="progresssection"><a href="2-adj.html">adj</a></li><li class="progresssection"><a href="2-vrb.html">vrb</a></li><li class="progresssection"><a href="2-prp.html">prp</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresschapter"><a href="3-fgr.html">3</a></li><li class="progressnext"><a href="2-ie.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-ipw.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-ifs.html">ifs</a></li><li class="progresssection"><a href="2-dr.html">dr</a></li><li class="progresssection"><a href="2-li.html">li</a></li><li class="progresssection"><a href="2-ipw.html">ipw</a></li><li class="progresscurrent">ki</li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-ih.html">ih</a></li><li class="progresssection"><a href="2-ins.html">ins</a></li><li class="progresssection"><a href="2-adj.html">adj</a></li><li class="progresssection"><a href="2-vrb.html">vrb</a></li><li class="progresssection"><a href="2-prp.html">prp</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresschapter"><a href="3-fgr.html">3</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="2-ie.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -654,7 +654,7 @@ be able to print out a table of just those verbs created in that extension.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-dr.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-ifs.html">ifs</a></li><li class="progresssection"><a href="2-dr.html">dr</a></li><li class="progresscurrent">li</li><li class="progresssection"><a href="2-ipw.html">ipw</a></li><li class="progresssection"><a href="2-ki.html">ki</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-ih.html">ih</a></li><li class="progresssection"><a href="2-ins.html">ins</a></li><li class="progresssection"><a href="2-adj.html">adj</a></li><li class="progresssection"><a href="2-vrb.html">vrb</a></li><li class="progresssection"><a href="2-prp.html">prp</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresschapter"><a href="3-fgr.html">3</a></li><li class="progressnext"><a href="2-ipw.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-dr.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-ifs.html">ifs</a></li><li class="progresssection"><a href="2-dr.html">dr</a></li><li class="progresscurrent">li</li><li class="progresssection"><a href="2-ipw.html">ipw</a></li><li class="progresssection"><a href="2-ki.html">ki</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-ih.html">ih</a></li><li class="progresssection"><a href="2-ins.html">ins</a></li><li class="progresssection"><a href="2-adj.html">adj</a></li><li class="progresssection"><a href="2-vrb.html">vrb</a></li><li class="progresssection"><a href="2-prp.html">prp</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresschapter"><a href="3-fgr.html">3</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="2-ipw.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -120,7 +120,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">neg</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Properties::get_permissions</span><span class="plain-syntax">(</span><span class="identifier-syntax">neg</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" of "</span><span class="plain-syntax">); </span><a href="2-prp.html#SP4" class="function-link"><span class="function-syntax">IXProperties::index_permissions</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">neg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">neg</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">", opposite of </i>%+W<i>"</span><span class="plain-syntax">, </span><span class="identifier-syntax">neg</span><span class="plain-syntax">-></span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">neg</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">", opposite of </i>%+W<i>"</span><span class="plain-syntax">, </span><span class="identifier-syntax">neg</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXProperties::index_permissions</span><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">IXProperties::index_permissions</span></span>:<br/>Instances - <a href="2-ins.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">) {</span>
|
||||
|
@ -143,7 +143,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-vrb.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-ifs.html">ifs</a></li><li class="progresssection"><a href="2-dr.html">dr</a></li><li class="progresssection"><a href="2-li.html">li</a></li><li class="progresssection"><a href="2-ipw.html">ipw</a></li><li class="progresssection"><a href="2-ki.html">ki</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-ih.html">ih</a></li><li class="progresssection"><a href="2-ins.html">ins</a></li><li class="progresssection"><a href="2-adj.html">adj</a></li><li class="progresssection"><a href="2-vrb.html">vrb</a></li><li class="progresscurrent">prp</li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresschapter"><a href="3-fgr.html">3</a></li><li class="progressnext"><a href="2-inf.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-vrb.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-ifs.html">ifs</a></li><li class="progresssection"><a href="2-dr.html">dr</a></li><li class="progresssection"><a href="2-li.html">li</a></li><li class="progresssection"><a href="2-ipw.html">ipw</a></li><li class="progresssection"><a href="2-ki.html">ki</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-ih.html">ih</a></li><li class="progresssection"><a href="2-ins.html">ins</a></li><li class="progresssection"><a href="2-adj.html">adj</a></li><li class="progresssection"><a href="2-vrb.html">vrb</a></li><li class="progresscurrent">prp</li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresschapter"><a href="3-fgr.html">3</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="2-inf.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -97,8 +97,8 @@ the following:
|
|||
<span class="plain-syntax"> </span><a href="2-ifs.html#SP11" class="function-link"><span class="function-syntax">Index::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">"NAMES"</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">understood_note_given</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</span><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">, </span><span class="identifier-syntax">nonlocal_variable</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-></span><span class="identifier-syntax">name</span><span class="plain-syntax">) >= </span><span class="constant-syntax">0</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">NonlocalVariables::is_global</span><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><value-understood-variable-name>(nlv-></span><span class="identifier-syntax">name</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">) >= </span><span class="constant-syntax">0</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">NonlocalVariables::is_global</span><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><value-understood-variable-name>(nlv-></span><span class="element-syntax">name</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-vrb.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Index a K understood variable</span><span class="named-paragraph-number">2.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="2-vrb.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Index a regular variable</span><span class="named-paragraph-number">2.2</span></a></span><span class="plain-syntax">;</span>
|
||||
|
@ -121,7 +121,7 @@ the following:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">definition_area</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Headings::of_wording</span><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-></span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">definition_area</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Headings::of_wording</span><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Headings::indexed</span><span class="plain-syntax">(</span><span class="identifier-syntax">definition_area</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="reserved-syntax">continue</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">definition_area</span><span class="plain-syntax"> != </span><span class="identifier-syntax">current_area</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Headings::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">definition_area</span><span class="plain-syntax">);</span>
|
||||
|
@ -138,8 +138,8 @@ the following:
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXVariables::index_one</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">IXVariables::index_one</span></span>:<br/><a href="2-vrb.html#SP2_2">§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">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-></span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ifs.html#SP9" class="function-link"><span class="function-syntax">Index::link</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-></span><span class="identifier-syntax">name</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ifs.html#SP9" class="function-link"><span class="function-syntax">Index::link</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-></span><span class="identifier-syntax">var_documentation_symbol</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">ixt</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">ixt</span><span class="plain-syntax">, </span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::one_word</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">-></span><span class="identifier-syntax">var_documentation_symbol</span><span class="plain-syntax">)));</span>
|
||||
|
@ -152,7 +152,7 @@ the following:
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-adj.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-ifs.html">ifs</a></li><li class="progresssection"><a href="2-dr.html">dr</a></li><li class="progresssection"><a href="2-li.html">li</a></li><li class="progresssection"><a href="2-ipw.html">ipw</a></li><li class="progresssection"><a href="2-ki.html">ki</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-ih.html">ih</a></li><li class="progresssection"><a href="2-ins.html">ins</a></li><li class="progresssection"><a href="2-adj.html">adj</a></li><li class="progresscurrent">vrb</li><li class="progresssection"><a href="2-prp.html">prp</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresschapter"><a href="3-fgr.html">3</a></li><li class="progressnext"><a href="2-prp.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-adj.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-ifs.html">ifs</a></li><li class="progresssection"><a href="2-dr.html">dr</a></li><li class="progresssection"><a href="2-li.html">li</a></li><li class="progresssection"><a href="2-ipw.html">ipw</a></li><li class="progresssection"><a href="2-ki.html">ki</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresssection"><a href="2-ih.html">ih</a></li><li class="progresssection"><a href="2-ins.html">ins</a></li><li class="progresssection"><a href="2-adj.html">adj</a></li><li class="progresscurrent">vrb</li><li class="progresssection"><a href="2-prp.html">prp</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresschapter"><a href="3-fgr.html">3</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="2-prp.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -119,7 +119,7 @@ adds backdrop contents to a room called <span class="extract"><span class="extra
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-bck.html#SP1">§1</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-tp.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-ifs.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-fgr.html">fgr</a></li><li class="progresssection"><a href="3-se.html">se</a></li><li class="progresssection"><a href="3-ef.html">ef</a></li><li class="progresssection"><a href="3-bd.html">bd</a></li><li class="progresssection"><a href="3-spt.html">spt</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresscurrent">bck</li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progressnext"><a href="3-rgn.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-tp.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-ifs.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-fgr.html">fgr</a></li><li class="progresssection"><a href="3-se.html">se</a></li><li class="progresssection"><a href="3-ef.html">ef</a></li><li class="progresssection"><a href="3-bd.html">bd</a></li><li class="progresssection"><a href="3-spt.html">spt</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresscurrent">bck</li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="3-rgn.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -167,7 +167,7 @@ Contents listing, so:
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-ef.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-ifs.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-fgr.html">fgr</a></li><li class="progresssection"><a href="3-se.html">se</a></li><li class="progresssection"><a href="3-ef.html">ef</a></li><li class="progresscurrent">bd</li><li class="progresssection"><a href="3-spt.html">spt</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progressnext"><a href="3-spt.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-ef.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-ifs.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-fgr.html">fgr</a></li><li class="progresssection"><a href="3-se.html">se</a></li><li class="progresssection"><a href="3-ef.html">ef</a></li><li class="progresscurrent">bd</li><li class="progresssection"><a href="3-spt.html">spt</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="3-spt.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -98,8 +98,8 @@ function togglePopup(material_id) {
|
|||
<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">"&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><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">exf</span><span class="plain-syntax">-></span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ifs.html#SP9" class="function-link"><span class="function-syntax">Index::link</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">exf</span><span class="plain-syntax">-></span><span class="identifier-syntax">name</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">exf</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ifs.html#SP9" class="function-link"><span class="function-syntax">Index::link</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">exf</span><span class="plain-syntax">-></span><span class="element-syntax">name</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="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"Filename: %s %N- owned by "</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">exf</span><span class="plain-syntax">-></span><span class="identifier-syntax">file_is_binary</span><span class="plain-syntax">)?</span><span class="string-syntax">"- binary "</span><span class="plain-syntax">:</span><span class="string-syntax">""</span><span class="plain-syntax">,</span>
|
||||
|
@ -119,7 +119,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-se.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-ifs.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-fgr.html">fgr</a></li><li class="progresssection"><a href="3-se.html">se</a></li><li class="progresscurrent">ef</li><li class="progresssection"><a href="3-bd.html">bd</a></li><li class="progresssection"><a href="3-spt.html">spt</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progressnext"><a href="3-bd.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-se.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-ifs.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-fgr.html">fgr</a></li><li class="progresssection"><a href="3-se.html">se</a></li><li class="progresscurrent">ef</li><li class="progresssection"><a href="3-bd.html">bd</a></li><li class="progresssection"><a href="3-spt.html">spt</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="3-bd.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -139,8 +139,8 @@ to match this width, preserving the aspect ratio.
|
|||
<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">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">bf</span><span class="plain-syntax">-></span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ifs.html#SP9" class="function-link"><span class="function-syntax">Index::link</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">bf</span><span class="plain-syntax">-></span><span class="identifier-syntax">name</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">bf</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ifs.html#SP9" class="function-link"><span class="function-syntax">Index::link</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">bf</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">));</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">rel</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Filenames::to_text_relative</span><span class="plain-syntax">(</span><span class="identifier-syntax">rel</span><span class="plain-syntax">, </span><span class="identifier-syntax">bf</span><span class="plain-syntax">-></span><span class="identifier-syntax">filename_of_image_file</span><span class="plain-syntax">,</span>
|
||||
|
@ -165,7 +165,7 @@ to match this width, preserving the aspect ratio.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-inf.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-ifs.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresscurrent">fgr</li><li class="progresssection"><a href="3-se.html">se</a></li><li class="progresssection"><a href="3-ef.html">ef</a></li><li class="progresssection"><a href="3-bd.html">bd</a></li><li class="progresssection"><a href="3-spt.html">spt</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progressnext"><a href="3-se.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-inf.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-ifs.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresscurrent">fgr</li><li class="progresssection"><a href="3-se.html">se</a></li><li class="progresssection"><a href="3-ef.html">ef</a></li><li class="progresssection"><a href="3-bd.html">bd</a></li><li class="progresssection"><a href="3-spt.html">spt</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="3-se.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -70,13 +70,13 @@
|
|||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">IXRegions::add_to_World_index</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">O</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">O</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Instances::of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">O</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_room</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Regions::enclosing</span><span class="plain-syntax">(</span><span class="identifier-syntax">O</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">R</span><span class="plain-syntax">) </span><span class="identifier-syntax">PL::HTMLMap::colour_chip</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">O</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">REGIONS_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">O</span><span class="plain-syntax">)-></span><span class="identifier-syntax">in_region_set_at</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">R</span><span class="plain-syntax">) </span><a href="4-hm.html#SP12" class="function-link"><span class="function-syntax">PL::HTMLMap::colour_chip</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">O</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">REGIONS_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">O</span><span class="plain-syntax">)-></span><span class="identifier-syntax">in_region_set_at</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-bck.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-ifs.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-fgr.html">fgr</a></li><li class="progresssection"><a href="3-se.html">se</a></li><li class="progresssection"><a href="3-ef.html">ef</a></li><li class="progresssection"><a href="3-bd.html">bd</a></li><li class="progresssection"><a href="3-spt.html">spt</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresscurrent">rgn</li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progressnext"><a href="3-tm.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-bck.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-ifs.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-fgr.html">fgr</a></li><li class="progresssection"><a href="3-se.html">se</a></li><li class="progresssection"><a href="3-ef.html">ef</a></li><li class="progresssection"><a href="3-bd.html">bd</a></li><li class="progresssection"><a href="3-spt.html">spt</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresscurrent">rgn</li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="3-tm.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Temporal Map</title>
|
||||
<title>Scenes</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">
|
||||
|
@ -45,9 +45,9 @@ function togglePopup(material_id) {
|
|||
<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="index.html"><span class="selectedlink">if</span></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-module/index.html">index</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>
|
||||
|
@ -67,12 +67,12 @@ function togglePopup(material_id) {
|
|||
</ul>
|
||||
</nav>
|
||||
<main role="main">
|
||||
<!--Weave of 'Temporal Map' generated by Inweb-->
|
||||
<!--Weave of 'Scenes' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">if</a></li><li><a href="index.html#3">Chapter 3: Space and Time</a></li><li><b>Temporal Map</b></li></ul></div>
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">index</a></li><li><a href="index.html#3">Chapter 3: Indexing for Plugins</a></li><li><b>Scenes</b></li></ul></div>
|
||||
<p class="purpose">Parallel to the World index of space is the Scenes index of time, and in this section we render it as HTML.</p>
|
||||
|
||||
<ul class="toc"><li><a href="3-tm2.html#SP2">§2. Table of Scenes</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="3-scn.html#SP2">§2. Table of Scenes</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b>The mapping of time is on the one hand simpler than the mapping of space
|
||||
since there is only one dimension, but on the other hand more complex since
|
||||
|
@ -83,21 +83,21 @@ 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">PL::Scenes::Index::index</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">nr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NUMBER_CREATED</span><span class="plain-syntax">(</span><span class="reserved-syntax">scene</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">scene</span><span class="plain-syntax"> **</span><span class="identifier-syntax">sorted</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Memory::calloc</span><span class="plain-syntax">(</span><span class="identifier-syntax">nr</span><span class="plain-syntax">, </span><span class="reserved-syntax">sizeof</span><span class="plain-syntax">(</span><span class="reserved-syntax">scene</span><span class="plain-syntax"> *), </span><span class="identifier-syntax">INDEX_SORTING_MREASON</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-tm2.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Sort the scenes</span><span class="named-paragraph-number">1.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXScenes::index</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">IXScenes::index</span></span>:<br/>Index File Services - <a href="2-ifs.html#SP6">§6</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">nr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NUMBER_CREATED</span><span class="plain-syntax">(</span><span class="identifier-syntax">scene</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">scene</span><span class="plain-syntax"> **</span><span class="identifier-syntax">sorted</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Memory::calloc</span><span class="plain-syntax">(</span><span class="identifier-syntax">nr</span><span class="plain-syntax">, </span><span class="reserved-syntax">sizeof</span><span class="plain-syntax">(</span><span class="identifier-syntax">scene</span><span class="plain-syntax"> *), </span><span class="constant-syntax">INDEX_SORTING_MREASON</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Sort 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-tm2.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Tabulate the scenes</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-tm2.html#SP1_3" class="named-paragraph-link"><span class="named-paragraph">Show the legend for the scene table icons</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="3-tm2.html#SP1_5" class="named-paragraph-link"><span class="named-paragraph">Give details of each scene in turn</span><span class="named-paragraph-number">1.5</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Tabulate the scenes</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-scn.html#SP1_3" class="named-paragraph-link"><span class="named-paragraph">Show the legend for the scene table icons</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="3-scn.html#SP1_5" class="named-paragraph-link"><span class="named-paragraph">Give details of each scene in turn</span><span class="named-paragraph-number">1.5</span></a></span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Memory::I7_array_free</span><span class="plain-syntax">(</span><span class="identifier-syntax">sorted</span><span class="plain-syntax">, </span><span class="identifier-syntax">INDEX_SORTING_MREASON</span><span class="plain-syntax">, </span><span class="identifier-syntax">nr</span><span class="plain-syntax">, </span><span class="reserved-syntax">sizeof</span><span class="plain-syntax">(</span><span class="reserved-syntax">scene</span><span class="plain-syntax"> *));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Memory::I7_array_free</span><span class="plain-syntax">(</span><span class="identifier-syntax">sorted</span><span class="plain-syntax">, </span><span class="constant-syntax">INDEX_SORTING_MREASON</span><span class="plain-syntax">, </span><span class="identifier-syntax">nr</span><span class="plain-syntax">, </span><span class="reserved-syntax">sizeof</span><span class="plain-syntax">(</span><span class="identifier-syntax">scene</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">PL::Scenes::Index::index_rules</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="function-syntax">IXScenes::index_rules</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">IXScenes::index_rules</span></span>:<br/>Index File Services - <a href="2-ifs.html#SP6">§6</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">Rulebooks::index_scene</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">); </span><span class="comment-syntax"> rules in generic scene-ending rulebooks</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-tm2.html#SP1_4" class="named-paragraph-link"><span class="named-paragraph">Show the generic scene-change rules</span><span class="named-paragraph-number">1.4</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP1_4" class="named-paragraph-link"><span class="named-paragraph">Show the generic scene-change rules</span><span class="named-paragraph-number">1.4</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP1_1" class="paragraph-anchor"></a><b>§1.1. </b>As usual, we sort with the C library's <span class="extract"><span class="extract-syntax">qsort</span></span>.
|
||||
|
@ -108,11 +108,11 @@ seems natural enough to learn in practice.
|
|||
|
||||
<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">i</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc</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">sc</span><span class="plain-syntax">, </span><span class="reserved-syntax">scene</span><span class="plain-syntax">) </span><span class="identifier-syntax">sorted</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">++] = </span><span class="identifier-syntax">sc</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">qsort</span><span class="plain-syntax">(</span><span class="identifier-syntax">sorted</span><span class="plain-syntax">, (</span><span class="identifier-syntax">size_t</span><span class="plain-syntax">) </span><span class="identifier-syntax">nr</span><span class="plain-syntax">, </span><span class="reserved-syntax">sizeof</span><span class="plain-syntax">(</span><span class="reserved-syntax">scene</span><span class="plain-syntax"> *), </span><a href="3-tm2.html#SP4" class="function-link"><span class="function-syntax">PL::Scenes::Index::compare_scenes</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc</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">sc</span><span class="plain-syntax">, </span><span class="identifier-syntax">scene</span><span class="plain-syntax">) </span><span class="identifier-syntax">sorted</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">++] = </span><span class="identifier-syntax">sc</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">qsort</span><span class="plain-syntax">(</span><span class="identifier-syntax">sorted</span><span class="plain-syntax">, (</span><span class="identifier-syntax">size_t</span><span class="plain-syntax">) </span><span class="identifier-syntax">nr</span><span class="plain-syntax">, </span><span class="reserved-syntax">sizeof</span><span class="plain-syntax">(</span><span class="identifier-syntax">scene</span><span class="plain-syntax"> *), </span><a href="3-scn.html#SP4" class="function-link"><span class="function-syntax">IXScenes::compare_scenes</span></a><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-tm2.html#SP1">§1</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP1">§1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_2" class="paragraph-anchor"></a><b>§1.2. </b>The sorted ordering is used as-is later on, when we get to the details, but
|
||||
for the tabulation it's refined further. First we have the start-of-play
|
||||
scenes, in sorted order; then scenes with a condition for their beginning
|
||||
|
@ -126,53 +126,52 @@ about and created but never made use of.)
|
|||
</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">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"><</span><span class="identifier-syntax">nr</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">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sorted</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">sc</span><span class="plain-syntax">-></span><span class="element-syntax">start_of_play</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">sc</span><span class="plain-syntax"> == </span><span class="identifier-syntax">SC_entire_game</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><a href="3-tm2.html#SP2" class="function-link"><span class="function-syntax">PL::Scenes::Index::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">sc</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">sorted</span><span class="plain-syntax">, </span><span class="identifier-syntax">nr</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">nr</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">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sorted</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">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">start_of_play</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">sc</span><span class="plain-syntax"> == </span><span class="identifier-syntax">SC_entire_game</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><a href="3-scn.html#SP2" class="function-link"><span class="function-syntax">IXScenes::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">sc</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">sorted</span><span class="plain-syntax">, </span><span class="identifier-syntax">nr</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">nr</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">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sorted</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">sc</span><span class="plain-syntax">-></span><span class="element-syntax">anchor_condition</span><span class="plain-syntax">[0]) && (</span><span class="identifier-syntax">sc</span><span class="plain-syntax"> != </span><span class="identifier-syntax">SC_entire_game</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><a href="3-tm2.html#SP2" class="function-link"><span class="function-syntax">PL::Scenes::Index::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">sc</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">sorted</span><span class="plain-syntax">, </span><span class="identifier-syntax">nr</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">nr</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">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sorted</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">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[0].</span><span class="identifier-syntax">anchor_condition</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">sc</span><span class="plain-syntax"> != </span><span class="identifier-syntax">SC_entire_game</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><a href="3-scn.html#SP2" class="function-link"><span class="function-syntax">IXScenes::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">sc</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">sorted</span><span class="plain-syntax">, </span><span class="identifier-syntax">nr</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">nr</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">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sorted</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">sc</span><span class="plain-syntax">-></span><span class="element-syntax">indexed</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-tm2.html#SP2" class="function-link"><span class="function-syntax">PL::Scenes::Index::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">sc</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">sorted</span><span class="plain-syntax">, </span><span class="identifier-syntax">nr</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">nr</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">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sorted</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">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">indexed</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-scn.html#SP2" class="function-link"><span class="function-syntax">IXScenes::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">sc</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">sorted</span><span class="plain-syntax">, </span><span class="identifier-syntax">nr</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-tm2.html#SP1">§1</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP1">§1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_3" class="paragraph-anchor"></a><b>§1.3. </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.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">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">"Legend: "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-tm2.html#SP3" class="function-link"><span class="function-syntax">PL::Scenes::Index::scene_icon_legend</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"WPB"</span><span class="plain-syntax">, </span><span class="string-syntax">"Begins when play begins"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-scn.html#SP3" class="function-link"><span class="function-syntax">IXScenes::scene_icon_legend</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"WPB"</span><span class="plain-syntax">, </span><span class="string-syntax">"Begins when play begins"</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><a href="3-tm2.html#SP3" class="function-link"><span class="function-syntax">PL::Scenes::Index::scene_icon_legend</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"WhenC"</span><span class="plain-syntax">, </span><span class="string-syntax">"can begin whenever some condition holds"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-scn.html#SP3" class="function-link"><span class="function-syntax">IXScenes::scene_icon_legend</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"WhenC"</span><span class="plain-syntax">, </span><span class="string-syntax">"can begin whenever some condition holds"</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><a href="3-tm2.html#SP3" class="function-link"><span class="function-syntax">PL::Scenes::Index::scene_icon_legend</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"Segue"</span><span class="plain-syntax">, </span><span class="string-syntax">"follows when a previous scene ends"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-scn.html#SP3" class="function-link"><span class="function-syntax">IXScenes::scene_icon_legend</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"Segue"</span><span class="plain-syntax">, </span><span class="string-syntax">"follows when a previous scene ends"</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><a href="3-tm2.html#SP3" class="function-link"><span class="function-syntax">PL::Scenes::Index::scene_icon_legend</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"Simul"</span><span class="plain-syntax">, </span><span class="string-syntax">"begins simultaneously"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-scn.html#SP3" class="function-link"><span class="function-syntax">IXScenes::scene_icon_legend</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"Simul"</span><span class="plain-syntax">, </span><span class="string-syntax">"begins simultaneously"</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><a href="3-tm2.html#SP3" class="function-link"><span class="function-syntax">PL::Scenes::Index::scene_icon_legend</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"WNever"</span><span class="plain-syntax">, </span><span class="string-syntax">"never begins"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-scn.html#SP3" class="function-link"><span class="function-syntax">IXScenes::scene_icon_legend</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"WNever"</span><span class="plain-syntax">, </span><span class="string-syntax">"never begins"</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><a href="3-tm2.html#SP3" class="function-link"><span class="function-syntax">PL::Scenes::Index::scene_icon_legend</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"ENever"</span><span class="plain-syntax">, </span><span class="string-syntax">"never ends"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-scn.html#SP3" class="function-link"><span class="function-syntax">IXScenes::scene_icon_legend</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"ENever"</span><span class="plain-syntax">, </span><span class="string-syntax">"never ends"</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><a href="3-tm2.html#SP3" class="function-link"><span class="function-syntax">PL::Scenes::Index::scene_icon_legend</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"Recurring"</span><span class="plain-syntax">, </span><span class="string-syntax">"recurring (can happen more than once)"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-scn.html#SP3" class="function-link"><span class="function-syntax">IXScenes::scene_icon_legend</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"Recurring"</span><span class="plain-syntax">, </span><span class="string-syntax">"recurring (can happen more than once)"</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">". <i>Scene names are italicised when and if they appear for a second "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"or subsequent time because the scene can begin in more than one way</i>."</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-tm2.html#SP1">§1</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP1">§1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_4" class="paragraph-anchor"></a><b>§1.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Show the generic scene-change rules</span><span class="named-paragraph-number">1.4</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">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">Index::anchor</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"SRULES"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ifs.html#SP11" class="function-link"><span class="function-syntax">Index::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">"SRULES"</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">"<b>General rules applying to scene changes</b>"</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">Rulebooks::index_rules_box</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"When a scene begins"</span><span class="plain-syntax">, </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">,</span>
|
||||
|
@ -180,20 +179,19 @@ about and created but never made use of.)
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Rulebooks::index_rules_box</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"When a scene ends"</span><span class="plain-syntax">, </span><span class="identifier-syntax">EMPTY_WORDING</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">built_in_rulebooks</span><span class="plain-syntax">[</span><span class="identifier-syntax">WHEN_SCENE_ENDS_RB</span><span class="plain-syntax">], </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-tm2.html#SP1">§1</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP1">§1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_5" class="paragraph-anchor"></a><b>§1.5. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Give details of each scene in turn</span><span class="named-paragraph-number">1.5</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Index::anchor</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"SDETAILS"</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="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"><</span><span class="identifier-syntax">nr</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ifs.html#SP11" class="function-link"><span class="function-syntax">Index::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">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">nr</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">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">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sorted</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">];</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-tm2.html#SP1_5_1" class="named-paragraph-link"><span class="named-paragraph">Give details of a specific scene</span><span class="named-paragraph-number">1.5.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sorted</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">];</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP1_5_1" class="named-paragraph-link"><span class="named-paragraph">Give details of a specific scene</span><span class="named-paragraph-number">1.5.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-tm2.html#SP1">§1</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP1">§1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_5_1" class="paragraph-anchor"></a><b>§1.5.1. </b>The curious condition about end 1 here is to avoid printing "Ends: Never"
|
||||
in cases where fancier ends for the scene exist, so that the scene can, in
|
||||
fact, end.
|
||||
|
@ -203,34 +201,33 @@ fact, end.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-tm2.html#SP1_5_1_1" class="named-paragraph-link"><span class="named-paragraph">Index the name and recurrence status of the scene</span><span class="named-paragraph-number">1.5.1.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">sc</span><span class="plain-syntax"> == </span><span class="identifier-syntax">SC_entire_game</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="3-tm2.html#SP1_5_1_2" class="named-paragraph-link"><span class="named-paragraph">Explain the Entire Game scene</span><span class="named-paragraph-number">1.5.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-scn.html#SP1_5_1_1" class="named-paragraph-link"><span class="named-paragraph">Index the name and recurrence status of the scene</span><span class="named-paragraph-number">1.5.1.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">sc</span><span class="plain-syntax"> == </span><span class="identifier-syntax">SC_entire_game</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP1_5_1_2" class="named-paragraph-link"><span class="named-paragraph">Explain the Entire Game scene</span><span class="named-paragraph-number">1.5.1.2</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">end</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">end</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">end</span><span class="function-syntax"><sc-></span><span class="element-syntax">no_ends</span><span class="plain-syntax">; </span><span class="identifier-syntax">end</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">end</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">no_ends</span><span class="plain-syntax"> > </span><span class="constant-syntax">2</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">anchor_condition</span><span class="plain-syntax">[1]==</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">anchor_scene</span><span class="plain-syntax">[1]==</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">end</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">end</span><span class="function-syntax"><sc-></span><span class="identifier-syntax">no_ends</span><span class="plain-syntax">; </span><span class="identifier-syntax">end</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">end</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">no_ends</span><span class="plain-syntax"> > </span><span class="constant-syntax">2</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[1].</span><span class="identifier-syntax">anchor_condition</span><span class="plain-syntax">==</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[1].</span><span class="identifier-syntax">anchor_connectors</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">continue</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-tm2.html#SP1_5_1_4" class="named-paragraph-link"><span class="named-paragraph">Index the conditions for this scene end to occur</span><span class="named-paragraph-number">1.5.1.4</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-tm2.html#SP1_5_1_5" class="named-paragraph-link"><span class="named-paragraph">Index the rules which apply when this scene end occurs</span><span class="named-paragraph-number">1.5.1.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">end</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="3-tm2.html#SP1_5_1_3" class="named-paragraph-link"><span class="named-paragraph">Index the rules which apply during this scene</span><span class="named-paragraph-number">1.5.1.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP1_5_1_4" class="named-paragraph-link"><span class="named-paragraph">Index the conditions for this scene end to occur</span><span class="named-paragraph-number">1.5.1.4</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP1_5_1_5" class="named-paragraph-link"><span class="named-paragraph">Index the rules which apply when this scene end occurs</span><span class="named-paragraph-number">1.5.1.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">end</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="3-scn.html#SP1_5_1_3" class="named-paragraph-link"><span class="named-paragraph">Index the rules which apply during this scene</span><span class="named-paragraph-number">1.5.1.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-tm2.html#SP1_5">§1.5</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP1_5">§1.5</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_5_1_1" class="paragraph-anchor"></a><b>§1.5.1.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index the name and recurrence status of the scene</span><span class="named-paragraph-number">1.5.1.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::open_indented_p</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="string-syntax">"hanging"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Index::anchor_numbered</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</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">"<b>The <i>%+W</i> scene</b>"</span><span class="plain-syntax">, </span><a href="3-scn.html#SP16" class="function-link"><span class="function-syntax">PL::Scenes::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Index::link</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">scene_declared_at</span><span class="plain-syntax">)));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ifs.html#SP11" class="function-link"><span class="function-syntax">Index::anchor_numbered</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</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">"<b>The <i>%+W</i> scene</b>"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Scenes::get_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ifs.html#SP9" class="function-link"><span class="function-syntax">Index::link</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">Instances::get_creating_sentence</span><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_instance</span><span class="plain-syntax">))));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">PropertyInferences::either_or_state</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Instances::as_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">as_instance</span><span class="plain-syntax">), </span><span class="identifier-syntax">P_recurring</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">Instances::as_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_instance</span><span class="plain-syntax">), </span><span class="identifier-syntax">P_recurring</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">"&nbsp;&nbsp;<i>recurring</i>"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-tm2.html#SP1_5_1">§1.5.1</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP1_5_1">§1.5.1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_5_1_2" class="paragraph-anchor"></a><b>§1.5.1.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Explain the Entire Game scene</span><span class="named-paragraph-number">1.5.1.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
|
@ -241,7 +238,7 @@ fact, end.
|
|||
<span class="plain-syntax"> </span><span class="string-syntax">"it too will end but then begin again.)"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-tm2.html#SP1_5_1">§1.5.1</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP1_5_1">§1.5.1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_5_1_3" class="paragraph-anchor"></a><b>§1.5.1.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index the rules which apply during this scene</span><span class="named-paragraph-number">1.5.1.3</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
|
@ -262,28 +259,28 @@ fact, end.
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-tm2.html#SP1_5_1">§1.5.1</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP1_5_1">§1.5.1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_5_1_4" class="paragraph-anchor"></a><b>§1.5.1.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index the conditions for this scene end to occur</span><span class="named-paragraph-number">1.5.1.4</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::open_indented_p</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="string-syntax">"hanging"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<i>%s "</span><span class="plain-syntax">, (</span><span class="identifier-syntax">end</span><span class="plain-syntax">==0)?</span><span class="string-syntax">"Begins"</span><span class="plain-syntax">:</span><span class="string-syntax">"Ends"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">end</span><span class="plain-syntax"> >= </span><span class="constant-syntax">2</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W "</span><span class="plain-syntax">, </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">end_names</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">]);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">end</span><span class="plain-syntax"> >= </span><span class="constant-syntax">2</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W "</span><span class="plain-syntax">, </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">].</span><span class="identifier-syntax">end_names</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">"when:</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">count</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-tm2.html#SP1_5_1_4_1" class="named-paragraph-link"><span class="named-paragraph">Index the play-begins condition</span><span class="named-paragraph-number">1.5.1.4.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-tm2.html#SP1_5_1_4_2" class="named-paragraph-link"><span class="named-paragraph">Index the I7 condition for a scene to end</span><span class="named-paragraph-number">1.5.1.4.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-tm2.html#SP1_5_1_4_3" class="named-paragraph-link"><span class="named-paragraph">Index connections to other scene ends</span><span class="named-paragraph-number">1.5.1.4.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP1_5_1_4_1" class="named-paragraph-link"><span class="named-paragraph">Index the play-begins condition</span><span class="named-paragraph-number">1.5.1.4.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP1_5_1_4_2" class="named-paragraph-link"><span class="named-paragraph">Index the I7 condition for a scene to end</span><span class="named-paragraph-number">1.5.1.4.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP1_5_1_4_3" class="named-paragraph-link"><span class="named-paragraph">Index connections to other scene ends</span><span class="named-paragraph-number">1.5.1.4.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">count</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<b>never</b>"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-tm2.html#SP1_5_1">§1.5.1</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP1_5_1">§1.5.1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_5_1_4_1" class="paragraph-anchor"></a><b>§1.5.1.4.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index the play-begins condition</span><span class="named-paragraph-number">1.5.1.4.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">end</span><span class="plain-syntax">==0) && (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">start_of_play</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">end</span><span class="plain-syntax">==0) && (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">start_of_play</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">count</span><span class="plain-syntax"> > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="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="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<i>or when:</i> "</span><span class="plain-syntax">);</span>
|
||||
|
@ -292,52 +289,51 @@ fact, end.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">count</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-tm2.html#SP1_5_1_4">§1.5.1.4</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP1_5_1_4">§1.5.1.4</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_5_1_4_2" class="paragraph-anchor"></a><b>§1.5.1.4.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index the I7 condition for a scene to end</span><span class="named-paragraph-number">1.5.1.4.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">anchor_condition</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">]) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">].</span><span class="identifier-syntax">anchor_condition</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">count</span><span class="plain-syntax"> > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="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="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<i>or when:</i> "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">anchor_condition</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">]));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Index::link</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">anchor_condition_set</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">])));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">].</span><span class="identifier-syntax">anchor_condition</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ifs.html#SP9" class="function-link"><span class="function-syntax">Index::link</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">].</span><span class="identifier-syntax">anchor_condition_set</span><span class="plain-syntax">)));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">count</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-tm2.html#SP1_5_1_4">§1.5.1.4</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP1_5_1_4">§1.5.1.4</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_5_1_4_3" class="paragraph-anchor"></a><b>§1.5.1.4.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index connections to other scene ends</span><span class="named-paragraph-number">1.5.1.4.3</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">scene_connector</span><span class="plain-syntax"> *</span><span class="identifier-syntax">scon</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">scon</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">anchor_scene</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</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">-></span><span class="element-syntax">next</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">scene_connector</span><span class="plain-syntax"> *</span><span class="identifier-syntax">scon</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">].</span><span class="identifier-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">-></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><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">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="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<i>or when:</i> "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">NW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::get_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">scon</span><span class="plain-syntax">-></span><span class="element-syntax">connect_to</span><span class="plain-syntax">-></span><span class="element-syntax">as_instance</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<b>%+W</b> <i>%s</i>"</span><span class="plain-syntax">, </span><span class="identifier-syntax">NW</span><span class="plain-syntax">, (</span><span class="identifier-syntax">scon</span><span class="plain-syntax">-></span><span class="element-syntax">end</span><span class="plain-syntax">==0)?</span><span class="string-syntax">"begins"</span><span class="plain-syntax">:</span><span class="string-syntax">"ends"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">scon</span><span class="plain-syntax">-></span><span class="element-syntax">end</span><span class="plain-syntax"> >= </span><span class="constant-syntax">2</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" %+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">scon</span><span class="plain-syntax">-></span><span class="element-syntax">connect_to</span><span class="plain-syntax">-></span><span class="element-syntax">end_names</span><span class="plain-syntax">[</span><span class="identifier-syntax">scon</span><span class="plain-syntax">-></span><span class="element-syntax">end</span><span class="plain-syntax">]);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Index::link</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">scon</span><span class="plain-syntax">-></span><span class="element-syntax">where_said</span><span class="plain-syntax">)));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">NW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::get_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">scon</span><span class="plain-syntax">-></span><span class="identifier-syntax">connect_to</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_instance</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<b>%+W</b> <i>%s</i>"</span><span class="plain-syntax">, </span><span class="identifier-syntax">NW</span><span class="plain-syntax">, (</span><span class="identifier-syntax">scon</span><span class="plain-syntax">-></span><span class="identifier-syntax">end</span><span class="plain-syntax">==0)?</span><span class="string-syntax">"begins"</span><span class="plain-syntax">:</span><span class="string-syntax">"ends"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">scon</span><span class="plain-syntax">-></span><span class="identifier-syntax">end</span><span class="plain-syntax"> >= </span><span class="constant-syntax">2</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" %+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">scon</span><span class="plain-syntax">-></span><span class="identifier-syntax">connect_to</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">scon</span><span class="plain-syntax">-></span><span class="identifier-syntax">end</span><span class="plain-syntax">].</span><span class="identifier-syntax">end_names</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ifs.html#SP9" class="function-link"><span class="function-syntax">Index::link</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">scon</span><span class="plain-syntax">-></span><span class="identifier-syntax">where_said</span><span class="plain-syntax">)));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">count</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-tm2.html#SP1_5_1_4">§1.5.1.4</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP1_5_1_4">§1.5.1.4</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_5_1_5" class="paragraph-anchor"></a><b>§1.5.1.5. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index the rules which apply when this scene end occurs</span><span class="named-paragraph-number">1.5.1.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">Rulebooks::is_empty</span><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">end_rulebook</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">], </span><span class="identifier-syntax">Rulebooks::no_rule_context</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">Rulebooks::is_empty</span><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">].</span><span class="identifier-syntax">end_rulebook</span><span class="plain-syntax">, </span><span class="identifier-syntax">Rulebooks::no_rule_context</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">HTML::open_indented_p</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="string-syntax">"hanging"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<i>What happens:</i>"</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">ignore_me</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">Rulebooks::index</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">end_rulebook</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">], </span><span class="string-syntax">""</span><span class="plain-syntax">, </span><span class="identifier-syntax">Rulebooks::no_rule_context</span><span class="plain-syntax">(), &</span><span class="identifier-syntax">ignore_me</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Rulebooks::index</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">].</span><span class="identifier-syntax">end_rulebook</span><span class="plain-syntax">, </span><span class="string-syntax">""</span><span class="plain-syntax">, </span><span class="identifier-syntax">Rulebooks::no_rule_context</span><span class="plain-syntax">(), &</span><span class="identifier-syntax">ignore_me</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-tm2.html#SP1_5_1">§1.5.1</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP1_5_1">§1.5.1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. Table of Scenes. </b>We finally return to the table of scenes. The following is recursive, and
|
||||
is called at the top level for each scene in turn which starts at the start
|
||||
of play (see above).
|
||||
|
@ -355,19 +351,19 @@ on the initial call when <span class="extract"><span class="extract-syntax">dept
|
|||
<span class="definition-keyword">define</span> <span class="constant-syntax">NEVER_HAPPENS_END</span><span class="plain-syntax"> -2</span>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Scenes::Index::index_from_scene</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">PL::Scenes::Index::index_from_scene</span></span>:<br/><a href="3-tm2.html#SP1_2">§1.2</a>, <a href="3-tm2.html#SP2_5">§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">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc</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">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc_from</span><span class="plain-syntax">, </span><span class="reserved-syntax">scene</span><span class="plain-syntax"> **</span><span class="identifier-syntax">sorted</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">nr</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXScenes::index_from_scene</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">IXScenes::index_from_scene</span></span>:<br/><a href="3-scn.html#SP1_2">§1.2</a>, <a href="3-scn.html#SP2_5">§2.5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc</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="identifier-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc_from</span><span class="plain-syntax">, </span><span class="identifier-syntax">scene</span><span class="plain-syntax"> **</span><span class="identifier-syntax">sorted</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">nr</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-tm2.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-tm2.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>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">indexed</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-tm2.html#SP2_3" class="named-paragraph-link"><span class="named-paragraph">Show the never-ends icon if appropriate</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="3-tm2.html#SP2_4" class="named-paragraph-link"><span class="named-paragraph">Show the recurring icon if appropriate</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="3-scn.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-scn.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>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">indexed</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP2_3" class="named-paragraph-link"><span class="named-paragraph">Show the never-ends icon if appropriate</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="3-scn.html#SP2_4" class="named-paragraph-link"><span class="named-paragraph">Show the recurring icon if appropriate</span><span class="named-paragraph-number">2.4</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">indexed</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">sc</span><span class="plain-syntax">-></span><span class="element-syntax">indexed</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-tm2.html#SP2_5" class="named-paragraph-link"><span class="named-paragraph">Indent to tabulate other scenes connected to the ends of this one</span><span class="named-paragraph-number">2.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">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">indexed</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">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">indexed</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP2_5" class="named-paragraph-link"><span class="named-paragraph">Indent to tabulate other scenes connected to the ends of this one</span><span class="named-paragraph-number">2.5</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>§2.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Indicate the route by which this scene was reached</span><span class="named-paragraph-number">2.1</span></span><span class="comment-syntax"> =</span>
|
||||
|
@ -375,52 +371,52 @@ on the initial call when <span class="extract"><span class="extract-syntax">dept
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax">(</span><span class="identifier-syntax">end</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><a href="3-tm2.html#SP3" class="function-link"><span class="function-syntax">PL::Scenes::Index::scene_icon</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"Simul"</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><a href="3-tm2.html#SP3" class="function-link"><span class="function-syntax">PL::Scenes::Index::scene_icon</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"Segue"</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">0</span><span class="plain-syntax">: </span><a href="3-scn.html#SP3" class="function-link"><span class="function-syntax">IXScenes::scene_icon</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"Simul"</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><a href="3-scn.html#SP3" class="function-link"><span class="function-syntax">IXScenes::scene_icon</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"Segue"</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="identifier-syntax">START_OF_PLAY_END:</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="identifier-syntax">NEVER_HAPPENS_END:</span><span class="plain-syntax"> </span><a href="3-tm2.html#SP3" class="function-link"><span class="function-syntax">PL::Scenes::Index::scene_icon</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"WNever"</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="identifier-syntax">NEVER_HAPPENS_END:</span><span class="plain-syntax"> </span><a href="3-scn.html#SP3" class="function-link"><span class="function-syntax">IXScenes::scene_icon</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"WNever"</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><a href="3-tm2.html#SP3" class="function-link"><span class="function-syntax">PL::Scenes::Index::scene_icon</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"Segue"</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">"[ends %+W]&nbsp;"</span><span class="plain-syntax">, </span><span class="identifier-syntax">sc_from</span><span class="plain-syntax">-></span><span class="element-syntax">end_names</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">]); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="3-scn.html#SP3" class="function-link"><span class="function-syntax">IXScenes::scene_icon</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"Segue"</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">"[ends %+W]&nbsp;"</span><span class="plain-syntax">, </span><span class="identifier-syntax">sc_from</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">].</span><span class="identifier-syntax">end_names</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">indexed</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">depth</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">sc</span><span class="plain-syntax"> == </span><span class="identifier-syntax">SC_entire_game</span><span class="plain-syntax">) </span><a href="3-tm2.html#SP3" class="function-link"><span class="function-syntax">PL::Scenes::Index::scene_icon</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"WPB"</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">sc</span><span class="plain-syntax">-></span><span class="element-syntax">anchor_condition</span><span class="plain-syntax">[0]) </span><a href="3-tm2.html#SP3" class="function-link"><span class="function-syntax">PL::Scenes::Index::scene_icon</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"WhenC"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">start_of_play</span><span class="plain-syntax">) </span><a href="3-tm2.html#SP3" class="function-link"><span class="function-syntax">PL::Scenes::Index::scene_icon</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"WPB"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">indexed</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">depth</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">sc</span><span class="plain-syntax"> == </span><span class="identifier-syntax">SC_entire_game</span><span class="plain-syntax">) </span><a href="3-scn.html#SP3" class="function-link"><span class="function-syntax">IXScenes::scene_icon</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"WPB"</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">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[0].</span><span class="identifier-syntax">anchor_condition</span><span class="plain-syntax">) </span><a href="3-scn.html#SP3" class="function-link"><span class="function-syntax">IXScenes::scene_icon</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"WhenC"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">start_of_play</span><span class="plain-syntax">) </span><a href="3-scn.html#SP3" class="function-link"><span class="function-syntax">IXScenes::scene_icon</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"WPB"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-tm2.html#SP2">§2</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_2" class="paragraph-anchor"></a><b>§2.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Name the scene in the table, italicised if we've seen it already</span><span class="named-paragraph-number">2.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">indexed</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<i>"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Instances::get_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">as_instance</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">sc</span><span class="plain-syntax">-></span><span class="element-syntax">indexed</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"</i>"</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">Index::below_link_numbered</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">indexed</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<i>"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Instances::get_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_instance</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">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">indexed</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"</i>"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="2-ifs.html#SP11" class="function-link"><span class="function-syntax">Index::below_link_numbered</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-tm2.html#SP2">§2</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_3" class="paragraph-anchor"></a><b>§2.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Show the never-ends icon if appropriate</span><span class="named-paragraph-number">2.3</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">ways_to_end</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">e</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">e</span><span class="plain-syntax">=1; </span><span class="identifier-syntax">e</span><span class="function-syntax"><sc-></span><span class="element-syntax">no_ends</span><span class="plain-syntax">; </span><span class="identifier-syntax">e</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">anchor_scene</span><span class="plain-syntax">[</span><span class="identifier-syntax">e</span><span class="plain-syntax">]) </span><span class="identifier-syntax">ways_to_end</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">anchor_condition</span><span class="plain-syntax">[</span><span class="identifier-syntax">e</span><span class="plain-syntax">]) </span><span class="identifier-syntax">ways_to_end</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">ways_to_end</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">e</span><span class="plain-syntax">=1; </span><span class="identifier-syntax">e</span><span class="function-syntax"><sc-></span><span class="identifier-syntax">no_ends</span><span class="plain-syntax">; </span><span class="identifier-syntax">e</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">e</span><span class="plain-syntax">].</span><span class="identifier-syntax">anchor_connectors</span><span class="plain-syntax">) </span><span class="identifier-syntax">ways_to_end</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">e</span><span class="plain-syntax">].</span><span class="identifier-syntax">anchor_condition</span><span class="plain-syntax">) </span><span class="identifier-syntax">ways_to_end</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">ways_to_end</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><a href="3-tm2.html#SP3" class="function-link"><span class="function-syntax">PL::Scenes::Index::scene_icon_append</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"ENever"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ways_to_end</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><a href="3-scn.html#SP3" class="function-link"><span class="function-syntax">IXScenes::scene_icon_append</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"ENever"</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-tm2.html#SP2">§2</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_4" class="paragraph-anchor"></a><b>§2.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Show the recurring icon if appropriate</span><span class="named-paragraph-number">2.4</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subj</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::as_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">as_instance</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subj</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::as_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_instance</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">PropertyInferences::either_or_state</span><span class="plain-syntax">(</span><span class="identifier-syntax">subj</span><span class="plain-syntax">, </span><span class="identifier-syntax">P_recurring</span><span class="plain-syntax">) > </span><span class="identifier-syntax">UNKNOWN_CE</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="3-tm2.html#SP3" class="function-link"><span class="function-syntax">PL::Scenes::Index::scene_icon_append</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"Recurring"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-scn.html#SP3" class="function-link"><span class="function-syntax">IXScenes::scene_icon_append</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"Recurring"</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-tm2.html#SP2">§2</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_5" class="paragraph-anchor"></a><b>§2.5. </b>And this is where the routine recurses, so that consequent scenes are
|
||||
tabulated underneath the present one, indented one step further in (since
|
||||
indentation is coupled to <span class="extract"><span class="extract-syntax">depth</span></span>). First we recurse to scenes which end when
|
||||
|
@ -431,40 +427,39 @@ this one does; then to scenes which begin when this one ends.
|
|||
</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">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"><</span><span class="identifier-syntax">nr</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">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sorted</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">scene_connector</span><span class="plain-syntax"> *</span><span class="identifier-syntax">scon</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">scon</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sc2</span><span class="plain-syntax">-></span><span class="element-syntax">anchor_scene</span><span class="plain-syntax">[0]; </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">-></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><span class="identifier-syntax">scon</span><span class="plain-syntax">-></span><span class="element-syntax">connect_to</span><span class="plain-syntax"> == </span><span class="identifier-syntax">sc</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">scon</span><span class="plain-syntax">-></span><span class="element-syntax">end</span><span class="plain-syntax"> >= </span><span class="constant-syntax">1</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><a href="3-tm2.html#SP2" class="function-link"><span class="function-syntax">PL::Scenes::Index::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">sc2</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><span class="identifier-syntax">scon</span><span class="plain-syntax">-></span><span class="element-syntax">end</span><span class="plain-syntax">, </span><span class="identifier-syntax">sc</span><span class="plain-syntax">, </span><span class="identifier-syntax">sorted</span><span class="plain-syntax">, </span><span class="identifier-syntax">nr</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">nr</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">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sorted</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">scene_connector</span><span class="plain-syntax"> *</span><span class="identifier-syntax">scon</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">scon</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sc2</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[0].</span><span class="identifier-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">-></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><span class="identifier-syntax">scon</span><span class="plain-syntax">-></span><span class="identifier-syntax">connect_to</span><span class="plain-syntax"> == </span><span class="identifier-syntax">sc</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">scon</span><span class="plain-syntax">-></span><span class="identifier-syntax">end</span><span class="plain-syntax"> >= </span><span class="constant-syntax">1</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><a href="3-scn.html#SP2" class="function-link"><span class="function-syntax">IXScenes::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">sc2</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><span class="identifier-syntax">scon</span><span class="plain-syntax">-></span><span class="identifier-syntax">end</span><span class="plain-syntax">, </span><span class="identifier-syntax">sc</span><span class="plain-syntax">, </span><span class="identifier-syntax">sorted</span><span class="plain-syntax">, </span><span class="identifier-syntax">nr</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">nr</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">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sorted</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">scene_connector</span><span class="plain-syntax"> *</span><span class="identifier-syntax">scon</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">scon</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sc2</span><span class="plain-syntax">-></span><span class="element-syntax">anchor_scene</span><span class="plain-syntax">[0]; </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">-></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><span class="identifier-syntax">scon</span><span class="plain-syntax">-></span><span class="element-syntax">connect_to</span><span class="plain-syntax"> == </span><span class="identifier-syntax">sc</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">scon</span><span class="plain-syntax">-></span><span class="element-syntax">end</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-tm2.html#SP2" class="function-link"><span class="function-syntax">PL::Scenes::Index::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">sc2</span><span class="plain-syntax">, </span><span class="identifier-syntax">depth</span><span class="plain-syntax">, </span><span class="identifier-syntax">scon</span><span class="plain-syntax">-></span><span class="element-syntax">end</span><span class="plain-syntax">, </span><span class="identifier-syntax">sc</span><span class="plain-syntax">, </span><span class="identifier-syntax">sorted</span><span class="plain-syntax">, </span><span class="identifier-syntax">nr</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">nr</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">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sorted</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">scene_connector</span><span class="plain-syntax"> *</span><span class="identifier-syntax">scon</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">scon</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sc2</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[0].</span><span class="identifier-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">-></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><span class="identifier-syntax">scon</span><span class="plain-syntax">-></span><span class="identifier-syntax">connect_to</span><span class="plain-syntax"> == </span><span class="identifier-syntax">sc</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">scon</span><span class="plain-syntax">-></span><span class="identifier-syntax">end</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-scn.html#SP2" class="function-link"><span class="function-syntax">IXScenes::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">sc2</span><span class="plain-syntax">, </span><span class="identifier-syntax">depth</span><span class="plain-syntax">, </span><span class="identifier-syntax">scon</span><span class="plain-syntax">-></span><span class="identifier-syntax">end</span><span class="plain-syntax">, </span><span class="identifier-syntax">sc</span><span class="plain-syntax">, </span><span class="identifier-syntax">sorted</span><span class="plain-syntax">, </span><span class="identifier-syntax">nr</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-tm2.html#SP2">§2</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. </b>We have been using:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Scenes::Index::scene_icon</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">PL::Scenes::Index::scene_icon</span></span>:<br/><a href="3-tm2.html#SP2_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">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">si</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="3-tm2.html#SP3" class="function-link"><span class="function-syntax">PL::Scenes::Index::scene_icon_unspaced</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">si</span><span class="plain-syntax">); </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&nbsp;&nbsp;"</span><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXScenes::scene_icon</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">IXScenes::scene_icon</span></span>:<br/><a href="3-scn.html#SP2_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">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">si</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="3-scn.html#SP3" class="function-link"><span class="function-syntax">IXScenes::scene_icon_unspaced</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">si</span><span class="plain-syntax">); </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&nbsp;&nbsp;"</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">PL::Scenes::Index::scene_icon_append</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">PL::Scenes::Index::scene_icon_append</span></span>:<br/><a href="3-tm2.html#SP2_3">§2.3</a>, <a href="3-tm2.html#SP2_4">§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">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">si</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">"&nbsp;&nbsp;"</span><span class="plain-syntax">); </span><a href="3-tm2.html#SP3" class="function-link"><span class="function-syntax">PL::Scenes::Index::scene_icon_unspaced</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">si</span><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXScenes::scene_icon_append</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">IXScenes::scene_icon_append</span></span>:<br/><a href="3-scn.html#SP2_3">§2.3</a>, <a href="3-scn.html#SP2_4">§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">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">si</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">"&nbsp;&nbsp;"</span><span class="plain-syntax">); </span><a href="3-scn.html#SP3" class="function-link"><span class="function-syntax">IXScenes::scene_icon_unspaced</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">si</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">PL::Scenes::Index::scene_icon_legend</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">PL::Scenes::Index::scene_icon_legend</span></span>:<br/><a href="3-tm2.html#SP1_3">§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">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">si</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gloss</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="3-tm2.html#SP3" class="function-link"><span class="function-syntax">PL::Scenes::Index::scene_icon_unspaced</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">si</span><span class="plain-syntax">); </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&nbsp;<i>%s</i>"</span><span class="plain-syntax">, </span><span class="identifier-syntax">gloss</span><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXScenes::scene_icon_legend</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">IXScenes::scene_icon_legend</span></span>:<br/><a href="3-scn.html#SP1_3">§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">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">si</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gloss</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="3-scn.html#SP3" class="function-link"><span class="function-syntax">IXScenes::scene_icon_unspaced</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">si</span><span class="plain-syntax">); </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&nbsp;<i>%s</i>"</span><span class="plain-syntax">, </span><span class="identifier-syntax">gloss</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">PL::Scenes::Index::scene_icon_unspaced</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">si</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXScenes::scene_icon_unspaced</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">si</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_TAG_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"img"</span><span class="plain-syntax">, </span><span class="string-syntax">"border=0 src=inform:/scene_icons/%s.png"</span><span class="plain-syntax">, </span><span class="identifier-syntax">si</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
@ -474,18 +469,18 @@ 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">PL::Scenes::Index::compare_scenes</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">PL::Scenes::Index::compare_scenes</span></span>:<br/><a href="3-tm2.html#SP1_1">§1.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="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc1</span><span class="plain-syntax"> = *((</span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">scene</span><span class="plain-syntax"> **) </span><span class="identifier-syntax">ent1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc2</span><span class="plain-syntax"> = *((</span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="reserved-syntax">scene</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">IXScenes::compare_scenes</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">IXScenes::compare_scenes</span></span>:<br/><a href="3-scn.html#SP1_1">§1.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="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="identifier-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc1</span><span class="plain-syntax"> = *((</span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="identifier-syntax">scene</span><span class="plain-syntax"> **) </span><span class="identifier-syntax">ent1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="identifier-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc2</span><span class="plain-syntax"> = *((</span><span class="reserved-syntax">const</span><span class="plain-syntax"> </span><span class="identifier-syntax">scene</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">sc1</span><span class="plain-syntax"> == </span><span class="identifier-syntax">SC_entire_game</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">sc2</span><span class="plain-syntax"> != </span><span class="identifier-syntax">SC_entire_game</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> -1;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">sc1</span><span class="plain-syntax"> != </span><span class="identifier-syntax">SC_entire_game</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">sc2</span><span class="plain-syntax"> == </span><span class="identifier-syntax">SC_entire_game</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">SW1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::get_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">sc1</span><span class="plain-syntax">-></span><span class="element-syntax">as_instance</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">SW2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::get_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">sc2</span><span class="plain-syntax">-></span><span class="element-syntax">as_instance</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">SW1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::get_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">sc1</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_instance</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">SW2</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::get_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">sc2</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_instance</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">Wordings::strcmp</span><span class="plain-syntax">(</span><span class="identifier-syntax">SW1</span><span class="plain-syntax">, </span><span class="identifier-syntax">SW2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-scn.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-bd.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresssection"><a href="3-enah.html">enah</a></li><li class="progresssection"><a href="3-sr.html">sr</a></li><li class="progresssection"><a href="3-si.html">si</a></li><li class="progresssection"><a href="3-prs.html">prs</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-dvc.html">dvc</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-mcr.html">mcr</a></li><li class="progresssection"><a href="3-sg.html">sg</a></li><li class="progresssection"><a href="3-sm2.html">sm2</a></li><li class="progresssection"><a href="3-hm.html">hm</a></li><li class="progresssection"><a href="3-em.html">em</a></li><li class="progresssection"><a href="3-sc.html">sc</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresscurrent">tm2</li><li class="progresssection"><a href="3-ts.html">ts</a></li><li class="progresschapter"><a href="4-ap.html">4</a></li><li class="progresschapter"><a href="5-pp.html">5</a></li><li class="progressnext"><a href="3-ts.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-tm.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-ifs.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-fgr.html">fgr</a></li><li class="progresssection"><a href="3-se.html">se</a></li><li class="progresssection"><a href="3-ef.html">ef</a></li><li class="progresssection"><a href="3-bd.html">bd</a></li><li class="progresssection"><a href="3-spt.html">spt</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresscurrent">scn</li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="4-sg.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
|
@ -175,8 +175,8 @@ function togglePopup(material_id) {
|
|||
<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">"&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><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">bs</span><span class="plain-syntax">-></span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ifs.html#SP9" class="function-link"><span class="function-syntax">Index::link</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">bs</span><span class="plain-syntax">-></span><span class="identifier-syntax">name</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">bs</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ifs.html#SP9" class="function-link"><span class="function-syntax">Index::link</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">bs</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">rel</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Filenames::to_text_relative</span><span class="plain-syntax">(</span><span class="identifier-syntax">rel</span><span class="plain-syntax">, </span><span class="identifier-syntax">bs</span><span class="plain-syntax">-></span><span class="identifier-syntax">filename_of_sound_file</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Projects::materials_path</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::project</span><span class="plain-syntax">()));</span>
|
||||
|
@ -191,7 +191,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-fgr.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-ifs.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-fgr.html">fgr</a></li><li class="progresscurrent">se</li><li class="progresssection"><a href="3-ef.html">ef</a></li><li class="progresssection"><a href="3-bd.html">bd</a></li><li class="progresssection"><a href="3-spt.html">spt</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progressnext"><a href="3-ef.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-fgr.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-ifs.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-fgr.html">fgr</a></li><li class="progresscurrent">se</li><li class="progresssection"><a href="3-ef.html">ef</a></li><li class="progresssection"><a href="3-bd.html">bd</a></li><li class="progresssection"><a href="3-spt.html">spt</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="3-ef.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -165,7 +165,7 @@ it already turns up under its owner.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-bd.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-ifs.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-fgr.html">fgr</a></li><li class="progresssection"><a href="3-se.html">se</a></li><li class="progresssection"><a href="3-ef.html">ef</a></li><li class="progresssection"><a href="3-bd.html">bd</a></li><li class="progresscurrent">spt</li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progressnext"><a href="3-tp.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-bd.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-ifs.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-fgr.html">fgr</a></li><li class="progresssection"><a href="3-se.html">se</a></li><li class="progresssection"><a href="3-ef.html">ef</a></li><li class="progresssection"><a href="3-bd.html">bd</a></li><li class="progresscurrent">spt</li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="3-tp.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">IXMap::add_to_World_index</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">O</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">O</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Instances::of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">O</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_room</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PL::SpatialMap::index_room_connections</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">O</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="4-sm.html#SP44" class="function-link"><span class="function-syntax">PL::SpatialMap::index_room_connections</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">O</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -96,7 +96,7 @@
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-rgn.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-ifs.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-fgr.html">fgr</a></li><li class="progresssection"><a href="3-se.html">se</a></li><li class="progresssection"><a href="3-ef.html">ef</a></li><li class="progresssection"><a href="3-bd.html">bd</a></li><li class="progresssection"><a href="3-spt.html">spt</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresscurrent">tm</li><li class="progressnextoff">❯</li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-rgn.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-ifs.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-fgr.html">fgr</a></li><li class="progresssection"><a href="3-se.html">se</a></li><li class="progresssection"><a href="3-ef.html">ef</a></li><li class="progresssection"><a href="3-bd.html">bd</a></li><li class="progresssection"><a href="3-spt.html">spt</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresscurrent">tm</li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="3-scn.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -93,7 +93,7 @@ usually appear anywhere.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-spt.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-ifs.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-fgr.html">fgr</a></li><li class="progresssection"><a href="3-se.html">se</a></li><li class="progresssection"><a href="3-ef.html">ef</a></li><li class="progresssection"><a href="3-bd.html">bd</a></li><li class="progresssection"><a href="3-spt.html">spt</a></li><li class="progresscurrent">tp</li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progressnext"><a href="3-bck.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-spt.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-ifs.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-fgr.html">fgr</a></li><li class="progresssection"><a href="3-se.html">se</a></li><li class="progresssection"><a href="3-ef.html">ef</a></li><li class="progresssection"><a href="3-bd.html">bd</a></li><li class="progresssection"><a href="3-spt.html">spt</a></li><li class="progresscurrent">tp</li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="3-bck.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -59,9 +59,9 @@ MathJax = {
|
|||
<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="index.html"><span class="selectedlink">if</span></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-module/index.html">index</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>
|
||||
|
@ -83,10 +83,10 @@ MathJax = {
|
|||
<main role="main">
|
||||
<!--Weave of 'Spatial Geometry' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">if</a></li><li><a href="index.html#3">Chapter 3: Space and Time</a></li><li><b>Spatial Geometry</b></li></ul></div>
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">index</a></li><li><a href="index.html#4">Chapter 4: Visualising Space</a></li><li><b>Spatial Geometry</b></li></ul></div>
|
||||
<p class="purpose">To deal with vectors and cuboids in a three-dimensional integer lattice.</p>
|
||||
|
||||
<ul class="toc"><li><a href="3-sg.html#SP4">§4. Vectors</a></li><li><a href="3-sg.html#SP7">§7. Lengths</a></li><li><a href="3-sg.html#SP8">§8. Angles</a></li><li><a href="3-sg.html#SP9">§9. Cuboids</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="4-sg.html#SP4">§4. Vectors</a></li><li><a href="4-sg.html#SP7">§7. Lengths</a></li><li><a href="4-sg.html#SP8">§8. Angles</a></li><li><a href="4-sg.html#SP9">§9. Cuboids</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b>We will store 3-vectors in the obvious way:
|
||||
</p>
|
||||
|
@ -96,7 +96,7 @@ MathJax = {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">x</span><span class="plain-syntax">, </span><span class="identifier-syntax">y</span><span class="plain-syntax">, </span><span class="identifier-syntax">z</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">vector</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure vector is accessed in 3/sm2, 3/hm, 3/em and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure vector is accessed in 4/sm, 4/hm, 4/em and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>Some useful constant vectors, including those pointing in each direction.
|
||||
Note that these are not of unit length — rather, they are the ideal grid
|
||||
offsets on the map we will eventually draw.
|
||||
|
@ -129,11 +129,11 @@ corners are meaningless and are by convention at the origin.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">corner1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">cuboid</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure cuboid is accessed in 3/sm2, 3/hm, 3/em and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure cuboid is accessed in 4/sm, 4/hm, 4/em and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. Vectors. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Geometry::vec</span></span>:<br/>Spatial Map - <a href="3-sm2.html#SP15_1">§15.1</a>, <a href="3-sm2.html#SP7_31">§7.31</a>, <a href="3-sm2.html#SP7_32_1_1">§7.32.1.1</a>, <a href="3-sm2.html#SP7_32_1_2">§7.32.1.2</a>, <a href="3-sm2.html#SP7_32_1_3">§7.32.1.3</a><br/>HTML Map - <a href="3-hm.html#SP9">§9</a>, <a href="3-hm.html#SP9_3_1_1">§9.3.1.1</a>, <a href="3-hm.html#SP9_3_2_1">§9.3.2.1</a>, <a href="3-hm.html#SP9_3_3_1">§9.3.3.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">x</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">y</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">z</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Geometry::vec</span></span>:<br/>Spatial Map - <a href="4-sm.html#SP15_1">§15.1</a>, <a href="4-sm.html#SP7_31">§7.31</a>, <a href="4-sm.html#SP7_32_1_1">§7.32.1.1</a>, <a href="4-sm.html#SP7_32_1_2">§7.32.1.2</a>, <a href="4-sm.html#SP7_32_1_3">§7.32.1.3</a><br/>HTML Map - <a href="4-hm.html#SP9">§9</a>, <a href="4-hm.html#SP9_3_1_1">§9.3.1.1</a>, <a href="4-hm.html#SP9_3_2_1">§9.3.2.1</a>, <a href="4-hm.html#SP9_3_3_1">§9.3.3.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">x</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">y</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">z</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">R</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">R</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> = </span><span class="identifier-syntax">x</span><span class="plain-syntax">; </span><span class="identifier-syntax">R</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax"> = </span><span class="identifier-syntax">y</span><span class="plain-syntax">; </span><span class="identifier-syntax">R</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax"> = </span><span class="identifier-syntax">z</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">R</span><span class="plain-syntax">;</span>
|
||||
|
@ -143,12 +143,12 @@ corners are meaningless and are by convention at the origin.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_eq</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">Geometry::vec_eq</span></span>:<br/>Spatial Map - <a href="3-sm2.html#SP7_11">§7.11</a>, <a href="3-sm2.html#SP20">§20</a>, <a href="3-sm2.html#SP21">§21</a>, <a href="3-sm2.html#SP32">§32</a><br/>HTML Map - <a href="3-hm.html#SP1_3_4">§1.3.4</a>, <a href="3-hm.html#SP1_3_4_1">§1.3.4.1</a>, <a href="3-hm.html#SP1_3_4_2">§1.3.4.2</a>, <a href="3-hm.html#SP2_1">§2.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">U</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_eq</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">Geometry::vec_eq</span></span>:<br/>Spatial Map - <a href="4-sm.html#SP7_11">§7.11</a>, <a href="4-sm.html#SP20">§20</a>, <a href="4-sm.html#SP21">§21</a>, <a href="4-sm.html#SP32">§32</a><br/>HTML Map - <a href="4-hm.html#SP1_3_4">§1.3.4</a>, <a href="4-hm.html#SP1_3_4_1">§1.3.4.1</a>, <a href="4-hm.html#SP1_3_4_2">§1.3.4.2</a>, <a href="4-hm.html#SP2_1">§2.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">U</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">U</span><span class="plain-syntax">.</span><span class="identifier-syntax">x</span><span class="plain-syntax"> == </span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">U</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax"> == </span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">U</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax"> == </span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_lateral</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">Geometry::vec_lateral</span></span>:<br/>Spatial Map - <a href="3-sm2.html#SP7_10">§7.10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_lateral</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">Geometry::vec_lateral</span></span>:<br/>Spatial Map - <a href="4-sm.html#SP7_10">§7.10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="identifier-syntax">x</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -157,25 +157,25 @@ corners are meaningless and are by convention at the origin.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_plus</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">Geometry::vec_plus</span></span>:<br/><a href="3-sg.html#SP11">§11</a>, <a href="3-sg.html#SP14">§14</a><br/>Spatial Map - <a href="3-sm2.html#SP7_21">§7.21</a>, <a href="3-sm2.html#SP7_26">§7.26</a>, <a href="3-sm2.html#SP7_27">§7.27</a>, <a href="3-sm2.html#SP20">§20</a>, <a href="3-sm2.html#SP22_1_4_1">§22.1.4.1</a>, <a href="3-sm2.html#SP32">§32</a>, <a href="3-sm2.html#SP36_1">§36.1</a>, <a href="3-sm2.html#SP7_31">§7.31</a>, <a href="3-sm2.html#SP7_32_1_2">§7.32.1.2</a>, <a href="3-sm2.html#SP7_32_1_3">§7.32.1.3</a><br/>HTML Map - <a href="3-hm.html#SP1_3_4_2">§1.3.4.2</a>, <a href="3-hm.html#SP2">§2</a>, <a href="3-hm.html#SP2_1">§2.1</a>, <a href="3-hm.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">U</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_plus</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">Geometry::vec_plus</span></span>:<br/><a href="4-sg.html#SP11">§11</a>, <a href="4-sg.html#SP14">§14</a><br/>Spatial Map - <a href="4-sm.html#SP7_21">§7.21</a>, <a href="4-sm.html#SP7_26">§7.26</a>, <a href="4-sm.html#SP7_27">§7.27</a>, <a href="4-sm.html#SP20">§20</a>, <a href="4-sm.html#SP22_1_4_1">§22.1.4.1</a>, <a href="4-sm.html#SP32">§32</a>, <a href="4-sm.html#SP36_1">§36.1</a>, <a href="4-sm.html#SP7_31">§7.31</a>, <a href="4-sm.html#SP7_32_1_2">§7.32.1.2</a>, <a href="4-sm.html#SP7_32_1_3">§7.32.1.3</a><br/>HTML Map - <a href="4-hm.html#SP1_3_4_2">§1.3.4.2</a>, <a href="4-hm.html#SP2">§2</a>, <a href="4-hm.html#SP2_1">§2.1</a>, <a href="4-hm.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">U</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">R</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">R</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> = </span><span class="identifier-syntax">U</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> + </span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax">; </span><span class="identifier-syntax">R</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax"> = </span><span class="identifier-syntax">U</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax"> + </span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax">; </span><span class="identifier-syntax">R</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax"> = </span><span class="identifier-syntax">U</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax"> + </span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">R</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_minus</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Geometry::vec_minus</span></span>:<br/><a href="3-sg.html#SP13">§13</a>, <a href="3-sg.html#SP14">§14</a><br/>Spatial Map - <a href="3-sm2.html#SP20">§20</a>, <a href="3-sm2.html#SP21">§21</a>, <a href="3-sm2.html#SP22_1_4_1">§22.1.4.1</a>, <a href="3-sm2.html#SP34_1">§34.1</a>, <a href="3-sm2.html#SP7_32_1_2">§7.32.1.2</a>, <a href="3-sm2.html#SP7_32_1_3">§7.32.1.3</a>, <a href="3-sm2.html#SP7_33">§7.33</a><br/>HTML Map - <a href="3-hm.html#SP1_3_4_1">§1.3.4.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">U</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_minus</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Geometry::vec_minus</span></span>:<br/><a href="4-sg.html#SP13">§13</a>, <a href="4-sg.html#SP14">§14</a><br/>Spatial Map - <a href="4-sm.html#SP20">§20</a>, <a href="4-sm.html#SP21">§21</a>, <a href="4-sm.html#SP22_1_4_1">§22.1.4.1</a>, <a href="4-sm.html#SP34_1">§34.1</a>, <a href="4-sm.html#SP7_32_1_2">§7.32.1.2</a>, <a href="4-sm.html#SP7_32_1_3">§7.32.1.3</a>, <a href="4-sm.html#SP7_33">§7.33</a><br/>HTML Map - <a href="4-hm.html#SP1_3_4_1">§1.3.4.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">U</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">R</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">R</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> = </span><span class="identifier-syntax">U</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> - </span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax">; </span><span class="identifier-syntax">R</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax"> = </span><span class="identifier-syntax">U</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax"> - </span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax">; </span><span class="identifier-syntax">R</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax"> = </span><span class="identifier-syntax">U</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax"> - </span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">R</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_negate</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Geometry::vec_negate</span></span>:<br/>Spatial Map - <a href="3-sm2.html#SP7_32_1_3_1">§7.32.1.3.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_negate</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Geometry::vec_negate</span></span>:<br/>Spatial Map - <a href="4-sm.html#SP7_32_1_3_1">§7.32.1.3.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">R</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">R</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> = -</span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax">; </span><span class="identifier-syntax">R</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax"> = -</span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax">; </span><span class="identifier-syntax">R</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax"> = -</span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">R</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_scale</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Geometry::vec_scale</span></span>:<br/>Spatial Map - <a href="3-sm2.html#SP22_1_4_1">§22.1.4.1</a>, <a href="3-sm2.html#SP32">§32</a>, <a href="3-sm2.html#SP36_1">§36.1</a><br/>HTML Map - <a href="3-hm.html#SP1_3_4_1">§1.3.4.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">lambda</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_scale</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Geometry::vec_scale</span></span>:<br/>Spatial Map - <a href="4-sm.html#SP22_1_4_1">§22.1.4.1</a>, <a href="4-sm.html#SP32">§32</a>, <a href="4-sm.html#SP36_1">§36.1</a><br/>HTML Map - <a href="4-hm.html#SP1_3_4_1">§1.3.4.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">lambda</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">R</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">R</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> = </span><span class="identifier-syntax">lambda</span><span class="plain-syntax">*</span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax">; </span><span class="identifier-syntax">R</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax"> = </span><span class="identifier-syntax">lambda</span><span class="plain-syntax">*</span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax">; </span><span class="identifier-syntax">R</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax"> = </span><span class="identifier-syntax">lambda</span><span class="plain-syntax">*</span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">R</span><span class="plain-syntax">;</span>
|
||||
|
@ -184,12 +184,12 @@ corners are meaningless and are by convention at the origin.
|
|||
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>§7. Lengths. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_length_squared</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Geometry::vec_length_squared</span></span>:<br/>Spatial Map - <a href="3-sm2.html#SP20">§20</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_length_squared</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Geometry::vec_length_squared</span></span>:<br/>Spatial Map - <a href="4-sm.html#SP20">§20</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax">*</span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> + </span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax">*</span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax"> + </span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax">*</span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">float</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_length</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Geometry::vec_length</span></span>:<br/><a href="3-sg.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> (</span><span class="reserved-syntax">float</span><span class="plain-syntax">) (</span><span class="identifier-syntax">sqrt</span><span class="plain-syntax">(</span><a href="3-sg.html#SP7" class="function-link"><span class="function-syntax">Geometry::vec_length_squared</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">)));</span>
|
||||
<span class="reserved-syntax">float</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_length</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Geometry::vec_length</span></span>:<br/><a href="4-sg.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> (</span><span class="reserved-syntax">float</span><span class="plain-syntax">) (</span><span class="identifier-syntax">sqrt</span><span class="plain-syntax">(</span><a href="4-sg.html#SP7" class="function-link"><span class="function-syntax">Geometry::vec_length_squared</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">)));</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>§8. Angles. </b>We compute unit vectors in the D and E directions and then the squared
|
||||
|
@ -201,10 +201,10 @@ is better.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">float</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_angular_separation</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Geometry::vec_angular_separation</span></span>:<br/>Spatial Map - <a href="3-sm2.html#SP20">§20</a>, <a href="3-sm2.html#SP21">§21</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">float</span><span class="plain-syntax"> </span><span class="identifier-syntax">E_distance</span><span class="plain-syntax"> = </span><a href="3-sg.html#SP7" class="function-link"><span class="function-syntax">Geometry::vec_length</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">float</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::vec_angular_separation</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Geometry::vec_angular_separation</span></span>:<br/>Spatial Map - <a href="4-sm.html#SP20">§20</a>, <a href="4-sm.html#SP21">§21</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">float</span><span class="plain-syntax"> </span><span class="identifier-syntax">E_distance</span><span class="plain-syntax"> = </span><a href="4-sg.html#SP7" class="function-link"><span class="function-syntax">Geometry::vec_length</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">float</span><span class="plain-syntax"> </span><span class="identifier-syntax">uex</span><span class="plain-syntax"> = </span><span class="identifier-syntax">E</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax">/</span><span class="identifier-syntax">E_distance</span><span class="plain-syntax">, </span><span class="identifier-syntax">uey</span><span class="plain-syntax"> = </span><span class="identifier-syntax">E</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax">/</span><span class="identifier-syntax">E_distance</span><span class="plain-syntax">, </span><span class="identifier-syntax">uez</span><span class="plain-syntax"> = </span><span class="identifier-syntax">E</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax">/</span><span class="identifier-syntax">E_distance</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">float</span><span class="plain-syntax"> </span><span class="identifier-syntax">D_distance</span><span class="plain-syntax"> = </span><a href="3-sg.html#SP7" class="function-link"><span class="function-syntax">Geometry::vec_length</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">float</span><span class="plain-syntax"> </span><span class="identifier-syntax">D_distance</span><span class="plain-syntax"> = </span><a href="4-sg.html#SP7" class="function-link"><span class="function-syntax">Geometry::vec_length</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">float</span><span class="plain-syntax"> </span><span class="identifier-syntax">udx</span><span class="plain-syntax"> = </span><span class="identifier-syntax">D</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax">/</span><span class="identifier-syntax">D_distance</span><span class="plain-syntax">, </span><span class="identifier-syntax">udy</span><span class="plain-syntax"> = </span><span class="identifier-syntax">D</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax">/</span><span class="identifier-syntax">D_distance</span><span class="plain-syntax">, </span><span class="identifier-syntax">udz</span><span class="plain-syntax"> = </span><span class="identifier-syntax">D</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax">/</span><span class="identifier-syntax">D_distance</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> (</span><span class="identifier-syntax">uex</span><span class="plain-syntax">-</span><span class="identifier-syntax">udx</span><span class="plain-syntax">)*(</span><span class="identifier-syntax">uex</span><span class="plain-syntax">-</span><span class="identifier-syntax">udx</span><span class="plain-syntax">) + (</span><span class="identifier-syntax">uey</span><span class="plain-syntax">-</span><span class="identifier-syntax">udy</span><span class="plain-syntax">)*(</span><span class="identifier-syntax">uey</span><span class="plain-syntax">-</span><span class="identifier-syntax">udy</span><span class="plain-syntax">) + (</span><span class="identifier-syntax">uez</span><span class="plain-syntax">-</span><span class="identifier-syntax">udz</span><span class="plain-syntax">)*(</span><span class="identifier-syntax">uez</span><span class="plain-syntax">-</span><span class="identifier-syntax">udz</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -214,14 +214,14 @@ for each vector to join the population.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">cuboid</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::empty_cuboid</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Geometry::empty_cuboid</span></span>:<br/>Spatial Map - <a href="3-sm2.html#SP7">§7</a>, <a href="3-sm2.html#SP11">§11</a>, <a href="3-sm2.html#SP7_18">§7.18</a>, <a href="3-sm2.html#SP18">§18</a>, <a href="3-sm2.html#SP7_32">§7.32</a>, <a href="3-sm2.html#SP7_34">§7.34</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">cuboid</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::empty_cuboid</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Geometry::empty_cuboid</span></span>:<br/>Spatial Map - <a href="4-sm.html#SP7">§7</a>, <a href="4-sm.html#SP11">§11</a>, <a href="4-sm.html#SP7_18">§7.18</a>, <a href="4-sm.html#SP18">§18</a>, <a href="4-sm.html#SP7_32">§7.32</a>, <a href="4-sm.html#SP7_34">§7.34</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">cuboid</span><span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">.</span><span class="element-syntax">population</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">.</span><span class="element-syntax">corner0</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Zero_vector</span><span class="plain-syntax">; </span><span class="identifier-syntax">C</span><span class="plain-syntax">.</span><span class="element-syntax">corner1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Zero_vector</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::adjust_cuboid</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Geometry::adjust_cuboid</span></span>:<br/><a href="3-sg.html#SP10">§10</a><br/>Spatial Map - <a href="3-sm2.html#SP18">§18</a>, <a href="3-sm2.html#SP7_34">§7.34</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">cuboid</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::adjust_cuboid</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Geometry::adjust_cuboid</span></span>:<br/><a href="4-sg.html#SP10">§10</a><br/>Spatial Map - <a href="4-sm.html#SP18">§18</a>, <a href="4-sm.html#SP7_34">§7.34</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">cuboid</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">population</span><span class="plain-syntax">++ == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">corner0</span><span class="plain-syntax"> = </span><span class="identifier-syntax">V</span><span class="plain-syntax">; </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">corner1</span><span class="plain-syntax"> = </span><span class="identifier-syntax">V</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
|
@ -238,13 +238,13 @@ for each vector to join the population.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::merge_cuboid</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Geometry::merge_cuboid</span></span>:<br/>Spatial Map - <a href="3-sm2.html#SP7_32_1">§7.32.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">cuboid</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">cuboid</span><span class="plain-syntax"> </span><span class="identifier-syntax">X</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::merge_cuboid</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Geometry::merge_cuboid</span></span>:<br/>Spatial Map - <a href="4-sm.html#SP7_32_1">§7.32.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">cuboid</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">cuboid</span><span class="plain-syntax"> </span><span class="identifier-syntax">X</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">X</span><span class="plain-syntax">.</span><span class="identifier-syntax">population</span><span class="plain-syntax"> > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">population</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">X</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><a href="3-sg.html#SP9" class="function-link"><span class="function-syntax">Geometry::adjust_cuboid</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">X</span><span class="plain-syntax">.</span><span class="element-syntax">corner0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-sg.html#SP9" class="function-link"><span class="function-syntax">Geometry::adjust_cuboid</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">X</span><span class="plain-syntax">.</span><span class="element-syntax">corner1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="4-sg.html#SP9" class="function-link"><span class="function-syntax">Geometry::adjust_cuboid</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">X</span><span class="plain-syntax">.</span><span class="element-syntax">corner0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="4-sg.html#SP9" class="function-link"><span class="function-syntax">Geometry::adjust_cuboid</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">X</span><span class="plain-syntax">.</span><span class="element-syntax">corner1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">population</span><span class="plain-syntax"> += </span><span class="identifier-syntax">X</span><span class="plain-syntax">.</span><span class="element-syntax">population</span><span class="plain-syntax"> - </span><span class="constant-syntax">2</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -255,17 +255,17 @@ it have made the same shift).
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::cuboid_translate</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Geometry::cuboid_translate</span></span>:<br/>Spatial Map - <a href="3-sm2.html#SP7_21">§7.21</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">cuboid</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::cuboid_translate</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Geometry::cuboid_translate</span></span>:<br/>Spatial Map - <a href="4-sm.html#SP7_21">§7.21</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">cuboid</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">D</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">population</span><span class="plain-syntax"> > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">corner0</span><span class="plain-syntax"> = </span><a href="3-sg.html#SP6" class="function-link"><span class="function-syntax">Geometry::vec_plus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">corner0</span><span class="plain-syntax">, </span><span class="identifier-syntax">D</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">corner1</span><span class="plain-syntax"> = </span><a href="3-sg.html#SP6" class="function-link"><span class="function-syntax">Geometry::vec_plus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">corner1</span><span class="plain-syntax">, </span><span class="identifier-syntax">D</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">corner0</span><span class="plain-syntax"> = </span><a href="4-sg.html#SP6" class="function-link"><span class="function-syntax">Geometry::vec_plus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">corner0</span><span class="plain-syntax">, </span><span class="identifier-syntax">D</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">corner1</span><span class="plain-syntax"> = </span><a href="4-sg.html#SP6" class="function-link"><span class="function-syntax">Geometry::vec_plus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">corner1</span><span class="plain-syntax">, </span><span class="identifier-syntax">D</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>§12. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::within_cuboid</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">Geometry::within_cuboid</span></span>:<br/><a href="3-sg.html#SP13">§13</a><br/>Spatial Map - <a href="3-sm2.html#SP15">§15</a><br/>HTML Map - <a href="3-hm.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">cuboid</span><span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::within_cuboid</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">Geometry::within_cuboid</span></span>:<br/><a href="4-sg.html#SP13">§13</a><br/>Spatial Map - <a href="4-sm.html#SP15">§15</a><br/>HTML Map - <a href="4-hm.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">cuboid</span><span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax">.</span><span class="identifier-syntax">population</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">.</span><span class="identifier-syntax">x</span><span class="plain-syntax"> < </span><span class="identifier-syntax">C</span><span class="plain-syntax">.</span><span class="element-syntax">corner0</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">.</span><span class="identifier-syntax">x</span><span class="plain-syntax"> > </span><span class="identifier-syntax">C</span><span class="plain-syntax">.</span><span class="element-syntax">corner1</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
|
@ -283,15 +283,15 @@ the index if it is.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::cuboid_index</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">Geometry::cuboid_index</span></span>:<br/>Spatial Map - <a href="3-sm2.html#SP13">§13</a>, <a href="3-sm2.html#SP15">§15</a>, <a href="3-sm2.html#SP15_1">§15.1</a><br/>HTML Map - <a href="3-hm.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">cuboid</span><span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-sg.html#SP12" class="function-link"><span class="function-syntax">Geometry::within_cuboid</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> -1;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">O</span><span class="plain-syntax"> = </span><a href="3-sg.html#SP6" class="function-link"><span class="function-syntax">Geometry::vec_minus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">.</span><span class="element-syntax">corner0</span><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::cuboid_index</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">Geometry::cuboid_index</span></span>:<br/>Spatial Map - <a href="4-sm.html#SP13">§13</a>, <a href="4-sm.html#SP15">§15</a>, <a href="4-sm.html#SP15_1">§15.1</a><br/>HTML Map - <a href="4-hm.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">cuboid</span><span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-sg.html#SP12" class="function-link"><span class="function-syntax">Geometry::within_cuboid</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> -1;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">O</span><span class="plain-syntax"> = </span><a href="4-sg.html#SP6" class="function-link"><span class="function-syntax">Geometry::vec_minus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">.</span><span class="element-syntax">corner0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">width</span><span class="plain-syntax"> = </span><span class="identifier-syntax">C</span><span class="plain-syntax">.</span><span class="element-syntax">corner1</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> - </span><span class="identifier-syntax">C</span><span class="plain-syntax">.</span><span class="identifier-syntax">corner0</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> + </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">height</span><span class="plain-syntax"> = </span><span class="identifier-syntax">C</span><span class="plain-syntax">.</span><span class="element-syntax">corner1</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax"> - </span><span class="identifier-syntax">C</span><span class="plain-syntax">.</span><span class="identifier-syntax">corner0</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax"> + </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">O</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> + </span><span class="identifier-syntax">O</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax">*</span><span class="identifier-syntax">width</span><span class="plain-syntax"> + </span><span class="identifier-syntax">O</span><span class="plain-syntax">.</span><span class="identifier-syntax">z</span><span class="plain-syntax">*</span><span class="identifier-syntax">width</span><span class="plain-syntax">*</span><span class="identifier-syntax">height</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::cuboid_volume</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">Geometry::cuboid_volume</span></span>:<br/>Spatial Map - <a href="3-sm2.html#SP15_1">§15.1</a><br/>HTML Map - <a href="3-hm.html#SP1_1">§1.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">cuboid</span><span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::cuboid_volume</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">Geometry::cuboid_volume</span></span>:<br/>Spatial Map - <a href="4-sm.html#SP15_1">§15.1</a><br/>HTML Map - <a href="4-hm.html#SP1_1">§1.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">cuboid</span><span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax">.</span><span class="identifier-syntax">population</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">width</span><span class="plain-syntax"> = </span><span class="identifier-syntax">C</span><span class="plain-syntax">.</span><span class="element-syntax">corner1</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> - </span><span class="identifier-syntax">C</span><span class="plain-syntax">.</span><span class="identifier-syntax">corner0</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> + </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">height</span><span class="plain-syntax"> = </span><span class="identifier-syntax">C</span><span class="plain-syntax">.</span><span class="element-syntax">corner1</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax"> - </span><span class="identifier-syntax">C</span><span class="plain-syntax">.</span><span class="identifier-syntax">corner0</span><span class="plain-syntax">.</span><span class="identifier-syntax">y</span><span class="plain-syntax"> + </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
|
@ -305,10 +305,10 @@ sacrifice that.)
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::thicken_cuboid</span><button class="popup" onclick="togglePopup('usagePopup18')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup18">Usage of <span class="code-font"><span class="function-syntax">Geometry::thicken_cuboid</span></span>:<br/>Spatial Map - <a href="3-sm2.html#SP15_1">§15.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">cuboid</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Geometry::thicken_cuboid</span><button class="popup" onclick="togglePopup('usagePopup18')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup18">Usage of <span class="code-font"><span class="function-syntax">Geometry::thicken_cuboid</span></span>:<br/>Spatial Map - <a href="4-sm.html#SP15_1">§15.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">cuboid</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="reserved-syntax">vector</span><span class="plain-syntax"> </span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">population</span><span class="plain-syntax">++ == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">corner0</span><span class="plain-syntax"> = </span><a href="3-sg.html#SP6" class="function-link"><span class="function-syntax">Geometry::vec_minus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">corner1</span><span class="plain-syntax"> = </span><a href="3-sg.html#SP6" class="function-link"><span class="function-syntax">Geometry::vec_plus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">corner0</span><span class="plain-syntax"> = </span><a href="4-sg.html#SP6" class="function-link"><span class="function-syntax">Geometry::vec_minus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">corner1</span><span class="plain-syntax"> = </span><a href="4-sg.html#SP6" class="function-link"><span class="function-syntax">Geometry::vec_plus</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> < </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">corner0</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax">) </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">corner0</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> = </span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> - </span><span class="identifier-syntax">S</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> > </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">corner1</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax">) </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">corner1</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> = </span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax"> + </span><span class="identifier-syntax">S</span><span class="plain-syntax">.</span><span class="element-syntax">x</span><span class="plain-syntax">;</span>
|
||||
|
@ -320,7 +320,7 @@ sacrifice that.)
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-mcr.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-bd.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresssection"><a href="3-enah.html">enah</a></li><li class="progresssection"><a href="3-sr.html">sr</a></li><li class="progresssection"><a href="3-si.html">si</a></li><li class="progresssection"><a href="3-prs.html">prs</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-dvc.html">dvc</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-mcr.html">mcr</a></li><li class="progresscurrent">sg</li><li class="progresssection"><a href="3-sm2.html">sm2</a></li><li class="progresssection"><a href="3-hm.html">hm</a></li><li class="progresssection"><a href="3-em.html">em</a></li><li class="progresssection"><a href="3-sc.html">sc</a></li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-tm2.html">tm2</a></li><li class="progresssection"><a href="3-ts.html">ts</a></li><li class="progresschapter"><a href="4-ap.html">4</a></li><li class="progresschapter"><a href="5-pp.html">5</a></li><li class="progressnext"><a href="3-sm2.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-scn.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-ifs.html">2</a></li><li class="progresschapter"><a href="3-fgr.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresscurrent">sg</li><li class="progresssection"><a href="4-sm.html">sm</a></li><li class="progresssection"><a href="4-hm.html">hm</a></li><li class="progresssection"><a href="4-em.html">em</a></li><li class="progressnext"><a href="4-sm.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
File diff suppressed because it is too large
Load diff
|
@ -189,6 +189,37 @@
|
|||
<spon class="sectiontitle">The Map</span></a> -
|
||||
<span class="sectionpurpose">Indexing the player's initial position.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="3-scn.html">
|
||||
<spon class="sectiontitle">Scenes</span></a> -
|
||||
<span class="sectionpurpose">Parallel to the World index of space is the Scenes index of time, and in this section we render it as HTML.</span></p>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<p class="chapterentry"><a name="4"></a>
|
||||
<span class="chaptertitle">Chapter 4: Visualising Space</span></p>
|
||||
<ul class="sectionlist">
|
||||
<li>
|
||||
<p class="sectionentry"><a href="4-sg.html">
|
||||
<spon class="sectiontitle">Spatial Geometry</span></a> -
|
||||
<span class="sectionpurpose">To deal with vectors and cuboids in a three-dimensional integer lattice.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="4-sm.html">
|
||||
<spon class="sectiontitle">Spatial Map</span></a> -
|
||||
<span class="sectionpurpose">To fit the map of the rooms in the game into a cubical grid, preserving distances and angles where possible, and so to give each room approximate coordinate locations.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="4-hm.html">
|
||||
<spon class="sectiontitle">HTML Map</span></a> -
|
||||
<span class="sectionpurpose">To render the spatial map of rooms as HTML.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="4-em.html">
|
||||
<spon class="sectiontitle">EPS Map</span></a> -
|
||||
<span class="sectionpurpose">To render the spatial map of rooms as an EPS (Encapsulated PostScript) file.</span></p>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -295,7 +295,7 @@ the following.
|
|||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTPropertyValues::emit_iname_has_property</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="4-epv.html#SP4" class="function-link"><span class="function-syntax">RTPropertyValues::emit_has_property</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">), </span><span class="identifier-syntax">prn</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTPropertyValues::emit_has_property</span><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTPropertyValues::emit_has_property</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">RTPropertyValues::emit_has_property</span></span>:<br/>Showme Command - <a href="5-sc.html#SP4_2">§4.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-prp.html#SP7" class="function-link"><span class="function-syntax">RTProperties::implemented_as_attribute</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-prp.html#SP4" class="function-link"><span class="function-syntax">RTProperties::stored_in_negation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">NOT_BIP</span><span class="plain-syntax">);</span>
|
||||
|
@ -380,7 +380,7 @@ the property-permission symbol accordingly:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTPropertyValues::annotate_table_storage</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">RTPropertyValues::annotate_table_storage</span></span>:<br/>Properties - <a href="4-prp.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">property_permission</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pp</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTPropertyValues::annotate_table_storage</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">RTPropertyValues::annotate_table_storage</span></span>:<br/>Properties - <a href="4-prp.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">property_permission</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pp</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">property_of_value_storage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">povs</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RETRIEVE_POINTER_property_of_value_storage</span><span class="plain-syntax">(</span><span class="identifier-syntax">PropertyPermissions::get_storage_data</span><span class="plain-syntax">(</span><span class="identifier-syntax">pp</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">povs</span><span class="plain-syntax">-></span><span class="element-syntax">storage_table_iname</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -138,7 +138,7 @@ property also visits its negation.)
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">prn</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">do_not_compile</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">int</span><span class="plain-syntax"> </span><span class="function-syntax">RTProperties::can_be_compiled</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">RTProperties::can_be_compiled</span></span>:<br/>Emit Property Values - <a href="4-epv.html#SP2">§2</a><br/>Runtime Support for Kinds - <a href="4-rsfk.html#SP32">§32</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">RTProperties::can_be_compiled</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">RTProperties::can_be_compiled</span></span>:<br/>Emit Property Values - <a href="4-epv.html#SP2">§2</a><br/>Runtime Support for Kinds - <a href="4-rsfk.html#SP32">§32</a><br/>Showme Command - <a href="5-sc.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">prn</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">prn</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">do_not_compile</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -157,7 +157,7 @@ property also visits its negation.)
|
|||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. </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">RTProperties::stored_in_negation</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">RTProperties::stored_in_negation</span></span>:<br/><a href="4-prp.html#SP10_1">§10.1</a>, <a href="4-prp.html#SP10_2">§10.2</a><br/>Emit Property Values - <a href="4-epv.html#SP2">§2</a>, <a href="4-epv.html#SP2_1">§2.1</a>, <a href="4-epv.html#SP3">§3</a>, <a href="4-epv.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">RTProperties::stored_in_negation</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">RTProperties::stored_in_negation</span></span>:<br/><a href="4-prp.html#SP10_1">§10.1</a>, <a href="4-prp.html#SP10_2">§10.2</a><br/>Emit Property Values - <a href="4-epv.html#SP2">§2</a>, <a href="4-epv.html#SP2_1">§2.1</a>, <a href="4-epv.html#SP3">§3</a>, <a href="4-epv.html#SP4">§4</a><br/>Showme Command - <a href="5-sc.html#SP4_2">§4.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">prn</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">prn</span><span class="plain-syntax">-></span><span class="identifier-syntax">either_or_data</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">"non-EO property"</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">prn</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="identifier-syntax">store_in_negation</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -233,7 +233,7 @@ run-time support code to work.
|
|||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. Emitting to Inter. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTProperties::iname</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">RTProperties::iname</span></span>:<br/><a href="4-prp.html#SP5">§5</a>, <a href="4-prp.html#SP10_1">§10.1</a>, <a href="4-prp.html#SP10_2">§10.2</a>, <a href="4-prp.html#SP13">§13</a><br/>Emitting Inter - <a href="2-emt.html#SP3">§3</a><br/>Emit Property Values - <a href="4-epv.html#SP4">§4</a><br/>Instance Counting - <a href="4-ic.html#SP12">§12</a><br/>Relations at Run Time - <a href="4-rart.html#SP4_1_3">§4.1.3</a><br/>Parsing - <a href="5-prs.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTProperties::iname</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">RTProperties::iname</span></span>:<br/><a href="4-prp.html#SP5">§5</a>, <a href="4-prp.html#SP10_1">§10.1</a>, <a href="4-prp.html#SP10_2">§10.2</a>, <a href="4-prp.html#SP13">§13</a><br/>Emitting Inter - <a href="2-emt.html#SP3">§3</a><br/>Emit Property Values - <a href="4-epv.html#SP4">§4</a><br/>Instance Counting - <a href="4-ic.html#SP12">§12</a><br/>Relations at Run Time - <a href="4-rart.html#SP4_1_3">§4.1.3</a><br/>Parsing - <a href="5-prs.html#SP2">§2</a><br/>Showme Command - <a href="5-sc.html#SP4_1">§4.1</a>, <a href="5-sc.html#SP4_1_1">§4.1.1</a>, <a href="5-sc.html#SP4_1_1_1">§4.1.1.1</a>, <a href="5-sc.html#SP4_2">§4.2</a><br/>Scenes - <a href="5-scn.html#SP5_1">§5.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">prn</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">"tried to find iname for null property"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Properties::is_either_or</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">)) && (</span><span class="identifier-syntax">prn</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">store_in_negation</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-prp.html#SP6" class="function-link"><span class="function-syntax">RTProperties::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EitherOrProperties::get_negation</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">));</span>
|
||||
|
@ -394,7 +394,7 @@ all to work; the following keep a flag to mark that.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">prn</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">use_non_typesafe_0</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">int</span><span class="plain-syntax"> </span><span class="function-syntax">RTProperties::uses_non_typesafe_0</span><span class="plain-syntax">(</span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">RTProperties::uses_non_typesafe_0</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">RTProperties::uses_non_typesafe_0</span></span>:<br/>Showme Command - <a href="5-sc.html#SP4_1">§4.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">prn</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">prn</span><span class="plain-syntax">-></span><span class="identifier-syntax">either_or_data</span><span class="plain-syntax">)) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"non-value property"</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">prn</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="identifier-syntax">use_non_typesafe_0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
|
@ -620,7 +620,7 @@ which might occupy up to 31 characters, the maximum length of an I6 identifier:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="2-emt.html#SP3" class="function-link"><span class="function-syntax">Emit::array_numeric_entry</span></a><span class="plain-syntax">((</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) (</span><a href="4-rsfk.html#SP11" class="function-link"><span class="function-syntax">RTKinds::weak_id</span></a><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">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTKinds::emit_weak_id_as_val</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">RTKinds::emit_weak_id_as_val</span></span>:<br/><a href="4-rsfk.html#SP15">§15</a>, <a href="4-rsfk.html#SP27_6_1">§27.6.1</a>, <a href="4-rsfk.html#SP27_6_2">§27.6.2</a>, <a href="4-rsfk.html#SP27_6_3">§27.6.3</a>, <a href="4-rsfk.html#SP27_6_4">§27.6.4</a>, <a href="4-rsfk.html#SP27_6_5">§27.6.5</a>, <a href="4-rsfk.html#SP27_6_6">§27.6.6</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTKinds::emit_weak_id_as_val</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">RTKinds::emit_weak_id_as_val</span></span>:<br/><a href="4-rsfk.html#SP15">§15</a>, <a href="4-rsfk.html#SP27_6_1">§27.6.1</a>, <a href="4-rsfk.html#SP27_6_2">§27.6.2</a>, <a href="4-rsfk.html#SP27_6_3">§27.6.3</a>, <a href="4-rsfk.html#SP27_6_4">§27.6.4</a>, <a href="4-rsfk.html#SP27_6_5">§27.6.5</a>, <a href="4-rsfk.html#SP27_6_6">§27.6.6</a><br/>Showme Command - <a href="5-sc.html#SP4_1">§4.1</a>, <a href="5-sc.html#SP4_1_1">§4.1.1</a>, <a href="5-sc.html#SP4_1_1_1">§4.1.1.1</a><br/>Scenes - <a href="5-scn.html#SP5_1">§5.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="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="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">"cannot emit null kind as val"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Kinds::get_construct</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Kinds::Constructors::iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -143,7 +143,7 @@ kind as a strong kind ID.
|
|||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::markup_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">table_package</span><span class="plain-syntax">, </span><span class="constant-syntax">TABLE_NAME_HMD</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTTables::identifier</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">RTTables::identifier</span></span>:<br/><a href="4-rsft.html#SP4_1_1_1">§4.1.1.1</a>, <a href="4-rsft.html#SP4_3">§4.3</a>, <a href="4-rsft.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTTables::identifier</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">RTTables::identifier</span></span>:<br/><a href="4-rsft.html#SP4_1_1_1">§4.1.1.1</a>, <a href="4-rsft.html#SP4_3">§4.3</a>, <a href="4-rsft.html#SP5">§5</a><br/>The Score - <a href="5-ts.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">table</span><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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">table_identifier</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
|
|
@ -81,7 +81,7 @@ already been set up, or not. Here's not:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="function-syntax">Routines::begin</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">Routines::begin</span></span>:<br/>List Together - <a href="4-lt.html#SP3_1">§3.1</a><br/>Text Literals - <a href="4-tl.html#SP13_2">§13.2</a><br/>Text Substitutions - <a href="4-ts.html#SP11">§11</a><br/>Responses - <a href="4-rsp.html#SP5_1">§5.1</a>, <a href="4-rsp.html#SP5_2">§5.2</a>, <a href="4-rsp.html#SP6_2">§6.2</a><br/>Equations Support - <a href="4-es.html#SP1">§1</a><br/>Test Scripts - <a href="4-ts2.html#SP3">§3</a><br/>Internal Test Cases - <a href="4-itc.html#SP4">§4</a><br/>Use Options at Run Time - <a href="4-uoart.html#SP1_1">§1.1</a>, <a href="4-uoart.html#SP1_2">§1.2</a><br/>Variables - <a href="4-vrb.html#SP5_1">§5.1</a><br/>Measurements - <a href="4-msr.html#SP1">§1</a><br/>Adjectives - <a href="4-adj.html#SP3_2">§3.2</a>, <a href="4-adj.html#SP5">§5</a><br/>Runtime Support for Kinds - <a href="4-rsfk.html#SP19_3">§19.3</a>, <a href="4-rsfk.html#SP27_1">§27.1</a>, <a href="4-rsfk.html#SP27_2">§27.2</a>, <a href="4-rsfk.html#SP27_3">§27.3</a>, <a href="4-rsfk.html#SP27_4">§27.4</a>, <a href="4-rsfk.html#SP27_5">§27.5</a>, <a href="4-rsfk.html#SP27_6_1">§27.6.1</a>, <a href="4-rsfk.html#SP27_6_2">§27.6.2</a>, <a href="4-rsfk.html#SP27_6_3">§27.6.3</a>, <a href="4-rsfk.html#SP27_6_4">§27.6.4</a>, <a href="4-rsfk.html#SP27_6_5">§27.6.5</a>, <a href="4-rsfk.html#SP27_6_6">§27.6.6</a>, <a href="4-rsfk.html#SP28">§28</a><br/>Extension Files at Run Time - <a href="4-efart.html#SP1">§1</a><br/>Verbs at Run Time - <a href="4-vart.html#SP4_1">§4.1</a>, <a href="4-vart.html#SP4_2">§4.2</a><br/>Relations at Run Time - <a href="4-rart.html#SP4">§4</a>, <a href="4-rart.html#SP4_2">§4.2</a>, <a href="4-rart.html#SP6">§6</a>, <a href="4-rart.html#SP18_1">§18.1</a>, <a href="4-rart.html#SP18_2">§18.2</a>, <a href="4-rart.html#SP18_3">§18.3</a>, <a href="4-rart.html#SP18_4">§18.4</a>, <a href="4-rart.html#SP18_5">§18.5</a>, <a href="4-rart.html#SP18_6">§18.6</a>, <a href="4-rart.html#SP19">§19</a>, <a href="4-rart.html#SP23">§23</a><br/>Literal Patterns at Run Time - <a href="4-lpart.html#SP2">§2</a><br/>Runtime Support for Tables - <a href="4-rsft.html#SP2">§2</a>, <a href="4-rsft.html#SP5">§5</a><br/>Naming - <a href="5-nmn.html#SP2">§2</a><br/>Backdrops - <a href="5-bck.html#SP2_1">§2.1</a>, <a href="5-bck.html#SP2_2">§2.2</a><br/>Regions - <a href="5-rgn.html#SP2">§2</a><br/>The Map - <a href="5-tm.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="function-syntax">Routines::begin</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">Routines::begin</span></span>:<br/>List Together - <a href="4-lt.html#SP3_1">§3.1</a><br/>Text Literals - <a href="4-tl.html#SP13_2">§13.2</a><br/>Text Substitutions - <a href="4-ts.html#SP11">§11</a><br/>Responses - <a href="4-rsp.html#SP5_1">§5.1</a>, <a href="4-rsp.html#SP5_2">§5.2</a>, <a href="4-rsp.html#SP6_2">§6.2</a><br/>Equations Support - <a href="4-es.html#SP1">§1</a><br/>Test Scripts - <a href="4-ts2.html#SP3">§3</a><br/>Internal Test Cases - <a href="4-itc.html#SP4">§4</a><br/>Use Options at Run Time - <a href="4-uoart.html#SP1_1">§1.1</a>, <a href="4-uoart.html#SP1_2">§1.2</a><br/>Variables - <a href="4-vrb.html#SP5_1">§5.1</a><br/>Measurements - <a href="4-msr.html#SP1">§1</a><br/>Adjectives - <a href="4-adj.html#SP3_2">§3.2</a>, <a href="4-adj.html#SP5">§5</a><br/>Runtime Support for Kinds - <a href="4-rsfk.html#SP19_3">§19.3</a>, <a href="4-rsfk.html#SP27_1">§27.1</a>, <a href="4-rsfk.html#SP27_2">§27.2</a>, <a href="4-rsfk.html#SP27_3">§27.3</a>, <a href="4-rsfk.html#SP27_4">§27.4</a>, <a href="4-rsfk.html#SP27_5">§27.5</a>, <a href="4-rsfk.html#SP27_6_1">§27.6.1</a>, <a href="4-rsfk.html#SP27_6_2">§27.6.2</a>, <a href="4-rsfk.html#SP27_6_3">§27.6.3</a>, <a href="4-rsfk.html#SP27_6_4">§27.6.4</a>, <a href="4-rsfk.html#SP27_6_5">§27.6.5</a>, <a href="4-rsfk.html#SP27_6_6">§27.6.6</a>, <a href="4-rsfk.html#SP28">§28</a><br/>Extension Files at Run Time - <a href="4-efart.html#SP1">§1</a><br/>Verbs at Run Time - <a href="4-vart.html#SP4_1">§4.1</a>, <a href="4-vart.html#SP4_2">§4.2</a><br/>Relations at Run Time - <a href="4-rart.html#SP4">§4</a>, <a href="4-rart.html#SP4_2">§4.2</a>, <a href="4-rart.html#SP6">§6</a>, <a href="4-rart.html#SP18_1">§18.1</a>, <a href="4-rart.html#SP18_2">§18.2</a>, <a href="4-rart.html#SP18_3">§18.3</a>, <a href="4-rart.html#SP18_4">§18.4</a>, <a href="4-rart.html#SP18_5">§18.5</a>, <a href="4-rart.html#SP18_6">§18.6</a>, <a href="4-rart.html#SP19">§19</a>, <a href="4-rart.html#SP23">§23</a><br/>Literal Patterns at Run Time - <a href="4-lpart.html#SP2">§2</a><br/>Runtime Support for Tables - <a href="4-rsft.html#SP2">§2</a>, <a href="4-rsft.html#SP5">§5</a><br/>Naming - <a href="5-nmn.html#SP2">§2</a><br/>Backdrops - <a href="5-bck.html#SP2_1">§2.1</a>, <a href="5-bck.html#SP2_2">§2.2</a><br/>Regions - <a href="5-rgn.html#SP2">§2</a><br/>The Map - <a href="5-tm.html#SP4">§4</a><br/>Showme Command - <a href="5-sc.html#SP2">§2</a><br/>Scenes - <a href="5-scn.html#SP2">§2</a>, <a href="5-scn.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-rtn.html#SP3" class="function-link"><span class="function-syntax">Routines::begin_framed</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
@ -140,7 +140,7 @@ did not.
|
|||
</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">Routines::end</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">Routines::end</span></span>:<br/>List Together - <a href="4-lt.html#SP3_1">§3.1</a><br/>Text Literals - <a href="4-tl.html#SP13_2">§13.2</a><br/>Text Substitutions - <a href="4-ts.html#SP11">§11</a><br/>Responses - <a href="4-rsp.html#SP5_1">§5.1</a>, <a href="4-rsp.html#SP5_2">§5.2</a>, <a href="4-rsp.html#SP6_2">§6.2</a><br/>Equations Support - <a href="4-es.html#SP1">§1</a><br/>Test Scripts - <a href="4-ts2.html#SP3">§3</a><br/>Internal Test Cases - <a href="4-itc.html#SP4">§4</a><br/>Use Options at Run Time - <a href="4-uoart.html#SP1_1">§1.1</a>, <a href="4-uoart.html#SP1_2">§1.2</a><br/>Variables - <a href="4-vrb.html#SP5_1">§5.1</a><br/>Measurements - <a href="4-msr.html#SP1">§1</a><br/>Adjectives - <a href="4-adj.html#SP3_2">§3.2</a>, <a href="4-adj.html#SP5">§5</a><br/>Runtime Support for Kinds - <a href="4-rsfk.html#SP19_3">§19.3</a>, <a href="4-rsfk.html#SP27_1">§27.1</a>, <a href="4-rsfk.html#SP27_2">§27.2</a>, <a href="4-rsfk.html#SP27_3">§27.3</a>, <a href="4-rsfk.html#SP27_4">§27.4</a>, <a href="4-rsfk.html#SP27_5">§27.5</a>, <a href="4-rsfk.html#SP27_6_1">§27.6.1</a>, <a href="4-rsfk.html#SP27_6_2">§27.6.2</a>, <a href="4-rsfk.html#SP27_6_3">§27.6.3</a>, <a href="4-rsfk.html#SP27_6_4">§27.6.4</a>, <a href="4-rsfk.html#SP27_6_5">§27.6.5</a>, <a href="4-rsfk.html#SP27_6_6">§27.6.6</a>, <a href="4-rsfk.html#SP28">§28</a><br/>Extension Files at Run Time - <a href="4-efart.html#SP1">§1</a><br/>Verbs at Run Time - <a href="4-vart.html#SP4_1">§4.1</a>, <a href="4-vart.html#SP4_2">§4.2</a><br/>Relations at Run Time - <a href="4-rart.html#SP4">§4</a>, <a href="4-rart.html#SP4_2">§4.2</a>, <a href="4-rart.html#SP6">§6</a>, <a href="4-rart.html#SP18_1">§18.1</a>, <a href="4-rart.html#SP18_2">§18.2</a>, <a href="4-rart.html#SP18_3">§18.3</a>, <a href="4-rart.html#SP18_4">§18.4</a>, <a href="4-rart.html#SP18_5">§18.5</a>, <a href="4-rart.html#SP18_6">§18.6</a>, <a href="4-rart.html#SP19">§19</a>, <a href="4-rart.html#SP23">§23</a><br/>Literal Patterns at Run Time - <a href="4-lpart.html#SP2">§2</a><br/>Runtime Support for Tables - <a href="4-rsft.html#SP2">§2</a>, <a href="4-rsft.html#SP5">§5</a><br/>Naming - <a href="5-nmn.html#SP2">§2</a><br/>Backdrops - <a href="5-bck.html#SP2_1">§2.1</a>, <a href="5-bck.html#SP2_2">§2.2</a><br/>Regions - <a href="5-rgn.html#SP2">§2</a><br/>The Map - <a href="5-tm.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Routines::end</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">Routines::end</span></span>:<br/>List Together - <a href="4-lt.html#SP3_1">§3.1</a><br/>Text Literals - <a href="4-tl.html#SP13_2">§13.2</a><br/>Text Substitutions - <a href="4-ts.html#SP11">§11</a><br/>Responses - <a href="4-rsp.html#SP5_1">§5.1</a>, <a href="4-rsp.html#SP5_2">§5.2</a>, <a href="4-rsp.html#SP6_2">§6.2</a><br/>Equations Support - <a href="4-es.html#SP1">§1</a><br/>Test Scripts - <a href="4-ts2.html#SP3">§3</a><br/>Internal Test Cases - <a href="4-itc.html#SP4">§4</a><br/>Use Options at Run Time - <a href="4-uoart.html#SP1_1">§1.1</a>, <a href="4-uoart.html#SP1_2">§1.2</a><br/>Variables - <a href="4-vrb.html#SP5_1">§5.1</a><br/>Measurements - <a href="4-msr.html#SP1">§1</a><br/>Adjectives - <a href="4-adj.html#SP3_2">§3.2</a>, <a href="4-adj.html#SP5">§5</a><br/>Runtime Support for Kinds - <a href="4-rsfk.html#SP19_3">§19.3</a>, <a href="4-rsfk.html#SP27_1">§27.1</a>, <a href="4-rsfk.html#SP27_2">§27.2</a>, <a href="4-rsfk.html#SP27_3">§27.3</a>, <a href="4-rsfk.html#SP27_4">§27.4</a>, <a href="4-rsfk.html#SP27_5">§27.5</a>, <a href="4-rsfk.html#SP27_6_1">§27.6.1</a>, <a href="4-rsfk.html#SP27_6_2">§27.6.2</a>, <a href="4-rsfk.html#SP27_6_3">§27.6.3</a>, <a href="4-rsfk.html#SP27_6_4">§27.6.4</a>, <a href="4-rsfk.html#SP27_6_5">§27.6.5</a>, <a href="4-rsfk.html#SP27_6_6">§27.6.6</a>, <a href="4-rsfk.html#SP28">§28</a><br/>Extension Files at Run Time - <a href="4-efart.html#SP1">§1</a><br/>Verbs at Run Time - <a href="4-vart.html#SP4_1">§4.1</a>, <a href="4-vart.html#SP4_2">§4.2</a><br/>Relations at Run Time - <a href="4-rart.html#SP4">§4</a>, <a href="4-rart.html#SP4_2">§4.2</a>, <a href="4-rart.html#SP6">§6</a>, <a href="4-rart.html#SP18_1">§18.1</a>, <a href="4-rart.html#SP18_2">§18.2</a>, <a href="4-rart.html#SP18_3">§18.3</a>, <a href="4-rart.html#SP18_4">§18.4</a>, <a href="4-rart.html#SP18_5">§18.5</a>, <a href="4-rart.html#SP18_6">§18.6</a>, <a href="4-rart.html#SP19">§19</a>, <a href="4-rart.html#SP23">§23</a><br/>Literal Patterns at Run Time - <a href="4-lpart.html#SP2">§2</a><br/>Runtime Support for Tables - <a href="4-rsft.html#SP2">§2</a>, <a href="4-rsft.html#SP5">§5</a><br/>Naming - <a href="5-nmn.html#SP2">§2</a><br/>Backdrops - <a href="5-bck.html#SP2_1">§2.1</a>, <a href="5-bck.html#SP2_2">§2.2</a><br/>Regions - <a href="5-rgn.html#SP2">§2</a><br/>The Map - <a href="5-tm.html#SP4">§4</a><br/>Showme Command - <a href="5-sc.html#SP2">§2</a><br/>Scenes - <a href="5-scn.html#SP2">§2</a>, <a href="5-scn.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R_kind</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::deduced_function_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">currently_compiling_in_frame</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kernel_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, *</span><span class="identifier-syntax">public_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">currently_compiling_iname</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -92,7 +92,7 @@ stipulations on place and possessions attached.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">test_scenario</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure test_scenario is accessed in 4/rsp, 4/uoart, 4/vrb, 4/prp and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure test_scenario is accessed in 4/rsp, 4/uoart, 4/vrb, 4/prp, 5/sc and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
|
|
@ -397,7 +397,7 @@ which makes its kind safe. Hence the error messages.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Holsters::to_val_mode</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), &</span><span class="identifier-syntax">VH</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">RTVariables::seek_initial_value</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">RTVariables::seek_initial_value</span></span>:<br/><a href="4-vrb.html#SP5">§5</a><br/>Bibliographic Data - <a href="5-bd.html#SP1_1">§1.1</a>, <a href="5-bd.html#SP1_2">§1.2</a>, <a href="5-bd.html#SP1_3">§1.3</a>, <a href="5-bd.html#SP1_4">§1.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> *</span><span class="identifier-syntax">v1</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTVariables::seek_initial_value</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">RTVariables::seek_initial_value</span></span>:<br/><a href="4-vrb.html#SP5">§5</a><br/>Bibliographic Data - <a href="5-bd.html#SP1_1">§1.1</a>, <a href="5-bd.html#SP1_2">§1.2</a>, <a href="5-bd.html#SP1_3">§1.3</a>, <a href="5-bd.html#SP1_4">§1.4</a><br/>The Score - <a href="5-ts.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> *</span><span class="identifier-syntax">v1</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> *</span><span class="identifier-syntax">v2</span><span class="plain-syntax">, </span><span class="identifier-syntax">nonlocal_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nlv</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">ival_emission</span><span class="plain-syntax"> </span><span class="identifier-syntax">IE</span><span class="plain-syntax"> = </span><a href="2-emt.html#SP4" class="function-link"><span class="function-syntax">Emit::begin_ival_emission</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="4-vrb.html#SP6" class="function-link"><span class="function-syntax">RTVariables::compile_initial_value_vh</span></a><span class="plain-syntax">(</span><a href="2-emt.html#SP4" class="function-link"><span class="function-syntax">Emit::ival_holster</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">IE</span><span class="plain-syntax">), </span><span class="identifier-syntax">nlv</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -142,7 +142,7 @@
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-bck.html#SP2">§2</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-tp.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresscurrent">bck</li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progressnext"><a href="5-rgn.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-tp.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresscurrent">bck</li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progressnext"><a href="5-rgn.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -211,7 +211,7 @@ around it, in byte-accessible memory.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-ef.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresscurrent">bd</li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progressnext"><a href="5-spt.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-ef.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresscurrent">bd</li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progressnext"><a href="5-spt.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -129,7 +129,7 @@
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure external_file_compilation_data is private to this section.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-se.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresscurrent">ef</li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progressnext"><a href="5-bd.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-se.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresscurrent">ef</li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progressnext"><a href="5-bd.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -77,7 +77,7 @@
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-prs.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresscurrent">fgr</li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progressnext"><a href="5-se.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-prs.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresscurrent">fgr</li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progressnext"><a href="5-se.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -186,7 +186,7 @@ function togglePopup(material_id) {
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure short_name_notice is private to this section.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-rsft.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresscurrent">nmn</li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progressnext"><a href="5-prs.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-rsft.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresscurrent">nmn</li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progressnext"><a href="5-prs.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -148,7 +148,7 @@ for the kinds we inherit from.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-nmn.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresscurrent">prs</li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progressnext"><a href="5-fgr.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-nmn.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresscurrent">prs</li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progressnext"><a href="5-fgr.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -108,7 +108,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-bck.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresscurrent">rgn</li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progressnext"><a href="5-tm.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-bck.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresscurrent">rgn</li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progressnext"><a href="5-tm.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -44,8 +44,8 @@ function togglePopup(material_id) {
|
|||
<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="index.html"><span class="selectedlink">if</span></a></li>
|
||||
<li><a href="index.html"><span class="selectedlink">runtime</span></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-module/index.html">index</a></li>
|
||||
</ul><h2>Inter Modules</h2><ul>
|
||||
|
@ -69,24 +69,24 @@ function togglePopup(material_id) {
|
|||
<main role="main">
|
||||
<!--Weave of 'Showme Command' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">if</a></li><li><a href="index.html#3">Chapter 3: Space and Time</a></li><li><b>Showme Command</b></li></ul></div>
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Plugin Support</a></li><li><b>Showme Command</b></li></ul></div>
|
||||
<p class="purpose">A plugin to provide some support for the SHOWME testing command.</p>
|
||||
|
||||
<ul class="toc"><li><a href="3-sc.html#SP1">§1. Initialising</a></li><li><a href="3-sc.html#SP2">§2. Support for the SHOWME command</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="5-sc.html#SP1">§1. Initialising</a></li><li><a href="5-sc.html#SP2">§2. Support for the SHOWME command</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. Initialising. </b>This doesn't in fact do anything, except to provide one service when it's
|
||||
plugged in.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Showme::start</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">PL::Showme::start</span></span>:<br/>IF Module - <a href="1-im.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">PRODUCTION_LINE_PLUG</span><span class="plain-syntax">, </span><a href="3-sc.html#SP1" class="function-link"><span class="function-syntax">PL::Showme::production_line</span></a><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTShowmeCommand::start</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">PRODUCTION_LINE_PLUG</span><span class="plain-syntax">, </span><a href="5-sc.html#SP1" class="function-link"><span class="function-syntax">RTShowmeCommand::production_line</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="function-syntax">PL::Showme::production_line</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">stage</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">debugging</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">RTShowmeCommand::production_line</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">stage</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">debugging</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">stopwatch_timer</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sequence_timer</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">stage</span><span class="plain-syntax"> == </span><span class="identifier-syntax">INTER5_CSEQ</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="3-sc.html#SP2" class="function-link"><span class="function-syntax">PL::Showme::compile_SHOWME_details</span></a><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="5-sc.html#SP2" class="function-link"><span class="function-syntax">RTShowmeCommand::compile_SHOWME_details</span></a><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>
|
||||
|
@ -104,45 +104,45 @@ properties.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Showme::compile_SHOWME_details</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">PL::Showme::compile_SHOWME_details</span></span>:<br/><a href="3-sc.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Hierarchy::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">SHOWMEDETAILS_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Routines::begin</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTShowmeCommand::compile_SHOWME_details</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">RTShowmeCommand::compile_SHOWME_details</span></span>:<br/><a href="5-sc.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SHOWMEDETAILS_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><a href="4-rtn.html#SP1" class="function-link"><span class="function-syntax">Routines::begin</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::add_named_call_as_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"t_0"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">na_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::add_named_call_as_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"na"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">IFDEBUG_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</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">Produce::code</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">Produce::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><a href="3-sc.html#SP2" class="function-link"><span class="function-syntax">PL::Showme::compile_SHOWME_type</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">na_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-sc.html#SP2" class="function-link"><span class="function-syntax">PL::Showme::compile_SHOWME_type</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">, </span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">na_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</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">Produce::up</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">Routines::end</span><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Hierarchy::make_available</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">IFDEBUG_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><a href="5-sc.html#SP2" class="function-link"><span class="function-syntax">RTShowmeCommand::compile_SHOWME_type</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">na_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-sc.html#SP2" class="function-link"><span class="function-syntax">RTShowmeCommand::compile_SHOWME_type</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">, </span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">na_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><a href="4-rtn.html#SP4" class="function-link"><span class="function-syntax">Routines::end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">iname</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">PL::Showme::compile_SHOWME_type</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">na_s</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTShowmeCommand::compile_SHOWME_type</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">na_s</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_BASE_KINDS</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">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><a href="3-sc.html#SP2" class="function-link"><span class="function-syntax">PL::Showme::compile_SHOWME_type_subj</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">KindSubjects::from_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">), </span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">na_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-sc.html#SP2" class="function-link"><span class="function-syntax">RTShowmeCommand::compile_SHOWME_type_subj</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">KindSubjects::from_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">), </span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">na_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_INSTANCES</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="3-sc.html#SP2" class="function-link"><span class="function-syntax">PL::Showme::compile_SHOWME_type_subj</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">Instances::as_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">na_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-sc.html#SP2" class="function-link"><span class="function-syntax">RTShowmeCommand::compile_SHOWME_type_subj</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">Instances::as_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">), </span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">na_s</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">PL::Showme::compile_SHOWME_type_subj</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subj</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">na_s</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-sc.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Skip if this object's definition has nothing to offer SHOWME</span><span class="named-paragraph-number">2.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTShowmeCommand::compile_SHOWME_type_subj</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subj</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">na_s</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-sc.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Skip if this object's definition has nothing to offer SHOWME</span><span class="named-paragraph-number">2.1</span></a></span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</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">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InferenceSubjects::emit_element_of_condition</span><span class="plain-syntax">(</span><span class="identifier-syntax">subj</span><span class="plain-syntax">, </span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</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">Produce::down</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="named-paragraph-container code-font"><a href="3-sc.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Divide up the sublists of either/or properties in a SHOWME</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="3-sc.html#SP2_3" class="named-paragraph-link"><span class="named-paragraph">Compile code which shows properties inherited from this object's definition</span><span class="named-paragraph-number">2.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</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">Produce::up</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">Produce::code</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-sc.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Divide up the sublists of either/or properties in a SHOWME</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="5-sc.html#SP2_3" class="named-paragraph-link"><span class="named-paragraph">Compile code which shows properties inherited from this object's definition</span><span class="named-paragraph-number">2.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP2_1" class="paragraph-anchor"></a><b>§2.1. </b>This simply avoids compiling redundant empty <span class="extract"><span class="extract-syntax">if</span></span> statements.
|
||||
|
@ -156,11 +156,11 @@ properties.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">property</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Properties::is_value_property</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">) == </span><span class="identifier-syntax">val</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-sc.html#SP3" class="function-link"><span class="function-syntax">PL::Showme::is_property_worth_SHOWME</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">subj</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">na_s</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="5-sc.html#SP3" class="function-link"><span class="function-syntax">RTShowmeCommand::is_property_worth_SHOWME</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">subj</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">na_s</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">todo</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">todo</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>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-sc.html#SP2">§2</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-sc.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_2" class="paragraph-anchor"></a><b>§2.2. </b>In the code running at this point, <span class="extract"><span class="extract-syntax">na</span></span> holds the number of either/or
|
||||
properties listed since the last time it was zeroed. If it's positive, we
|
||||
need either a semicolon or a line break. If we're about to work on another
|
||||
|
@ -181,28 +181,28 @@ second of just one from "person".
|
|||
<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">divider</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="string-syntax">"; "</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">val</span><span class="plain-syntax">) </span><span class="identifier-syntax">divider</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="string-syntax">"\n"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</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">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">GT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</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">Produce::val_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">na_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</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">Produce::code</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">Produce::down</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">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">STORE_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</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">Produce::ref_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">na_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</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">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">PRINT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</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">Produce::val_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">divider</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</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">Produce::up</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">Produce::up</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">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">GT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_symbol</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">na_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">STORE_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::ref_symbol</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">na_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">PRINT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_text</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">divider</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-sc.html#SP2">§2</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-sc.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_3" class="paragraph-anchor"></a><b>§2.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile code which shows properties inherited from this object's definition</span><span class="named-paragraph-number">2.3</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
|
@ -210,28 +210,28 @@ second of just one from "person".
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">property</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Properties::is_value_property</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">) == </span><span class="identifier-syntax">val</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="3-sc.html#SP3" class="function-link"><span class="function-syntax">PL::Showme::compile_property_SHOWME</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">subj</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">na_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-sc.html#SP3" class="function-link"><span class="function-syntax">RTShowmeCommand::compile_property_SHOWME</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">subj</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">na_s</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-sc.html#SP2">§2</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-sc.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. </b>We actually use the same routine for both testing and compiling:
|
||||
</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">PL::Showme::is_property_worth_SHOWME</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">PL::Showme::is_property_worth_SHOWME</span></span>:<br/><a href="3-sc.html#SP2_1">§2.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subj</span><span class="plain-syntax">, </span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">na_s</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-sc.html#SP4" class="function-link"><span class="function-syntax">PL::Showme::SHOWME_primitive</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">subj</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">na_s</span><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">RTShowmeCommand::is_property_worth_SHOWME</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">RTShowmeCommand::is_property_worth_SHOWME</span></span>:<br/><a href="5-sc.html#SP2_1">§2.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subj</span><span class="plain-syntax">, </span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">na_s</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-sc.html#SP4" class="function-link"><span class="function-syntax">RTShowmeCommand::SHOWME_primitive</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">subj</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">na_s</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">PL::Showme::compile_property_SHOWME</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">PL::Showme::compile_property_SHOWME</span></span>:<br/><a href="3-sc.html#SP2_3">§2.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subj</span><span class="plain-syntax">, </span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">na_s</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="3-sc.html#SP4" class="function-link"><span class="function-syntax">PL::Showme::SHOWME_primitive</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">subj</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">, </span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">na_s</span><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTShowmeCommand::compile_property_SHOWME</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">RTShowmeCommand::compile_property_SHOWME</span></span>:<br/><a href="5-sc.html#SP2_3">§2.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subj</span><span class="plain-syntax">, </span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">na_s</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="5-sc.html#SP4" class="function-link"><span class="function-syntax">RTShowmeCommand::SHOWME_primitive</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">subj</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">, </span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">na_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. </b>So here goes.
|
||||
</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">PL::Showme::SHOWME_primitive</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">PL::Showme::SHOWME_primitive</span></span>:<br/><a href="3-sc.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subj</span><span class="plain-syntax">, </span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">comp</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">na_s</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">RTShowmeCommand::SHOWME_primitive</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">RTShowmeCommand::SHOWME_primitive</span></span>:<br/><a href="5-sc.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subj</span><span class="plain-syntax">, </span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">comp</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">na_s</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">IXProperties::is_shown_in_index</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</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="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">RTProperties::can_be_compiled</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</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="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-prp.html#SP2" class="function-link"><span class="function-syntax">RTProperties::can_be_compiled</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</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="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">parent</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InferenceSubjects::narrowest_broader_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">subj</span><span class="plain-syntax">);</span>
|
||||
|
||||
|
@ -239,9 +239,9 @@ second of just one from "person".
|
|||
<span class="plain-syntax"> (</span><span class="identifier-syntax">PropertyPermissions::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">parent</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">) == </span><span class="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">comp</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Properties::is_value_property</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-sc.html#SP4_1" class="named-paragraph-link"><span class="named-paragraph">Compile the SHOWME printing code for a value property</span><span class="named-paragraph-number">4.1</span></a></span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-sc.html#SP4_1" class="named-paragraph-link"><span class="named-paragraph">Compile the SHOWME printing code for a value property</span><span class="named-paragraph-number">4.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="3-sc.html#SP4_2" class="named-paragraph-link"><span class="named-paragraph">Compile the SHOWME printing code for an either/or property</span><span class="named-paragraph-number">4.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-sc.html#SP4_2" class="named-paragraph-link"><span class="named-paragraph">Compile the SHOWME printing code for an either/or property</span><span class="named-paragraph-number">4.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -274,105 +274,105 @@ routine for colours; and the best thing is to print nothing at all.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ValueProperties::kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">require_nonzero</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">RTProperties::uses_non_typesafe_0</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">)) ||</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="4-prp.html#SP9" class="function-link"><span class="function-syntax">RTProperties::uses_non_typesafe_0</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">)) ||</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">require_nonzero</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">require_nonzero</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Hierarchy::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">GPROPERTY_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_call_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</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">RTKinds::emit_weak_id_as_val</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_object</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">RTProperties::iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</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">Produce::code</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">Produce::down</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">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">GPROPERTY_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_call_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><a href="4-rsfk.html#SP12" class="function-link"><span class="function-syntax">RTKinds::emit_weak_id_as_val</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_object</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_symbol</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="4-prp.html#SP6" class="function-link"><span class="function-syntax">RTProperties::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><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-sc.html#SP4_1_1" class="named-paragraph-link"><span class="named-paragraph">Compile the SHOWME printing of the value of a value property</span><span class="named-paragraph-number">4.1.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-sc.html#SP4_1_1" class="named-paragraph-link"><span class="named-paragraph">Compile the SHOWME printing of the value of a value property</span><span class="named-paragraph-number">4.1.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">require_nonzero</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</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">Produce::up</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">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-sc.html#SP4">§4</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-sc.html#SP4">§4</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP4_1_1" class="paragraph-anchor"></a><b>§4.1.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile the SHOWME printing of the value of a value property</span><span class="named-paragraph-number">4.1.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="string-syntax">"%+W: "</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">PRINT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</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">Produce::val_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">T</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</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">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">PRINT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_text</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</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="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">)</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_text</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">IFELSE_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</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">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">EQ_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</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">Produce::inv_call_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">Hierarchy::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEXT_TY_COMPARE_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</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">Produce::inv_call_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">Hierarchy::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">GPROPERTY_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</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">RTKinds::emit_weak_id_as_val</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_object</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">RTProperties::iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</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">Produce::val_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">Hierarchy::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">EMPTY_TEXT_VALUE_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</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">Produce::val</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</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">Produce::code</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">Produce::down</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">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">PRINT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</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">Produce::val_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">I</span><span class="string-syntax">"none"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</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">Produce::up</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">Produce::code</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">Produce::down</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">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">PRINTCHAR_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</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">Produce::val</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, </span><span class="character-syntax">'\"'</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</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="named-paragraph-container code-font"><a href="3-sc.html#SP4_1_1_1" class="named-paragraph-link"><span class="named-paragraph">Compile the SHOWME of the actual value</span><span class="named-paragraph-number">4.1.1.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">PRINTCHAR_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</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">Produce::val</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, </span><span class="character-syntax">'\"'</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</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">Produce::up</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">Produce::up</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">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">IFELSE_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">EQ_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_call_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TEXT_TY_COMPARE_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_call_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">GPROPERTY_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><a href="4-rsfk.html#SP12" class="function-link"><span class="function-syntax">RTKinds::emit_weak_id_as_val</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_object</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_symbol</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="4-prp.html#SP6" class="function-link"><span class="function-syntax">RTProperties::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">EMPTY_TEXT_VALUE_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">PRINT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_text</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">I</span><span class="string-syntax">"none"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">PRINTCHAR_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, </span><span class="character-syntax">'\"'</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-sc.html#SP4_1_1_1" class="named-paragraph-link"><span class="named-paragraph">Compile the SHOWME of the actual value</span><span class="named-paragraph-number">4.1.1.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">PRINTCHAR_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, </span><span class="character-syntax">'\"'</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><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="named-paragraph-container code-font"><a href="3-sc.html#SP4_1_1_1" class="named-paragraph-link"><span class="named-paragraph">Compile the SHOWME of the actual value</span><span class="named-paragraph-number">4.1.1.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-sc.html#SP4_1_1_1" class="named-paragraph-link"><span class="named-paragraph">Compile the SHOWME of the actual value</span><span class="named-paragraph-number">4.1.1.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">PRINT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</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">Produce::val_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">I</span><span class="string-syntax">"\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</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">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">PRINT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_text</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">I</span><span class="string-syntax">"\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-sc.html#SP4_1">§4.1</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-sc.html#SP4_1">§4.1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP4_1_1_1" class="paragraph-anchor"></a><b>§4.1.1.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile the SHOWME of the actual value</span><span class="named-paragraph-number">4.1.1.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">INDIRECT1V_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</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">Produce::val_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">Kinds::Behaviour::get_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_call_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">Hierarchy::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">GPROPERTY_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</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">RTKinds::emit_weak_id_as_val</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_object</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">RTProperties::iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</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">Produce::up</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">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">INDIRECT1V_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">Kinds::Behaviour::get_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_call_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">GPROPERTY_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><a href="4-rsfk.html#SP12" class="function-link"><span class="function-syntax">RTKinds::emit_weak_id_as_val</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_object</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_symbol</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="4-prp.html#SP6" class="function-link"><span class="function-syntax">RTProperties::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-sc.html#SP4_1_1">§4.1.1</a> (twice).</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-sc.html#SP4_1_1">§4.1.1</a> (twice).</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP4_2" class="paragraph-anchor"></a><b>§4.2. </b>The I6 template code is allowed to bar certain either/or properties using
|
||||
<span class="extract"><span class="extract-syntax">AllowInShowme</span></span>; it typically uses this to block distracting temporary-workspace
|
||||
properties like "marked for listing" whose values have no significance
|
||||
|
@ -384,63 +384,63 @@ turn by turn.
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">allow</span><span class="plain-syntax"> = </span><span class="identifier-syntax">prn</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">RTProperties::stored_in_negation</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-prp.html#SP4" class="function-link"><span class="function-syntax">RTProperties::stored_in_negation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">allow</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EitherOrProperties::get_negation</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</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">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">AND_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</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">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">AND_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</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">TargetVMs::debug_enabled</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::vm</span><span class="plain-syntax">())) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_call_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">Hierarchy::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">ALLOWINSHOWME_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</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">Produce::val_iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">RTProperties::iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</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">Produce::inv_call_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">ALLOWINSHOWME_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="4-prp.html#SP6" class="function-link"><span class="function-syntax">RTProperties::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><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">Produce::val</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RTPropertyValues::emit_has_property</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</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">Produce::code</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">Produce::down</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="named-paragraph-container code-font"><a href="3-sc.html#SP4_2_1" class="named-paragraph-link"><span class="named-paragraph">Compile the comma as needed</span><span class="named-paragraph-number">4.2.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="4-epv.html#SP4" class="function-link"><span class="function-syntax">RTPropertyValues::emit_has_property</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">t_0_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-sc.html#SP4_2_1" class="named-paragraph-link"><span class="named-paragraph">Compile the comma as needed</span><span class="named-paragraph-number">4.2.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">PRINT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</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">Produce::val_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">T</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</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">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">PRINT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_text</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</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="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</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">Produce::up</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">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-sc.html#SP4">§4</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-sc.html#SP4">§4</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP4_2_1" class="paragraph-anchor"></a><b>§4.2.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile the comma as needed</span><span class="named-paragraph-number">4.2.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</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">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">GT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</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">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">POSTINCREMENT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</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">Produce::ref_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">na_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</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">Produce::val</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</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">Produce::code</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">Produce::down</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">Produce::inv_primitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">PRINT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</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">Produce::val_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">Emit::tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">I</span><span class="string-syntax">", "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</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">Produce::up</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">Produce::up</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">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">GT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">POSTINCREMENT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::ref_symbol</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">na_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">PRINT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_text</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">I</span><span class="string-syntax">", "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-sc.html#SP4_2">§4.2</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-sc.html#SP4_2">§4.2</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-em.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-bd.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresssection"><a href="3-enah.html">enah</a></li><li class="progresssection"><a href="3-sr.html">sr</a></li><li class="progresssection"><a href="3-si.html">si</a></li><li class="progresssection"><a href="3-prs.html">prs</a></li><li class="progresssection"><a href="3-tp.html">tp</a></li><li class="progresssection"><a href="3-dvc.html">dvc</a></li><li class="progresssection"><a href="3-bck.html">bck</a></li><li class="progresssection"><a href="3-rgn.html">rgn</a></li><li class="progresssection"><a href="3-tm.html">tm</a></li><li class="progresssection"><a href="3-mcr.html">mcr</a></li><li class="progresssection"><a href="3-sg.html">sg</a></li><li class="progresssection"><a href="3-sm2.html">sm2</a></li><li class="progresssection"><a href="3-hm.html">hm</a></li><li class="progresssection"><a href="3-em.html">em</a></li><li class="progresscurrent">sc</li><li class="progresssection"><a href="3-scn.html">scn</a></li><li class="progresssection"><a href="3-tm2.html">tm2</a></li><li class="progresssection"><a href="3-ts.html">ts</a></li><li class="progresschapter"><a href="4-ap.html">4</a></li><li class="progresschapter"><a href="5-pp.html">5</a></li><li class="progressnext"><a href="3-scn.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-tm.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresscurrent">sc</li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progressnext"><a href="5-ts.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
791
docs/runtime-module/5-scn.html
Normal file
791
docs/runtime-module/5-scn.html
Normal file
|
@ -0,0 +1,791 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Scenes</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="index.html"><span class="selectedlink">runtime</span></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-module/index.html">index</a></li>
|
||||
</ul><h2>Inter Modules</h2><ul>
|
||||
<li><a href="../bytecode-module/index.html">bytecode</a></li>
|
||||
<li><a href="../building-module/index.html">building</a></li>
|
||||
<li><a href="../codegen-module/index.html">codegen</a></li>
|
||||
</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 'Scenes' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Plugin Support</a></li><li><b>Scenes</b></li></ul></div>
|
||||
<p class="purpose">Compiling code to manage scene changes at run-time.</p>
|
||||
|
||||
<ul class="toc"><li><a href="5-scn.html#SP2">§2. Scene-changing machinery at run-time</a></li><li><a href="5-scn.html#SP6">§6. More SCENES output</a></li><li><a href="5-scn.html#SP7">§7. During clauses</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b>At run-time, we need to store information about the current state of each
|
||||
scene: whether it is currently playing or not, when the last change occurred,
|
||||
and so on. This data is stored in I6 arrays as follows:
|
||||
</p>
|
||||
|
||||
<p class="commentary">First, each scene has a unique ID number, used as an index <span class="extract"><span class="extract-syntax">X</span></span> to these arrays.
|
||||
This ID number is what is stored as an I6 value for the kind of value <span class="extract"><span class="extract-syntax">scene</span></span>,
|
||||
and it agrees with the allocation ID for the I7 scene structure.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="extract"><span class="extract-syntax">scene_status-->X</span></span> is 0 if the scene is not playing, but may do so in future;
|
||||
1 if the scene is playing; or 2 if the scene is not playing and will never
|
||||
play again.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="extract"><span class="extract-syntax">scene_started-->X</span></span> is the value of <span class="extract"><span class="extract-syntax">the_time</span></span> when the scene last started,
|
||||
or 0 if it has never started.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="extract"><span class="extract-syntax">scene_ended-->X</span></span> is the value of <span class="extract"><span class="extract-syntax">the_time</span></span> when the scene last ended,
|
||||
or 0 if it has never ended. (The "starting" end does not count as ending
|
||||
for this purpose.)
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="extract"><span class="extract-syntax">scene_endings-->X</span></span> is a bitmap recording which ends have been used,
|
||||
including bit 1 which records whether the scene has started.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="extract"><span class="extract-syntax">scene_latest_ending-->X</span></span> holds the end number of the most recent ending
|
||||
(or 0 if the scene has never ended).
|
||||
</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. Scene-changing machinery at run-time. </b>So what are scenes for? Well, they have two uses. One is that the end
|
||||
rulebooks are run when ends occur, which is a convenient way to time events.
|
||||
The following generates the necessary code to (a) detect when a scene end
|
||||
occurs, and (b) act upon it. This is all handled by the following Inter
|
||||
function.
|
||||
</p>
|
||||
|
||||
<p class="commentary">There is one argument, <span class="extract"><span class="extract-syntax">chs</span></span>: the number of iterations so far. Iterations
|
||||
occur because each set of scene changes could change the circumstances in such
|
||||
a way that other scene changes are now required (through external conditions,
|
||||
not through anchors); we don't want this to lock up, so we will cap recursion.
|
||||
Within the routine, a second local variable, <span class="extract"><span class="extract-syntax">ch</span></span>, is a flag indicating
|
||||
whether any change in status has or has not occurred.
|
||||
</p>
|
||||
|
||||
<p class="commentary">There is no significance to the return value.
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">MAX_SCENE_CHANGE_ITERATION</span><span class="plain-syntax"> </span><span class="constant-syntax">20</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">RTScenes::DetectSceneChange_routine</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">DETECTSCENECHANGE_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><a href="4-rtn.html#SP1" class="function-link"><span class="function-syntax">Routines::begin</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">chs_s</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LocalVariables::add_internal_local_c_as_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"chs"</span><span class="plain-syntax">, </span><span class="string-syntax">"count of changes made"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ch_s</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LocalVariables::add_internal_local_c_as_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"ch"</span><span class="plain-syntax">, </span><span class="string-syntax">"flag: change made"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">CScene_l</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Produce::reserve_label</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">I</span><span class="string-syntax">".CScene"</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc</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">sc</span><span class="plain-syntax">, </span><span class="identifier-syntax">scene</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="5-scn.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Compile code detecting the ends of a specific scene</span><span class="named-paragraph-number">2.2</span></a></span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::place_label</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">CScene_l</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-scn.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Add the scene-change tail</span><span class="named-paragraph-number">2.1</span></a></span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><a href="4-rtn.html#SP4" class="function-link"><span class="function-syntax">Routines::end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">iname</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>§2.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Add the scene-change tail</span><span class="named-paragraph-number">2.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">GT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_symbol</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">chs_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="constant-syntax">MAX_SCENE_CHANGE_ITERATION</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">PRINT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_text</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">I</span><span class="string-syntax">">--> The scene change machinery is stuck.\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::rtrue</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">GT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_symbol</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">ch_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_call_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">PREINCREMENT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::ref_symbol</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">chs_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::rfalse</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-scn.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_2" class="paragraph-anchor"></a><b>§2.2. </b>Recall that ends numbered 1, 2, 3, ... are all ways for the scene to end,
|
||||
so they are only checked if its status is currently running; end 0 is the
|
||||
beginning, checked only if it isn't. We give priority to the higher end
|
||||
numbers so that more abstruse ways to end take precedence over less.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile code detecting the ends of a specific scene</span><span class="named-paragraph-number">2.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">EQ_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">LOOKUP_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SCENE_STATUS_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</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">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><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">end</span><span class="plain-syntax">=</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">no_ends</span><span class="plain-syntax">-1; </span><span class="identifier-syntax">end</span><span class="plain-syntax">>=1; </span><span class="identifier-syntax">end</span><span class="plain-syntax">--)</span>
|
||||
<span class="plain-syntax"> </span><a href="5-scn.html#SP3" class="function-link"><span class="function-syntax">RTScenes::test_scene_end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">, </span><span class="identifier-syntax">end</span><span class="plain-syntax">, </span><span class="identifier-syntax">ch_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">CScene_l</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">EQ_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">LOOKUP_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SCENE_STATUS_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><a href="5-scn.html#SP3" class="function-link"><span class="function-syntax">RTScenes::test_scene_end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">ch_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">CScene_l</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-scn.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. </b>Individual ends are tested here. There are actually three ways an end can
|
||||
occur: at start of play (for end 0 only), when an I7 condition holds, or when
|
||||
another end to which it is anchored also ends. But we only check the first
|
||||
two, because the third way will be taken care of by the consequences code
|
||||
below.
|
||||
</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">RTScenes::test_scene_end</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">RTScenes::test_scene_end</span></span>:<br/><a href="5-scn.html#SP2_2">§2.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc</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="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ch_s</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">CScene_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">end</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">start_of_play</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">EQ_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">BITWISEAND_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">LOOKUP_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SCENE_ENDINGS_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</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">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><a href="5-scn.html#SP4" class="function-link"><span class="function-syntax">RTScenes::compile_scene_end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sc</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">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">].</span><span class="identifier-syntax">anchor_condition</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-scn.html#SP3_1" class="named-paragraph-link"><span class="named-paragraph">Reparse the scene end condition in this new context</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="5-scn.html#SP3_2" class="named-paragraph-link"><span class="named-paragraph">Compile code to test the scene end condition</span><span class="named-paragraph-number">3.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="SP3_1" class="paragraph-anchor"></a><b>§3.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Reparse the scene end condition in this new context</span><span class="named-paragraph-number">3.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">].</span><span class="identifier-syntax">anchor_condition_set</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Node::is</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">UNKNOWN_NT</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><s-condition></span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">))) </span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><span class="function-syntax"><<rp>></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">].</span><span class="identifier-syntax">anchor_condition</span><span class="plain-syntax"> = </span><span class="identifier-syntax">S</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Node::is</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">UNKNOWN_NT</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"Condition: $P\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::sentence_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_ScenesBadCondition</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"'begins when' and 'ends when' must be followed by a condition"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"which this does not seem to be, or else 'when play begins', "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"'when play ends', 'when S begins', or 'when S ends', where "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"S is the name of any scene."</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</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">Dash::check_condition</span><span class="plain-syntax">(</span><span class="identifier-syntax">S</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>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-scn.html#SP3">§3</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3_2" class="paragraph-anchor"></a><b>§3.2. </b>If the condition holds, we set the change flag <span class="extract"><span class="extract-syntax">ch</span></span> and abort the search
|
||||
through scenes by jumping past the run of tests. (We can't compile a break
|
||||
instruction because we're not compiling a loop.)
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile code to test the scene end condition</span><span class="named-paragraph-number">3.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">].</span><span class="identifier-syntax">anchor_condition_set</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Specifications::Compiler::emit_as_val</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_truth_state</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">STORE_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::ref_symbol</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">ch_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</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">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><a href="5-scn.html#SP4" class="function-link"><span class="function-syntax">RTScenes::compile_scene_end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">, </span><span class="identifier-syntax">end</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">JUMP_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::lab</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">CScene_l</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-scn.html#SP3">§3</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. </b>That's everything except for the consequences of a scene end occurring.
|
||||
Code for that is generated here.
|
||||
</p>
|
||||
|
||||
<p class="commentary">Because one end can cause another, given anchoring, we must guard against
|
||||
compiler hangs when the source text calls for infinite recursion (since
|
||||
this would cause us to generate infinitely long code). So the <span class="extract"><span class="extract-syntax">marker</span></span> flags
|
||||
are used to mark which scenes have already been ended in code generated
|
||||
for this purpose.
|
||||
</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">RTScenes::compile_scene_end</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">RTScenes::compile_scene_end</span></span>:<br/><a href="5-scn.html#SP3">§3</a>, <a href="5-scn.html#SP3_2">§3.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc</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="plain-syntax"> </span><span class="identifier-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc2</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">sc2</span><span class="plain-syntax">, </span><span class="identifier-syntax">scene</span><span class="plain-syntax">) </span><span class="identifier-syntax">sc2</span><span class="plain-syntax">-></span><span class="identifier-syntax">marker</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="5-scn.html#SP5" class="function-link"><span class="function-syntax">RTScenes::compile_scene_end_dash</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">, </span><span class="identifier-syntax">end</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. </b>The semantics of scene ending are trickier than they look, because of the
|
||||
fact that "Ballroom Dance ends merrily" (say, end number 3) is in some
|
||||
sense a specialisation of "Ballroom Dance ends" (1). The doctrine is that
|
||||
end 3 causes end 1 to happen first, because a special ending is also a
|
||||
general ending; but rules taking effect on end 3 come earlier than
|
||||
those for end 1, because they're more specialised, so they have a right to
|
||||
take effect first.
|
||||
</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">RTScenes::compile_scene_end_dash</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">RTScenes::compile_scene_end_dash</span></span>:<br/><a href="5-scn.html#SP4">§4</a>, <a href="5-scn.html#SP5_5">§5.5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc</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="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">ix</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">marker</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">end</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">e</span><span class="plain-syntax"> = </span><span class="identifier-syntax">end</span><span class="plain-syntax">; </span><span class="identifier-syntax">end</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-scn.html#SP5_4" class="named-paragraph-link"><span class="named-paragraph">Compile code to print text in response to the SCENES command</span><span class="named-paragraph-number">5.4</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-scn.html#SP5_1" class="named-paragraph-link"><span class="named-paragraph">Compile code to update the scene status</span><span class="named-paragraph-number">5.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-scn.html#SP5_3" class="named-paragraph-link"><span class="named-paragraph">Compile code to update the arrays recording most recent scene ending</span><span class="named-paragraph-number">5.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">end</span><span class="plain-syntax"> = </span><span class="identifier-syntax">e</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="5-scn.html#SP5_4" class="named-paragraph-link"><span class="named-paragraph">Compile code to print text in response to the SCENES command</span><span class="named-paragraph-number">5.4</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-scn.html#SP5_1" class="named-paragraph-link"><span class="named-paragraph">Compile code to update the scene status</span><span class="named-paragraph-number">5.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-scn.html#SP5_2" class="named-paragraph-link"><span class="named-paragraph">Compile code to run the scene end rulebooks</span><span class="named-paragraph-number">5.2</span></a></span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-scn.html#SP5_3" class="named-paragraph-link"><span class="named-paragraph">Compile code to update the arrays recording most recent scene ending</span><span class="named-paragraph-number">5.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-scn.html#SP5_5" class="named-paragraph-link"><span class="named-paragraph">Compile code to cause consequent scene ends</span><span class="named-paragraph-number">5.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">end</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">e</span><span class="plain-syntax"> = </span><span class="identifier-syntax">end</span><span class="plain-syntax">; </span><span class="identifier-syntax">end</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-scn.html#SP5_2" class="named-paragraph-link"><span class="named-paragraph">Compile code to run the scene end rulebooks</span><span class="named-paragraph-number">5.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-scn.html#SP5_5" class="named-paragraph-link"><span class="named-paragraph">Compile code to cause consequent scene ends</span><span class="named-paragraph-number">5.5</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">end</span><span class="plain-syntax"> = </span><span class="identifier-syntax">e</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP5_1" class="paragraph-anchor"></a><b>§5.1. </b>If the scene has the "recurring" either/or property, then any of the
|
||||
"ends" endings will fail to reset its status. (This doesn't mean that no
|
||||
end actually occurred.)
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile code to update the scene status</span><span class="named-paragraph-number">5.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">end</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">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">STORE_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">LOOKUPREF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SCENE_STATUS_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</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">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><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">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">IFELSE_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">GPROPERTY_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_call_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><a href="4-rsfk.html#SP12" class="function-link"><span class="function-syntax">RTKinds::emit_weak_id_as_val</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_scene</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">ix</span><span class="plain-syntax">+1);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="4-prp.html#SP6" class="function-link"><span class="function-syntax">RTProperties::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P_recurring</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">STORE_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">LOOKUPREF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SCENE_STATUS_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">STORE_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">LOOKUPREF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SCENE_STATUS_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-scn.html#SP5">§5</a> (twice).</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP5_2" class="paragraph-anchor"></a><b>§5.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile code to run the scene end rulebooks</span><span class="named-paragraph-number">5.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">end</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">Produce::inv_call_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">FOLLOWRULEBOOK_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">WHEN_SCENE_BEGINS_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</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">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_call_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">FOLLOWRULEBOOK_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">].</span><span class="identifier-syntax">end_rulebook</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</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">end</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">Produce::inv_call_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">FOLLOWRULEBOOK_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">WHEN_SCENE_ENDS_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</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">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-scn.html#SP5">§5</a> (twice).</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP5_3" class="paragraph-anchor"></a><b>§5.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile code to update the arrays recording most recent scene ending</span><span class="named-paragraph-number">5.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">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sarr</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SCENE_ENDED_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">end</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">sarr</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SCENE_STARTED_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">STORE_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">LOOKUPREF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">sarr</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">THE_TIME_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">STORE_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">LOOKUPREF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SCENE_ENDINGS_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">BITWISEOR_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">LOOKUP_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SCENE_ENDINGS_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) (1 << </span><span class="identifier-syntax">end</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">STORE_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">LOOKUPREF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SCENE_LATEST_ENDING_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">end</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-scn.html#SP5">§5</a> (twice).</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP5_4" class="paragraph-anchor"></a><b>§5.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile code to print text in response to the SCENES command</span><span class="named-paragraph-number">5.4</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">DEBUG_SCENES_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><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">OUT</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">"[Scene '"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_instance</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Instances::get_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_instance</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"' "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">end</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"begins"</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">"ends"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">end</span><span class="plain-syntax"> >= </span><span class="constant-syntax">2</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" %+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">].</span><span class="identifier-syntax">end_names</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="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">PRINT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_text</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</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">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><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">OUT</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-scn.html#SP5">§5</a> (twice).</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP5_5" class="paragraph-anchor"></a><b>§5.5. </b>In general, the marker count is used to ensure that <span class="extract"><span class="extract-syntax">RTScenes::compile_scene_end_dash</span></span>
|
||||
never calls itself for a scene it has been called with before on this round.
|
||||
This prevents Inform locking up generating infinite amounts of code. However,
|
||||
one exception is allowed, in very limited circumstances. Suppose we want to
|
||||
make a scene recur, but only if it ends in a particular way. Then we might
|
||||
type:
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
<p>Brisk Quadrille begins when Brisk Quadrille ends untidily.</p>
|
||||
</blockquote>
|
||||
|
||||
<p class="commentary">This is allowed; it's a case where the "tolerance" below is raised.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile code to cause consequent scene ends</span><span class="named-paragraph-number">5.5</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">other_scene</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">other_scene</span><span class="plain-syntax">, </span><span class="identifier-syntax">scene</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">tolerance</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">sc</span><span class="plain-syntax"> == </span><span class="identifier-syntax">other_scene</span><span class="plain-syntax">) </span><span class="identifier-syntax">tolerance</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">no_ends</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">other_scene</span><span class="plain-syntax">-></span><span class="identifier-syntax">marker</span><span class="plain-syntax"> < </span><span class="identifier-syntax">tolerance</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">other_end</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">other_end</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">; </span><span class="identifier-syntax">other_end</span><span class="plain-syntax"> < </span><span class="identifier-syntax">other_scene</span><span class="plain-syntax">-></span><span class="identifier-syntax">no_ends</span><span class="plain-syntax">; </span><span class="identifier-syntax">other_end</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">scene_connector</span><span class="plain-syntax"> *</span><span class="identifier-syntax">scon</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">scon</span><span class="plain-syntax"> = </span><span class="identifier-syntax">other_scene</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">other_end</span><span class="plain-syntax">].</span><span class="identifier-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">-></span><span class="identifier-syntax">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">scon</span><span class="plain-syntax">-></span><span class="identifier-syntax">connect_to</span><span class="plain-syntax"> == </span><span class="identifier-syntax">sc</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">scon</span><span class="plain-syntax">-></span><span class="identifier-syntax">end</span><span class="plain-syntax"> == </span><span class="identifier-syntax">end</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">EQ_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">LOOKUP_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SCENE_STATUS_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">other_scene</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</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">other_end</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">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</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">else</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><a href="5-scn.html#SP5" class="function-link"><span class="function-syntax">RTScenes::compile_scene_end_dash</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">other_scene</span><span class="plain-syntax">, </span><span class="identifier-syntax">other_end</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><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>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-scn.html#SP5">§5</a> (twice).</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. More SCENES output. </b>As we've seen, when the SCENES command has been typed, Inform prints a notice
|
||||
out at run-time when any scene end occurs. It also prints a run-down of the
|
||||
scene status at the moment the command is typed, and the following code is
|
||||
what handles 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">RTScenes::ShowSceneStatus_routine</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SHOWSCENESTATUS_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><a href="4-rtn.html#SP1" class="function-link"><span class="function-syntax">Routines::begin</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">IFDEBUG_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc</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">sc</span><span class="plain-syntax">, </span><span class="identifier-syntax">scene</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">NW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::get_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_instance</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">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">IFELSE_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">EQ_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">LOOKUP_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SCENE_STATUS_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</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">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-scn.html#SP6_1" class="named-paragraph-link"><span class="named-paragraph">Show status of this running scene</span><span class="named-paragraph-number">6.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-scn.html#SP6_2" class="named-paragraph-link"><span class="named-paragraph">Show status of this non-running scene</span><span class="named-paragraph-number">6.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><a href="4-rtn.html#SP4" class="function-link"><span class="function-syntax">Routines::end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP6_1" class="paragraph-anchor"></a><b>§6.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Show status of this running scene</span><span class="named-paragraph-number">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="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="string-syntax">"Scene '%+W' playing (for "</span><span class="plain-syntax">, </span><span class="identifier-syntax">NW</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">PRINT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_text</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</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="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">)</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">PRINTNUMBER_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">MINUS_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">THE_TIME_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">LOOKUP_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SCENE_STARTED_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">PRINT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_text</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">I</span><span class="string-syntax">" mins now)\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-scn.html#SP6">§6</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP6_2" class="paragraph-anchor"></a><b>§6.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Show status of this non-running scene</span><span class="named-paragraph-number">6.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">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">GT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">LOOKUP_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SCENE_LATEST_ENDING_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-scn.html#SP6_2_1" class="named-paragraph-link"><span class="named-paragraph">Show status of this recently ended scene</span><span class="named-paragraph-number">6.2.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-scn.html#SP6">§6</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP6_2_1" class="paragraph-anchor"></a><b>§6.2.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Show status of this recently ended scene</span><span class="named-paragraph-number">6.2.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="string-syntax">"Scene '%+W' ended"</span><span class="plain-syntax">, </span><span class="identifier-syntax">NW</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">PRINT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_text</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</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="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">)</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">no_ends</span><span class="plain-syntax"> > </span><span class="constant-syntax">2</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">SWITCH_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">LOOKUP_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SCENE_LATEST_ENDING_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><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">end</span><span class="plain-syntax">=2; </span><span class="identifier-syntax">end</span><span class="function-syntax"><sc-></span><span class="identifier-syntax">no_ends</span><span class="plain-syntax">; </span><span class="identifier-syntax">end</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">CASE_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">end</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::code</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="string-syntax">" %+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">].</span><span class="identifier-syntax">end_names</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">PRINT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_text</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</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="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">PRINT_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_text</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">I</span><span class="string-syntax">"\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-scn.html#SP6_2">§6.2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>§7. During clauses. </b>We've now seen one use of scenes: they kick off rulebooks when they begin or
|
||||
end. The other use for them is to predicate rules on whether they are currently
|
||||
playing or not, using a "during" clause.
|
||||
</p>
|
||||
|
||||
<p class="commentary">This is where we compile Inter code to test that a scene matching this is
|
||||
actually running:
|
||||
</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">RTScenes::emit_during_clause</span><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">spec</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">stuck</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K_scene</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) { </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_truth_state</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Rvalues::is_rvalue</span><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Dash::check_value</span><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_scene</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Rvalues::to_instance</span><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Instances::of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_scene</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Scenes::from_named_constant</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">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">EQ_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_primitive</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">LOOKUP_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SCENE_STATUS_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, (</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</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">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">stuck</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Dash::check_value</span><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">, </span><span class="identifier-syntax">Kinds::unary_con</span><span class="plain-syntax">(</span><span class="identifier-syntax">CON_description</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_scene</span><span class="plain-syntax">)) == </span><span class="identifier-syntax">ALWAYS_MATCH</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Descriptions::to_rvalue</span><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">desc</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::inv_call_iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">DURINGSCENEMATCHING_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::down</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Specifications::Compiler::emit_as_val</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">desc</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::up</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">stuck</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</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><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">stuck</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Produce::val</span><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">K_truth_state</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</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">StandardProblems::sentence_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(),</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_ScenesBadDuring</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"'during' must be followed by the name of a scene or of a "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"description which applies to a single scene"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"such as 'during Station Arrival' or 'during a recurring scene'."</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</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="5-ts.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresscurrent">scn</li><li class="progressnextoff">❯</li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -77,7 +77,7 @@
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-fgr.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresscurrent">se</li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progressnext"><a href="5-ef.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-fgr.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresscurrent">se</li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progressnext"><a href="5-ef.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -142,7 +142,7 @@ be compiled, so this code is never used.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-bd.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresscurrent">spt</li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progressnext"><a href="5-tp.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-bd.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresscurrent">spt</li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progressnext"><a href="5-tp.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -341,7 +341,7 @@ identifier names for instance have not yet been settled.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-rgn.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresscurrent">tm</li><li class="progressnextoff">❯</li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-rgn.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresscurrent">tm</li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progressnext"><a href="5-sc.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -114,7 +114,7 @@ the function <span class="extract"><span class="extract-syntax">ChangePlayer</sp
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-spt.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresscurrent">tp</li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progressnext"><a href="5-bck.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-spt.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresscurrent">tp</li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresssection"><a href="5-ts.html">ts</a></li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progressnext"><a href="5-bck.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
97
docs/runtime-module/5-ts.html
Normal file
97
docs/runtime-module/5-ts.html
Normal file
|
@ -0,0 +1,97 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>The Score</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">
|
||||
<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="index.html"><span class="selectedlink">runtime</span></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-module/index.html">index</a></li>
|
||||
</ul><h2>Inter Modules</h2><ul>
|
||||
<li><a href="../bytecode-module/index.html">bytecode</a></li>
|
||||
<li><a href="../building-module/index.html">building</a></li>
|
||||
<li><a href="../codegen-module/index.html">codegen</a></li>
|
||||
</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 'The Score' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#5">Chapter 5: Plugin Support</a></li><li><b>The Score</b></li></ul></div>
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§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">RTTheScore::support</span><span class="plain-syntax">(</span><span class="identifier-syntax">table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ranking_table</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ranking_table</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">RANKING_TABLE_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-emt.html#SP3" class="function-link"><span class="function-syntax">Emit::named_iname_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="4-rsft.html#SP3" class="function-link"><span class="function-syntax">RTTables::identifier</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ranking_table</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">global_compilation_settings</span><span class="plain-syntax">.</span><span class="identifier-syntax">ranking_table_given</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">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">RANKING_TABLE_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-emt.html#SP3" class="function-link"><span class="function-syntax">Emit::named_generic_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">LITERAL_IVAL</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">INITIAL_MAX_SCORE_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP4" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><a href="2-emt.html#SP2" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">VariableSubjects::has_initial_value_set</span><span class="plain-syntax">(</span><span class="identifier-syntax">max_score_VAR</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">v1</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">v2</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-vrb.html#SP6" class="function-link"><span class="function-syntax">RTVariables::seek_initial_value</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, &</span><span class="identifier-syntax">v1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">v2</span><span class="plain-syntax">, </span><span class="identifier-syntax">max_score_VAR</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-emt.html#SP3" class="function-link"><span class="function-syntax">Emit::named_generic_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">v1</span><span class="plain-syntax">, </span><span class="identifier-syntax">v2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-emt.html#SP3" class="function-link"><span class="function-syntax">Emit::named_numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="5-sc.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresschapter"><a href="2-hrr.html">2</a></li><li class="progresschapter"><a href="3-ad.html">3</a></li><li class="progresschapter"><a href="4-fc.html">4</a></li><li class="progresscurrentchapter">5</li><li class="progresssection"><a href="5-nmn.html">nmn</a></li><li class="progresssection"><a href="5-prs.html">prs</a></li><li class="progresssection"><a href="5-fgr.html">fgr</a></li><li class="progresssection"><a href="5-se.html">se</a></li><li class="progresssection"><a href="5-ef.html">ef</a></li><li class="progresssection"><a href="5-bd.html">bd</a></li><li class="progresssection"><a href="5-spt.html">spt</a></li><li class="progresssection"><a href="5-tp.html">tp</a></li><li class="progresssection"><a href="5-bck.html">bck</a></li><li class="progresssection"><a href="5-rgn.html">rgn</a></li><li class="progresssection"><a href="5-tm.html">tm</a></li><li class="progresssection"><a href="5-sc.html">sc</a></li><li class="progresscurrent">ts</li><li class="progresssection"><a href="5-scn.html">scn</a></li><li class="progressnext"><a href="5-scn.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -354,6 +354,21 @@
|
|||
<spon class="sectiontitle">The Map</span></a> -
|
||||
<span class="sectionpurpose"></span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="5-sc.html">
|
||||
<spon class="sectiontitle">Showme Command</span></a> -
|
||||
<span class="sectionpurpose">A plugin to provide some support for the SHOWME testing command.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="5-ts.html">
|
||||
<spon class="sectiontitle">The Score</span></a> -
|
||||
<span class="sectionpurpose"></span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="5-scn.html">
|
||||
<spon class="sectiontitle">Scenes</span></a> -
|
||||
<span class="sectionpurpose">Compiling code to manage scene changes at run-time.</span></p>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -127,16 +127,17 @@ Total memory consumption was 258576K = 253 MB
|
|||
---- compatibility_specification 66 objects, 3168 bytes
|
||||
---- definition 44 objects, 3168 bytes
|
||||
---- inform_extension 19 objects, 3040 bytes
|
||||
---- either_or_property_data 62 objects, 2976 bytes
|
||||
---- property_of_value_storage 93 objects, 2976 bytes
|
||||
---- either_or_property_data 62 objects, 2976 bytes
|
||||
---- submodule_request 72 objects, 2880 bytes
|
||||
---- inter_construct 32 objects, 2560 bytes
|
||||
---- parentage_inference_data 79 objects, 2528 bytes
|
||||
---- part_of_inference_data 79 objects, 2528 bytes
|
||||
---- parentage_inference_data 79 objects, 2528 bytes
|
||||
---- kind_constructor_instance_array 1 x 100 objects, 2432 bytes
|
||||
---- kind_constructor_casting_rule_array 1 x 100 objects, 2432 bytes
|
||||
---- equation_symbol 30 objects, 2400 bytes
|
||||
---- semver_range 22 objects, 2288 bytes
|
||||
---- scene 1 object, 2096 bytes
|
||||
---- use_option 29 objects, 1856 bytes
|
||||
---- pronoun_usage 42 objects, 1680 bytes
|
||||
---- activity_crossref_array 1 x 100 objects, 1632 bytes
|
||||
|
@ -146,7 +147,6 @@ Total memory consumption was 258576K = 253 MB
|
|||
---- plugin 23 objects, 1472 bytes
|
||||
---- pipeline_step 12 objects, 1440 bytes
|
||||
---- noun_filter_token 22 objects, 1408 bytes
|
||||
---- scene 1 object, 1344 bytes
|
||||
---- special_meaning_holder 33 objects, 1320 bytes
|
||||
---- build_script 40 objects, 1280 bytes
|
||||
---- constant_phrase 20 objects, 1280 bytes
|
||||
|
@ -216,19 +216,19 @@ Total memory consumption was 258576K = 253 MB
|
|||
---- compile_task_data 1 object, 80 bytes
|
||||
---- article 2 objects, 80 bytes
|
||||
---- list_together_routine 2 objects, 80 bytes
|
||||
---- build_methodology 1 object, 56 bytes
|
||||
---- inter_warehouse 1 object, 56 bytes
|
||||
---- build_methodology 1 object, 56 bytes
|
||||
---- star_invention 1 object, 48 bytes
|
||||
---- HTML_file_state 1 object, 48 bytes
|
||||
---- figures_data 1 object, 48 bytes
|
||||
---- star_invention 1 object, 48 bytes
|
||||
---- kind_template_definition 1 object, 40 bytes
|
||||
---- by_routine_bp_data 1 object, 40 bytes
|
||||
---- parse_name_notice 1 object, 40 bytes
|
||||
---- loop_over_scope 1 object, 40 bytes
|
||||
---- parse_name_notice 1 object, 40 bytes
|
||||
|
||||
37.5% was used for memory not allocated for objects:
|
||||
|
||||
15.9% text stream storage 42248420 bytes in 265816 claims
|
||||
15.9% text stream storage 42248504 bytes in 265816 claims
|
||||
3.5% dictionary storage 9278976 bytes in 16372 claims
|
||||
---- sorting 1064 bytes in 3 claims
|
||||
2.7% source text 7200000 bytes in 3 claims
|
||||
|
@ -244,5 +244,5 @@ Total memory consumption was 258576K = 253 MB
|
|||
---- emitter array storage 12320 bytes in 8 claims
|
||||
---- code generation workspace for objects 9200 bytes in 9 claims
|
||||
|
||||
19.9% was overhead - 52765128 bytes = 51528K = 50 MB
|
||||
19.9% was overhead - 52764376 bytes = 51527K = 50 MB
|
||||
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
(@1)<cardinal-number>=1
|
||||
(hits 171/171) (matched: '100') constraint CS = {r0} extremes [1, 1]
|
||||
(@1)minus (@2)<cardinal-number>=1
|
||||
(hits 0/2000) constraint DS = {12} extremes [2, 2]
|
||||
(hits 0/1998) constraint DS = {12} extremes [2, 2]
|
||||
(@1)<quoted-text>=1 (@2)( (@3)<response-letter>=2 (@4))
|
||||
(hits 273/844) (matched: '"[current item from the multiple object list]: [run paragraph on]" ( a )') constraint DS = {12} extremes [4, 4]
|
||||
(hits 273/840) (matched: '"[current item from the multiple object list]: [run paragraph on]" ( a )') constraint DS = {12} extremes [4, 4]
|
||||
(@1)<quoted-text>=1
|
||||
(hits 1564/5496) (matched: 'Represents geographical locations, both indoor
|
||||
and outdoor, which are not necessarily areas in a building. A player in one
|
||||
|
@ -14,12 +14,12 @@
|
|||
<s-literal-real-number>=1
|
||||
(hits 11/9823) (matched: 'plus infinity') constraint (none) extremes [1, infinity)
|
||||
(@1)<s-literal-truth-state>=1
|
||||
(hits 78/247) (matched: 'false') constraint CS = {6} extremes [1, 1]
|
||||
(hits 78/298) (matched: 'false') constraint CS = {6} extremes [1, 1]
|
||||
<s-literal-list>=1
|
||||
(hits 0/1692) constraint DS = {8} extremes [2, infinity)
|
||||
(hits 0/1470) constraint DS = {8} extremes [2, infinity)
|
||||
(@1)unicode <s-unicode-character>=1
|
||||
(hits 0/4344) constraint DS = {12} extremes [2, infinity)
|
||||
(hits 0/4350) constraint DS = {12} extremes [2, infinity)
|
||||
<s-literal-time>=1
|
||||
(hits 0/3572) constraint DW = {9, 10, 11} extremes [2, 5]
|
||||
(hits 0/2983) constraint DW = {9, 10, 11} extremes [2, 5]
|
||||
<s-literal-unit-notation>=1
|
||||
(hits 0/9734) constraint (none) extremes [1, infinity)
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
100.0% in inform7 run
|
||||
67.2% in compilation to Inter
|
||||
25.6% in //Phrases::Manager::compile_first_block//
|
||||
8.9% in //Phrases::Manager::compile_as_needed//
|
||||
6.8% in //Strings::compile_responses//
|
||||
5.9% in //InferenceSubjects::emit_all//
|
||||
4.4% in //MajorNodes::pre_pass//
|
||||
67.6% in compilation to Inter
|
||||
25.9% in //Phrases::Manager::compile_first_block//
|
||||
8.6% in //Phrases::Manager::compile_as_needed//
|
||||
7.2% in //Strings::compile_responses//
|
||||
6.2% in //InferenceSubjects::emit_all//
|
||||
4.2% in //MajorNodes::pre_pass//
|
||||
3.3% in //MajorNodes::pass_1//
|
||||
2.0% in //Phrases::Manager::RulePrintingRule_routine//
|
||||
1.8% in //Phrases::Manager::rulebooks_array//
|
||||
0.9% in //RTVerbs::ConjugateVerb//
|
||||
0.7% in //Phrases::Manager::traverse//
|
||||
2.0% in //Phrases::Manager::rulebooks_array//
|
||||
1.0% in //RTVerbs::ConjugateVerb//
|
||||
0.8% in //Phrases::Manager::traverse//
|
||||
0.5% in //Phrases::Manager::parse_rule_parameters//
|
||||
0.5% in //World::stage_V//
|
||||
0.3% in //MajorNodes::pass_2//
|
||||
|
@ -20,17 +20,18 @@
|
|||
0.1% in //Task::make_built_in_kind_constructors//
|
||||
0.1% in //World::stages_II_and_III//
|
||||
3.4% not specifically accounted for
|
||||
30.3% in running Inter pipeline
|
||||
10.0% in step preparation
|
||||
9.6% in inter step 2/12: link
|
||||
29.8% in running Inter pipeline
|
||||
9.9% in step preparation
|
||||
9.4% in inter step 2/12: link
|
||||
7.0% in inter step 12/12: generate inform6 -> auto.inf
|
||||
0.3% in inter step 9/12: make-identifiers-unique
|
||||
0.1% in inter step 10/12: reconcile-verbs
|
||||
0.1% in inter step 11/12: eliminate-redundant-labels
|
||||
0.1% in inter step 4/12: parse-linked-matter
|
||||
0.1% in inter step 5/12: resolve-conditional-compilation
|
||||
0.1% in inter step 6/12: assimilate
|
||||
0.1% in inter step 7/12: resolve-external-symbols
|
||||
0.1% in inter step 8/12: inspect-plugs
|
||||
2.0% not specifically accounted for
|
||||
2.0% in supervisor
|
||||
1.9% not specifically accounted for
|
||||
2.1% in supervisor
|
||||
0.4% not specifically accounted for
|
||||
|
|
|
@ -1023,8 +1023,8 @@ in this case.
|
|||
|
||||
@<Case 28 - RELATIONSHIP on both sides@> =
|
||||
#ifdef IF_MODULE
|
||||
if ((PL::MapDirections::get_mapping_relationship(px)) &&
|
||||
(PL::MapDirections::get_mapping_relationship(py))) {
|
||||
if ((MapRelations::get_mapping_relationship(px)) &&
|
||||
(MapRelations::get_mapping_relationship(py))) {
|
||||
Map::enter_one_way_mode();
|
||||
Assertions::make_coupling(px, py->down);
|
||||
Assertions::make_coupling(px->down, py);
|
||||
|
|
|
@ -368,7 +368,7 @@ has the marble and the box as its children, the relationship being containment.
|
|||
if (p->down) {
|
||||
Refiner::refine(p->down, creation_rule);
|
||||
#ifdef IF_MODULE
|
||||
instance *dir = PL::MapDirections::get_mapping_relationship(p);
|
||||
instance *dir = MapRelations::get_mapping_relationship(p);
|
||||
if (dir) @<Make the relation one which refers to a map direction@>;
|
||||
#endif
|
||||
if (p->down->next) Refiner::refine(p->down->next, creation_rule);
|
||||
|
|
|
@ -22,7 +22,7 @@ void Assertions::Relational::assert_subtree_in_relationship(parse_node *value, p
|
|||
return;
|
||||
}
|
||||
#ifdef IF_MODULE
|
||||
if (PL::MapDirections::get_mapping_relationship(relationship_subtree))
|
||||
if (MapRelations::get_mapping_relationship(relationship_subtree))
|
||||
@<Exceptional relationship nodes for map connections@>;
|
||||
pronoun_usage *pro = Node::get_pronoun(relationship_subtree->down);
|
||||
if ((pro) && (pro->pronoun_used == here_pronoun))
|
||||
|
|
|
@ -217,18 +217,24 @@ DECLARE_CLASS(test_scenario)
|
|||
|
||||
@ //index// --
|
||||
|
||||
@e connected_submap_CLASS
|
||||
@e contents_entry_CLASS
|
||||
@e documentation_ref_CLASS
|
||||
@e EPS_map_level_CLASS
|
||||
@e index_page_CLASS
|
||||
@e index_element_CLASS
|
||||
@e index_lexicon_entry_CLASS
|
||||
@e rubric_holder_CLASS
|
||||
|
||||
=
|
||||
DECLARE_CLASS(connected_submap)
|
||||
DECLARE_CLASS(contents_entry)
|
||||
DECLARE_CLASS(documentation_ref)
|
||||
DECLARE_CLASS(EPS_map_level)
|
||||
DECLARE_CLASS(index_element)
|
||||
DECLARE_CLASS(index_page)
|
||||
DECLARE_CLASS(index_lexicon_entry)
|
||||
DECLARE_CLASS(rubric_holder)
|
||||
|
||||
@ //if// --
|
||||
|
||||
|
@ -236,9 +242,7 @@ DECLARE_CLASS(index_lexicon_entry)
|
|||
@e auxiliary_file_CLASS
|
||||
@e cached_understanding_CLASS
|
||||
@e command_index_entry_CLASS
|
||||
@e connected_submap_CLASS
|
||||
@e direction_inference_data_CLASS
|
||||
@e EPS_map_level_CLASS
|
||||
@e found_in_inference_data_CLASS
|
||||
@e grammar_line_CLASS
|
||||
@e grammar_verb_CLASS
|
||||
|
@ -255,7 +259,6 @@ DECLARE_CLASS(index_lexicon_entry)
|
|||
@e regions_data_CLASS
|
||||
@e release_instructions_CLASS
|
||||
@e reserved_command_verb_CLASS
|
||||
@e rubric_holder_CLASS
|
||||
@e scene_CLASS
|
||||
@e slash_gpr_CLASS
|
||||
@e spatial_data_CLASS
|
||||
|
@ -272,9 +275,7 @@ DECLARE_CLASS(action_name)
|
|||
DECLARE_CLASS(auxiliary_file)
|
||||
DECLARE_CLASS(cached_understanding)
|
||||
DECLARE_CLASS(command_index_entry)
|
||||
DECLARE_CLASS(connected_submap)
|
||||
DECLARE_CLASS(direction_inference_data)
|
||||
DECLARE_CLASS(EPS_map_level)
|
||||
DECLARE_CLASS(found_in_inference_data)
|
||||
DECLARE_CLASS(grammar_line)
|
||||
DECLARE_CLASS(grammar_verb)
|
||||
|
@ -291,7 +292,6 @@ DECLARE_CLASS(part_of_inference_data)
|
|||
DECLARE_CLASS(regions_data)
|
||||
DECLARE_CLASS(release_instructions)
|
||||
DECLARE_CLASS(reserved_command_verb)
|
||||
DECLARE_CLASS(rubric_holder)
|
||||
DECLARE_CLASS(scene)
|
||||
DECLARE_CLASS(slash_gpr)
|
||||
DECLARE_CLASS(spatial_data)
|
||||
|
|
|
@ -22,7 +22,7 @@ void IFModule::start(void) {
|
|||
ReleaseInstructions::start();
|
||||
WherePredicates::start();
|
||||
SpatialRelations::start();
|
||||
PL::MapDirections::start();
|
||||
MapRelations::start();
|
||||
}
|
||||
|
||||
@
|
||||
|
@ -84,12 +84,12 @@ void IFModule::create_plugins(void) {
|
|||
persons_plugin = PluginManager::new(&PL::Persons::start, I"persons", ifp);
|
||||
player_plugin = PluginManager::new(&Player::start, I"player", ifp);
|
||||
regions_plugin = PluginManager::new(&Regions::start, I"regions", ifp);
|
||||
scenes_plugin = PluginManager::new(&PL::Scenes::start, I"scenes", ifp);
|
||||
scoring_plugin = PluginManager::new(&PL::Score::start, I"scoring", ifp);
|
||||
showme_plugin = PluginManager::new(&PL::Showme::start, I"showme", ifp);
|
||||
scenes_plugin = PluginManager::new(&Scenes::start, I"scenes", ifp);
|
||||
scoring_plugin = PluginManager::new(&TheScore::start, I"scoring", ifp);
|
||||
times_plugin = PluginManager::new(TimesOfDay::start, I"times of day", ifp);
|
||||
|
||||
actions_plugin = PluginManager::new(&ActionsPlugin::start, I"actions", ifp);
|
||||
|
||||
parsing_plugin = PluginManager::new(&ParsingPlugin::start, I"command", ifp);
|
||||
showme_plugin = PluginManager::new(&RTShowmeCommand::start, I"showme", parsing_plugin);
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@ to things of the kind "device". This used to be accomplished by the Standard
|
|||
Rules in a clumsy sort of way (with a direct I6 code injection), but in the
|
||||
age of Inter we want to avoid that sort of tomfoolery.
|
||||
|
||||
@ =
|
||||
=
|
||||
void PL::Devices::start(void) {
|
||||
PluginManager::plug(NEW_BASE_KIND_NOTIFY_PLUG, PL::Devices::new_base_kind_notify);
|
||||
PluginManager::plug(COMPLETE_MODEL_PLUG, PL::Devices::IF_complete_model);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[PL::MapDirections::] Map Connection Relations.
|
||||
[MapRelations::] Map Connection Relations.
|
||||
|
||||
To define one binary predicate for each map direction, such as
|
||||
"mapped north of".
|
||||
|
@ -14,12 +14,12 @@ Metro" tests the "mapped-north" BP.
|
|||
=
|
||||
bp_family *map_connecting_bp_family = NULL;
|
||||
|
||||
void PL::MapDirections::start(void) {
|
||||
void MapRelations::start(void) {
|
||||
map_connecting_bp_family = BinaryPredicateFamilies::new();
|
||||
METHOD_ADD(map_connecting_bp_family, TYPECHECK_BPF_MTID, PL::MapDirections::typecheck);
|
||||
METHOD_ADD(map_connecting_bp_family, ASSERT_BPF_MTID, PL::MapDirections::assert);
|
||||
METHOD_ADD(map_connecting_bp_family, TYPECHECK_BPF_MTID, MapRelations::typecheck);
|
||||
METHOD_ADD(map_connecting_bp_family, ASSERT_BPF_MTID, MapRelations::assert);
|
||||
METHOD_ADD(map_connecting_bp_family, DESCRIBE_FOR_INDEX_BPF_MTID,
|
||||
PL::MapDirections::describe_for_index);
|
||||
MapRelations::describe_for_index);
|
||||
}
|
||||
|
||||
@h Subsequent creations.
|
||||
|
@ -30,7 +30,7 @@ parse sentences are needed. In fact, however, directions are "noticed"
|
|||
at an earlier stage in Inform's run, so another two-step is needed:
|
||||
|
||||
=
|
||||
binary_predicate *PL::MapDirections::create_sketchy_mapping_direction(wording W) {
|
||||
binary_predicate *MapRelations::create_sketchy_mapping_direction(wording W) {
|
||||
binary_predicate *bp;
|
||||
@<Create the mapping BP for the new direction@>;
|
||||
return bp;
|
||||
|
@ -47,14 +47,14 @@ outside" instead of "mapped inside of" and "mapped outside of." This
|
|||
is done to avoid ambiguities with the already-existing meanings of inside
|
||||
and outside to do with spatial containment.
|
||||
|
||||
The use of the word "mapped" may seem itself off. Why define "to be mapped
|
||||
The use of the word "mapped" may seem itself odd. Why define "to be mapped
|
||||
east of" rather than "to be east of"? After all, that seems to be what is
|
||||
used in assertions like:
|
||||
|
||||
>> The Bakery is east of Pudding Lane.
|
||||
|
||||
In fact, the A-parser reads sentences like that by looking out specially for
|
||||
direction names plus "of" -- so this is parsed without using the mapping
|
||||
In fact, the assertion parser reads sentences like that by looking out specially
|
||||
for direction names plus "of" -- so this is parsed without using the mapping
|
||||
predicate for "east". But it cannot read:
|
||||
|
||||
>> The Flour Cellar is below the Bakery.
|
||||
|
@ -62,11 +62,6 @@ predicate for "east". But it cannot read:
|
|||
as a direction name plus "of", since "below" is not the name of the direction
|
||||
"down", and anyway there is no "of".
|
||||
|
||||
We do not allow direction names with unexpected capital letters because we
|
||||
want to allow room names to contain direction names on occasion:
|
||||
|
||||
>> The fire hydrant is in West from 47th Street.
|
||||
|
||||
=
|
||||
<mapping-relation-construction> ::=
|
||||
mapping ...
|
||||
|
@ -135,7 +130,7 @@ makes it possible to complete the details of the BP.
|
|||
|
||||
=
|
||||
int mmp_call_counter = 0;
|
||||
void PL::MapDirections::make_mapped_predicate(instance *I) {
|
||||
void MapRelations::make_mapped_predicate(instance *I) {
|
||||
wording W = Instances::get_name(I, FALSE);
|
||||
if ((Wordings::empty(W)) || (Wordings::length(W) > MAX_WORDS_IN_DIRECTION))
|
||||
internal_error("bad direction name");
|
||||
|
@ -164,7 +159,7 @@ This won't catch everything, but it will do. Run-time checking will pick up
|
|||
remaining anomalies.
|
||||
|
||||
=
|
||||
int PL::MapDirections::typecheck(bp_family *self, binary_predicate *bp,
|
||||
int MapRelations::typecheck(bp_family *self, binary_predicate *bp,
|
||||
kind **kinds_of_terms, kind **kinds_required, tc_problem_kit *tck) {
|
||||
int t;
|
||||
for (t=0; t<2; t++)
|
||||
|
@ -186,10 +181,10 @@ explicitly given in the source text; and doors must always be specified as
|
|||
such.
|
||||
|
||||
=
|
||||
int PL::MapDirections::assert(bp_family *self, binary_predicate *bp,
|
||||
int MapRelations::assert(bp_family *self, binary_predicate *bp,
|
||||
inference_subject *infs0, parse_node *spec0,
|
||||
inference_subject *infs1, parse_node *spec1) {
|
||||
instance *o_dir = PL::MapDirections::get_mapping_direction(bp);
|
||||
instance *o_dir = MapRelations::get_mapping_direction(bp);
|
||||
inference_subject *infs_from = infs0;
|
||||
inference_subject *infs_to = infs1;
|
||||
|
||||
|
@ -203,7 +198,7 @@ int PL::MapDirections::assert(bp_family *self, binary_predicate *bp,
|
|||
@h Indexing.
|
||||
|
||||
=
|
||||
void PL::MapDirections::describe_for_index(bp_family *self, OUTPUT_STREAM,
|
||||
void MapRelations::describe_for_index(bp_family *self, OUTPUT_STREAM,
|
||||
binary_predicate *bp) {
|
||||
WRITE("map");
|
||||
}
|
||||
|
@ -212,12 +207,12 @@ void PL::MapDirections::describe_for_index(bp_family *self, OUTPUT_STREAM,
|
|||
Speed really does not matter here.
|
||||
|
||||
=
|
||||
binary_predicate *PL::MapDirections::get_mapping_relation(instance *dir) {
|
||||
binary_predicate *MapRelations::get_mapping_relation(instance *dir) {
|
||||
if (dir == NULL) return NULL;
|
||||
return MAP_DATA(dir)->direction_relation;
|
||||
}
|
||||
|
||||
instance *PL::MapDirections::get_mapping_direction(binary_predicate *bp) {
|
||||
instance *MapRelations::get_mapping_direction(binary_predicate *bp) {
|
||||
if (bp == NULL) return NULL;
|
||||
instance *I;
|
||||
LOOP_OVER_INSTANCES(I, K_object)
|
||||
|
@ -226,12 +221,12 @@ instance *PL::MapDirections::get_mapping_direction(binary_predicate *bp) {
|
|||
return NULL;
|
||||
}
|
||||
|
||||
instance *PL::MapDirections::get_mapping_relationship(parse_node *p) {
|
||||
instance *MapRelations::get_mapping_relationship(parse_node *p) {
|
||||
binary_predicate *bp = Node::get_relationship(p);
|
||||
if ((bp) && (PluginManager::active(map_plugin))) {
|
||||
instance *dir = PL::MapDirections::get_mapping_direction(
|
||||
instance *dir = MapRelations::get_mapping_direction(
|
||||
BinaryPredicates::get_reversal(bp));
|
||||
if (dir == NULL) dir = PL::MapDirections::get_mapping_direction(bp);
|
||||
if (dir == NULL) dir = MapRelations::get_mapping_direction(bp);
|
||||
return dir;
|
||||
}
|
||||
return NULL;
|
||||
|
@ -241,7 +236,7 @@ instance *PL::MapDirections::get_mapping_relationship(parse_node *p) {
|
|||
There is also one general relation built in, though it belongs to the spatial family:
|
||||
|
||||
=
|
||||
void PL::MapDirections::create_relations(void) {
|
||||
void MapRelations::create_relations(void) {
|
||||
BinaryPredicates::make_pair(spatial_bp_family,
|
||||
BPTerms::new(infs_room),
|
||||
BPTerms::new(infs_room),
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -35,7 +35,7 @@ void SpatialRelations::stock(bp_family *self, int n) {
|
|||
if (n == 1) {
|
||||
@<Make built-in spatial relationships@>;
|
||||
@<Make built-in indirect spatial relationships@>;
|
||||
PL::MapDirections::create_relations();
|
||||
MapRelations::create_relations();
|
||||
Regions::create_relations();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ int Map::production_line(int stage, int debugging, stopwatch_timer *sequence_tim
|
|||
}
|
||||
|
||||
@ This special sentence is used as a hint in making map documents; it has no
|
||||
effect on the world model itself, and so is dealt with elsewhere, in //EPS Map//.
|
||||
effect on the world model itself, and so is dealt with elsewhere, in //index: EPS Map//.
|
||||
|
||||
=
|
||||
int Map::make_special_meanings(void) {
|
||||
|
@ -75,7 +75,7 @@ int Map::look_for_direction_creation(parse_node *pn) {
|
|||
return FALSE;
|
||||
}
|
||||
direction_relations_noticed[no_directions_noticed] =
|
||||
PL::MapDirections::create_sketchy_mapping_direction(Node::get_text(pn));
|
||||
MapRelations::create_sketchy_mapping_direction(Node::get_text(pn));
|
||||
directions_noticed[no_directions_noticed++] = pn;
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -86,7 +86,7 @@ in connection with the "mapped D of" relations, it's altogether easier and
|
|||
makes for more legible code if we use a special inference family of our own:
|
||||
|
||||
= (early code)
|
||||
inference_family *direction_inf = NULL; /* 100; where do map connections from O lead? */
|
||||
inference_family *direction_inf = NULL; /* where do map connections from O lead? */
|
||||
|
||||
@ =
|
||||
void Map::create_inference(void) {
|
||||
|
@ -322,7 +322,7 @@ int Map::set_kind_notify(instance *I, kind *k) {
|
|||
registered_directions++;
|
||||
inter_name *dname = RTMap::new_direction_iname();
|
||||
MAP_DATA(I)->direction_iname = dname;
|
||||
PL::MapDirections::make_mapped_predicate(I);
|
||||
MapRelations::make_mapped_predicate(I);
|
||||
|
||||
@h Map data on instances.
|
||||
We will use quite a lot of temporary work-space to put all of this together,
|
||||
|
@ -452,8 +452,8 @@ noted above are keys into these arrays.
|
|||
It might look a little wasteful of I7's memory to expand the direction
|
||||
inferences, a nicely compact representation, into large and sparse arrays.
|
||||
But it's convenient, and profiling suggests that the memory overhead is not
|
||||
significant. It also means that the //Spatial Map// mapping code, which contains
|
||||
quite crunchy algorithms, has the fastest possible access to the layout.
|
||||
significant. It also means that the //index: Spatial Map// mapping code, which
|
||||
contains quite crunchy algorithms, has the fastest possible access to the layout.
|
||||
|
||||
@d MAP_EXIT(X, Y) MAP_DATA(X)->exits[Y]
|
||||
|
||||
|
@ -665,7 +665,7 @@ void Map::connect(inference_subject *i_from, inference_subject *i_to,
|
|||
|
||||
void Map::oneway_map_connection(instance *go_from, instance *go_to,
|
||||
instance *forwards_dir, int certainty_level) {
|
||||
binary_predicate *bp = PL::MapDirections::get_mapping_relation(forwards_dir);
|
||||
binary_predicate *bp = MapRelations::get_mapping_relation(forwards_dir);
|
||||
if (bp == NULL) internal_error("map connection in non-direction");
|
||||
int x = prevailing_mood;
|
||||
prevailing_mood = certainty_level;
|
||||
|
|
|
@ -1,24 +1,28 @@
|
|||
[PL::Score::] The Score.
|
||||
[TheScore::] The Score.
|
||||
|
||||
A plugin to support the maximum score variable.
|
||||
A plugin to support the score variables.
|
||||
|
||||
@h Initialisation.
|
||||
@ At one time, all interactive fiction had a scoring system, because that's
|
||||
what computers did for our entertainment: they rewarded us with points. Having
|
||||
its distant roots in that period, Inform handles a numerical score with just
|
||||
a little compiler support, and this is where.
|
||||
|
||||
=
|
||||
void PL::Score::start(void) {
|
||||
PluginManager::plug(PRODUCTION_LINE_PLUG, PL::Score::production_line);
|
||||
PluginManager::plug(NEW_VARIABLE_NOTIFY_PLUG, PL::Score::new_variable_notify);
|
||||
void TheScore::start(void) {
|
||||
PluginManager::plug(PRODUCTION_LINE_PLUG, TheScore::production_line);
|
||||
PluginManager::plug(NEW_VARIABLE_NOTIFY_PLUG, TheScore::new_variable_notify);
|
||||
}
|
||||
|
||||
int PL::Score::production_line(int stage, int debugging, stopwatch_timer *sequence_timer) {
|
||||
int TheScore::production_line(int stage, int debugging, stopwatch_timer *sequence_timer) {
|
||||
if (stage == INTER1_CSEQ) {
|
||||
BENCH(PL::Score::compile_max_score);
|
||||
BENCH(TheScore::max_score_and_ranking_table);
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@ For many years this was a defined I6 constant, but then people sent in bug
|
||||
reports asking why it wouldn't change in play.
|
||||
@ For many years "maximum score" was compiled to a constant, but then people sent
|
||||
in bug reports asking why it wouldn't change in play. "Score", of course, is
|
||||
more evidently variable.
|
||||
|
||||
= (early code)
|
||||
nonlocal_variable *score_VAR = NULL;
|
||||
|
@ -29,8 +33,13 @@ nonlocal_variable *max_score_VAR = NULL;
|
|||
score |
|
||||
maximum score
|
||||
|
||||
@ =
|
||||
int PL::Score::new_variable_notify(nonlocal_variable *var) {
|
||||
@ These are marked "initialisable" because of the way they are implemented at
|
||||
run-time, using special variables in //WorldModelKit// rather than being
|
||||
storage allocated by I7. Variables stored that way would not ordinarily be
|
||||
possible to give values to in I7 assertions; but these are.
|
||||
|
||||
=
|
||||
int TheScore::new_variable_notify(nonlocal_variable *var) {
|
||||
if (<notable-scoring-variables>(var->name)) {
|
||||
switch(<<r>>) {
|
||||
case 0:
|
||||
|
@ -46,57 +55,38 @@ int PL::Score::new_variable_notify(nonlocal_variable *var) {
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
@h The maximum score and rankings table.
|
||||
A special rule is that if a table is called "Rankings" and contains a column
|
||||
@ A special rule is that if a table is called "Rankings" and contains a column
|
||||
of numbers followed by a column of text, then it is used by the run-time
|
||||
scoring system. In retrospect, Inform really shouldn't support this at the
|
||||
compiler level (not that it does much), and in any case it's a very old-school
|
||||
idea of IF. Still, it does little harm.
|
||||
compiler level (not that it does much), but it does little harm.
|
||||
|
||||
=
|
||||
<rankings-table-name> ::=
|
||||
rankings
|
||||
|
||||
@ This can only happen if we declare it somehow in I6 code, which
|
||||
we do with the constant |RANKING_TABLE|. We also set the |MAX_SCORE| variable
|
||||
equal to the number in the bottom row of the table, which is assumed to be the
|
||||
score corresponding to successful completion and the highest rank.
|
||||
@ Nothing will happen unless a table has both this magic name, and also the
|
||||
right shape: two columns, number then text. If so, the maximum score is
|
||||
initialised to the number in the final row of the table, which is assumed to
|
||||
be the score corresponding to successful completion and the highest rank.
|
||||
|
||||
The test case |Cooking|, an example from the documentation, tests this.
|
||||
|
||||
=
|
||||
void PL::Score::compile_max_score(void) {
|
||||
int rt_made = FALSE;
|
||||
table *t;
|
||||
LOOP_OVER(t, table) {
|
||||
void TheScore::max_score_and_ranking_table(void) {
|
||||
table *t, *ranking_table = NULL;
|
||||
LOOP_OVER(t, table)
|
||||
if ((<rankings-table-name>(t->table_name_text)) &&
|
||||
(Tables::get_no_columns(t) >= 2) &&
|
||||
(Kinds::eq(Tables::kind_of_ith_column(t, 0), K_number)) &&
|
||||
(Kinds::eq(Tables::kind_of_ith_column(t, 1), K_text))) {
|
||||
inter_name *iname = Hierarchy::find(RANKING_TABLE_HL);
|
||||
Emit::named_iname_constant(iname, K_value, RTTables::identifier(t));
|
||||
parse_node *PN = Tables::cells_in_ith_column(t, 0);
|
||||
while ((PN != NULL) && (PN->next != NULL)) PN = PN->next;
|
||||
if ((PN != NULL) && (max_score_VAR) &&
|
||||
(VariableSubjects::has_initial_value_set(max_score_VAR) == FALSE))
|
||||
Assertions::PropertyKnowledge::initialise_global_variable(
|
||||
max_score_VAR, Node::get_evaluation(PN));
|
||||
Hierarchy::make_available(Emit::tree(), iname);
|
||||
global_compilation_settings.ranking_table_given = TRUE;
|
||||
rt_made = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (rt_made == FALSE) {
|
||||
inter_name *iname = Hierarchy::find(RANKING_TABLE_HL);
|
||||
Emit::named_generic_constant(iname, LITERAL_IVAL, 0);
|
||||
Hierarchy::make_available(Emit::tree(), iname);
|
||||
}
|
||||
inter_name *iname = Hierarchy::find(INITIAL_MAX_SCORE_HL);
|
||||
Hierarchy::make_available(Emit::tree(), iname);
|
||||
if (VariableSubjects::has_initial_value_set(max_score_VAR)) {
|
||||
inter_ti v1 = 0, v2 = 0;
|
||||
RTVariables::seek_initial_value(iname, &v1, &v2, max_score_VAR);
|
||||
Emit::named_generic_constant(iname, v1, v2);
|
||||
} else {
|
||||
Emit::named_numeric_constant(iname, 0);
|
||||
(Kinds::eq(Tables::kind_of_ith_column(t, 1), K_text)))
|
||||
ranking_table = t;
|
||||
if (ranking_table) {
|
||||
parse_node *PN = Tables::cells_in_ith_column(ranking_table, 0);
|
||||
while ((PN != NULL) && (PN->next != NULL)) PN = PN->next;
|
||||
if ((PN != NULL) && (max_score_VAR) &&
|
||||
(VariableSubjects::has_initial_value_set(max_score_VAR) == FALSE))
|
||||
Assertions::PropertyKnowledge::initialise_global_variable(
|
||||
max_score_VAR, Node::get_evaluation(PN));
|
||||
}
|
||||
RTTheScore::support(ranking_table);
|
||||
}
|
||||
|
|
|
@ -32,13 +32,7 @@ fiction, which provides for geography, spatial containment and scenes."
|
|||
Regions
|
||||
The Map
|
||||
Map Connection Relations
|
||||
Spatial Geometry
|
||||
Spatial Map
|
||||
HTML Map
|
||||
EPS Map
|
||||
Showme Command
|
||||
Scenes
|
||||
Temporal Map
|
||||
The Score
|
||||
|
||||
Chapter 4: Actions
|
||||
|
|
|
@ -744,7 +744,7 @@ int Rules::index(OUTPUT_STREAM, rule *R, rulebook *owner, rule_context rc) {
|
|||
#ifdef IF_MODULE
|
||||
if (rc.scene_context) {
|
||||
WRITE(" during ");
|
||||
wording SW = PL::Scenes::get_name(rc.scene_context);
|
||||
wording SW = Scenes::get_name(rc.scene_context);
|
||||
WRITE("%+W", SW);
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -137,7 +137,7 @@ scene *Phrases::Context::get_scene(ph_runtime_context_data *phrcd) {
|
|||
if (phrcd == NULL) return NULL;
|
||||
if (Rvalues::is_rvalue(phrcd->during_scene)) {
|
||||
instance *q = Rvalues::to_instance(phrcd->during_scene);
|
||||
if (q) return PL::Scenes::from_named_constant(q);
|
||||
if (q) return Scenes::from_named_constant(q);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
@ -377,7 +377,7 @@ void Phrases::Context::compile_test_tail(phrase *ph, applicability_condition *ac
|
|||
@<Compile a scene test head@> =
|
||||
Produce::inv_primitive(Emit::tree(), IFELSE_BIP);
|
||||
Produce::down(Emit::tree());
|
||||
PL::Scenes::emit_during_clause(phrcd->during_scene);
|
||||
RTScenes::emit_during_clause(phrcd->during_scene);
|
||||
Produce::code(Emit::tree());
|
||||
Produce::down(Emit::tree());
|
||||
|
||||
|
|
|
@ -644,7 +644,7 @@ void Index::index_actual_element(OUTPUT_STREAM, text_stream *elt) {
|
|||
|
||||
if (Str::eq_wide_string(elt, L"Pl")) {
|
||||
#ifdef IF_MODULE
|
||||
PL::Scenes::Index::index(OUT);
|
||||
IXScenes::index(OUT);
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
|
@ -654,7 +654,7 @@ void Index::index_actual_element(OUTPUT_STREAM, text_stream *elt) {
|
|||
}
|
||||
if (Str::eq_wide_string(elt, L"RS")) {
|
||||
#ifdef IF_MODULE
|
||||
PL::Scenes::Index::index_rules(OUT);
|
||||
IXScenes::index_rules(OUT);
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[PL::Scenes::Index::] Temporal Map.
|
||||
[IXScenes::] Scenes.
|
||||
|
||||
Parallel to the World index of space is the Scenes index of time,
|
||||
and in this section we render it as HTML.
|
||||
|
@ -11,7 +11,7 @@ with a notation which takes a little bit of on-screen explanation, but
|
|||
seems natural enough to learn in practice.
|
||||
|
||||
=
|
||||
void PL::Scenes::Index::index(OUTPUT_STREAM) {
|
||||
void IXScenes::index(OUTPUT_STREAM) {
|
||||
int nr = NUMBER_CREATED(scene);
|
||||
scene **sorted = Memory::calloc(nr, sizeof(scene *), INDEX_SORTING_MREASON);
|
||||
@<Sort the scenes@>;
|
||||
|
@ -23,7 +23,7 @@ void PL::Scenes::Index::index(OUTPUT_STREAM) {
|
|||
Memory::I7_array_free(sorted, INDEX_SORTING_MREASON, nr, sizeof(scene *));
|
||||
}
|
||||
|
||||
void PL::Scenes::Index::index_rules(OUTPUT_STREAM) {
|
||||
void IXScenes::index_rules(OUTPUT_STREAM) {
|
||||
Rulebooks::index_scene(OUT); /* rules in generic scene-ending rulebooks */
|
||||
@<Show the generic scene-change rules@>;
|
||||
}
|
||||
|
@ -34,7 +34,7 @@ void PL::Scenes::Index::index_rules(OUTPUT_STREAM) {
|
|||
int i = 0;
|
||||
scene *sc;
|
||||
LOOP_OVER(sc, scene) sorted[i++] = sc;
|
||||
qsort(sorted, (size_t) nr, sizeof(scene *), PL::Scenes::Index::compare_scenes);
|
||||
qsort(sorted, (size_t) nr, sizeof(scene *), IXScenes::compare_scenes);
|
||||
|
||||
@ The sorted ordering is used as-is later on, when we get to the details, but
|
||||
for the tabulation it's refined further. First we have the start-of-play
|
||||
|
@ -45,39 +45,38 @@ third category is usually empty except for scenes the author has forgotten
|
|||
about and created but never made use of.)
|
||||
|
||||
@<Tabulate the scenes@> =
|
||||
int i;
|
||||
for (i=0; i<nr; i++) {
|
||||
for (int i=0; i<nr; i++) {
|
||||
scene *sc = sorted[i];
|
||||
if ((sc->start_of_play) || (sc == SC_entire_game))
|
||||
PL::Scenes::Index::index_from_scene(OUT, sc, 0, START_OF_PLAY_END, NULL, sorted, nr);
|
||||
IXScenes::index_from_scene(OUT, sc, 0, START_OF_PLAY_END, NULL, sorted, nr);
|
||||
}
|
||||
for (i=0; i<nr; i++) {
|
||||
for (int i=0; i<nr; i++) {
|
||||
scene *sc = sorted[i];
|
||||
if ((sc->anchor_condition[0]) && (sc != SC_entire_game))
|
||||
PL::Scenes::Index::index_from_scene(OUT, sc, 0, START_OF_PLAY_END, NULL, sorted, nr);
|
||||
if ((sc->ends[0].anchor_condition) && (sc != SC_entire_game))
|
||||
IXScenes::index_from_scene(OUT, sc, 0, START_OF_PLAY_END, NULL, sorted, nr);
|
||||
}
|
||||
for (i=0; i<nr; i++) {
|
||||
for (int i=0; i<nr; i++) {
|
||||
scene *sc = sorted[i];
|
||||
if (sc->indexed == FALSE)
|
||||
PL::Scenes::Index::index_from_scene(OUT, sc, 0, NEVER_HAPPENS_END, NULL, sorted, nr);
|
||||
IXScenes::index_from_scene(OUT, sc, 0, NEVER_HAPPENS_END, NULL, sorted, nr);
|
||||
}
|
||||
|
||||
|
||||
@<Show the legend for the scene table icons@> =
|
||||
HTML_OPEN("p"); WRITE("Legend: ");
|
||||
PL::Scenes::Index::scene_icon_legend(OUT, "WPB", "Begins when play begins");
|
||||
IXScenes::scene_icon_legend(OUT, "WPB", "Begins when play begins");
|
||||
WRITE("; ");
|
||||
PL::Scenes::Index::scene_icon_legend(OUT, "WhenC", "can begin whenever some condition holds");
|
||||
IXScenes::scene_icon_legend(OUT, "WhenC", "can begin whenever some condition holds");
|
||||
WRITE("; ");
|
||||
PL::Scenes::Index::scene_icon_legend(OUT, "Segue", "follows when a previous scene ends");
|
||||
IXScenes::scene_icon_legend(OUT, "Segue", "follows when a previous scene ends");
|
||||
WRITE("; ");
|
||||
PL::Scenes::Index::scene_icon_legend(OUT, "Simul", "begins simultaneously");
|
||||
IXScenes::scene_icon_legend(OUT, "Simul", "begins simultaneously");
|
||||
WRITE("; ");
|
||||
PL::Scenes::Index::scene_icon_legend(OUT, "WNever", "never begins");
|
||||
IXScenes::scene_icon_legend(OUT, "WNever", "never begins");
|
||||
WRITE("; ");
|
||||
PL::Scenes::Index::scene_icon_legend(OUT, "ENever", "never ends");
|
||||
IXScenes::scene_icon_legend(OUT, "ENever", "never ends");
|
||||
WRITE("; ");
|
||||
PL::Scenes::Index::scene_icon_legend(OUT, "Recurring", "recurring (can happen more than once)");
|
||||
IXScenes::scene_icon_legend(OUT, "Recurring", "recurring (can happen more than once)");
|
||||
WRITE(". <i>Scene names are italicised when and if they appear for a second "
|
||||
"or subsequent time because the scene can begin in more than one way</i>.");
|
||||
HTML_CLOSE("p");
|
||||
|
@ -94,8 +93,7 @@ about and created but never made use of.)
|
|||
|
||||
@<Give details of each scene in turn@> =
|
||||
Index::anchor(OUT, I"SDETAILS");
|
||||
int i;
|
||||
for (i=0; i<nr; i++) {
|
||||
for (int i=0; i<nr; i++) {
|
||||
HTML_TAG("hr");
|
||||
scene *sc = sorted[i];
|
||||
@<Give details of a specific scene@>;
|
||||
|
@ -109,10 +107,9 @@ fact, end.
|
|||
@<Index the name and recurrence status of the scene@>;
|
||||
if (sc == SC_entire_game) @<Explain the Entire Game scene@>;
|
||||
|
||||
int end;
|
||||
for (end=0; end<sc->no_ends; end++) {
|
||||
for (int end=0; end<sc->no_ends; end++) {
|
||||
if ((end == 1) && (sc->no_ends > 2) &&
|
||||
(sc->anchor_condition[1]==NULL) && (sc->anchor_scene[1]==NULL))
|
||||
(sc->ends[1].anchor_condition==NULL) && (sc->ends[1].anchor_connectors==NULL))
|
||||
continue;
|
||||
@<Index the conditions for this scene end to occur@>;
|
||||
@<Index the rules which apply when this scene end occurs@>;
|
||||
|
@ -122,8 +119,8 @@ fact, end.
|
|||
@<Index the name and recurrence status of the scene@> =
|
||||
HTML::open_indented_p(OUT, 1, "hanging");
|
||||
Index::anchor_numbered(OUT, sc->allocation_id);
|
||||
WRITE("<b>The <i>%+W</i> scene</b>", PL::Scenes::get_name(sc));
|
||||
Index::link(OUT, Wordings::first_wn(Node::get_text(sc->scene_declared_at)));
|
||||
WRITE("<b>The <i>%+W</i> scene</b>", Scenes::get_name(sc));
|
||||
Index::link(OUT, Wordings::first_wn(Node::get_text(Instances::get_creating_sentence(sc->as_instance))));
|
||||
if (PropertyInferences::either_or_state(
|
||||
Instances::as_subject(sc->as_instance), P_recurring) > 0)
|
||||
WRITE(" <i>recurring</i>");
|
||||
|
@ -156,7 +153,7 @@ fact, end.
|
|||
@<Index the conditions for this scene end to occur@> =
|
||||
HTML::open_indented_p(OUT, 1, "hanging");
|
||||
WRITE("<i>%s ", (end==0)?"Begins":"Ends");
|
||||
if (end >= 2) WRITE("%+W ", sc->end_names[end]);
|
||||
if (end >= 2) WRITE("%+W ", sc->ends[end].end_names);
|
||||
WRITE("when:</i> ");
|
||||
int count = 0;
|
||||
@<Index the play-begins condition@>;
|
||||
|
@ -176,36 +173,35 @@ fact, end.
|
|||
}
|
||||
|
||||
@<Index the I7 condition for a scene to end@> =
|
||||
if (sc->anchor_condition[end]) {
|
||||
if (sc->ends[end].anchor_condition) {
|
||||
if (count > 0) {
|
||||
HTML_TAG("br");
|
||||
WRITE("<i>or when:</i> ");
|
||||
}
|
||||
WRITE("%+W", Node::get_text(sc->anchor_condition[end]));
|
||||
Index::link(OUT, Wordings::first_wn(Node::get_text(sc->anchor_condition_set[end])));
|
||||
WRITE("%+W", Node::get_text(sc->ends[end].anchor_condition));
|
||||
Index::link(OUT, Wordings::first_wn(Node::get_text(sc->ends[end].anchor_condition_set)));
|
||||
count++;
|
||||
}
|
||||
|
||||
@<Index connections to other scene ends@> =
|
||||
scene_connector *scon;
|
||||
for (scon = sc->anchor_scene[end]; scon; scon=scon->next) {
|
||||
for (scene_connector *scon = sc->ends[end].anchor_connectors; scon; scon=scon->next) {
|
||||
if (count > 0) {
|
||||
HTML_TAG("br");
|
||||
WRITE("<i>or when:</i> ");
|
||||
}
|
||||
wording NW = Instances::get_name(scon->connect_to->as_instance, FALSE);
|
||||
WRITE("<b>%+W</b> <i>%s</i>", NW, (scon->end==0)?"begins":"ends");
|
||||
if (scon->end >= 2) WRITE(" %+W", scon->connect_to->end_names[scon->end]);
|
||||
if (scon->end >= 2) WRITE(" %+W", scon->connect_to->ends[scon->end].end_names);
|
||||
Index::link(OUT, Wordings::first_wn(Node::get_text(scon->where_said)));
|
||||
count++;
|
||||
}
|
||||
|
||||
@<Index the rules which apply when this scene end occurs@> =
|
||||
if (Rulebooks::is_empty(sc->end_rulebook[end], Rulebooks::no_rule_context()) == FALSE) {
|
||||
if (Rulebooks::is_empty(sc->ends[end].end_rulebook, Rulebooks::no_rule_context()) == FALSE) {
|
||||
HTML::open_indented_p(OUT, 1, "hanging");
|
||||
WRITE("<i>What happens:</i>"); HTML_CLOSE("p");
|
||||
int ignore_me = 0;
|
||||
Rulebooks::index(OUT, sc->end_rulebook[end], "", Rulebooks::no_rule_context(), &ignore_me);
|
||||
Rulebooks::index(OUT, sc->ends[end].end_rulebook, "", Rulebooks::no_rule_context(), &ignore_me);
|
||||
}
|
||||
|
||||
@h Table of Scenes.
|
||||
|
@ -224,7 +220,7 @@ on the initial call when |depth| is 0.
|
|||
@d NEVER_HAPPENS_END -2
|
||||
|
||||
=
|
||||
void PL::Scenes::Index::index_from_scene(OUTPUT_STREAM, scene *sc, int depth,
|
||||
void IXScenes::index_from_scene(OUTPUT_STREAM, scene *sc, int depth,
|
||||
int end, scene *sc_from, scene **sorted, int nr) {
|
||||
HTML::open_indented_p(OUT, depth+1, "tight");
|
||||
@<Indicate the route by which this scene was reached@>;
|
||||
|
@ -241,18 +237,18 @@ void PL::Scenes::Index::index_from_scene(OUTPUT_STREAM, scene *sc, int depth,
|
|||
|
||||
@<Indicate the route by which this scene was reached@> =
|
||||
switch(end) {
|
||||
case 0: PL::Scenes::Index::scene_icon(OUT, "Simul"); break;
|
||||
case 1: PL::Scenes::Index::scene_icon(OUT, "Segue"); break;
|
||||
case 0: IXScenes::scene_icon(OUT, "Simul"); break;
|
||||
case 1: IXScenes::scene_icon(OUT, "Segue"); break;
|
||||
case START_OF_PLAY_END: break;
|
||||
case NEVER_HAPPENS_END: PL::Scenes::Index::scene_icon(OUT, "WNever"); break;
|
||||
case NEVER_HAPPENS_END: IXScenes::scene_icon(OUT, "WNever"); break;
|
||||
default:
|
||||
PL::Scenes::Index::scene_icon(OUT, "Segue");
|
||||
WRITE("[ends %+W] ", sc_from->end_names[end]); break;
|
||||
IXScenes::scene_icon(OUT, "Segue");
|
||||
WRITE("[ends %+W] ", sc_from->ends[end].end_names); break;
|
||||
}
|
||||
if ((sc->indexed == FALSE) || (depth == 0)) {
|
||||
if (sc == SC_entire_game) PL::Scenes::Index::scene_icon(OUT, "WPB");
|
||||
else if (sc->anchor_condition[0]) PL::Scenes::Index::scene_icon(OUT, "WhenC");
|
||||
if (sc->start_of_play) PL::Scenes::Index::scene_icon(OUT, "WPB");
|
||||
if (sc == SC_entire_game) IXScenes::scene_icon(OUT, "WPB");
|
||||
else if (sc->ends[0].anchor_condition) IXScenes::scene_icon(OUT, "WhenC");
|
||||
if (sc->start_of_play) IXScenes::scene_icon(OUT, "WPB");
|
||||
}
|
||||
|
||||
@<Name the scene in the table, italicised if we've seen it already@> =
|
||||
|
@ -262,17 +258,17 @@ void PL::Scenes::Index::index_from_scene(OUTPUT_STREAM, scene *sc, int depth,
|
|||
else Index::below_link_numbered(OUT, sc->allocation_id);
|
||||
|
||||
@<Show the never-ends icon if appropriate@> =
|
||||
int ways_to_end = 0, e;
|
||||
for (e=1; e<sc->no_ends; e++) {
|
||||
if (sc->anchor_scene[e]) ways_to_end++;
|
||||
if (sc->anchor_condition[e]) ways_to_end++;
|
||||
int ways_to_end = 0;
|
||||
for (int e=1; e<sc->no_ends; e++) {
|
||||
if (sc->ends[e].anchor_connectors) ways_to_end++;
|
||||
if (sc->ends[e].anchor_condition) ways_to_end++;
|
||||
}
|
||||
if (ways_to_end == 0) PL::Scenes::Index::scene_icon_append(OUT, "ENever");
|
||||
if (ways_to_end == 0) IXScenes::scene_icon_append(OUT, "ENever");
|
||||
|
||||
@<Show the recurring icon if appropriate@> =
|
||||
inference_subject *subj = Instances::as_subject(sc->as_instance);
|
||||
if (PropertyInferences::either_or_state(subj, P_recurring) > UNKNOWN_CE)
|
||||
PL::Scenes::Index::scene_icon_append(OUT, "Recurring");
|
||||
IXScenes::scene_icon_append(OUT, "Recurring");
|
||||
|
||||
@ And this is where the routine recurses, so that consequent scenes are
|
||||
tabulated underneath the present one, indented one step further in (since
|
||||
|
@ -280,38 +276,37 @@ indentation is coupled to |depth|). First we recurse to scenes which end when
|
|||
this one does; then to scenes which begin when this one ends.
|
||||
|
||||
@<Indent to tabulate other scenes connected to the ends of this one@> =
|
||||
int i;
|
||||
for (i=0; i<nr; i++) {
|
||||
for (int i=0; i<nr; i++) {
|
||||
scene *sc2 = sorted[i];
|
||||
scene_connector *scon;
|
||||
for (scon = sc2->anchor_scene[0]; scon; scon=scon->next)
|
||||
for (scon = sc2->ends[0].anchor_connectors; scon; scon=scon->next)
|
||||
if ((scon->connect_to == sc) && (scon->end >= 1))
|
||||
PL::Scenes::Index::index_from_scene(OUT, sc2, depth + 1, scon->end, sc, sorted, nr);
|
||||
IXScenes::index_from_scene(OUT, sc2, depth + 1, scon->end, sc, sorted, nr);
|
||||
}
|
||||
for (i=0; i<nr; i++) {
|
||||
for (int i=0; i<nr; i++) {
|
||||
scene *sc2 = sorted[i];
|
||||
scene_connector *scon;
|
||||
for (scon = sc2->anchor_scene[0]; scon; scon=scon->next)
|
||||
for (scon = sc2->ends[0].anchor_connectors; scon; scon=scon->next)
|
||||
if ((scon->connect_to == sc) && (scon->end == 0))
|
||||
PL::Scenes::Index::index_from_scene(OUT, sc2, depth, scon->end, sc, sorted, nr);
|
||||
IXScenes::index_from_scene(OUT, sc2, depth, scon->end, sc, sorted, nr);
|
||||
}
|
||||
|
||||
@ We have been using:
|
||||
|
||||
=
|
||||
void PL::Scenes::Index::scene_icon(OUTPUT_STREAM, char *si) {
|
||||
PL::Scenes::Index::scene_icon_unspaced(OUT, si); WRITE(" ");
|
||||
void IXScenes::scene_icon(OUTPUT_STREAM, char *si) {
|
||||
IXScenes::scene_icon_unspaced(OUT, si); WRITE(" ");
|
||||
}
|
||||
|
||||
void PL::Scenes::Index::scene_icon_append(OUTPUT_STREAM, char *si) {
|
||||
WRITE(" "); PL::Scenes::Index::scene_icon_unspaced(OUT, si);
|
||||
void IXScenes::scene_icon_append(OUTPUT_STREAM, char *si) {
|
||||
WRITE(" "); IXScenes::scene_icon_unspaced(OUT, si);
|
||||
}
|
||||
|
||||
void PL::Scenes::Index::scene_icon_legend(OUTPUT_STREAM, char *si, char *gloss) {
|
||||
PL::Scenes::Index::scene_icon_unspaced(OUT, si); WRITE(" <i>%s</i>", gloss);
|
||||
void IXScenes::scene_icon_legend(OUTPUT_STREAM, char *si, char *gloss) {
|
||||
IXScenes::scene_icon_unspaced(OUT, si); WRITE(" <i>%s</i>", gloss);
|
||||
}
|
||||
|
||||
void PL::Scenes::Index::scene_icon_unspaced(OUTPUT_STREAM, char *si) {
|
||||
void IXScenes::scene_icon_unspaced(OUTPUT_STREAM, char *si) {
|
||||
HTML_TAG_WITH("img", "border=0 src=inform:/scene_icons/%s.png", si);
|
||||
}
|
||||
|
||||
|
@ -320,7 +315,7 @@ their indexing order. The Entire Game always comes first, and then come the
|
|||
rest in ascending alphabetical order.
|
||||
|
||||
=
|
||||
int PL::Scenes::Index::compare_scenes(const void *ent1, const void *ent2) {
|
||||
int IXScenes::compare_scenes(const void *ent1, const void *ent2) {
|
||||
const scene *sc1 = *((const scene **) ent1);
|
||||
const scene *sc2 = *((const scene **) ent2);
|
||||
if ((sc1 == SC_entire_game) && (sc2 != SC_entire_game)) return -1;
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue